From 2a077de1486980bd17d1d295e9437b4bdbd217b1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 2 Jun 2025 00:58:35 +0000 Subject: [PATCH 01/76] [skip ci] Update CHANGELOG.md (prepend template) --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fb2c51c82..9a17ce26b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +## Unreleased + +### General +- + +### Client +- + +### Server +- + + ## 2025.6.0 ### Client From 3bc81522c65d724de121cbe6265c60e48a8f8ae7 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Tue, 3 Jun 2025 07:31:19 +0900 Subject: [PATCH 02/76] =?UTF-8?q?enhance(frontend):=20ID=E3=81=ABUUID?= =?UTF-8?q?=E3=82=92=E4=BD=BF=E3=81=86=E3=81=AE=E3=82=92=E3=82=84=E3=82=81?= =?UTF-8?q?=E3=82=8B=20(#16138)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * wip * Update flash-edit.vue --- packages/frontend/package.json | 1 - packages/frontend/src/aiscript/ui.ts | 4 +-- .../src/components/MkImgWithBlurhash.vue | 4 +-- .../frontend/src/components/MkMiniChart.vue | 4 +-- .../src/components/MkUploaderDialog.vue | 4 +-- .../frontend/src/components/MkWidgets.vue | 4 +-- packages/frontend/src/deck.ts | 4 +-- .../src/pages/admin/RolesEditorFormula.vue | 6 ++--- .../frontend/src/pages/admin/roles.edit.vue | 4 +-- .../els/page-editor.el.section.vue | 4 +-- .../src/pages/page-editor/page-editor.vue | 6 ++--- .../src/pages/settings/emoji-palette.vue | 4 +-- .../frontend/src/pages/settings/statusbar.vue | 4 +-- packages/frontend/src/pages/theme-editor.vue | 4 +-- packages/frontend/src/plugin.ts | 4 +-- packages/frontend/src/pref-migrate.ts | 4 +-- packages/frontend/src/preferences/def.ts | 10 ++++---- packages/frontend/src/preferences/manager.ts | 4 +-- packages/frontend/src/tab-id.ts | 4 +-- packages/frontend/src/ui/deck.vue | 4 +-- .../frontend/src/utility/get-embed-code.ts | 4 +-- packages/frontend/src/utility/id.ts | 25 +++++++++++++++++++ packages/frontend/src/utility/theme-editor.ts | 4 +-- .../src/widgets/server-metric/cpu-mem.vue | 10 ++++---- pnpm-lock.yaml | 5 +--- 25 files changed, 78 insertions(+), 57 deletions(-) create mode 100644 packages/frontend/src/utility/id.ts diff --git a/packages/frontend/package.json b/packages/frontend/package.json index b2b807dbc7..a22d158756 100644 --- a/packages/frontend/package.json +++ b/packages/frontend/package.json @@ -72,7 +72,6 @@ "tsc-alias": "1.8.16", "tsconfig-paths": "4.2.0", "typescript": "5.8.3", - "uuid": "11.1.0", "v-code-diff": "1.13.1", "vite": "6.3.5", "vue": "3.5.16", diff --git a/packages/frontend/src/aiscript/ui.ts b/packages/frontend/src/aiscript/ui.ts index 46e193f7c1..a27ece512e 100644 --- a/packages/frontend/src/aiscript/ui.ts +++ b/packages/frontend/src/aiscript/ui.ts @@ -4,7 +4,7 @@ */ import { utils, values } from '@syuilo/aiscript'; -import { v4 as uuid } from 'uuid'; +import { genId } from '@/utility/id.js'; import { ref } from 'vue'; import type { Ref } from 'vue'; import * as Misskey from 'misskey-js'; @@ -543,7 +543,7 @@ export function registerAsUiLib(components: Ref[], done: (root: R call: C, ) { if (id) utils.assertString(id); - const _id = id?.value ?? uuid(); + const _id = id?.value ?? genId(); const component = ref({ ...getOptions(def, call), type, diff --git a/packages/frontend/src/components/MkImgWithBlurhash.vue b/packages/frontend/src/components/MkImgWithBlurhash.vue index e3a0a371b4..361aeff4d0 100644 --- a/packages/frontend/src/components/MkImgWithBlurhash.vue +++ b/packages/frontend/src/components/MkImgWithBlurhash.vue @@ -82,7 +82,7 @@ const canvasPromise = new Promise(resol - diff --git a/packages/frontend/src/pages/admin/files.vue b/packages/frontend/src/pages/admin/files.vue index 87595a820b..4ea5756284 100644 --- a/packages/frontend/src/pages/admin/files.vue +++ b/packages/frontend/src/pages/admin/files.vue @@ -34,6 +34,7 @@ SPDX-License-Identifier: AGPL-3.0-only - From ed29a3613b03f7b09a61a23a3d5384bf8b61ffe4 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Tue, 3 Jun 2025 17:57:51 +0900 Subject: [PATCH 08/76] fix(frontend): fix user search pagination --- CHANGELOG.md | 1 + packages/frontend/src/pages/search.user.vue | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f99b946d9..1aeaa66f79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ ### Client - Fix: ドライブファイルの選択が不安定な問題を修正 - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 +- Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 ### Server - diff --git a/packages/frontend/src/pages/search.user.vue b/packages/frontend/src/pages/search.user.vue index d98b58c748..eaec043311 100644 --- a/packages/frontend/src/pages/search.user.vue +++ b/packages/frontend/src/pages/search.user.vue @@ -40,8 +40,8 @@ import { misskeyApi } from '@/utility/misskey-api.js'; import { useRouter } from '@/router.js'; const props = withDefaults(defineProps<{ - query?: string, - origin?: Endpoints['users/search']['req']['origin'], + query?: string, + origin?: Endpoints['users/search']['req']['origin'], }>(), { query: '', origin: 'combined', @@ -115,6 +115,7 @@ async function search() { userPagination.value = { endpoint: 'users/search', limit: 10, + offsetMode: true, params: { query: query, origin: instance.federation === 'none' ? 'local' : searchOrigin.value, From 4af8c7f8b0a753cb91d5145de2906a895e636668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?= <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Tue, 3 Jun 2025 18:44:01 +0900 Subject: [PATCH 09/76] =?UTF-8?q?enhance(frontend):=20=E3=83=AA=E3=82=A2?= =?UTF-8?q?=E3=82=AF=E3=82=B7=E3=83=A7=E3=83=B3=E3=83=93=E3=83=A5=E3=83=BC?= =?UTF-8?q?=E3=83=AF=E3=83=BC=E3=81=A7=E4=BD=BF=E7=94=A8=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E3=81=AA=E3=83=AA=E3=82=A2=E3=82=AF=E3=82=B7=E3=83=A7=E3=83=B3?= =?UTF-8?q?=E3=82=92=E5=84=AA=E5=85=88=E3=81=97=E3=81=A6=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E3=81=99=E3=82=8B=E3=82=AA=E3=83=97=E3=82=B7=E3=83=A7=E3=83=B3?= =?UTF-8?q?=20(#16149)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * enhance(frontend): リアクションビューワーで使用可能なリアクションを優先して表示するオプション * Update Changelog * tweak * fix * enhance: リアクティブじゃなくする --------- Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com> --- CHANGELOG.md | 1 + locales/index.d.ts | 4 ++++ locales/ja-JP.yml | 1 + packages/frontend-shared/js/emojilist.ts | 4 ++++ .../src/components/MkReactionsViewer.vue | 19 ++++++++++++++++++- .../src/pages/settings/preferences.vue | 10 ++++++++++ packages/frontend/src/preferences/def.ts | 3 +++ 7 files changed, 41 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1aeaa66f79..c91d602692 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - ### Client +- Enhance: ノートのリアクション一覧で、押せるリアクションを優先して表示できるようにするオプションを追加 - Fix: ドライブファイルの選択が不安定な問題を修正 - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 - Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 diff --git a/locales/index.d.ts b/locales/index.d.ts index 73bcb2f1c8..0119b4ae5e 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -5821,6 +5821,10 @@ export interface Locale extends ILocale { * URLプレビューを表示する */ "showUrlPreview": string; + /** + * 利用できるリアクションを先頭に表示 + */ + "showAvailableReactionsFirstInNote": string; "_chat": { /** * 送信者の名前を表示 diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index c7971507aa..b61bbf4970 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1455,6 +1455,7 @@ _settings: contentsUpdateFrequency_description: "高いほどリアルタイムにコンテンツが更新されますが、パフォーマンスが低下し、通信量とバッテリーの消費が多くなります。" contentsUpdateFrequency_description2: "リアルタイムモードがオンのときは、この設定に関わらずリアルタイムでコンテンツが更新されます。" showUrlPreview: "URLプレビューを表示する" + showAvailableReactionsFirstInNote: "利用できるリアクションを先頭に表示" _chat: showSenderName: "送信者の名前を表示" diff --git a/packages/frontend-shared/js/emojilist.ts b/packages/frontend-shared/js/emojilist.ts index f8bbf39177..09bea06719 100644 --- a/packages/frontend-shared/js/emojilist.ts +++ b/packages/frontend-shared/js/emojilist.ts @@ -48,6 +48,10 @@ export function getUnicodeEmoji(char: string): UnicodeEmojiDef | string { ?? char; } +export function isSupportedEmoji(char: string): boolean { + return unicodeEmojisMap.has(colorizeEmoji(char)) || unicodeEmojisMap.has(char); +} + export function getEmojiName(char: string): string { // Colorize it because emojilist.json assumes that const idx = _indexByChar.get(colorizeEmoji(char)) ?? _indexByChar.get(char); diff --git a/packages/frontend/src/components/MkReactionsViewer.vue b/packages/frontend/src/components/MkReactionsViewer.vue index 725978179e..bd9ef50157 100644 --- a/packages/frontend/src/components/MkReactionsViewer.vue +++ b/packages/frontend/src/components/MkReactionsViewer.vue @@ -33,7 +33,10 @@ import * as Misskey from 'misskey-js'; import { inject, watch, ref } from 'vue'; import { TransitionGroup } from 'vue'; import XReaction from '@/components/MkReactionsViewer.reaction.vue'; +import { $i } from '@/i.js'; import { prefer } from '@/preferences.js'; +import { customEmojisMap } from '@/custom-emojis.js'; +import { isSupportedEmoji } from '@@/js/emojilist.js'; import { DI } from '@/di.js'; const props = withDefaults(defineProps<{ @@ -70,6 +73,12 @@ function onMockToggleReaction(emoji: string, count: number) { emit('mockUpdateMyReaction', emoji, (count - _reactions.value[i][1])); } +function canReact(reaction: string) { + if (!$i) return false; + // TODO: CheckPermissions + return !reaction.match(/@\w/) && (customEmojisMap.has(reaction) || isSupportedEmoji(reaction)); +} + watch([() => props.reactions, () => props.maxNumber], ([newSource, maxNumber]) => { let newReactions: [string, number][] = []; hasMoreReactions.value = Object.keys(newSource).length > maxNumber; @@ -86,7 +95,15 @@ watch([() => props.reactions, () => props.maxNumber], ([newSource, maxNumber]) = newReactions = [ ...newReactions, ...Object.entries(newSource) - .sort(([, a], [, b]) => b - a) + .sort(([emojiA, countA], [emojiB, countB]) => { + if (prefer.s.showAvailableReactionsFirstInNote) { + if (!canReact(emojiA) && canReact(emojiB)) return 1; + if (canReact(emojiA) && !canReact(emojiB)) return -1; + return countB - countA; + } else { + return countB - countA; + } + }) .filter(([y], i) => i < maxNumber && !newReactionsNames.includes(y)), ]; diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue index 678cfb93c0..00f810cc37 100644 --- a/packages/frontend/src/pages/settings/preferences.vue +++ b/packages/frontend/src/pages/settings/preferences.vue @@ -229,6 +229,14 @@ SPDX-License-Identifier: AGPL-3.0-only + + + + + + + + @@ -824,6 +832,7 @@ const showFixedPostFormInChannel = prefer.model('showFixedPostFormInChannel'); const numberOfPageCache = prefer.model('numberOfPageCache'); const enableInfiniteScroll = prefer.model('enableInfiniteScroll'); const useReactionPickerForContextMenu = prefer.model('useReactionPickerForContextMenu'); +const showAvailableReactionsFirstInNote = prefer.model('showAvailableReactionsFirstInNote'); const useGroupedNotifications = prefer.model('useGroupedNotifications'); const alwaysConfirmFollow = prefer.model('alwaysConfirmFollow'); const confirmWhenRevealingSensitiveMedia = prefer.model('confirmWhenRevealingSensitiveMedia'); @@ -917,6 +926,7 @@ watch([ enableHorizontalSwipe, enablePullToRefresh, reduceAnimation, + showAvailableReactionsFirstInNote, ], async () => { await reloadAsk({ reason: i18n.ts.reloadToApplySetting, unison: true }); }); diff --git a/packages/frontend/src/preferences/def.ts b/packages/frontend/src/preferences/def.ts index 5aadf835f2..6eb9b2408a 100644 --- a/packages/frontend/src/preferences/def.ts +++ b/packages/frontend/src/preferences/def.ts @@ -377,6 +377,9 @@ export const PREF_DEF = definePreferences({ showTitlebar: { default: false, }, + showAvailableReactionsFirstInNote: { + default: false, + }, plugins: { default: [] as Plugin[], mergeStrategy: (a, b) => { From 9fdc3c5defe92d0bfe65495ee2d355e9cc9ab6ba Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Tue, 3 Jun 2025 18:44:51 +0900 Subject: [PATCH 10/76] chore(frontend): remove duplicate declarations --- packages/frontend/src/pages/settings/preferences.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue index 00f810cc37..ef7b73c2b1 100644 --- a/packages/frontend/src/pages/settings/preferences.vue +++ b/packages/frontend/src/pages/settings/preferences.vue @@ -909,7 +909,6 @@ watch([ reactionsDisplaySize, limitWidthOfReaction, mediaListWithOneImageAppearance, - reactionsDisplaySize, limitWidthOfReaction, instanceTicker, squareAvatars, From cd9322a8243b12632db2dd9a29a702d7531a5aa0 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Tue, 3 Jun 2025 19:18:29 +0900 Subject: [PATCH 11/76] =?UTF-8?q?feat(frontend):=20=E7=94=BB=E5=83=8F?= =?UTF-8?q?=E7=B7=A8=E9=9B=86=E6=A9=9F=E8=83=BD=20(#16121)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * wip * wip * wip * wip * Update watermarker.ts * wip * wip * Update watermarker.ts * Update MkUploaderDialog.vue * wip * Update ImageEffector.ts * Update ImageEffector.ts * wip * wip * wip * wip * wip * wip * Update MkRange.vue * Update MkRange.vue * wip * wip * Update MkImageEffectorDialog.vue * Update MkImageEffectorDialog.Layer.vue * wip * Update zoomLines.ts * Update zoomLines.ts * wip * wip * Update ImageEffector.ts * wip * Update ImageEffector.ts * wip * Update ImageEffector.ts * swip * wip * Update ImageEffector.ts * wop * Update MkUploaderDialog.vue * Update ImageEffector.ts * wip * wip * wip * Update def.ts * Update def.ts * test * test * Update manager.ts * Update manager.ts * Update manager.ts * Update manager.ts * Update MkImageEffectorDialog.vue * wip * use WEBGL_lose_context * wip * Update MkUploaderDialog.vue * Update drive.vue * wip * Update MkUploaderDialog.vue * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip --- CHANGELOG.md | 1 + locales/index.d.ts | 178 +++++++ locales/ja-JP.yml | 49 ++ packages/frontend/assets/sample/2-3.jpg | Bin 0 -> 306563 bytes packages/frontend/assets/sample/3-2.jpg | Bin 0 -> 419447 bytes .../MkImageEffectorDialog.Layer.vue | 78 +++ .../src/components/MkImageEffectorDialog.vue | 302 +++++++++++ .../src/components/MkPositionSelector.vue | 53 ++ packages/frontend/src/components/MkRange.vue | 68 ++- .../src/components/MkUploaderDialog.vue | 292 ++++++++--- .../MkWatermarkEditorDialog.Layer.vue | 318 ++++++++++++ .../components/MkWatermarkEditorDialog.vue | 455 +++++++++++++++++ .../pages/settings/drive.WatermarkItem.vue | 112 +++++ .../frontend/src/pages/settings/drive.vue | 186 +++++-- packages/frontend/src/preferences/def.ts | 28 ++ .../utility/image-effector/ImageEffector.ts | 476 ++++++++++++++++++ .../src/utility/image-effector/fxs.ts | 37 ++ .../src/utility/image-effector/fxs/checker.ts | 87 ++++ .../image-effector/fxs/chromaticAberration.ts | 76 +++ .../utility/image-effector/fxs/colorClamp.ts | 53 ++ .../image-effector/fxs/colorClampAdvanced.ts | 89 ++++ .../src/utility/image-effector/fxs/distort.ts | 71 +++ .../src/utility/image-effector/fxs/glitch.ts | 96 ++++ .../utility/image-effector/fxs/grayscale.ts | 37 ++ .../src/utility/image-effector/fxs/invert.ts | 53 ++ .../src/utility/image-effector/fxs/mirror.ts | 58 +++ .../utility/image-effector/fxs/polkadot.ts | 151 ++++++ .../src/utility/image-effector/fxs/stripe.ts | 98 ++++ .../utility/image-effector/fxs/threshold.ts | 62 +++ .../image-effector/fxs/watermarkPlacement.ts | 148 ++++++ .../utility/image-effector/fxs/zoomLines.ts | 97 ++++ .../frontend/src/utility/snowfall-effect.ts | 2 +- packages/frontend/src/utility/watermark.ts | 180 +++++++ 33 files changed, 3885 insertions(+), 106 deletions(-) create mode 100644 packages/frontend/assets/sample/2-3.jpg create mode 100644 packages/frontend/assets/sample/3-2.jpg create mode 100644 packages/frontend/src/components/MkImageEffectorDialog.Layer.vue create mode 100644 packages/frontend/src/components/MkImageEffectorDialog.vue create mode 100644 packages/frontend/src/components/MkPositionSelector.vue create mode 100644 packages/frontend/src/components/MkWatermarkEditorDialog.Layer.vue create mode 100644 packages/frontend/src/components/MkWatermarkEditorDialog.vue create mode 100644 packages/frontend/src/pages/settings/drive.WatermarkItem.vue create mode 100644 packages/frontend/src/utility/image-effector/ImageEffector.ts create mode 100644 packages/frontend/src/utility/image-effector/fxs.ts create mode 100644 packages/frontend/src/utility/image-effector/fxs/checker.ts create mode 100644 packages/frontend/src/utility/image-effector/fxs/chromaticAberration.ts create mode 100644 packages/frontend/src/utility/image-effector/fxs/colorClamp.ts create mode 100644 packages/frontend/src/utility/image-effector/fxs/colorClampAdvanced.ts create mode 100644 packages/frontend/src/utility/image-effector/fxs/distort.ts create mode 100644 packages/frontend/src/utility/image-effector/fxs/glitch.ts create mode 100644 packages/frontend/src/utility/image-effector/fxs/grayscale.ts create mode 100644 packages/frontend/src/utility/image-effector/fxs/invert.ts create mode 100644 packages/frontend/src/utility/image-effector/fxs/mirror.ts create mode 100644 packages/frontend/src/utility/image-effector/fxs/polkadot.ts create mode 100644 packages/frontend/src/utility/image-effector/fxs/stripe.ts create mode 100644 packages/frontend/src/utility/image-effector/fxs/threshold.ts create mode 100644 packages/frontend/src/utility/image-effector/fxs/watermarkPlacement.ts create mode 100644 packages/frontend/src/utility/image-effector/fxs/zoomLines.ts create mode 100644 packages/frontend/src/utility/watermark.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index c91d602692..659aaae694 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - ### Client +- Feat: 画像にウォーターマークを付与できるようになりました - Enhance: ノートのリアクション一覧で、押せるリアクションを優先して表示できるようにするオプションを追加 - Fix: ドライブファイルの選択が不安定な問題を修正 - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 diff --git a/locales/index.d.ts b/locales/index.d.ts index 0119b4ae5e..6f3d2b3853 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -5481,6 +5481,14 @@ export interface Locale extends ILocale { * 全ての「ヒントとコツ」を非表示 */ "hideAllTips": string; + /** + * デフォルトの画像圧縮度 + */ + "defaultImageCompressionLevel": string; + /** + * 低くすると画質を保てますが、ファイルサイズは増加します。
高くするとファイルサイズを減らせますが、画質は低下します。 + */ + "defaultImageCompressionLevel_description": string; "_chat": { /** * まだメッセージはありません @@ -12024,6 +12032,176 @@ export interface Locale extends ILocale { */ "tip": string; }; + /** + * ウォーターマーク + */ + "watermark": string; + /** + * デフォルトのプリセット + */ + "defaultPreset": string; + "_watermarkEditor": { + /** + * 画像にクレジット情報などのウォーターマークを追加することができます。 + */ + "tip": string; + /** + * 保存せずに終了しますか? + */ + "quitWithoutSaveConfirm": string; + /** + * ウォーターマークの編集 + */ + "title": string; + /** + * 全体に被せる + */ + "cover": string; + /** + * 敷き詰める + */ + "repeat": string; + /** + * 不透明度 + */ + "opacity": string; + /** + * サイズ + */ + "scale": string; + /** + * テキスト + */ + "text": string; + /** + * 位置 + */ + "position": string; + /** + * タイプ + */ + "type": string; + /** + * 画像 + */ + "image": string; + /** + * 高度 + */ + "advanced": string; + /** + * ストライプ + */ + "stripe": string; + /** + * ラインの幅 + */ + "stripeWidth": string; + /** + * ラインの数 + */ + "stripeFrequency": string; + /** + * 角度 + */ + "angle": string; + /** + * ポルカドット + */ + "polkadot": string; + /** + * チェッカー + */ + "checker": string; + /** + * メインドットの不透明度 + */ + "polkadotMainDotOpacity": string; + /** + * メインドットの大きさ + */ + "polkadotMainDotRadius": string; + /** + * サブドットの不透明度 + */ + "polkadotSubDotOpacity": string; + /** + * サブドットの大きさ + */ + "polkadotSubDotRadius": string; + /** + * サブドットの数 + */ + "polkadotSubDotDivisions": string; + }; + "_imageEffector": { + /** + * エフェクト + */ + "title": string; + /** + * エフェクトを追加 + */ + "addEffect": string; + /** + * 変更を破棄して終了しますか? + */ + "discardChangesConfirm": string; + "_fxs": { + /** + * 色収差 + */ + "chromaticAberration": string; + /** + * グリッチ + */ + "glitch": string; + /** + * ミラー + */ + "mirror": string; + /** + * 色の反転 + */ + "invert": string; + /** + * 白黒 + */ + "grayscale": string; + /** + * 色の圧縮 + */ + "colorClamp": string; + /** + * 色の圧縮(高度) + */ + "colorClampAdvanced": string; + /** + * 歪み + */ + "distort": string; + /** + * 二値化 + */ + "threshold": string; + /** + * 集中線 + */ + "zoomLines": string; + /** + * ストライプ + */ + "stripe": string; + /** + * ポルカドット + */ + "polkadot": string; + /** + * チェッカー + */ + "checker": string; + }; + }; } declare const locales: { [lang: string]: Locale; diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index b61bbf4970..d4bd2c3116 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1365,6 +1365,8 @@ abort: "中止" tip: "ヒントとコツ" redisplayAllTips: "全ての「ヒントとコツ」を再表示" hideAllTips: "全ての「ヒントとコツ」を非表示" +defaultImageCompressionLevel: "デフォルトの画像圧縮度" +defaultImageCompressionLevel_description: "低くすると画質を保てますが、ファイルサイズは増加します。
高くするとファイルサイズを減らせますが、画質は低下します。" _chat: noMessagesYet: "まだメッセージはありません" @@ -3219,3 +3221,50 @@ _clip: _userLists: tip: "任意のユーザーが含まれるリストを作成できます。作成したリストはタイムラインとして表示可能です。" + +watermark: "ウォーターマーク" +defaultPreset: "デフォルトのプリセット" +_watermarkEditor: + tip: "画像にクレジット情報などのウォーターマークを追加することができます。" + quitWithoutSaveConfirm: "保存せずに終了しますか?" + title: "ウォーターマークの編集" + cover: "全体に被せる" + repeat: "敷き詰める" + opacity: "不透明度" + scale: "サイズ" + text: "テキスト" + position: "位置" + type: "タイプ" + image: "画像" + advanced: "高度" + stripe: "ストライプ" + stripeWidth: "ラインの幅" + stripeFrequency: "ラインの数" + angle: "角度" + polkadot: "ポルカドット" + checker: "チェッカー" + polkadotMainDotOpacity: "メインドットの不透明度" + polkadotMainDotRadius: "メインドットの大きさ" + polkadotSubDotOpacity: "サブドットの不透明度" + polkadotSubDotRadius: "サブドットの大きさ" + polkadotSubDotDivisions: "サブドットの数" + +_imageEffector: + title: "エフェクト" + addEffect: "エフェクトを追加" + discardChangesConfirm: "変更を破棄して終了しますか?" + + _fxs: + chromaticAberration: "色収差" + glitch: "グリッチ" + mirror: "ミラー" + invert: "色の反転" + grayscale: "白黒" + colorClamp: "色の圧縮" + colorClampAdvanced: "色の圧縮(高度)" + distort: "歪み" + threshold: "二値化" + zoomLines: "集中線" + stripe: "ストライプ" + polkadot: "ポルカドット" + checker: "チェッカー" diff --git a/packages/frontend/assets/sample/2-3.jpg b/packages/frontend/assets/sample/2-3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ee9bff6527f7cebeefa016602c6d8254b99cf567 GIT binary patch literal 306563 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

7QI~Q@wlDjmjg^VDnxULJtO| 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 z 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�th;L3q)@5K zLUK)Vay1yG@+L>$B_q9FH8y4i>;+ee?#Gi=LhhR@=*tQIR;#kQD#h|kc@&nHD{%%# zKH>5zsL3*9jcpI%w`;3am2t?R+r137tW&7Q@RA5MryQLM*cF_vB^>#toO>c8LFwy| z(I$R5tTKf%*!Uhyp_CQosd2KzD8GP4rO$F`HPnwn$el!(KQ(p)r7B?UM7Ic{GRs|8 z$4OcTVMWIzO8F#u_GXd}JQtsÐpt2mPs-(b?D3!?f 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⁢ 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

$w)W`$@Kqrt7{LXyhkS7 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 bv4yV$aaG7$CY!jV1i@|&7-NbJ2#^2SMi}km literal 0 HcmV?d00001 diff --git a/packages/frontend/assets/sample/3-2.jpg b/packages/frontend/assets/sample/3-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..400de1649d3f13b9a2c0a3654aee0d7abca912a4 GIT binary patch literal 419447 zcmeFZcU)817BG53AV2_VA<_+@g%Tkc5P>L3=rx3Z2#%5jFo|>!DHeJO(xiw{l+Xl( z89OhmY@-6UDZY(5-nsYP``+*S`@8X%b5{0Qd!4n{-h1uU@Z;>q zMM%!Y!PxFcxgikb?hYA35F`Of!(<^504ad)1(@6?7zyAOm;wX` zcNq8w!Bio!PcQ_14^#UJ_rY*qZ~z4u;Zt7~fHw*=`vju^ybQDc1d9XsU26HCFbvA# zLZY8(!X&bF|Aa-Jfi}p)+11knL-nN7Jn3YHv!}*mpfe3l;^Ko|bgudRPZK;Ak$0L%OTJaU; zXJh|4{%rj(a1aC)!v7qb$m!Ff(59?_ghc92i+{lZk~%H%1qKgKOa28$ex?8I=}c%- zCK8};=jozPG~v4l5L5~Kf)A)xihPE}<^c@<48tEoP}SBiI6&^z&?h>u&B>~UeTG3- zsOC%GP3~&G^aagOjo6pIW&lQffj8U#0)1lYKZi7Q+fY#0@85 zfBD}tf@7JO_^{CM z7^`>^_7ia{0B<&%U@@OiVh@wBe(p33H6l6~W4_&dyD1j*jt&a3qT4xq=?i|5uwR%w zdi3b_qdT@oL?1FC?Ao=<#MI2h%nT1O@G%MDvCMdUc#QU+6zqay*wNg`SZ+i(W|Jb5 z6>%h%gavQ@#1iueVCp}OJs9YPPlE>-n|yx4W=De||0irVGb}ioiH~L;#Rmn4Fpq@B z#(e7hXU8D+*M5;lqC-Ei9>g{Y4h;?q4*!Hp`1+E~H{1Jt#br}^u*l%>80O|gk+7yFgwN01KpP4B&z1boR%bgB z)`NTaa76UKE%nbRzT89M!LhNyU`<5_vp1=dL!*P4K?&r@$WU%Dm`4X@XiP8`1Lo9< z`f2)T(Gels&|nhw^G}RN@R8VPX6P4`h|q{=j|gr|Fg-Zv$R~m%?9TuC%nmGXZs;cG z{}shMEFvP76CND%X@GyCg@aed#DcAA2Bh%0(LO#hBIZbR@R!EzJ9d0-cj6x6go1Bu z%;zU~Ga$6h;kX?My?acvu{OA{!2w#Q(8l%DV{z=*F3*|4(_Cbe&-I+0mKT-bI9&~09_XrS>*>=;v zKKLv(Ga?rAdAC?mB7zdUgQL03P>&;Ftl((STuE zf7G1+g81*R_^eaEqR@kZ+5|f~C^+cPNpl82fQlh(vj2rwZ@>vRmK(>7P1xKMfYq;$ zXq#L0P&6}=!)5;k?Mr{KC#|Sp5yuAGf$!!J&4_qY3p~M`@#h(_eHXz9obH=%`-&YA z&4`HjJUn1V{J%|uMZLEMmpuY}F2R|{Nq0cBL|I!uwi2k&7zH}ys#(pKUsqC#nnVTbw|5Ke~ z{|oKU{WfWTCHF~lS~+oJ0Fwz{i2jvJ%qL}O#r&c}BBLXKJ_!!Oerb=12#Gz)j1DFr z0veKpC5MD?!@)|yd|Db9GmIHHA1(ewKFSFO+H%vf`_I#5@^3Quciuip>Muv+pXlJ+ z-2}fL;JZKBkpH{t_qAxnz0yXa;Z3xagjVg3+YP1jK!1Z6}ZQFRd-g!pWqsf)z^34ZRO`>BUqF54uV z=hBN5O^{x@O0(1dxFiw;48nsnx~GG)n>~oz0ZNQec36z4DFlT9XJ*qv^xNl;5nlyC z6E#4^7&2zEVRIknNJ}QXbQhc>p!CW_eQB85KsUy6cF5jcC#a+V*%_0 zV7H^Ok(+P{fKhDV0|B@mz{b&lK>$y0wzEFNk2m2%pW)v&;b;b(3dSY}V9cSvz^uQ( zY)*6-zyTwNbizW903JSlHUmP^!QnpM;En}fbtnd+Lyiyy!a&ZDJw$~pAOf@tTrD6x zWCm>qzo7rpf0MR4q`(Mvk!t4#~}zA z@L6Wy+2(Vo`X>ltB!Q_KgP^kl2+{-ivim>Y12PhWi;9ZE#lS^OObj6|Eg=p*vQko# z((|kwvx9a2r35uP^_BPO zt-8c2b31mLo`ro(Tc187sCW{PR0AQ`%^3M#UisyX;Gqp*O#~(igNwk$MMVH82Ejz+ z;i3v!1hOL5ON@y!i$Z9p6bV~({^sS$>4FbjYTpStd*sY37fz77qjU%H)$>+YmdYl(@@p2~*0v`N zi#8rx4bxo4I}xE^dq}6UvCUsC2wW8JuT&J3m8e=Ub3!g29 z9aOdkZ38d7tdV!%N*Jo?IIQVzPnx!_$mg{xUa0eP1gyb;^G!d1?diR{4 zJu(7EDn(D@+scX<&AW` z%wYAnW~?i=1wPv8mT6aV|FU0|vWxQ6BH8I%1jpT!b7&xR=A4%W&h@D)$FI3(QaJ0l zn=zoXauL#bajB;~^JmW#(U?bW6y-Y@Ia_mIr+W^DCF$cgYyE@Ti4!Z$PJA^^V@XCk zncv`4QRT*XE5#|6?I7K6r&6E0yPc8m%+>Va*>z_Ve)S30OE0;^B*(`-W1#=RGiE6J z`w|$^1OXK-uA~i9t`w<+x!J-6uq{H^VT*&5()#u()^6%?q9rb*xp;U z&p`U+s;lm#g=x6@k1gYEkKnJ1QAg;>mpb+H+Ktm9)edXr-*F|FC=ZmCtNZ5SProYC z$>!g68XSnw^r4_&H9fSE8Ul~!H@+lrN8vqq{u+ElO`u+KOHLh3!62KgQYYeHp1xJ2 zF{f3J?8#{o@wdoaJk=g1)0^Y2MvZJWXqfZ8PoV-KzlFy5D0uvVo!3bz*PPERT$l(~ zJM^~E$vx*Ezj$PHYwMDP-5zUz1f6g@(OrhHo;X%DrQ@(s?2vPsRhTeC&*9mXMC~Jv zDWY}!8N;kQWwmua`654b*d$l_p3!dgqZ=mR)Wp6oqk)q0LcS;pARbY6xDA2rHRF7PCa|_Gx zXQ>8{(SyeCl6_c0U51Zde@Y$P+%6lFNE1OG>VVKwPi-Y)$Iw^Bxmty0k|x z+z(TYKi=>HJyFN6$mQI#vq!5roH|5&7T_@BmK;-f*abV7S(Vx^PNX&MT}Xz;Oi_|3 znv^t`=4V3%a_}GFRJO7lUK8u%tge{7pPb9ODt!Fyao&EU_qKgL4PjMXeyZtu+U9n% zuu8K07=$Np)bt#Y&={i{5FVbjr=|smtM8khwj?yzPx;{=h#wD4wPV*D$dQ8j;abR}}G3M5k z!T8j&@s{{phw+xT-!-H9dY6y^l%DD+MFz7-ldKRm3=bODCzj-?b*V^O0I>E zNi{%Y@deyu`+&&`p#tUaA2*RSN99hTAvW?FDruARA-^L?1nH!uS-Ep%^#v1)Or=tA)}n zgCZm@P0CTER#<0jX-*twP1L|SmIc2p}AC~FevDQ;pcup$LVBF8f z(+j9FX32ZnloT9FLMkd3rVGOOITFdo5AVcIYMf$s*9T+W+>8vg?S>y<+qfm=FBTmL z-c+?CEKC2IaWkcn6SIS{R5oY%B-r zpP;s=5FEzmRohdmwOrb$?&Vyd zGjt`=!0E^#&5kW%;p&RWGa_9`h3}g2O>x_@adXxZH#b-D1evKKrbg*|wZoI+7x1{U z-nEpt}2 zW&qRB=q6eM)=q|`sbD8&4hE}^e3P+Q^w2djOk(J`f!||Im0_N*mE5aG07u5Wllu$0 z_X=0AGqcD1wBSHxB8S}OPqLjo72$p**T8t0HM!4iX8FSM7RK+>%|`-@%ZUFtesa6C zx%}Jk0||J@ydjxQl%UW=$6i#YOd74PFx&*FuJWy<{@*7b<0mnUA(KhRTD4kPt zgVUQ4az|C4`TRyLlXA_>ARH;nT(9a&lK_0tgevQ`Y@w^vHbW0)dsNuHN#Qbeb{H+L z>9d_vi?(dJNbtTY%X!js+)#aV7S9|mbuE08Z^)``5$@CO(8}GXo;cktytmEy-j57R zELfOK@0O&Lr8FSh@G(QEw?-sI`xajc@!+XTru0SsSoch2KEoQNQ`>I52VFMtLOj-Gne^NGIqy4BeTWRY-!KJpTx82OXbf>m6nsE538`;IxL*?-@TvllynIy{{@x5 zQ9LlgV_%NU`jKH1npF5?^wKTiU@5CB&86JW5m7F=R4zIyLma@=TFYxDh0XIPRd8q2 zu;=2u=Q=kOwK+@r&8}=GuUul67>xP;Dr#3M^#^3pTy=~+ZMy7-)aGE_9&U3!fnQq~ z;NU- znUq0B2~FkLN&y)ZH&@RXB?&@ulJ~r!(nCHK_JIZuuenp_s&?0hRoTZk#)&zA$-A3t zo|H4ETSTv^aja)})y4_ssVX!&sn|zFt zG3NwP=hePWf4isgWc8nHRyalaefxa_&c+f*je^Nt{<;HMx>W^+KL-a{Vy*Ahzivi5 zP_u9L5$2lR&M4Rvu{!8GqLkx*zif|HRppHN7vW_}8{0T^xWJ85tc>w>o7j>f$fQdQ z;pS2Dr@*k);xp)l0@c_-U~5_2V4THE7!CTICieIMAy_I=Bm}WWiem(Xm{u;$&~N;D zRcR^trGYeQn)VD6N zAD&yx8aP%Tx!;@^m%xCjPPJ72MzH56vr*3&@-AF{>OI?f8*iAcs;K51lblgWNgWrt z<8GuOYbRlDT;rN6KH6H;sDo2Fhx4!cz__O&EM4I^brDEwpgKCuCCGR=3a+FJI|IZhuX{mb262%_L&M_Vt zEY}H2sB>bYQqDiXdGQK2hlXiYbHbID1Oe1Y(aby{>zZd`fFo0d^mq;}t31&jkg_BI z6F&fE(y`mGgg!^=I~}}HvuLj6u()NYtS4G7+_UJ?YHs|+T;>Yzx{k-oncvTR$kR_D ze5lFppj!(@{aIx!x5Vy^rVAw<=TDIK$yS7{H>0j#DLna$Pns4G{v%nwt7@(F@dBgx zCnK^I)a++b9z0Htq5FMN3T0&cywer`Kn1Zd^-gLEZ0Y#yu+n(VDFHjYmN(T(v~X&y3UvlncAOv% z!{2nV6lhbew9|DJ8Di}pyjT+79&4BtWq_uNOOq8DqVx)W>fPrKi$cpwEZCT-lmNo+ zu+OII`tZ}w^I3Ad9K}a`77Q8}iJNK_@63e)C!t;<#EfwnMI#IdLfh$6Hfy$itz%C8 zq{qt7_D?(2xaPRC?pEpA5&T9b6zFcq8$&nUj_B%4Tjmj-_wf0KLp3zsl%lq?ax){F zQ=r3Yr|VW(5BfLAjo<7SbYS;8_^Wo9?RO9$JIvH6el6Uqh=~pIzD_zNHOf0!bd+1C zbw%)lq=GZCC#<*8uC>nF_bgsUc~)?JM4-SVMo{L66Ggr?uGz&Z>y7hgJhhW*O|TLW^sqn>mY#!}u{6JXZjKf7V(Tq)GUUR;x+5Wrfg8bFD zo2%=f0*U*9y&&JM*$$q0=99S3WENiyH><%TS)uPIT9Q&1B&$*fUnmiMk{`?@D@3`8 zUTmgG-o9?ya&@B;b{Z$ej37RaL$BG3<#1(yFLm!Kk>+<((5Q6k>Lp-;5Fh(mcoJ#P zUay?__Gj)l^sZK?Xy`U+C;{<fZCN zwl5oI>oqkEX6sGcp%xr$c4SRS#;jOp=*B+cO?TPtQ?oPSqwSWJiPNq5xRu(H9C_rZ zJvPX4ttp6?gY<2SqqW_1N$r!a<1<-p-L)frX=#rbMo?9{=CKBvpD9imCudnHD%atw zB@I1yClD|KRx1@OUR>*@O^KGVmXk$gq8|Vau)vu!LaaGVyg>ZI!}-cbt=c2*>kiji zDP;^2#8Xyn#Ree}j+E39E2U%sPGlunOaunpRk*!amH=n0meq_x%QK(ai)C~tPRZ?0 z9EUNvuc0|`qO$pr%5Da&$^UN!Ply6)r*r0t9b7QvH%0Ug8aX1a@l++yzNzUfx=J?2 z&((v|cDm}i_ancXQVzLV+jo`zsyf(PHQf{|$3qy2BqNh$QOU|xJ;1piG?fZN!_1ar z+)c6j`-g0sg=RYZ_e|rYy>5pb+~svMO5QYA6Mvj{@Ob#T*)k}3_oh6O>ML80R>FI# zderRE(5ws^CC>*wZP|QRslJuw#6gLu^YjhJ7H;#%<$aQK7USpNG%k2dAQau50_>FY zeD8-LZu5+B*bCEdk?F)EE)?Mv8Q-P2bY^vYXU2VgQflhUR)_nv;%(-@;E0p=jI3Al z&qYeZolhN+6J(A$B?OL9&nDS22i5vHmEEsv*_B~cJ^rT{t-^Qn{98`#HzaXQ^DcA^ zMdJOIojVx=d;gG$A@=d&dP+rR*J*ah;X6zu-V#?jGyb!^iMKD;ou&z@+29iP% zf}pui$kJ_?A9mU!V-U`+F~*6Mo&u+=D8nn%QUO>_pZatl z7UP?aje%V%o#!yEmikIFuO6Ru^>#BVE7az?p?!eJnK2oRucbzYJGM#F!shWTsrTI< z>z#;~dBfNDxFz+yyO>Ba-GIGf{BF7dZRaMk7nHvjDR4SbDKlO@wXI%f9_WpDhh?vp zojI?rJOZm9?mCgzd44;Qc_?2xZ~M2F_e)aVe3#cNe%i&T z^L7pC;H2-4fY^m|5oSf$00;F%jcV)W(6)+3b($Csn zYWLlmJEmseP202xde82i%oBDy7jd7nT6G6WRV@fG`!fAAe5JIL*R7-!|GrRx?7fx< zoWv~6cA8&hUtJb+nFcK-OBMJ-+NWq*`kEaS#WXi^ARjUo1VSDhp_GhE7Bd`#b{49D zO%sd?MK2C4CV0=P^>0OW%EotGU8#MbTK;-L{t@k!(i7SK2D6hshwxUx#_jG|0bc#8 zkIM4i5&ctLo_bxhy774V;I~=TceEp(C@D-4=|AQW4h(&Sri~1koC$X`7q_fiZBfB` zS#bCxZ@0_hK-pB<4q7Xh(d>x>rsL9Yno&3A2&8W94z7B7cj-^2u!rB6o-L_zc-iy1 z`KUY@HC$?~1V7XPf@QRcZX74mo6(R>-{$Ww5>$To*i(zM+ybE|7MRD*!od7HL{q*& z)vV}vgGNJxsjw_L(Wjxfo!oi5bZcrN$i;ehH|9f+S5q;Q|@Z*Np$zgIck4Aiq zQzOBBvLQ%6u(X4962FIL0c#$4Eew)L!%HHX-LmBMcC7kzGvu;Acy$NZH<@n_4pWz3 zx)k}?Z>g~7L`gFBxM5+c=oF0XU(8|in`v_zTX2J}xM;H&`uK#ErhUxKD-26=1CH9N zl!si_vZQC_hkMOn4R=>i8P z140zQAOf*JE%hlmxGK(9^8+ppjseCcWhdN+(gNnPchfxGKLu9MR^sDxh?PrD_%ysD zd|5fhzOqhM=5~czp|@-g`;lv+X3w!*yJLU1ot5t-CZ?>W9HAjcTm8mblf zF0%c)tLCUuiwV=^*%9(<4iq>MsEj#E%!Ed9b?EeKqt@OuRy0+1k9k$f7G`|)%!ToJ zMdwvYcDRK4`>D#-?bS1a!10uY`ocHxhc3gmFFErhVfNlzWp7CJFl|&g)5+pxa`n75 z#dXl5++S*d{Lo=WtuV9VSOz@}y{J!#bc~q0H&n2Kx-H`q zWtYEX7ZA!9`bxL-TVKa59?L@qMtNi~!-3gxdWEl%v82jSOIhjwE>PbNb2YiQrq_IH z+fn7kJG|PH$`2TAZmX>k{tRoIl?pW*MgJ%0GrF_9sJWU9vIAGuzMvpVJ#4*jZ_1@f zV^2+|26)K|wFo}=&U0Tlz_fYH4A ziXREu0*lJ|e(B-shU8G1{!HN@Vz|OkgD?9Fh{!!Vs^yuO!)_~id^}>S@>s|#v)}D> zUko>!XM19P8a&PW9ebQ&N6%892`BoOrnK2SwjBV5-#LXzWUah~1-L2%06*|eZsY+R zIKq;HMDm(;iUw;kHe1Zq#JaV$NDa?rdZbrMF`Y7FtM-^>o32t+T46ZPK&(Y!I#R?r z@t9O$2=$>OY$T9mM0QIg#?a>QdIo8Hm&|7#{uf1HJe)DP@J^V1n)&v#PA7KhYLw4}<7)1jEvy9pamCM5eP2`1jog#ieD}bY zdI#%o$nh???{js3=|Ad``DW)@lWs<}5AlXb(C#B;LkE`OME2j17KCuBXN>aNWxv_; z6Pm82yN^^2-H6fpX20X3Z{&u4tR+%+%Fq09ZpT9UyHU>UV7Kox5O5Sn(fqbZ)Q&=_ z@VUmm42ik2Wt8SHs!MAMWkX�~?X*u62s*S8RJ*&0>C^(L8zqgcaEfR>clHbrlz< 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

fr_V@DI*%p^_C{Iy-%i$AJ?$@Ue=2IZH6dVsF6 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%0ABPKP=iGy25Gh5pT%BnHnk>sbI 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

s=d`(M}Rd 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 z%0A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 literal 0 HcmV?d00001 diff --git a/packages/frontend/src/components/MkImageEffectorDialog.Layer.vue b/packages/frontend/src/components/MkImageEffectorDialog.Layer.vue new file mode 100644 index 0000000000..0312017d86 --- /dev/null +++ b/packages/frontend/src/components/MkImageEffectorDialog.Layer.vue @@ -0,0 +1,78 @@ + + + + + + + diff --git a/packages/frontend/src/components/MkImageEffectorDialog.vue b/packages/frontend/src/components/MkImageEffectorDialog.vue new file mode 100644 index 0000000000..997dd4d528 --- /dev/null +++ b/packages/frontend/src/components/MkImageEffectorDialog.vue @@ -0,0 +1,302 @@ + + + + + + + diff --git a/packages/frontend/src/components/MkPositionSelector.vue b/packages/frontend/src/components/MkPositionSelector.vue new file mode 100644 index 0000000000..002950cdf1 --- /dev/null +++ b/packages/frontend/src/components/MkPositionSelector.vue @@ -0,0 +1,53 @@ + + + + + + + diff --git a/packages/frontend/src/components/MkRange.vue b/packages/frontend/src/components/MkRange.vue index f36e68b687..9a6a207c74 100644 --- a/packages/frontend/src/components/MkRange.vue +++ b/packages/frontend/src/components/MkRange.vue @@ -12,7 +12,12 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
+
+
+
+
+
@@ -24,7 +29,9 @@ SPDX-License-Identifier: AGPL-3.0-only @mouseenter.passive="onMouseenter" @mousedown="onMousedown" @touchstart="onMousedown" - >
+ > +
+
@@ -63,6 +70,9 @@ const emit = defineEmits<{ const containerEl = useTemplateRef('containerEl'); const thumbEl = useTemplateRef('thumbEl'); +const maxRatio = computed(() => Math.abs(props.max) / (props.max + Math.abs(Math.min(0, props.min)))); +const minRatio = computed(() => Math.abs(Math.min(0, props.min)) / (props.max + Math.abs(Math.min(0, props.min)))); + const rawValue = ref((props.modelValue - props.min) / (props.max - props.min)); const steppedRawValue = computed(() => { if (props.step) { @@ -222,15 +232,17 @@ function onMousedown(ev: MouseEvent | TouchEvent) { } } - $thumbHeight: 20px; - $thumbWidth: 20px; + $thumbHeight: 32px; + $thumbWidth: 32px; + $thumbInnerHeight: 19px; + $thumbInnerWidth: 19px; > .body { display: flex; align-items: center; justify-content: center; gap: 8px; - padding: 7px 12px; + padding: 0px 4px; background: var(--MI_THEME-panel); border: solid 1px var(--MI_THEME-panel); border-radius: 6px; @@ -256,10 +268,30 @@ function onMousedown(ev: MouseEvent | TouchEvent) { > .highlight { position: absolute; top: 0; - left: 0; height: 100%; - background: var(--MI_THEME-accent); - opacity: 0.5; + background: color(from var(--MI_THEME-buttonGradateA) srgb r g b / 0.5); + overflow: clip; + + > .shine { + position: absolute; + top: 0; + width: 64px; + height: 100%; + } + } + + > .highlight.right { + > .shine.right { + right: calc(#{$thumbInnerWidth} / 2); + background: linear-gradient(-90deg, var(--MI_THEME-buttonGradateB), color(from var(--MI_THEME-buttonGradateA) srgb r g b / 0)); + } + } + + > .highlight.left { + > .shine.left { + left: calc(#{$thumbInnerWidth} / 2); + background: linear-gradient(90deg, var(--MI_THEME-buttonGradateB), color(from var(--MI_THEME-buttonGradateA) srgb r g b / 0)); + } } } @@ -290,11 +322,25 @@ function onMousedown(ev: MouseEvent | TouchEvent) { width: $thumbWidth; height: $thumbHeight; cursor: grab; - background: var(--MI_THEME-accent); - border-radius: 999px; &:hover { - background: hsl(from var(--MI_THEME-accent) h s calc(l + 10)); + > .thumbInner { + background: hsl(from var(--MI_THEME-accent) h s calc(l + 10)); + } + } + + > .thumbInner { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + margin: auto; + width: $thumbInnerWidth; + height: $thumbInnerHeight; + background: var(--MI_THEME-accent); + border-radius: 999px; + pointer-events: none; } } } diff --git a/packages/frontend/src/components/MkUploaderDialog.vue b/packages/frontend/src/components/MkUploaderDialog.vue index a0d25d08d3..b2e4896ed3 100644 --- a/packages/frontend/src/components/MkUploaderDialog.vue +++ b/packages/frontend/src/components/MkUploaderDialog.vue @@ -28,7 +28,7 @@ SPDX-License-Identifier: AGPL-3.0-only v-for="ctx in items" :key="ctx.id" v-panel - :class="[$style.item, ctx.waiting ? $style.itemWaiting : null, ctx.uploaded ? $style.itemCompleted : null, ctx.uploadFailed ? $style.itemFailed : null]" + :class="[$style.item, ctx.preprocessing ? $style.itemWaiting : null, ctx.uploaded ? $style.itemCompleted : null, ctx.uploadFailed ? $style.itemFailed : null]" :style="{ '--p': ctx.progress != null ? `${ctx.progress.value / ctx.progress.max * 100}%` : '0%' }" >
@@ -40,8 +40,8 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ ctx.name }}
{{ ctx.file.type }} - {{ bytes(ctx.file.size) }} ({{ i18n.tsx._uploader.compressedToX({ x: bytes(ctx.compressedSize) }) }} = {{ i18n.tsx._uploader.savedXPercent({ x: Math.round((1 - ctx.compressedSize / ctx.file.size) * 100) }) }}) + {{ bytes(ctx.file.size) }}
@@ -59,19 +59,6 @@ SPDX-License-Identifier: AGPL-3.0-only
- - - -
{{ i18n.tsx._uploader.maxFileSizeIsX({ x: $i.policies.maxFileSizeMb + 'MB' }) }}
@@ -93,7 +80,7 @@ SPDX-License-Identifier: AGPL-3.0-only diff --git a/packages/frontend/src/components/MkWatermarkEditorDialog.vue b/packages/frontend/src/components/MkWatermarkEditorDialog.vue new file mode 100644 index 0000000000..4cfb4a72bc --- /dev/null +++ b/packages/frontend/src/components/MkWatermarkEditorDialog.vue @@ -0,0 +1,455 @@ + + + + + + + diff --git a/packages/frontend/src/pages/settings/drive.WatermarkItem.vue b/packages/frontend/src/pages/settings/drive.WatermarkItem.vue new file mode 100644 index 0000000000..b466f35fc5 --- /dev/null +++ b/packages/frontend/src/pages/settings/drive.WatermarkItem.vue @@ -0,0 +1,112 @@ + + + + + + + diff --git a/packages/frontend/src/pages/settings/drive.vue b/packages/frontend/src/pages/settings/drive.vue index d62e487341..0614b1242b 100644 --- a/packages/frontend/src/pages/settings/drive.vue +++ b/packages/frontend/src/pages/settings/drive.vue @@ -39,53 +39,122 @@ SPDX-License-Identifier: AGPL-3.0-only - -
- - - {{ i18n.ts.uploadFolder }} - - + + + + +
+ + + {{ i18n.ts.uploadFolder }} + + + + + + + {{ i18n.ts.drivecleaner }} - - - {{ i18n.ts.drivecleaner }} - + + + + + + + + - - - - - + + + - - + - - - - - + + + + + + +
+
+
- - - - - - -
-
+ + + + +
+ + + + + + +
+
+ + + + + + + + + +
+ +
+ + + + + + + + +
+
+
+ + + + + + + + + +
+
+
+ From 95ea62f2228c69e547848e7e803069275eff0992 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?= <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Thu, 5 Jun 2025 22:25:49 +0900 Subject: [PATCH 33/76] =?UTF-8?q?enhance(frontend):=20=E7=94=BB=E5=83=8F?= =?UTF-8?q?=E3=82=A8=E3=83=95=E3=82=A7=E3=82=AF=E3=83=88=E3=81=AE=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E3=81=A7Range=E3=82=92=E3=83=80=E3=83=96=E3=83=AB?= =?UTF-8?q?=E3=82=AF=E3=83=AA=E3=83=83=E3=82=AF=E3=81=97=E3=81=9F=E3=82=89?= =?UTF-8?q?=E3=83=87=E3=83=95=E3=82=A9=E3=83=AB=E3=83=88=E3=81=AE=E5=80=A4?= =?UTF-8?q?=E3=81=AB=E6=88=BB=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=20(#1617?= =?UTF-8?q?1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * enhance(frontend): エフェクトの操作でRangeをダブルクリックしたらデフォルトの値に戻るように * fix: trackの計算方法を修正 * remove unnecessary async --- .../MkImageEffectorDialog.Layer.vue | 68 +++++++++++++++---- packages/frontend/src/components/MkRange.vue | 59 ++++++++++++++-- 2 files changed, 107 insertions(+), 20 deletions(-) diff --git a/packages/frontend/src/components/MkImageEffectorDialog.Layer.vue b/packages/frontend/src/components/MkImageEffectorDialog.Layer.vue index 0312017d86..ff3b9aff9b 100644 --- a/packages/frontend/src/components/MkImageEffectorDialog.Layer.vue +++ b/packages/frontend/src/components/MkImageEffectorDialog.Layer.vue @@ -16,22 +16,54 @@ SPDX-License-Identifier: AGPL-3.0-only
- + - + - +
- +
- +
@@ -40,22 +72,14 @@ SPDX-License-Identifier: AGPL-3.0-only diff --git a/packages/frontend/src/components/MkUploaderItems.vue b/packages/frontend/src/components/MkUploaderItems.vue new file mode 100644 index 0000000000..2d624cf344 --- /dev/null +++ b/packages/frontend/src/components/MkUploaderItems.vue @@ -0,0 +1,196 @@ + + + + + + + diff --git a/packages/frontend/src/composables/use-uploader.ts b/packages/frontend/src/composables/use-uploader.ts new file mode 100644 index 0000000000..3f105dc201 --- /dev/null +++ b/packages/frontend/src/composables/use-uploader.ts @@ -0,0 +1,535 @@ +/* + * SPDX-FileCopyrightText: syuilo and misskey-project + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import * as Misskey from 'misskey-js'; +import { readAndCompressImage } from '@misskey-dev/browser-image-resizer'; +import isAnimated from 'is-file-animated'; +import { EventEmitter } from 'eventemitter3'; +import { computed, markRaw, onMounted, onUnmounted, ref, triggerRef } from 'vue'; +import type { MenuItem } from '@/types/menu.js'; +import { genId } from '@/utility/id.js'; +import { i18n } from '@/i18n.js'; +import { prefer } from '@/preferences.js'; +import { isWebpSupported } from '@/utility/isWebpSupported.js'; +import { uploadFile, UploadAbortedError } from '@/utility/drive.js'; +import * as os from '@/os.js'; +import { ensureSignin } from '@/i.js'; +import { WatermarkRenderer } from '@/utility/watermark.js'; + +export type UploaderFeatures = { + effect?: boolean; + watermark?: boolean; + crop?: boolean; +}; + +const COMPRESSION_SUPPORTED_TYPES = [ + 'image/jpeg', + 'image/png', + 'image/webp', + 'image/svg+xml', +]; + +const CROPPING_SUPPORTED_TYPES = [ + 'image/jpeg', + 'image/png', + 'image/webp', +]; + +const IMAGE_EDITING_SUPPORTED_TYPES = [ + 'image/jpeg', + 'image/png', + 'image/webp', +]; + +const WATERMARK_SUPPORTED_TYPES = IMAGE_EDITING_SUPPORTED_TYPES; + +const mimeTypeMap = { + 'image/webp': 'webp', + 'image/jpeg': 'jpg', + 'image/png': 'png', +} as const; + +export type UploaderItem = { + id: string; + name: string; + uploadName?: string; + progress: { max: number; value: number } | null; + thumbnail: string; + preprocessing: boolean; + uploading: boolean; + uploaded: Misskey.entities.DriveFile | null; + uploadFailed: boolean; + aborted: boolean; + compressionLevel: 0 | 1 | 2 | 3; + compressedSize?: number | null; + preprocessedFile?: Blob | null; + file: File; + watermarkPresetId: string | null; + abort?: (() => void) | null; +}; + +function getCompressionSettings(level: 0 | 1 | 2 | 3) { + if (level === 1) { + return { + maxWidth: 2000, + maxHeight: 2000, + }; + } else if (level === 2) { + return { + maxWidth: 2000 * 0.75, // =1500 + maxHeight: 2000 * 0.75, // =1500 + }; + } else if (level === 3) { + return { + maxWidth: 2000 * 0.75 * 0.75, // =1125 + maxHeight: 2000 * 0.75 * 0.75, // =1125 + }; + } else { + return null; + } +} + +export function useUploader(options: { + folderId?: string | null; + multiple?: boolean; + features?: UploaderFeatures; +} = {}) { + const $i = ensureSignin(); + + const events = new EventEmitter<{ + 'itemUploaded': (ctx: { item: UploaderItem; }) => void; + }>(); + + const uploaderFeatures = computed>(() => { + return { + effect: options.features?.effect ?? true, + watermark: options.features?.watermark ?? true, + crop: options.features?.crop ?? true, + }; + }); + + const items = ref([]); + + function initializeFile(file: File) { + const id = genId(); + const filename = file.name ?? 'untitled'; + const extension = filename.split('.').length > 1 ? '.' + filename.split('.').pop() : ''; + items.value.push({ + id, + name: prefer.s.keepOriginalFilename ? filename : id + extension, + progress: null, + thumbnail: window.URL.createObjectURL(file), + preprocessing: false, + uploading: false, + aborted: false, + uploaded: null, + uploadFailed: false, + compressionLevel: prefer.s.defaultImageCompressionLevel, + watermarkPresetId: uploaderFeatures.value.watermark ? prefer.s.defaultWatermarkPresetId : null, + file: markRaw(file), + }); + const reactiveItem = items.value.at(-1)!; + preprocess(reactiveItem).then(() => { + triggerRef(items); + }); + } + + function addFiles(newFiles: File[]) { + for (const file of newFiles) { + initializeFile(file); + } + } + + function removeItem(item: UploaderItem) { + URL.revokeObjectURL(item.thumbnail); + items.value.splice(items.value.indexOf(item), 1); + } + + function getMenu(item: UploaderItem): MenuItem[] { + const menu: MenuItem[] = []; + + if ( + !item.preprocessing && + !item.uploading && + !item.uploaded + ) { + menu.push({ + icon: 'ti ti-cursor-text', + text: i18n.ts.rename, + action: async () => { + const { result, canceled } = await os.inputText({ + type: 'text', + title: i18n.ts.rename, + placeholder: item.name, + default: item.name, + }); + if (canceled) return; + if (result.trim() === '') return; + + item.name = result; + }, + }); + } + + if ( + uploaderFeatures.value.crop && + CROPPING_SUPPORTED_TYPES.includes(item.file.type) && + !item.preprocessing && + !item.uploading && + !item.uploaded + ) { + menu.push({ + icon: 'ti ti-crop', + text: i18n.ts.cropImage, + action: async () => { + const cropped = await os.cropImageFile(item.file, { aspectRatio: null }); + URL.revokeObjectURL(item.thumbnail); + items.value.splice(items.value.indexOf(item), 1, { + ...item, + file: markRaw(cropped), + thumbnail: window.URL.createObjectURL(cropped), + }); + const reactiveItem = items.value.find(x => x.id === item.id)!; + preprocess(reactiveItem).then(() => { + triggerRef(items); + }); + }, + }); + } + + if ( + uploaderFeatures.value.effect && + IMAGE_EDITING_SUPPORTED_TYPES.includes(item.file.type) && + !item.preprocessing && + !item.uploading && + !item.uploaded + ) { + menu.push({ + icon: 'ti ti-sparkles', + text: i18n.ts._imageEffector.title + ' (BETA)', + action: async () => { + const { dispose } = await os.popupAsyncWithDialog(import('@/components/MkImageEffectorDialog.vue').then(x => x.default), { + image: item.file, + }, { + ok: (file) => { + URL.revokeObjectURL(item.thumbnail); + items.value.splice(items.value.indexOf(item), 1, { + ...item, + file: markRaw(file), + thumbnail: window.URL.createObjectURL(file), + }); + const reactiveItem = items.value.find(x => x.id === item.id)!; + preprocess(reactiveItem).then(() => { + triggerRef(items); + }); + }, + closed: () => dispose(), + }); + }, + }); + } + + if ( + uploaderFeatures.value.watermark && + WATERMARK_SUPPORTED_TYPES.includes(item.file.type) && + !item.preprocessing && + !item.uploading && + !item.uploaded + ) { + function changeWatermarkPreset(presetId: string | null) { + item.watermarkPresetId = presetId; + preprocess(item).then(() => { + triggerRef(items); + }); + } + + menu.push({ + icon: 'ti ti-copyright', + text: i18n.ts.watermark, + caption: computed(() => item.watermarkPresetId == null ? null : prefer.s.watermarkPresets.find(p => p.id === item.watermarkPresetId)?.name), + type: 'parent', + children: [{ + type: 'radioOption', + text: i18n.ts.none, + active: computed(() => item.watermarkPresetId == null), + action: () => changeWatermarkPreset(null), + }, { + type: 'divider', + }, ...prefer.s.watermarkPresets.map(preset => ({ + type: 'radioOption' as const, + text: preset.name, + active: computed(() => item.watermarkPresetId === preset.id), + action: () => changeWatermarkPreset(preset.id), + })), ...(prefer.s.watermarkPresets.length > 0 ? [{ + type: 'divider' as const, + }] : []), { + type: 'button', + icon: 'ti ti-plus', + text: i18n.ts.add, + action: async () => { + const { dispose } = await os.popupAsyncWithDialog(import('@/components/MkWatermarkEditorDialog.vue').then(x => x.default), { + image: item.file, + }, { + ok: (preset) => { + prefer.commit('watermarkPresets', [...prefer.s.watermarkPresets, preset]); + changeWatermarkPreset(preset.id); + }, + closed: () => dispose(), + }); + }, + }], + }); + } + + if ( + COMPRESSION_SUPPORTED_TYPES.includes(item.file.type) && + !item.preprocessing && + !item.uploading && + !item.uploaded + ) { + function changeCompressionLevel(level: 0 | 1 | 2 | 3) { + item.compressionLevel = level; + preprocess(item).then(() => { + triggerRef(items); + }); + } + + menu.push({ + icon: 'ti ti-leaf', + text: computed(() => { + let text = i18n.ts.compress; + + if (item.compressionLevel === 0 || item.compressionLevel == null) { + text += `: ${i18n.ts.none}`; + } else if (item.compressionLevel === 1) { + text += `: ${i18n.ts.low}`; + } else if (item.compressionLevel === 2) { + text += `: ${i18n.ts.medium}`; + } else if (item.compressionLevel === 3) { + text += `: ${i18n.ts.high}`; + } + + return text; + }), + type: 'parent', + children: [{ + type: 'radioOption', + text: i18n.ts.none, + active: computed(() => item.compressionLevel === 0 || item.compressionLevel == null), + action: () => changeCompressionLevel(0), + }, { + type: 'divider', + }, { + type: 'radioOption', + text: i18n.ts.low, + active: computed(() => item.compressionLevel === 1), + action: () => changeCompressionLevel(1), + }, { + type: 'radioOption', + text: i18n.ts.medium, + active: computed(() => item.compressionLevel === 2), + action: () => changeCompressionLevel(2), + }, { + type: 'radioOption', + text: i18n.ts.high, + active: computed(() => item.compressionLevel === 3), + action: () => changeCompressionLevel(3), + }], + }); + } + + if (!item.preprocessing && !item.uploading && !item.uploaded) { + menu.push({ + type: 'divider', + }, { + icon: 'ti ti-upload', + text: i18n.ts.upload, + action: () => { + uploadOne(item); + }, + }, { + icon: 'ti ti-x', + text: i18n.ts.remove, + action: () => { + removeItem(item); + }, + }); + } else if (item.uploading) { + menu.push({ + type: 'divider', + }, { + icon: 'ti ti-cloud-pause', + text: i18n.ts.abort, + danger: true, + action: () => { + if (item.abort != null) { + item.abort(); + } + }, + }); + } + + return menu; + } + + async function uploadOne(item: UploaderItem): Promise { + item.uploadFailed = false; + item.uploading = true; + + const { filePromise, abort } = uploadFile(item.preprocessedFile ?? item.file, { + name: item.uploadName ?? item.name, + folderId: options.folderId, + onProgress: (progress) => { + if (item.progress == null) { + item.progress = { max: progress.total, value: progress.loaded }; + } else { + item.progress.value = progress.loaded; + item.progress.max = progress.total; + } + }, + }); + + item.abort = () => { + item.abort = null; + abort(); + item.uploading = false; + item.uploadFailed = true; + }; + + await filePromise.then((file) => { + item.uploaded = file; + item.abort = null; + events.emit('itemUploaded', { item }); + }).catch(err => { + item.uploadFailed = true; + item.progress = null; + if (!(err instanceof UploadAbortedError)) { + throw err; + } + }).finally(() => { + item.uploading = false; + }); + } + + async function upload() { // エラーハンドリングなどを考慮してシーケンシャルにやる + items.value = items.value.map(item => ({ + ...item, + aborted: false, + uploadFailed: false, + uploading: false, + })); + + for (const item of items.value.filter(item => item.uploaded == null)) { + // アップロード処理途中で値が変わる場合(途中で全キャンセルされたりなど)もあるので、Array filterではなくここでチェック + if (item.aborted) { + continue; + } + + await uploadOne(item); + } + } + + function abortAll() { + for (const item of items.value) { + if (item.uploaded != null) { + continue; + } + + if (item.abort != null) { + item.abort(); + } + item.aborted = true; + item.uploadFailed = true; + } + } + + async function preprocess(item: UploaderItem): Promise { + item.preprocessing = true; + + let file: Blob | File = item.file; + const imageBitmap = await window.createImageBitmap(file); + + const needsWatermark = item.watermarkPresetId != null && WATERMARK_SUPPORTED_TYPES.includes(file.type); + const preset = prefer.s.watermarkPresets.find(p => p.id === item.watermarkPresetId); + if (needsWatermark && preset != null) { + const canvas = window.document.createElement('canvas'); + const renderer = new WatermarkRenderer({ + canvas: canvas, + renderWidth: imageBitmap.width, + renderHeight: imageBitmap.height, + image: imageBitmap, + }); + + await renderer.setLayers(preset.layers); + + renderer.render(); + + file = await new Promise((resolve) => { + canvas.toBlob((blob) => { + if (blob == null) { + throw new Error('Failed to convert canvas to blob'); + } + resolve(blob); + renderer.destroy(); + }, 'image/png'); + }); + } + + const compressionSettings = getCompressionSettings(item.compressionLevel); + const needsCompress = item.compressionLevel !== 0 && compressionSettings && COMPRESSION_SUPPORTED_TYPES.includes(file.type) && !(await isAnimated(file)); + + if (needsCompress) { + const config = { + mimeType: isWebpSupported() ? 'image/webp' : 'image/jpeg', + maxWidth: compressionSettings.maxWidth, + maxHeight: compressionSettings.maxHeight, + quality: isWebpSupported() ? 0.85 : 0.8, + }; + + try { + const result = await readAndCompressImage(file, config); + if (result.size < file.size || file.type === 'image/webp') { + // The compression may not always reduce the file size + // (and WebP is not browser safe yet) + file = result; + item.compressedSize = result.size; + item.uploadName = file.type !== config.mimeType ? `${item.name}.${mimeTypeMap[config.mimeType]}` : item.name; + } + } catch (err) { + console.error('Failed to resize image', err); + } + } else { + item.compressedSize = null; + item.uploadName = item.name; + } + + URL.revokeObjectURL(item.thumbnail); + item.thumbnail = window.URL.createObjectURL(file); + item.preprocessedFile = markRaw(file); + item.preprocessing = false; + + imageBitmap.close(); + } + + onUnmounted(() => { + for (const item of items.value) { + URL.revokeObjectURL(item.thumbnail); + } + }); + + return { + items, + addFiles, + removeItem, + abortAll, + upload, + getMenu, + uploading: computed(() => items.value.some(item => item.uploading)), + readyForUpload: computed(() => items.value.length > 0 && items.value.some(item => item.uploaded == null) && !items.value.some(item => item.uploading || item.preprocessing)), + allItemsUploaded: computed(() => items.value.every(item => item.uploaded != null)), + events, + }; +} + diff --git a/packages/frontend/src/tips.ts b/packages/frontend/src/tips.ts index a6850d0406..7218f4c19a 100644 --- a/packages/frontend/src/tips.ts +++ b/packages/frontend/src/tips.ts @@ -8,6 +8,7 @@ import { store } from '@/store.js'; export const TIPS = [ 'drive', 'uploader', + 'postFormUploader', 'clips', 'userLists', 'tl.home', From 6506429f09d586f96c75b8bd7d9dccf44ddef5ba Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sat, 7 Jun 2025 07:57:23 +0900 Subject: [PATCH 39/76] =?UTF-8?q?enhance(frontend):=20=E3=82=A2=E3=83=83?= =?UTF-8?q?=E3=83=97=E3=83=AD=E3=83=BC=E3=83=80=E3=83=BC=E5=86=85=E3=81=A7?= =?UTF-8?q?=E3=82=BB=E3=83=B3=E3=82=B7=E3=83=86=E3=82=A3=E3=83=96=E3=83=95?= =?UTF-8?q?=E3=83=A9=E3=82=B0=E3=82=92=E8=A8=AD=E5=AE=9A=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/composables/use-uploader.ts | 11 +++++++++++ packages/frontend/src/utility/drive.ts | 8 +++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/frontend/src/composables/use-uploader.ts b/packages/frontend/src/composables/use-uploader.ts index 3f105dc201..0dbc3052df 100644 --- a/packages/frontend/src/composables/use-uploader.ts +++ b/packages/frontend/src/composables/use-uploader.ts @@ -67,6 +67,7 @@ export type UploaderItem = { preprocessedFile?: Blob | null; file: File; watermarkPresetId: string | null; + isSensitive?: boolean; abort?: (() => void) | null; }; @@ -170,6 +171,15 @@ export function useUploader(options: { item.name = result; }, + }, { + type: 'switch', + text: i18n.ts.sensitive, + ref: computed({ + get: () => item.isSensitive ?? false, + set: (value) => item.isSensitive = value, + }), + }, { + type: 'divider', }); } @@ -381,6 +391,7 @@ export function useUploader(options: { const { filePromise, abort } = uploadFile(item.preprocessedFile ?? item.file, { name: item.uploadName ?? item.name, folderId: options.folderId, + isSensitive: item.isSensitive ?? false, onProgress: (progress) => { if (item.progress == null) { item.progress = { max: progress.total, value: progress.loaded }; diff --git a/packages/frontend/src/utility/drive.ts b/packages/frontend/src/utility/drive.ts index bc1813f48c..1912b3f805 100644 --- a/packages/frontend/src/utility/drive.ts +++ b/packages/frontend/src/utility/drive.ts @@ -6,6 +6,7 @@ import { defineAsyncComponent } from 'vue'; import * as Misskey from 'misskey-js'; import { apiUrl } from '@@/js/config.js'; +import type { UploaderFeatures } from '@/composables/use-uploader.js'; import * as os from '@/os.js'; import { misskeyApi } from '@/utility/misskey-api.js'; import { useStream } from '@/stream.js'; @@ -16,7 +17,6 @@ import { instance } from '@/instance.js'; import { globalEvents } from '@/events.js'; import { getProxiedImageUrl } from '@/utility/media-proxy.js'; import { genId } from '@/utility/id.js'; -import type { UploaderDialogFeatures } from '@/components/MkUploaderDialog.vue'; type UploadReturnType = { filePromise: Promise; @@ -32,6 +32,7 @@ export class UploadAbortedError extends Error { export function uploadFile(file: File | Blob, options: { name?: string; folderId?: string | null; + isSensitive?: boolean; onProgress?: (ctx: { total: number; loaded: number; }) => void; } = {}): UploadReturnType { const xhr = new XMLHttpRequest(); @@ -140,6 +141,7 @@ export function uploadFile(file: File | Blob, options: { formData.append('force', 'true'); formData.append('file', file); formData.append('name', options.name ?? (file instanceof File ? file.name : 'untitled')); + formData.append('isSensitive', options.isSensitive ? 'true' : 'false'); if (options.folderId) formData.append('folderId', options.folderId); xhr.send(formData); @@ -156,7 +158,7 @@ export function uploadFile(file: File | Blob, options: { export function chooseFileFromPcAndUpload( options: { multiple?: boolean; - features?: UploaderDialogFeatures; + features?: UploaderFeatures; folderId?: string | null; } = {}, ): Promise { @@ -254,7 +256,7 @@ type SelectFileOptions = { export async function selectFile< M extends boolean, - MR extends M extends true ? Misskey.entities.DriveFile[] : Misskey.entities.DriveFile + MR extends M extends true ? Misskey.entities.DriveFile[] : Misskey.entities.DriveFile, >(opts: SelectFileOptions): Promise { const files = await select(opts.anchorElement, opts.label ?? null, opts.multiple ?? false, opts.features); return opts.multiple ? (files as MR) : (files[0]! as MR); From 4906f1f45c4724526d113af46fb9b35ba1376b15 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sat, 7 Jun 2025 08:07:23 +0900 Subject: [PATCH 40/76] =?UTF-8?q?=F0=9F=8E=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/components/MkPostForm.vue | 1 + packages/frontend/src/composables/use-uploader.ts | 1 + packages/frontend/src/pages/timeline.vue | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue index 46893a0752..e319c9bacb 100644 --- a/packages/frontend/src/components/MkPostForm.vue +++ b/packages/frontend/src/components/MkPostForm.vue @@ -593,6 +593,7 @@ function showOtherSettings() { }, }, { type: 'divider' }, { type: 'switch', + icon: 'ti ti-eye', text: i18n.ts.preview, ref: showPreview, }, { diff --git a/packages/frontend/src/composables/use-uploader.ts b/packages/frontend/src/composables/use-uploader.ts index 0dbc3052df..ab6db4568e 100644 --- a/packages/frontend/src/composables/use-uploader.ts +++ b/packages/frontend/src/composables/use-uploader.ts @@ -174,6 +174,7 @@ export function useUploader(options: { }, { type: 'switch', text: i18n.ts.sensitive, + icon: 'ti ti-eye-exclamation', ref: computed({ get: () => item.isSensitive ?? false, set: (value) => item.isSensitive = value, diff --git a/packages/frontend/src/pages/timeline.vue b/packages/frontend/src/pages/timeline.vue index 5696d1dd89..b783f7ee0b 100644 --- a/packages/frontend/src/pages/timeline.vue +++ b/packages/frontend/src/pages/timeline.vue @@ -226,6 +226,7 @@ const headerActions = computed(() => { menuItems.push({ type: 'switch', + icon: 'ti ti-repeat', text: i18n.ts.showRenotes, ref: withRenotes, }); @@ -233,6 +234,7 @@ const headerActions = computed(() => { if (isBasicTimeline(src.value) && hasWithReplies(src.value)) { menuItems.push({ type: 'switch', + icon: 'ti ti-messages', text: i18n.ts.showRepliesToOthersInTimeline, ref: withReplies, disabled: onlyFiles, @@ -241,10 +243,12 @@ const headerActions = computed(() => { menuItems.push({ type: 'switch', + icon: 'ti ti-eye-exclamation', text: i18n.ts.withSensitive, ref: withSensitive, }, { type: 'switch', + icon: 'ti ti-photo', text: i18n.ts.fileAttachedOnly, ref: onlyFiles, disabled: isBasicTimeline(src.value) && hasWithReplies(src.value) ? withReplies : false, From 1c3604c7fb67f5f896516e70bdfa72bbd1704234 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sat, 7 Jun 2025 08:15:31 +0900 Subject: [PATCH 41/76] =?UTF-8?q?=F0=9F=8E=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/composables/use-uploader.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/frontend/src/composables/use-uploader.ts b/packages/frontend/src/composables/use-uploader.ts index ab6db4568e..55bb53ad66 100644 --- a/packages/frontend/src/composables/use-uploader.ts +++ b/packages/frontend/src/composables/use-uploader.ts @@ -157,7 +157,7 @@ export function useUploader(options: { !item.uploaded ) { menu.push({ - icon: 'ti ti-cursor-text', + icon: 'ti ti-forms', text: i18n.ts.rename, action: async () => { const { result, canceled } = await os.inputText({ @@ -363,6 +363,7 @@ export function useUploader(options: { }, { icon: 'ti ti-x', text: i18n.ts.remove, + danger: true, action: () => { removeItem(item); }, From a5429ebeeed72160e0f2727f51a9c07f00f197d3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 6 Jun 2025 23:36:20 +0000 Subject: [PATCH 42/76] Bump version to 2025.6.1-alpha.3 --- package.json | 2 +- packages/misskey-js/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 52457ddf24..db15da253b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2025.6.1-alpha.2", + "version": "2025.6.1-alpha.3", "codename": "nasubi", "repository": { "type": "git", diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json index 6a4eaed53b..69ba672e0d 100644 --- a/packages/misskey-js/package.json +++ b/packages/misskey-js/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "misskey-js", - "version": "2025.6.1-alpha.2", + "version": "2025.6.1-alpha.3", "description": "Misskey SDK for JavaScript", "license": "MIT", "main": "./built/index.js", From dda2ad6bcd27d05d3e24508567ea159e59c2f980 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sat, 7 Jun 2025 09:26:49 +0900 Subject: [PATCH 43/76] fix(frontend): support non-image files --- .../frontend/src/composables/use-uploader.ts | 76 +++++++++++++------ 1 file changed, 52 insertions(+), 24 deletions(-) diff --git a/packages/frontend/src/composables/use-uploader.ts b/packages/frontend/src/composables/use-uploader.ts index 55bb53ad66..aadbc9eb41 100644 --- a/packages/frontend/src/composables/use-uploader.ts +++ b/packages/frontend/src/composables/use-uploader.ts @@ -24,7 +24,14 @@ export type UploaderFeatures = { crop?: boolean; }; -const COMPRESSION_SUPPORTED_TYPES = [ +const THUMBNAIL_SUPPORTED_TYPES = [ + 'image/jpeg', + 'image/png', + 'image/webp', + 'image/svg+xml', +]; + +const IMAGE_COMPRESSION_SUPPORTED_TYPES = [ 'image/jpeg', 'image/png', 'image/webp', @@ -45,6 +52,13 @@ const IMAGE_EDITING_SUPPORTED_TYPES = [ const WATERMARK_SUPPORTED_TYPES = IMAGE_EDITING_SUPPORTED_TYPES; +const IMAGE_PREPROCESS_NEEDED_TYPES = [ + ...WATERMARK_SUPPORTED_TYPES, + ...IMAGE_COMPRESSION_SUPPORTED_TYPES, + ...CROPPING_SUPPORTED_TYPES, + ...IMAGE_EDITING_SUPPORTED_TYPES, +]; + const mimeTypeMap = { 'image/webp': 'webp', 'image/jpeg': 'jpg', @@ -56,7 +70,7 @@ export type UploaderItem = { name: string; uploadName?: string; progress: { max: number; value: number } | null; - thumbnail: string; + thumbnail: string | null; preprocessing: boolean; uploading: boolean; uploaded: Misskey.entities.DriveFile | null; @@ -121,7 +135,7 @@ export function useUploader(options: { id, name: prefer.s.keepOriginalFilename ? filename : id + extension, progress: null, - thumbnail: window.URL.createObjectURL(file), + thumbnail: THUMBNAIL_SUPPORTED_TYPES.includes(file.type) ? window.URL.createObjectURL(file) : null, preprocessing: false, uploading: false, aborted: false, @@ -144,7 +158,7 @@ export function useUploader(options: { } function removeItem(item: UploaderItem) { - URL.revokeObjectURL(item.thumbnail); + if (item.thumbnail != null) URL.revokeObjectURL(item.thumbnail); items.value.splice(items.value.indexOf(item), 1); } @@ -196,7 +210,7 @@ export function useUploader(options: { text: i18n.ts.cropImage, action: async () => { const cropped = await os.cropImageFile(item.file, { aspectRatio: null }); - URL.revokeObjectURL(item.thumbnail); + if (item.thumbnail != null) URL.revokeObjectURL(item.thumbnail); items.value.splice(items.value.indexOf(item), 1, { ...item, file: markRaw(cropped), @@ -225,7 +239,7 @@ export function useUploader(options: { image: item.file, }, { ok: (file) => { - URL.revokeObjectURL(item.thumbnail); + if (item.thumbnail != null) URL.revokeObjectURL(item.thumbnail); items.value.splice(items.value.indexOf(item), 1, { ...item, file: markRaw(file), @@ -295,7 +309,7 @@ export function useUploader(options: { } if ( - COMPRESSION_SUPPORTED_TYPES.includes(item.file.type) && + IMAGE_COMPRESSION_SUPPORTED_TYPES.includes(item.file.type) && !item.preprocessing && !item.uploading && !item.uploaded @@ -461,10 +475,25 @@ export function useUploader(options: { async function preprocess(item: UploaderItem): Promise { item.preprocessing = true; - let file: Blob | File = item.file; - const imageBitmap = await window.createImageBitmap(file); + try { + if (IMAGE_PREPROCESS_NEEDED_TYPES.includes(item.file.type)) { + await preprocessForImage(item); + } + } catch (err) { + console.error('Failed to preprocess image', err); - const needsWatermark = item.watermarkPresetId != null && WATERMARK_SUPPORTED_TYPES.includes(file.type); + // nop + } + + item.preprocessing = false; + } + + async function preprocessForImage(item: UploaderItem): Promise { + const imageBitmap = await window.createImageBitmap(item.file); + + let preprocessedFile: Blob | File = item.file; + + const needsWatermark = item.watermarkPresetId != null && WATERMARK_SUPPORTED_TYPES.includes(preprocessedFile.type); const preset = prefer.s.watermarkPresets.find(p => p.id === item.watermarkPresetId); if (needsWatermark && preset != null) { const canvas = window.document.createElement('canvas'); @@ -479,7 +508,7 @@ export function useUploader(options: { renderer.render(); - file = await new Promise((resolve) => { + preprocessedFile = await new Promise((resolve) => { canvas.toBlob((blob) => { if (blob == null) { throw new Error('Failed to convert canvas to blob'); @@ -491,7 +520,7 @@ export function useUploader(options: { } const compressionSettings = getCompressionSettings(item.compressionLevel); - const needsCompress = item.compressionLevel !== 0 && compressionSettings && COMPRESSION_SUPPORTED_TYPES.includes(file.type) && !(await isAnimated(file)); + const needsCompress = item.compressionLevel !== 0 && compressionSettings && IMAGE_COMPRESSION_SUPPORTED_TYPES.includes(preprocessedFile.type) && !(await isAnimated(preprocessedFile)); if (needsCompress) { const config = { @@ -502,13 +531,13 @@ export function useUploader(options: { }; try { - const result = await readAndCompressImage(file, config); - if (result.size < file.size || file.type === 'image/webp') { - // The compression may not always reduce the file size - // (and WebP is not browser safe yet) - file = result; + const result = await readAndCompressImage(preprocessedFile, config); + if (result.size < preprocessedFile.size || preprocessedFile.type === 'image/webp') { + // The compression may not always reduce the file size + // (and WebP is not browser safe yet) + preprocessedFile = result; item.compressedSize = result.size; - item.uploadName = file.type !== config.mimeType ? `${item.name}.${mimeTypeMap[config.mimeType]}` : item.name; + item.uploadName = preprocessedFile.type !== config.mimeType ? `${item.name}.${mimeTypeMap[config.mimeType]}` : item.name; } } catch (err) { console.error('Failed to resize image', err); @@ -518,17 +547,16 @@ export function useUploader(options: { item.uploadName = item.name; } - URL.revokeObjectURL(item.thumbnail); - item.thumbnail = window.URL.createObjectURL(file); - item.preprocessedFile = markRaw(file); - item.preprocessing = false; - imageBitmap.close(); + + if (item.thumbnail != null) URL.revokeObjectURL(item.thumbnail); + item.thumbnail = THUMBNAIL_SUPPORTED_TYPES.includes(preprocessedFile.type) ? window.URL.createObjectURL(preprocessedFile) : null; + item.preprocessedFile = markRaw(preprocessedFile); } onUnmounted(() => { for (const item of items.value) { - URL.revokeObjectURL(item.thumbnail); + if (item.thumbnail != null) URL.revokeObjectURL(item.thumbnail); } }); From e2b38edb3a4dc3c04166641aa6d40c057c2ad14e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?= <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Sat, 7 Jun 2025 19:36:00 +0900 Subject: [PATCH 44/76] deps(misskey-js): Update openapi-typescript to v7 (#15491) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps(misskey-js): Update openapi-typescript to v7 * update openapi-typescript to v7.7.3 * generate misskey-js types * bump openapi-typescript * enhance: 生成物からnever型を除去するように * regenerate api types * refactor: 処理共通化 --------- Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com> --- packages/misskey-js/etc/misskey-js.api.md | 5 +- packages/misskey-js/generator/package.json | 2 +- .../generator/src/ast-transformer.ts | 130 + .../misskey-js/generator/src/generator.ts | 31 +- packages/misskey-js/src/api.ts | 2 +- packages/misskey-js/src/autogen/types.ts | 65799 +++++++++------- packages/misskey-js/src/entities.ts | 6 +- pnpm-lock.yaml | 294 +- 8 files changed, 35665 insertions(+), 30604 deletions(-) create mode 100644 packages/misskey-js/generator/src/ast-transformer.ts diff --git a/packages/misskey-js/etc/misskey-js.api.md b/packages/misskey-js/etc/misskey-js.api.md index 7578275b03..a6bfe825b5 100644 --- a/packages/misskey-js/etc/misskey-js.api.md +++ b/packages/misskey-js/etc/misskey-js.api.md @@ -3212,10 +3212,11 @@ type PinnedUsersResponse = operations['pinned-users']['responses']['200']['conte type PromoReadRequest = operations['promo___read']['requestBody']['content']['application/json']; // Warning: (ae-forgotten-export) The symbol "AllNullRecord" needs to be exported by the entry point index.d.ts +// Warning: (ae-forgotten-export) The symbol "AllNullOrOptionalRecord" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "NonNullableRecord" needs to be exported by the entry point index.d.ts // // @public (undocumented) -type PureRenote = Omit & AllNullRecord> & { +type PureRenote = Omit & AllNullRecord> & AllNullOrOptionalRecord> & { files: []; fileIds: []; } & NonNullableRecord>; @@ -3748,7 +3749,7 @@ type V2AdminEmojiListResponse = operations['v2___admin___emoji___list']['respons // Warnings were encountered during analysis: // -// src/entities.ts:50:2 - (ae-forgotten-export) The symbol "ModerationLogPayloads" needs to be exported by the entry point index.d.ts +// src/entities.ts:54:2 - (ae-forgotten-export) The symbol "ModerationLogPayloads" needs to be exported by the entry point index.d.ts // src/streaming.ts:57:3 - (ae-forgotten-export) The symbol "ReconnectingWebSocket" needs to be exported by the entry point index.d.ts // src/streaming.types.ts:218:4 - (ae-forgotten-export) The symbol "ReversiUpdateKey" needs to be exported by the entry point index.d.ts // src/streaming.types.ts:228:4 - (ae-forgotten-export) The symbol "ReversiUpdateSettings" needs to be exported by the entry point index.d.ts diff --git a/packages/misskey-js/generator/package.json b/packages/misskey-js/generator/package.json index 2f2a8e5029..5b4014c968 100644 --- a/packages/misskey-js/generator/package.json +++ b/packages/misskey-js/generator/package.json @@ -12,7 +12,7 @@ "@typescript-eslint/eslint-plugin": "8.32.1", "@typescript-eslint/parser": "8.32.1", "openapi-types": "12.1.3", - "openapi-typescript": "6.7.6", + "openapi-typescript": "7.8.0", "ts-case-convert": "2.1.0", "tsx": "4.19.4", "typescript": "5.8.3" diff --git a/packages/misskey-js/generator/src/ast-transformer.ts b/packages/misskey-js/generator/src/ast-transformer.ts new file mode 100644 index 0000000000..e9f910a51c --- /dev/null +++ b/packages/misskey-js/generator/src/ast-transformer.ts @@ -0,0 +1,130 @@ +import * as ts from 'typescript'; + +/** + * TypeScript AST ノードから 'never' 型のプロパティを削除します。 + * この関数は、特に 'paths' という名前の TypeAliasDeclaration 内や + * 'operations' という名前の InterfaceDeclaration 内を再帰的に探索し、 + * そこに含まれるすべての TypeLiteralNode/Interfaceから 'PropertySignature' で型が 'never' であるものを削除します。 + * さらに、すべてのプロパティが 'never' で除去された場合は、そのオブジェクト自体も削除します。 + * + * @param astNodes 処理対象の ts.Node 配列 (例: `openapi-typescript` から出力されたもの)。 + * @returns 'never' 型プロパティが削除された新しい ts.Node 配列。 + */ +export function removeNeverPropertiesFromAST(astNodes: readonly ts.Node[]): ts.Node[] { + const factory = ts.factory; + + /** + * TypeLiteralNodeやInterfaceDeclarationのmembersからneverプロパティを除去し、必要なら型も再帰的に処理する共通関数 + */ + function removeNeverPropertiesFromMembers( + members: readonly ts.TypeElement[], + visitType: (node: ts.Node) => ts.Node | undefined, + ): { newMembers: ts.TypeElement[]; hasChanged: boolean } { + const newMembers: ts.TypeElement[] = []; + let hasChanged = false; + + for (const member of members) { + if (ts.isPropertySignature(member)) { + if (member.type && member.type.kind === ts.SyntaxKind.NeverKeyword) { + hasChanged = true; + continue; + } + let updatedPropertySignature = member; + if (member.type) { + const visitedMemberType = ts.visitNode(member.type, visitType); + if (visitedMemberType && visitedMemberType !== member.type) { + updatedPropertySignature = factory.updatePropertySignature( + member, + member.modifiers, + member.name, + member.questionToken, + visitedMemberType as ts.TypeNode, + ); + hasChanged = true; + } else if (visitedMemberType === undefined) { + // 子の型が消された場合、このプロパティも消す + hasChanged = true; + continue; + } + } + newMembers.push(updatedPropertySignature); + } else { + newMembers.push(member); + } + } + return { newMembers, hasChanged }; + } + + function typeNodeRecursiveVisitor(node: ts.Node): ts.Node | undefined { + if (ts.isTypeLiteralNode(node)) { + const { newMembers, hasChanged } = removeNeverPropertiesFromMembers(node.members, typeNodeRecursiveVisitor); + + if (newMembers.length === 0) { + // すべてのプロパティがneverで消された場合、このTypeLiteralNode自体も消す + return undefined; + } + + if (hasChanged) { + return factory.updateTypeLiteralNode(node, factory.createNodeArray(newMembers)); + } + return node; + } + + return ts.visitEachChild(node, typeNodeRecursiveVisitor, undefined); + } + + function interfaceRecursiveVisitor(node: ts.Node): ts.Node | undefined { + if (ts.isInterfaceDeclaration(node)) { + const { newMembers, hasChanged } = removeNeverPropertiesFromMembers(node.members, typeNodeRecursiveVisitor); + + if (newMembers.length === 0) { + return undefined; + } + + if (hasChanged) { + return factory.updateInterfaceDeclaration( + node, + node.modifiers, + node.name, + node.typeParameters, + node.heritageClauses, + newMembers, + ); + } + return node; + } + return ts.visitEachChild(node, interfaceRecursiveVisitor, undefined); + } + + function topLevelVisitor(node: ts.Node): ts.Node | undefined { + if (ts.isTypeAliasDeclaration(node) && node.name.escapedText === 'paths') { + const newType = ts.visitNode(node.type, typeNodeRecursiveVisitor); + if (newType && newType !== node.type) { + return factory.updateTypeAliasDeclaration( + node, + node.modifiers, + node.name, + node.typeParameters, + newType as ts.TypeNode, + ); + } else if (newType === undefined) { + return undefined; + } + } + if (ts.isInterfaceDeclaration(node) && node.name.escapedText === 'operations') { + const result = interfaceRecursiveVisitor(node); + return result; + } + return ts.visitEachChild(node, topLevelVisitor, undefined); + } + + const transformedNodes: ts.Node[] = []; + for (const astNode of astNodes) { + const resultNode = ts.visitNode(astNode, topLevelVisitor); + if (resultNode) { + transformedNodes.push(resultNode); + } + } + + return transformedNodes; +} diff --git a/packages/misskey-js/generator/src/generator.ts b/packages/misskey-js/generator/src/generator.ts index 889051f3e8..a95fc962a8 100644 --- a/packages/misskey-js/generator/src/generator.ts +++ b/packages/misskey-js/generator/src/generator.ts @@ -1,9 +1,12 @@ import assert from 'assert'; import { mkdir, readFile, writeFile } from 'fs/promises'; -import { OpenAPIV3_1 } from 'openapi-types'; +import type { OpenAPIV3_1 } from 'openapi-types'; import { toPascal } from 'ts-case-convert'; import OpenAPIParser from '@readme/openapi-parser'; -import openapiTS, { OpenAPI3, OperationObject, PathItemObject } from 'openapi-typescript'; +import openapiTS, { astToString } from 'openapi-typescript'; +import type { OpenAPI3, OperationObject, PathItemObject } from 'openapi-typescript'; +import ts from 'typescript'; +import { removeNeverPropertiesFromAST } from './ast-transformer.js'; async function generateBaseTypes( openApiDocs: OpenAPIV3_1.Document, @@ -28,13 +31,6 @@ async function generateBaseTypes( assert('post' in item); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion openApi.paths![key] = { - ...('get' in item ? { - get: { - ...item.get, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - operationId: ((item as PathItemObject).get as OperationObject).operationId!.replaceAll('get___', ''), - }, - } : {}), post: { ...item.post, // eslint-disable-next-line @typescript-eslint/no-non-null-assertion @@ -43,15 +39,26 @@ async function generateBaseTypes( }; } - const generatedTypes = await openapiTS(openApi, { + const tsNullNode = ts.factory.createLiteralTypeNode(ts.factory.createNull()); + const tsBlobNode = ts.factory.createTypeReferenceNode(ts.factory.createIdentifier('Blob')); + + const generatedTypesAst = await openapiTS(openApi, { exportType: true, transform(schemaObject) { if ('format' in schemaObject && schemaObject.format === 'binary') { - return schemaObject.nullable ? 'Blob | null' : 'Blob'; + if (schemaObject.nullable) { + return ts.factory.createUnionTypeNode([tsBlobNode, tsNullNode]); + } else { + return tsBlobNode; + } } }, }); - lines.push(generatedTypes); + + const filteredAst = removeNeverPropertiesFromAST(generatedTypesAst); + + lines.push(astToString(filteredAst)); + lines.push(''); await writeFile(typeFileName, lines.join('\n')); diff --git a/packages/misskey-js/src/api.ts b/packages/misskey-js/src/api.ts index e663d712a7..437518f60b 100644 --- a/packages/misskey-js/src/api.ts +++ b/packages/misskey-js/src/api.ts @@ -77,7 +77,7 @@ export class APIClient { if (mediaType === 'application/json') { payload = JSON.stringify({ - ...params, + ...(this.assertIsRecord(params) ? params : {}), i: credential !== undefined ? credential : this.credential, }); } else if (mediaType === 'multipart/form-data') { diff --git a/packages/misskey-js/src/autogen/types.ts b/packages/misskey-js/src/autogen/types.ts index 8ded08a666..a4578bba94 100644 --- a/packages/misskey-js/src/autogen/types.ts +++ b/packages/misskey-js/src/autogen/types.ts @@ -1,6434 +1,4211 @@ /* eslint @typescript-eslint/naming-convention: 0 */ /* eslint @typescript-eslint/no-explicit-any: 0 */ -/** - * This file was auto-generated by openapi-typescript. - * Do not make direct changes to the file. - */ - -/** OneOf type helpers */ -type Without = { [P in Exclude]?: never }; -type XOR = (T | U) extends object ? (Without & U) | (Without & T) : T | U; -type OneOf = T extends [infer Only] ? Only : T extends [infer A, infer B, ...infer Rest] ? OneOf<[XOR, ...Rest]> : never; - export type paths = { - '/admin/abuse-report/notification-recipient/create': { - /** - * admin/abuse-report/notification-recipient/create - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient* - */ - post: operations['admin___abuse-report___notification-recipient___create']; - }; - '/admin/abuse-report/notification-recipient/delete': { - /** - * admin/abuse-report/notification-recipient/delete - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient* - */ - post: operations['admin___abuse-report___notification-recipient___delete']; - }; - '/admin/abuse-report/notification-recipient/list': { - /** - * admin/abuse-report/notification-recipient/list - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *read:admin:abuse-report:notification-recipient* - */ - post: operations['admin___abuse-report___notification-recipient___list']; - }; - '/admin/abuse-report/notification-recipient/show': { - /** - * admin/abuse-report/notification-recipient/show - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *read:admin:abuse-report:notification-recipient* - */ - post: operations['admin___abuse-report___notification-recipient___show']; - }; - '/admin/abuse-report/notification-recipient/update': { - /** - * admin/abuse-report/notification-recipient/update - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient* - */ - post: operations['admin___abuse-report___notification-recipient___update']; - }; - '/admin/abuse-user-reports': { - /** - * admin/abuse-user-reports - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:abuse-user-reports* - */ - post: operations['admin___abuse-user-reports']; - }; - '/admin/accounts/create': { - /** - * admin/accounts/create - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['admin___accounts___create']; - }; - '/admin/accounts/delete': { - /** - * admin/accounts/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:account* - */ - post: operations['admin___accounts___delete']; - }; - '/admin/accounts/find-by-email': { - /** - * admin/accounts/find-by-email - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:account* - */ - post: operations['admin___accounts___find-by-email']; - }; - '/admin/ad/create': { - /** - * admin/ad/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:ad* - */ - post: operations['admin___ad___create']; - }; - '/admin/ad/delete': { - /** - * admin/ad/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:ad* - */ - post: operations['admin___ad___delete']; - }; - '/admin/ad/list': { - /** - * admin/ad/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:ad* - */ - post: operations['admin___ad___list']; - }; - '/admin/ad/update': { - /** - * admin/ad/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:ad* - */ - post: operations['admin___ad___update']; - }; - '/admin/announcements/create': { - /** - * admin/announcements/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:announcements* - */ - post: operations['admin___announcements___create']; - }; - '/admin/announcements/delete': { - /** - * admin/announcements/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:announcements* - */ - post: operations['admin___announcements___delete']; - }; - '/admin/announcements/list': { - /** - * admin/announcements/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:announcements* - */ - post: operations['admin___announcements___list']; - }; - '/admin/announcements/update': { - /** - * admin/announcements/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:announcements* - */ - post: operations['admin___announcements___update']; - }; - '/admin/avatar-decorations/create': { - /** - * admin/avatar-decorations/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:avatar-decorations* - */ - post: operations['admin___avatar-decorations___create']; - }; - '/admin/avatar-decorations/delete': { - /** - * admin/avatar-decorations/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:avatar-decorations* - */ - post: operations['admin___avatar-decorations___delete']; - }; - '/admin/avatar-decorations/list': { - /** - * admin/avatar-decorations/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:avatar-decorations* - */ - post: operations['admin___avatar-decorations___list']; - }; - '/admin/avatar-decorations/update': { - /** - * admin/avatar-decorations/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:avatar-decorations* - */ - post: operations['admin___avatar-decorations___update']; - }; - '/admin/captcha/current': { - /** - * admin/captcha/current - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:meta* - */ - post: operations['admin___captcha___current']; - }; - '/admin/captcha/save': { - /** - * admin/captcha/save - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:meta* - */ - post: operations['admin___captcha___save']; - }; - '/admin/delete-account': { - /** - * admin/delete-account - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:delete-account* - */ - post: operations['admin___delete-account']; - }; - '/admin/delete-all-files-of-a-user': { - /** - * admin/delete-all-files-of-a-user - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:delete-all-files-of-a-user* - */ - post: operations['admin___delete-all-files-of-a-user']; - }; - '/admin/drive/clean-remote-files': { - /** - * admin/drive/clean-remote-files - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:drive* - */ - post: operations['admin___drive___clean-remote-files']; - }; - '/admin/drive/cleanup': { - /** - * admin/drive/cleanup - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:drive* - */ - post: operations['admin___drive___cleanup']; - }; - '/admin/drive/files': { - /** - * admin/drive/files - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:drive* - */ - post: operations['admin___drive___files']; - }; - '/admin/drive/show-file': { - /** - * admin/drive/show-file - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:drive* - */ - post: operations['admin___drive___show-file']; - }; - '/admin/emoji/add': { - /** - * admin/emoji/add - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - post: operations['admin___emoji___add']; - }; - '/admin/emoji/add-aliases-bulk': { - /** - * admin/emoji/add-aliases-bulk - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - post: operations['admin___emoji___add-aliases-bulk']; - }; - '/admin/emoji/copy': { - /** - * admin/emoji/copy - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - post: operations['admin___emoji___copy']; - }; - '/admin/emoji/delete': { - /** - * admin/emoji/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - post: operations['admin___emoji___delete']; - }; - '/admin/emoji/delete-bulk': { - /** - * admin/emoji/delete-bulk - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - post: operations['admin___emoji___delete-bulk']; - }; - '/admin/emoji/import-zip': { - /** - * admin/emoji/import-zip - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['admin___emoji___import-zip']; - }; - '/admin/emoji/list': { - /** - * admin/emoji/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:emoji* - */ - post: operations['admin___emoji___list']; - }; - '/admin/emoji/list-remote': { - /** - * admin/emoji/list-remote - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:emoji* - */ - post: operations['admin___emoji___list-remote']; - }; - '/admin/emoji/remove-aliases-bulk': { - /** - * admin/emoji/remove-aliases-bulk - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - post: operations['admin___emoji___remove-aliases-bulk']; - }; - '/admin/emoji/set-aliases-bulk': { - /** - * admin/emoji/set-aliases-bulk - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - post: operations['admin___emoji___set-aliases-bulk']; - }; - '/admin/emoji/set-category-bulk': { - /** - * admin/emoji/set-category-bulk - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - post: operations['admin___emoji___set-category-bulk']; - }; - '/admin/emoji/set-license-bulk': { - /** - * admin/emoji/set-license-bulk - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - post: operations['admin___emoji___set-license-bulk']; - }; - '/admin/emoji/update': { - /** - * admin/emoji/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - post: operations['admin___emoji___update']; - }; - '/admin/federation/delete-all-files': { - /** - * admin/federation/delete-all-files - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:federation* - */ - post: operations['admin___federation___delete-all-files']; - }; - '/admin/federation/refresh-remote-instance-metadata': { - /** - * admin/federation/refresh-remote-instance-metadata - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:federation* - */ - post: operations['admin___federation___refresh-remote-instance-metadata']; - }; - '/admin/federation/remove-all-following': { - /** - * admin/federation/remove-all-following - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:federation* - */ - post: operations['admin___federation___remove-all-following']; - }; - '/admin/federation/update-instance': { - /** - * admin/federation/update-instance - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:federation* - */ - post: operations['admin___federation___update-instance']; - }; - '/admin/forward-abuse-user-report': { - /** - * admin/forward-abuse-user-report - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:resolve-abuse-user-report* - */ - post: operations['admin___forward-abuse-user-report']; - }; - '/admin/get-index-stats': { - /** - * admin/get-index-stats - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:index-stats* - */ - post: operations['admin___get-index-stats']; - }; - '/admin/get-table-stats': { - /** - * admin/get-table-stats - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:table-stats* - */ - post: operations['admin___get-table-stats']; - }; - '/admin/get-user-ips': { - /** - * admin/get-user-ips - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:user-ips* - */ - post: operations['admin___get-user-ips']; - }; - '/admin/invite/create': { - /** - * admin/invite/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:invite-codes* - */ - post: operations['admin___invite___create']; - }; - '/admin/invite/list': { - /** - * admin/invite/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:invite-codes* - */ - post: operations['admin___invite___list']; - }; - '/admin/meta': { - /** - * admin/meta - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:meta* - */ - post: operations['admin___meta']; - }; - '/admin/promo/create': { - /** - * admin/promo/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:promo* - */ - post: operations['admin___promo___create']; - }; - '/admin/queue/clear': { - /** - * admin/queue/clear - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:queue* - */ - post: operations['admin___queue___clear']; - }; - '/admin/queue/deliver-delayed': { - /** - * admin/queue/deliver-delayed - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:queue* - */ - post: operations['admin___queue___deliver-delayed']; - }; - '/admin/queue/inbox-delayed': { - /** - * admin/queue/inbox-delayed - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:queue* - */ - post: operations['admin___queue___inbox-delayed']; - }; - '/admin/queue/jobs': { - /** - * admin/queue/jobs - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:queue* - */ - post: operations['admin___queue___jobs']; - }; - '/admin/queue/promote-jobs': { - /** - * admin/queue/promote-jobs - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:queue* - */ - post: operations['admin___queue___promote-jobs']; - }; - '/admin/queue/queue-stats': { - /** - * admin/queue/queue-stats - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:queue* - */ - post: operations['admin___queue___queue-stats']; - }; - '/admin/queue/queues': { - /** - * admin/queue/queues - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:queue* - */ - post: operations['admin___queue___queues']; - }; - '/admin/queue/remove-job': { - /** - * admin/queue/remove-job - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:queue* - */ - post: operations['admin___queue___remove-job']; - }; - '/admin/queue/retry-job': { - /** - * admin/queue/retry-job - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:queue* - */ - post: operations['admin___queue___retry-job']; - }; - '/admin/queue/show-job': { - /** - * admin/queue/show-job - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:queue* - */ - post: operations['admin___queue___show-job']; - }; - '/admin/queue/stats': { - /** - * admin/queue/stats - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:emoji* - */ - post: operations['admin___queue___stats']; - }; - '/admin/relays/add': { - /** - * admin/relays/add - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:relays* - */ - post: operations['admin___relays___add']; - }; - '/admin/relays/list': { - /** - * admin/relays/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:relays* - */ - post: operations['admin___relays___list']; - }; - '/admin/relays/remove': { - /** - * admin/relays/remove - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:relays* - */ - post: operations['admin___relays___remove']; - }; - '/admin/reset-password': { - /** - * admin/reset-password - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:reset-password* - */ - post: operations['admin___reset-password']; - }; - '/admin/resolve-abuse-user-report': { - /** - * admin/resolve-abuse-user-report - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:resolve-abuse-user-report* - */ - post: operations['admin___resolve-abuse-user-report']; - }; - '/admin/roles/assign': { - /** - * admin/roles/assign - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:roles* - */ - post: operations['admin___roles___assign']; - }; - '/admin/roles/create': { - /** - * admin/roles/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:roles* - */ - post: operations['admin___roles___create']; - }; - '/admin/roles/delete': { - /** - * admin/roles/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:roles* - */ - post: operations['admin___roles___delete']; - }; - '/admin/roles/list': { - /** - * admin/roles/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:roles* - */ - post: operations['admin___roles___list']; - }; - '/admin/roles/show': { - /** - * admin/roles/show - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:roles* - */ - post: operations['admin___roles___show']; - }; - '/admin/roles/unassign': { - /** - * admin/roles/unassign - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:roles* - */ - post: operations['admin___roles___unassign']; - }; - '/admin/roles/update': { - /** - * admin/roles/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:roles* - */ - post: operations['admin___roles___update']; - }; - '/admin/roles/update-default-policies': { - /** - * admin/roles/update-default-policies - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:roles* - */ - post: operations['admin___roles___update-default-policies']; - }; - '/admin/roles/users': { - /** - * admin/roles/users - * @description No description provided. - * - * **Credential required**: *No* / **Permission**: *read:admin:roles* - */ - post: operations['admin___roles___users']; - }; - '/admin/send-email': { - /** - * admin/send-email - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:send-email* - */ - post: operations['admin___send-email']; - }; - '/admin/server-info': { - /** - * admin/server-info - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:server-info* - */ - post: operations['admin___server-info']; - }; - '/admin/show-moderation-logs': { - /** - * admin/show-moderation-logs - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:show-moderation-log* - */ - post: operations['admin___show-moderation-logs']; - }; - '/admin/show-user': { - /** - * admin/show-user - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:show-user* - */ - post: operations['admin___show-user']; - }; - '/admin/show-users': { - /** - * admin/show-users - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:show-user* - */ - post: operations['admin___show-users']; - }; - '/admin/suspend-user': { - /** - * admin/suspend-user - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:suspend-user* - */ - post: operations['admin___suspend-user']; - }; - '/admin/system-webhook/create': { - /** - * admin/system-webhook/create - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook* - */ - post: operations['admin___system-webhook___create']; - }; - '/admin/system-webhook/delete': { - /** - * admin/system-webhook/delete - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook* - */ - post: operations['admin___system-webhook___delete']; - }; - '/admin/system-webhook/list': { - /** - * admin/system-webhook/list - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook* - */ - post: operations['admin___system-webhook___list']; - }; - '/admin/system-webhook/show': { - /** - * admin/system-webhook/show - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook* - */ - post: operations['admin___system-webhook___show']; - }; - '/admin/system-webhook/test': { - /** - * admin/system-webhook/test - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *read:admin:system-webhook* - */ - post: operations['admin___system-webhook___test']; - }; - '/admin/system-webhook/update': { - /** - * admin/system-webhook/update - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook* - */ - post: operations['admin___system-webhook___update']; - }; - '/admin/unset-user-avatar': { - /** - * admin/unset-user-avatar - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:unset-user-avatar* - */ - post: operations['admin___unset-user-avatar']; - }; - '/admin/unset-user-banner': { - /** - * admin/unset-user-banner - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:unset-user-banner* - */ - post: operations['admin___unset-user-banner']; - }; - '/admin/unsuspend-user': { - /** - * admin/unsuspend-user - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:unsuspend-user* - */ - post: operations['admin___unsuspend-user']; - }; - '/admin/update-abuse-user-report': { - /** - * admin/update-abuse-user-report - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:resolve-abuse-user-report* - */ - post: operations['admin___update-abuse-user-report']; - }; - '/admin/update-meta': { - /** - * admin/update-meta - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:meta* - */ - post: operations['admin___update-meta']; - }; - '/admin/update-proxy-account': { - /** - * admin/update-proxy-account - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:account* - */ - post: operations['admin___update-proxy-account']; - }; - '/admin/update-user-note': { - /** - * admin/update-user-note - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:user-note* - */ - post: operations['admin___update-user-note']; - }; - '/announcements': { - /** - * announcements - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['announcements']; - }; - '/announcements/show': { - /** - * announcements/show - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['announcements___show']; - }; - '/antennas/create': { - /** - * antennas/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['antennas___create']; - }; - '/antennas/delete': { - /** - * antennas/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['antennas___delete']; - }; - '/antennas/list': { - /** - * antennas/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['antennas___list']; - }; - '/antennas/notes': { - /** - * antennas/notes - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['antennas___notes']; - }; - '/antennas/show': { - /** - * antennas/show - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['antennas___show']; - }; - '/antennas/update': { - /** - * antennas/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['antennas___update']; - }; - '/ap/get': { - /** - * ap/get - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:federation* - */ - post: operations['ap___get']; - }; - '/ap/show': { - /** - * ap/show - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['ap___show']; - }; - '/app/create': { - /** - * app/create - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['app___create']; - }; - '/app/show': { - /** - * app/show - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['app___show']; - }; - '/auth/accept': { - /** - * auth/accept - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['auth___accept']; - }; - '/auth/session/generate': { - /** - * auth/session/generate - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['auth___session___generate']; - }; - '/auth/session/show': { - /** - * auth/session/show - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['auth___session___show']; - }; - '/auth/session/userkey': { - /** - * auth/session/userkey - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['auth___session___userkey']; - }; - '/blocking/create': { - /** - * blocking/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:blocks* - */ - post: operations['blocking___create']; - }; - '/blocking/delete': { - /** - * blocking/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:blocks* - */ - post: operations['blocking___delete']; - }; - '/blocking/list': { - /** - * blocking/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:blocks* - */ - post: operations['blocking___list']; - }; - '/bubble-game/ranking': { - /** - * bubble-game/ranking - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['bubble-game___ranking']; - /** - * bubble-game/ranking - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['bubble-game___ranking']; - }; - '/bubble-game/register': { - /** - * bubble-game/register - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['bubble-game___register']; - }; - '/channels/create': { - /** - * channels/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:channels* - */ - post: operations['channels___create']; - }; - '/channels/favorite': { - /** - * channels/favorite - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:channels* - */ - post: operations['channels___favorite']; - }; - '/channels/featured': { - /** - * channels/featured - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['channels___featured']; - }; - '/channels/follow': { - /** - * channels/follow - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:channels* - */ - post: operations['channels___follow']; - }; - '/channels/followed': { - /** - * channels/followed - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:channels* - */ - post: operations['channels___followed']; - }; - '/channels/my-favorites': { - /** - * channels/my-favorites - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:channels* - */ - post: operations['channels___my-favorites']; - }; - '/channels/owned': { - /** - * channels/owned - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:channels* - */ - post: operations['channels___owned']; - }; - '/channels/search': { - /** - * channels/search - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['channels___search']; - }; - '/channels/show': { - /** - * channels/show - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['channels___show']; - }; - '/channels/timeline': { - /** - * channels/timeline - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['channels___timeline']; - }; - '/channels/unfavorite': { - /** - * channels/unfavorite - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:channels* - */ - post: operations['channels___unfavorite']; - }; - '/channels/unfollow': { - /** - * channels/unfollow - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:channels* - */ - post: operations['channels___unfollow']; - }; - '/channels/update': { - /** - * channels/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:channels* - */ - post: operations['channels___update']; - }; - '/charts/active-users': { - /** - * charts/active-users - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['charts___active-users']; - /** - * charts/active-users - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['charts___active-users']; - }; - '/charts/ap-request': { - /** - * charts/ap-request - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['charts___ap-request']; - /** - * charts/ap-request - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['charts___ap-request']; - }; - '/charts/drive': { - /** - * charts/drive - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['charts___drive']; - /** - * charts/drive - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['charts___drive']; - }; - '/charts/federation': { - /** - * charts/federation - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['charts___federation']; - /** - * charts/federation - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['charts___federation']; - }; - '/charts/instance': { - /** - * charts/instance - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['charts___instance']; - /** - * charts/instance - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['charts___instance']; - }; - '/charts/notes': { - /** - * charts/notes - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['charts___notes']; - /** - * charts/notes - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['charts___notes']; - }; - '/charts/user/drive': { - /** - * charts/user/drive - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['charts___user___drive']; - /** - * charts/user/drive - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['charts___user___drive']; - }; - '/charts/user/following': { - /** - * charts/user/following - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['charts___user___following']; - /** - * charts/user/following - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['charts___user___following']; - }; - '/charts/user/notes': { - /** - * charts/user/notes - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['charts___user___notes']; - /** - * charts/user/notes - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['charts___user___notes']; - }; - '/charts/user/pv': { - /** - * charts/user/pv - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['charts___user___pv']; - /** - * charts/user/pv - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['charts___user___pv']; - }; - '/charts/user/reactions': { - /** - * charts/user/reactions - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['charts___user___reactions']; - /** - * charts/user/reactions - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['charts___user___reactions']; - }; - '/charts/users': { - /** - * charts/users - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['charts___users']; - /** - * charts/users - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['charts___users']; - }; - '/chat/history': { - /** - * chat/history - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - post: operations['chat___history']; - }; - '/chat/messages/create-to-room': { - /** - * chat/messages/create-to-room - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - post: operations['chat___messages___create-to-room']; - }; - '/chat/messages/create-to-user': { - /** - * chat/messages/create-to-user - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - post: operations['chat___messages___create-to-user']; - }; - '/chat/messages/delete': { - /** - * chat/messages/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - post: operations['chat___messages___delete']; - }; - '/chat/messages/react': { - /** - * chat/messages/react - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - post: operations['chat___messages___react']; - }; - '/chat/messages/room-timeline': { - /** - * chat/messages/room-timeline - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - post: operations['chat___messages___room-timeline']; - }; - '/chat/messages/search': { - /** - * chat/messages/search - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - post: operations['chat___messages___search']; - }; - '/chat/messages/show': { - /** - * chat/messages/show - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - post: operations['chat___messages___show']; - }; - '/chat/messages/unreact': { - /** - * chat/messages/unreact - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - post: operations['chat___messages___unreact']; - }; - '/chat/messages/user-timeline': { - /** - * chat/messages/user-timeline - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - post: operations['chat___messages___user-timeline']; - }; - '/chat/read-all': { - /** - * chat/read-all - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - post: operations['chat___read-all']; - }; - '/chat/rooms/create': { - /** - * chat/rooms/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - post: operations['chat___rooms___create']; - }; - '/chat/rooms/delete': { - /** - * chat/rooms/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - post: operations['chat___rooms___delete']; - }; - '/chat/rooms/invitations/create': { - /** - * chat/rooms/invitations/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - post: operations['chat___rooms___invitations___create']; - }; - '/chat/rooms/invitations/ignore': { - /** - * chat/rooms/invitations/ignore - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - post: operations['chat___rooms___invitations___ignore']; - }; - '/chat/rooms/invitations/inbox': { - /** - * chat/rooms/invitations/inbox - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - post: operations['chat___rooms___invitations___inbox']; - }; - '/chat/rooms/invitations/outbox': { - /** - * chat/rooms/invitations/outbox - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - post: operations['chat___rooms___invitations___outbox']; - }; - '/chat/rooms/join': { - /** - * chat/rooms/join - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - post: operations['chat___rooms___join']; - }; - '/chat/rooms/joining': { - /** - * chat/rooms/joining - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - post: operations['chat___rooms___joining']; - }; - '/chat/rooms/leave': { - /** - * chat/rooms/leave - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - post: operations['chat___rooms___leave']; - }; - '/chat/rooms/members': { - /** - * chat/rooms/members - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - post: operations['chat___rooms___members']; - }; - '/chat/rooms/mute': { - /** - * chat/rooms/mute - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - post: operations['chat___rooms___mute']; - }; - '/chat/rooms/owned': { - /** - * chat/rooms/owned - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - post: operations['chat___rooms___owned']; - }; - '/chat/rooms/show': { - /** - * chat/rooms/show - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - post: operations['chat___rooms___show']; - }; - '/chat/rooms/update': { - /** - * chat/rooms/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - post: operations['chat___rooms___update']; - }; - '/clips/add-note': { - /** - * clips/add-note - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['clips___add-note']; - }; - '/clips/create': { - /** - * clips/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['clips___create']; - }; - '/clips/delete': { - /** - * clips/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['clips___delete']; - }; - '/clips/favorite': { - /** - * clips/favorite - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:clip-favorite* - */ - post: operations['clips___favorite']; - }; - '/clips/list': { - /** - * clips/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['clips___list']; - }; - '/clips/my-favorites': { - /** - * clips/my-favorites - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:clip-favorite* - */ - post: operations['clips___my-favorites']; - }; - '/clips/notes': { - /** - * clips/notes - * @description No description provided. - * - * **Credential required**: *No* / **Permission**: *read:account* - */ - post: operations['clips___notes']; - }; - '/clips/remove-note': { - /** - * clips/remove-note - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['clips___remove-note']; - }; - '/clips/show': { - /** - * clips/show - * @description No description provided. - * - * **Credential required**: *No* / **Permission**: *read:account* - */ - post: operations['clips___show']; - }; - '/clips/unfavorite': { - /** - * clips/unfavorite - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:clip-favorite* - */ - post: operations['clips___unfavorite']; - }; - '/clips/update': { - /** - * clips/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['clips___update']; - }; - '/drive': { - /** - * drive - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - post: operations['drive']; - }; - '/drive/files': { - /** - * drive/files - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - post: operations['drive___files']; - }; - '/drive/files/attached-notes': { - /** - * drive/files/attached-notes - * @description Find the notes to which the given file is attached. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - post: operations['drive___files___attached-notes']; - }; - '/drive/files/check-existence': { - /** - * drive/files/check-existence - * @description Check if a given file exists. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - post: operations['drive___files___check-existence']; - }; - '/drive/files/create': { - /** - * drive/files/create - * @description Upload a new drive file. - * - * **Credential required**: *Yes* / **Permission**: *write:drive* - */ - post: operations['drive___files___create']; - }; - '/drive/files/delete': { - /** - * drive/files/delete - * @description Delete an existing drive file. - * - * **Credential required**: *Yes* / **Permission**: *write:drive* - */ - post: operations['drive___files___delete']; - }; - '/drive/files/find': { - /** - * drive/files/find - * @description Search for a drive file by the given parameters. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - post: operations['drive___files___find']; - }; - '/drive/files/find-by-hash': { - /** - * drive/files/find-by-hash - * @description Search for a drive file by a hash of the contents. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - post: operations['drive___files___find-by-hash']; - }; - '/drive/files/move-bulk': { - /** - * drive/files/move-bulk - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:drive* - */ - post: operations['drive___files___move-bulk']; - }; - '/drive/files/show': { - /** - * drive/files/show - * @description Show the properties of a drive file. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - post: operations['drive___files___show']; - }; - '/drive/files/update': { - /** - * drive/files/update - * @description Update the properties of a drive file. - * - * **Credential required**: *Yes* / **Permission**: *write:drive* - */ - post: operations['drive___files___update']; - }; - '/drive/files/upload-from-url': { - /** - * drive/files/upload-from-url - * @description Request the server to download a new drive file from the specified URL. - * - * **Credential required**: *Yes* / **Permission**: *write:drive* - */ - post: operations['drive___files___upload-from-url']; - }; - '/drive/folders': { - /** - * drive/folders - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - post: operations['drive___folders']; - }; - '/drive/folders/create': { - /** - * drive/folders/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:drive* - */ - post: operations['drive___folders___create']; - }; - '/drive/folders/delete': { - /** - * drive/folders/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:drive* - */ - post: operations['drive___folders___delete']; - }; - '/drive/folders/find': { - /** - * drive/folders/find - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - post: operations['drive___folders___find']; - }; - '/drive/folders/show': { - /** - * drive/folders/show - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - post: operations['drive___folders___show']; - }; - '/drive/folders/update': { - /** - * drive/folders/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:drive* - */ - post: operations['drive___folders___update']; - }; - '/drive/stream': { - /** - * drive/stream - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - post: operations['drive___stream']; - }; - '/email-address/available': { - /** - * email-address/available - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['email-address___available']; - }; - '/emoji': { - /** - * emoji - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['emoji']; - /** - * emoji - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['emoji']; - }; - '/emojis': { - /** - * emojis - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['emojis']; - /** - * emojis - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['emojis']; - }; - '/endpoint': { - /** - * endpoint - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['endpoint']; - }; - '/endpoints': { - /** - * endpoints - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['endpoints']; - }; - '/export-custom-emojis': { - /** - * export-custom-emojis - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['export-custom-emojis']; - }; - '/federation/followers': { - /** - * federation/followers - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['federation___followers']; - }; - '/federation/following': { - /** - * federation/following - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['federation___following']; - }; - '/federation/instances': { - /** - * federation/instances - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['federation___instances']; - /** - * federation/instances - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['federation___instances']; - }; - '/federation/show-instance': { - /** - * federation/show-instance - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['federation___show-instance']; - }; - '/federation/stats': { - /** - * federation/stats - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['federation___stats']; - /** - * federation/stats - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['federation___stats']; - }; - '/federation/update-remote-user': { - /** - * federation/update-remote-user - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['federation___update-remote-user']; - }; - '/federation/users': { - /** - * federation/users - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['federation___users']; - }; - '/fetch-external-resources': { - /** - * fetch-external-resources - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['fetch-external-resources']; - }; - '/fetch-rss': { - /** - * fetch-rss - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['fetch-rss']; - /** - * fetch-rss - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['fetch-rss']; - }; - '/flash/create': { - /** - * flash/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:flash* - */ - post: operations['flash___create']; - }; - '/flash/delete': { - /** - * flash/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:flash* - */ - post: operations['flash___delete']; - }; - '/flash/featured': { - /** - * flash/featured - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['flash___featured']; - }; - '/flash/like': { - /** - * flash/like - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:flash-likes* - */ - post: operations['flash___like']; - }; - '/flash/my': { - /** - * flash/my - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:flash* - */ - post: operations['flash___my']; - }; - '/flash/my-likes': { - /** - * flash/my-likes - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:flash-likes* - */ - post: operations['flash___my-likes']; - }; - '/flash/show': { - /** - * flash/show - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['flash___show']; - }; - '/flash/unlike': { - /** - * flash/unlike - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:flash-likes* - */ - post: operations['flash___unlike']; - }; - '/flash/update': { - /** - * flash/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:flash* - */ - post: operations['flash___update']; - }; - '/following/create': { - /** - * following/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:following* - */ - post: operations['following___create']; - }; - '/following/delete': { - /** - * following/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:following* - */ - post: operations['following___delete']; - }; - '/following/invalidate': { - /** - * following/invalidate - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:following* - */ - post: operations['following___invalidate']; - }; - '/following/requests/accept': { - /** - * following/requests/accept - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:following* - */ - post: operations['following___requests___accept']; - }; - '/following/requests/cancel': { - /** - * following/requests/cancel - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:following* - */ - post: operations['following___requests___cancel']; - }; - '/following/requests/list': { - /** - * following/requests/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:following* - */ - post: operations['following___requests___list']; - }; - '/following/requests/reject': { - /** - * following/requests/reject - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:following* - */ - post: operations['following___requests___reject']; - }; - '/following/requests/sent': { - /** - * following/requests/sent - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:following* - */ - post: operations['following___requests___sent']; - }; - '/following/update': { - /** - * following/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:following* - */ - post: operations['following___update']; - }; - '/following/update-all': { - /** - * following/update-all - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:following* - */ - post: operations['following___update-all']; - }; - '/gallery/featured': { - /** - * gallery/featured - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['gallery___featured']; - }; - '/gallery/popular': { - /** - * gallery/popular - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['gallery___popular']; - }; - '/gallery/posts': { - /** - * gallery/posts - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['gallery___posts']; - }; - '/gallery/posts/create': { - /** - * gallery/posts/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:gallery* - */ - post: operations['gallery___posts___create']; - }; - '/gallery/posts/delete': { - /** - * gallery/posts/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:gallery* - */ - post: operations['gallery___posts___delete']; - }; - '/gallery/posts/like': { - /** - * gallery/posts/like - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:gallery-likes* - */ - post: operations['gallery___posts___like']; - }; - '/gallery/posts/show': { - /** - * gallery/posts/show - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['gallery___posts___show']; - }; - '/gallery/posts/unlike': { - /** - * gallery/posts/unlike - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:gallery-likes* - */ - post: operations['gallery___posts___unlike']; - }; - '/gallery/posts/update': { - /** - * gallery/posts/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:gallery* - */ - post: operations['gallery___posts___update']; - }; - '/get-avatar-decorations': { - /** - * get-avatar-decorations - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['get-avatar-decorations']; - }; - '/get-online-users-count': { - /** - * get-online-users-count - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['get-online-users-count']; - /** - * get-online-users-count - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['get-online-users-count']; - }; - '/hashtags/list': { - /** - * hashtags/list - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['hashtags___list']; - }; - '/hashtags/search': { - /** - * hashtags/search - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['hashtags___search']; - }; - '/hashtags/show': { - /** - * hashtags/show - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['hashtags___show']; - }; - '/hashtags/trend': { - /** - * hashtags/trend - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['hashtags___trend']; - /** - * hashtags/trend - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['hashtags___trend']; - }; - '/hashtags/users': { - /** - * hashtags/users - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['hashtags___users']; - }; - '/i': { - /** - * i - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['i']; - }; - '/i/2fa/done': { - /** - * i/2fa/done - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___2fa___done']; - }; - '/i/2fa/key-done': { - /** - * i/2fa/key-done - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___2fa___key-done']; - }; - '/i/2fa/password-less': { - /** - * i/2fa/password-less - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___2fa___password-less']; - }; - '/i/2fa/register': { - /** - * i/2fa/register - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___2fa___register']; - }; - '/i/2fa/register-key': { - /** - * i/2fa/register-key - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___2fa___register-key']; - }; - '/i/2fa/remove-key': { - /** - * i/2fa/remove-key - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___2fa___remove-key']; - }; - '/i/2fa/unregister': { - /** - * i/2fa/unregister - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___2fa___unregister']; - }; - '/i/2fa/update-key': { - /** - * i/2fa/update-key - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___2fa___update-key']; - }; - '/i/apps': { - /** - * i/apps - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___apps']; - }; - '/i/authorized-apps': { - /** - * i/authorized-apps - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___authorized-apps']; - }; - '/i/change-password': { - /** - * i/change-password - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___change-password']; - }; - '/i/claim-achievement': { - /** - * i/claim-achievement - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['i___claim-achievement']; - }; - '/i/delete-account': { - /** - * i/delete-account - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___delete-account']; - }; - '/i/export-antennas': { - /** - * i/export-antennas - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___export-antennas']; - }; - '/i/export-blocking': { - /** - * i/export-blocking - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___export-blocking']; - }; - '/i/export-clips': { - /** - * i/export-clips - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___export-clips']; - }; - '/i/export-favorites': { - /** - * i/export-favorites - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___export-favorites']; - }; - '/i/export-following': { - /** - * i/export-following - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___export-following']; - }; - '/i/export-mute': { - /** - * i/export-mute - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___export-mute']; - }; - '/i/export-notes': { - /** - * i/export-notes - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___export-notes']; - }; - '/i/export-user-lists': { - /** - * i/export-user-lists - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___export-user-lists']; - }; - '/i/favorites': { - /** - * i/favorites - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:favorites* - */ - post: operations['i___favorites']; - }; - '/i/gallery/likes': { - /** - * i/gallery/likes - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:gallery-likes* - */ - post: operations['i___gallery___likes']; - }; - '/i/gallery/posts': { - /** - * i/gallery/posts - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:gallery* - */ - post: operations['i___gallery___posts']; - }; - '/i/import-antennas': { - /** - * i/import-antennas - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___import-antennas']; - }; - '/i/import-blocking': { - /** - * i/import-blocking - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___import-blocking']; - }; - '/i/import-following': { - /** - * i/import-following - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___import-following']; - }; - '/i/import-muting': { - /** - * i/import-muting - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___import-muting']; - }; - '/i/import-user-lists': { - /** - * i/import-user-lists - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___import-user-lists']; - }; - '/i/move': { - /** - * i/move - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___move']; - }; - '/i/notifications': { - /** - * i/notifications - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:notifications* - */ - post: operations['i___notifications']; - }; - '/i/notifications-grouped': { - /** - * i/notifications-grouped - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:notifications* - */ - post: operations['i___notifications-grouped']; - }; - '/i/page-likes': { - /** - * i/page-likes - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:page-likes* - */ - post: operations['i___page-likes']; - }; - '/i/pages': { - /** - * i/pages - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:pages* - */ - post: operations['i___pages']; - }; - '/i/pin': { - /** - * i/pin - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['i___pin']; - }; - '/i/read-announcement': { - /** - * i/read-announcement - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['i___read-announcement']; - }; - '/i/regenerate-token': { - /** - * i/regenerate-token - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___regenerate-token']; - }; - '/i/registry/get': { - /** - * i/registry/get - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['i___registry___get']; - }; - '/i/registry/get-all': { - /** - * i/registry/get-all - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['i___registry___get-all']; - }; - '/i/registry/get-detail': { - /** - * i/registry/get-detail - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['i___registry___get-detail']; - }; - '/i/registry/keys': { - /** - * i/registry/keys - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['i___registry___keys']; - }; - '/i/registry/keys-with-type': { - /** - * i/registry/keys-with-type - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['i___registry___keys-with-type']; - }; - '/i/registry/remove': { - /** - * i/registry/remove - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['i___registry___remove']; - }; - '/i/registry/scopes-with-domain': { - /** - * i/registry/scopes-with-domain - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___registry___scopes-with-domain']; - }; - '/i/registry/set': { - /** - * i/registry/set - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['i___registry___set']; - }; - '/i/revoke-token': { - /** - * i/revoke-token - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___revoke-token']; - }; - '/i/signin-history': { - /** - * i/signin-history - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___signin-history']; - }; - '/i/unpin': { - /** - * i/unpin - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['i___unpin']; - }; - '/i/update': { - /** - * i/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['i___update']; - }; - '/i/update-email': { - /** - * i/update-email - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['i___update-email']; - }; - '/i/webhooks/create': { - /** - * i/webhooks/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['i___webhooks___create']; - }; - '/i/webhooks/delete': { - /** - * i/webhooks/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['i___webhooks___delete']; - }; - '/i/webhooks/list': { - /** - * i/webhooks/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['i___webhooks___list']; - }; - '/i/webhooks/show': { - /** - * i/webhooks/show - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['i___webhooks___show']; - }; - '/i/webhooks/test': { - /** - * i/webhooks/test - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['i___webhooks___test']; - }; - '/i/webhooks/update': { - /** - * i/webhooks/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['i___webhooks___update']; - }; - '/invite/create': { - /** - * invite/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:invite-codes* - */ - post: operations['invite___create']; - }; - '/invite/delete': { - /** - * invite/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:invite-codes* - */ - post: operations['invite___delete']; - }; - '/invite/limit': { - /** - * invite/limit - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:invite-codes* - */ - post: operations['invite___limit']; - }; - '/invite/list': { - /** - * invite/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:invite-codes* - */ - post: operations['invite___list']; - }; - '/meta': { - /** - * meta - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['meta']; - }; - '/miauth/gen-token': { - /** - * miauth/gen-token - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['miauth___gen-token']; - }; - '/mute/create': { - /** - * mute/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:mutes* - */ - post: operations['mute___create']; - }; - '/mute/delete': { - /** - * mute/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:mutes* - */ - post: operations['mute___delete']; - }; - '/mute/list': { - /** - * mute/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:mutes* - */ - post: operations['mute___list']; - }; - '/my/apps': { - /** - * my/apps - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['my___apps']; - }; - '/notes': { - /** - * notes - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['notes']; - }; - '/notes/children': { - /** - * notes/children - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['notes___children']; - }; - '/notes/clips': { - /** - * notes/clips - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['notes___clips']; - }; - '/notes/conversation': { - /** - * notes/conversation - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['notes___conversation']; - }; - '/notes/create': { - /** - * notes/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:notes* - */ - post: operations['notes___create']; - }; - '/notes/delete': { - /** - * notes/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:notes* - */ - post: operations['notes___delete']; - }; - '/notes/favorites/create': { - /** - * notes/favorites/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:favorites* - */ - post: operations['notes___favorites___create']; - }; - '/notes/favorites/delete': { - /** - * notes/favorites/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:favorites* - */ - post: operations['notes___favorites___delete']; - }; - '/notes/featured': { - /** - * notes/featured - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['notes___featured']; - /** - * notes/featured - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['notes___featured']; - }; - '/notes/global-timeline': { - /** - * notes/global-timeline - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['notes___global-timeline']; - }; - '/notes/hybrid-timeline': { - /** - * notes/hybrid-timeline - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['notes___hybrid-timeline']; - }; - '/notes/local-timeline': { - /** - * notes/local-timeline - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['notes___local-timeline']; - }; - '/notes/mentions': { - /** - * notes/mentions - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['notes___mentions']; - }; - '/notes/polls/recommendation': { - /** - * notes/polls/recommendation - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['notes___polls___recommendation']; - }; - '/notes/polls/vote': { - /** - * notes/polls/vote - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:votes* - */ - post: operations['notes___polls___vote']; - }; - '/notes/reactions': { - /** - * notes/reactions - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['notes___reactions']; - /** - * notes/reactions - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['notes___reactions']; - }; - '/notes/reactions/create': { - /** - * notes/reactions/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:reactions* - */ - post: operations['notes___reactions___create']; - }; - '/notes/reactions/delete': { - /** - * notes/reactions/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:reactions* - */ - post: operations['notes___reactions___delete']; - }; - '/notes/renotes': { - /** - * notes/renotes - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['notes___renotes']; - }; - '/notes/replies': { - /** - * notes/replies - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['notes___replies']; - }; - '/notes/search': { - /** - * notes/search - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['notes___search']; - }; - '/notes/search-by-tag': { - /** - * notes/search-by-tag - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['notes___search-by-tag']; - }; - '/notes/show': { - /** - * notes/show - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['notes___show']; - }; - '/notes/show-partial-bulk': { - /** - * notes/show-partial-bulk - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['notes___show-partial-bulk']; - }; - '/notes/state': { - /** - * notes/state - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['notes___state']; - }; - '/notes/thread-muting/create': { - /** - * notes/thread-muting/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['notes___thread-muting___create']; - }; - '/notes/thread-muting/delete': { - /** - * notes/thread-muting/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['notes___thread-muting___delete']; - }; - '/notes/timeline': { - /** - * notes/timeline - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['notes___timeline']; - }; - '/notes/translate': { - /** - * notes/translate - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['notes___translate']; - }; - '/notes/unrenote': { - /** - * notes/unrenote - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:notes* - */ - post: operations['notes___unrenote']; - }; - '/notes/user-list-timeline': { - /** - * notes/user-list-timeline - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['notes___user-list-timeline']; - }; - '/notifications/create': { - /** - * notifications/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:notifications* - */ - post: operations['notifications___create']; - }; - '/notifications/flush': { - /** - * notifications/flush - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:notifications* - */ - post: operations['notifications___flush']; - }; - '/notifications/mark-all-as-read': { - /** - * notifications/mark-all-as-read - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:notifications* - */ - post: operations['notifications___mark-all-as-read']; - }; - '/notifications/test-notification': { - /** - * notifications/test-notification - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:notifications* - */ - post: operations['notifications___test-notification']; - }; - '/page-push': { - /** - * page-push - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['page-push']; - }; - '/pages/create': { - /** - * pages/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:pages* - */ - post: operations['pages___create']; - }; - '/pages/delete': { - /** - * pages/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:pages* - */ - post: operations['pages___delete']; - }; - '/pages/featured': { - /** - * pages/featured - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['pages___featured']; - }; - '/pages/like': { - /** - * pages/like - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:page-likes* - */ - post: operations['pages___like']; - }; - '/pages/show': { - /** - * pages/show - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['pages___show']; - }; - '/pages/unlike': { - /** - * pages/unlike - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:page-likes* - */ - post: operations['pages___unlike']; - }; - '/pages/update': { - /** - * pages/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:pages* - */ - post: operations['pages___update']; - }; - '/ping': { - /** - * ping - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['ping']; - }; - '/pinned-users': { - /** - * pinned-users - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['pinned-users']; - }; - '/promo/read': { - /** - * promo/read - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['promo___read']; - }; - '/renote-mute/create': { - /** - * renote-mute/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:mutes* - */ - post: operations['renote-mute___create']; - }; - '/renote-mute/delete': { - /** - * renote-mute/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:mutes* - */ - post: operations['renote-mute___delete']; - }; - '/renote-mute/list': { - /** - * renote-mute/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:mutes* - */ - post: operations['renote-mute___list']; - }; - '/request-reset-password': { - /** - * request-reset-password - * @description Request a users password to be reset. - * - * **Credential required**: *No* - */ - post: operations['request-reset-password']; - }; - '/reset-db': { - /** - * reset-db - * @description Only available when running with NODE_ENV=testing. Reset the database and flush Redis. - * - * **Credential required**: *No* - */ - post: operations['reset-db']; - }; - '/reset-password': { - /** - * reset-password - * @description Complete the password reset that was previously requested. - * - * **Credential required**: *No* - */ - post: operations['reset-password']; - }; - '/retention': { - /** - * retention - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['retention']; - /** - * retention - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['retention']; - }; - '/reversi/cancel-match': { - /** - * reversi/cancel-match - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['reversi___cancel-match']; - }; - '/reversi/games': { - /** - * reversi/games - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['reversi___games']; - }; - '/reversi/invitations': { - /** - * reversi/invitations - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['reversi___invitations']; - }; - '/reversi/match': { - /** - * reversi/match - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['reversi___match']; - }; - '/reversi/show-game': { - /** - * reversi/show-game - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['reversi___show-game']; - }; - '/reversi/surrender': { - /** - * reversi/surrender - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['reversi___surrender']; - }; - '/reversi/verify': { - /** - * reversi/verify - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['reversi___verify']; - }; - '/roles/list': { - /** - * roles/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['roles___list']; - }; - '/roles/notes': { - /** - * roles/notes - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['roles___notes']; - }; - '/roles/show': { - /** - * roles/show - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['roles___show']; - }; - '/roles/users': { - /** - * roles/users - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['roles___users']; - }; - '/server-info': { - /** - * server-info - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['server-info']; - /** - * server-info - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['server-info']; - }; - '/stats': { - /** - * stats - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['stats']; - }; - '/sw/register': { - /** - * sw/register - * @description Register to receive push notifications. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['sw___register']; - }; - '/sw/show-registration': { - /** - * sw/show-registration - * @description Check push notification registration exists. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['sw___show-registration']; - }; - '/sw/unregister': { - /** - * sw/unregister - * @description Unregister from receiving push notifications. - * - * **Credential required**: *No* - */ - post: operations['sw___unregister']; - }; - '/sw/update-registration': { - /** - * sw/update-registration - * @description Update push notification registration. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - post: operations['sw___update-registration']; - }; - '/test': { - /** - * test - * @description Endpoint for testing input validation. - * - * **Credential required**: *No* - */ - post: operations['test']; - }; - '/username/available': { - /** - * username/available - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['username___available']; - }; - '/users': { - /** - * users - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['users']; - }; - '/users/achievements': { - /** - * users/achievements - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['users___achievements']; - }; - '/users/clips': { - /** - * users/clips - * @description Show all clips this user owns. - * - * **Credential required**: *No* - */ - post: operations['users___clips']; - }; - '/users/featured-notes': { - /** - * users/featured-notes - * @description No description provided. - * - * **Credential required**: *No* - */ - get: operations['users___featured-notes']; - /** - * users/featured-notes - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['users___featured-notes']; - }; - '/users/flashs': { - /** - * users/flashs - * @description Show all flashs this user created. - * - * **Credential required**: *No* - */ - post: operations['users___flashs']; - }; - '/users/followers': { - /** - * users/followers - * @description Show everyone that follows this user. - * - * **Credential required**: *No* - */ - post: operations['users___followers']; - }; - '/users/following': { - /** - * users/following - * @description Show everyone that this user is following. - * - * **Credential required**: *No* - */ - post: operations['users___following']; - }; - '/users/gallery/posts': { - /** - * users/gallery/posts - * @description Show all gallery posts by the given user. - * - * **Credential required**: *No* - */ - post: operations['users___gallery___posts']; - }; - '/users/get-frequently-replied-users': { - /** - * users/get-frequently-replied-users - * @description Get a list of other users that the specified user frequently replies to. - * - * **Credential required**: *No* - */ - post: operations['users___get-frequently-replied-users']; - }; - '/users/lists/create': { - /** - * users/lists/create - * @description Create a new list of users. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['users___lists___create']; - }; - '/users/lists/create-from-public': { - /** - * users/lists/create-from-public - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['users___lists___create-from-public']; - }; - '/users/lists/delete': { - /** - * users/lists/delete - * @description Delete an existing list of users. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['users___lists___delete']; - }; - '/users/lists/favorite': { - /** - * users/lists/favorite - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['users___lists___favorite']; - }; - '/users/lists/get-memberships': { - /** - * users/lists/get-memberships - * @description No description provided. - * - * **Credential required**: *No* / **Permission**: *read:account* - */ - post: operations['users___lists___get-memberships']; - }; - '/users/lists/list': { - /** - * users/lists/list - * @description Show all lists that the authenticated user has created. - * - * **Credential required**: *No* / **Permission**: *read:account* - */ - post: operations['users___lists___list']; - }; - '/users/lists/pull': { - /** - * users/lists/pull - * @description Remove a user from a list. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['users___lists___pull']; - }; - '/users/lists/push': { - /** - * users/lists/push - * @description Add a user to an existing list. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['users___lists___push']; - }; - '/users/lists/show': { - /** - * users/lists/show - * @description Show the properties of a list. - * - * **Credential required**: *No* / **Permission**: *read:account* - */ - post: operations['users___lists___show']; - }; - '/users/lists/unfavorite': { - /** - * users/lists/unfavorite - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['users___lists___unfavorite']; - }; - '/users/lists/update': { - /** - * users/lists/update - * @description Update the properties of a list. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['users___lists___update']; - }; - '/users/lists/update-membership': { - /** - * users/lists/update-membership - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['users___lists___update-membership']; - }; - '/users/notes': { - /** - * users/notes - * @description No description provided. - * - * **Credential required**: *No* - */ - post: operations['users___notes']; - }; - '/users/pages': { - /** - * users/pages - * @description Show all pages this user created. - * - * **Credential required**: *No* - */ - post: operations['users___pages']; - }; - '/users/reactions': { - /** - * users/reactions - * @description Show all reactions this user made. - * - * **Credential required**: *No* - */ - post: operations['users___reactions']; - }; - '/users/recommendation': { - /** - * users/recommendation - * @description Show users that the authenticated user might be interested to follow. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['users___recommendation']; - }; - '/users/relation': { - /** - * users/relation - * @description Show the different kinds of relations between the authenticated user and the specified user(s). - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - post: operations['users___relation']; - }; - '/users/report-abuse': { - /** - * users/report-abuse - * @description File a report. - * - * **Credential required**: *Yes* / **Permission**: *write:report-abuse* - */ - post: operations['users___report-abuse']; - }; - '/users/search': { - /** - * users/search - * @description Search for users. - * - * **Credential required**: *No* - */ - post: operations['users___search']; - }; - '/users/search-by-username-and-host': { - /** - * users/search-by-username-and-host - * @description Search for a user by username and/or host. - * - * **Credential required**: *No* - */ - post: operations['users___search-by-username-and-host']; - }; - '/users/show': { - /** - * users/show - * @description Show the properties of a user. - * - * **Credential required**: *No* - */ - post: operations['users___show']; - }; - '/users/update-memo': { - /** - * users/update-memo - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - post: operations['users___update-memo']; - }; - '/v2/admin/emoji/list': { - /** - * v2/admin/emoji/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:emoji* - */ - post: operations['v2___admin___emoji___list']; - }; -}; - -export type webhooks = Record; - -export type components = { - schemas: { - Error: { - /** @description An error object. */ - error: { - /** @description An error code. Unique within the endpoint. */ - code: string; - /** @description An error message. */ - message: string; + '/admin/abuse-report/notification-recipient/create': { /** - * Format: uuid - * @description An error ID. This ID is static. + * admin/abuse-report/notification-recipient/create + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient* */ - id: string; - }; + post: operations['admin___abuse-report___notification-recipient___create']; }; - UserLite: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** @example 藍 */ - name: string | null; - /** @example ai */ - username: string; - /** - * @description The local host is represented with `null`. - * @example misskey.example.com - */ - host: string | null; - /** Format: url */ - avatarUrl: string | null; - avatarBlurhash: string | null; - avatarDecorations: { - /** Format: id */ - id: string; - angle?: number; - flipH?: boolean; - /** Format: url */ - url: string; - offsetX?: number; - offsetY?: number; - }[]; - isBot?: boolean; - isCat?: boolean; - requireSigninToViewContents?: boolean; - makeNotesFollowersOnlyBefore?: number | null; - makeNotesHiddenBefore?: number | null; - instance?: { - name: string | null; - softwareName: string | null; - softwareVersion: string | null; - iconUrl: string | null; - faviconUrl: string | null; - themeColor: string | null; - }; - emojis: { - [key: string]: string; - }; - /** @enum {string} */ - onlineStatus: 'unknown' | 'online' | 'active' | 'offline'; - badgeRoles?: ({ - name: string; - iconUrl: string | null; - displayOrder: number; - })[]; + '/admin/abuse-report/notification-recipient/delete': { + /** + * admin/abuse-report/notification-recipient/delete + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient* + */ + post: operations['admin___abuse-report___notification-recipient___delete']; }; - UserDetailedNotMeOnly: { - /** Format: url */ - url: string | null; - /** Format: uri */ - uri: string | null; - /** Format: uri */ - movedTo: string | null; - alsoKnownAs: string[] | null; - /** Format: date-time */ - createdAt: string; - /** Format: date-time */ - updatedAt: string | null; - /** Format: date-time */ - lastFetchedAt: string | null; - /** Format: url */ - bannerUrl: string | null; - bannerBlurhash: string | null; - isLocked: boolean; - isSilenced: boolean; - /** @example false */ - isSuspended: boolean; - /** @example Hi masters, I am Ai! */ - description: string | null; - location: string | null; - /** @example 2018-03-12 */ - birthday: string | null; - /** @example ja-JP */ - lang: string | null; - fields: { - name: string; - value: string; - }[]; - verifiedLinks: string[]; - followersCount: number; - followingCount: number; - notesCount: number; - pinnedNoteIds: string[]; - pinnedNotes: components['schemas']['Note'][]; - pinnedPageId: string | null; - pinnedPage: components['schemas']['Page'] | null; - publicReactions: boolean; - /** @enum {string} */ - followingVisibility: 'public' | 'followers' | 'private'; - /** @enum {string} */ - followersVisibility: 'public' | 'followers' | 'private'; - /** @enum {string} */ - chatScope: 'everyone' | 'following' | 'followers' | 'mutual' | 'none'; - canChat: boolean; - roles: components['schemas']['RoleLite'][]; - followedMessage?: string | null; - memo: string | null; - moderationNote?: string; - twoFactorEnabled?: boolean; - usePasswordLessLogin?: boolean; - securityKeys?: boolean; - isFollowing?: boolean; - isFollowed?: boolean; - hasPendingFollowRequestFromYou?: boolean; - hasPendingFollowRequestToYou?: boolean; - isBlocking?: boolean; - isBlocked?: boolean; - isMuted?: boolean; - isRenoteMuted?: boolean; - /** @enum {string} */ - notify?: 'normal' | 'none'; - withReplies?: boolean; + '/admin/abuse-report/notification-recipient/list': { + /** + * admin/abuse-report/notification-recipient/list + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* / **Permission**: *read:admin:abuse-report:notification-recipient* + */ + post: operations['admin___abuse-report___notification-recipient___list']; }; - MeDetailedOnly: { - /** Format: id */ - avatarId: string | null; - /** Format: id */ - bannerId: string | null; - followedMessage: string | null; - isModerator: boolean | null; - isAdmin: boolean | null; - injectFeaturedNote: boolean; - receiveAnnouncementEmail: boolean; - alwaysMarkNsfw: boolean; - autoSensitive: boolean; - carefulBot: boolean; - autoAcceptFollowed: boolean; - noCrawle: boolean; - preventAiLearning: boolean; - isExplorable: boolean; - isDeleted: boolean; - /** @enum {string} */ - twoFactorBackupCodesStock: 'full' | 'partial' | 'none'; - hideOnlineStatus: boolean; - hasUnreadSpecifiedNotes: boolean; - hasUnreadMentions: boolean; - hasUnreadAnnouncement: boolean; - unreadAnnouncements: components['schemas']['Announcement'][]; - hasUnreadAntenna: boolean; - hasUnreadChannel: boolean; - hasUnreadChatMessages: boolean; - hasUnreadNotification: boolean; - hasPendingReceivedFollowRequest: boolean; - unreadNotificationsCount: number; - mutedWords: string[][]; - hardMutedWords: string[][]; - mutedInstances: string[] | null; - notificationRecieveConfig: { - note?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - follow?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - mention?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - reply?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - renote?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - quote?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - reaction?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - pollEnded?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - receiveFollowRequest?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - followRequestAccepted?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - roleAssigned?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - chatRoomInvitationReceived?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - achievementEarned?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - app?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - test?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - }; - emailNotificationTypes: string[]; - achievements: components['schemas']['Achievement'][]; - loggedInDays: number; - policies: components['schemas']['RolePolicies']; - /** @default false */ - twoFactorEnabled: boolean; - /** @default false */ - usePasswordLessLogin: boolean; - /** @default false */ - securityKeys: boolean; - email?: string | null; - emailVerified?: boolean | null; - securityKeysList?: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - name: string; - /** Format: date-time */ - lastUsed: string; - }[]; + '/admin/abuse-report/notification-recipient/show': { + /** + * admin/abuse-report/notification-recipient/show + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* / **Permission**: *read:admin:abuse-report:notification-recipient* + */ + post: operations['admin___abuse-report___notification-recipient___show']; }; - UserDetailedNotMe: components['schemas']['UserLite'] & components['schemas']['UserDetailedNotMeOnly']; - MeDetailed: components['schemas']['UserLite'] & components['schemas']['UserDetailedNotMeOnly'] & components['schemas']['MeDetailedOnly']; - UserDetailed: components['schemas']['UserDetailedNotMe'] | components['schemas']['MeDetailed']; - User: components['schemas']['UserLite'] | components['schemas']['UserDetailed']; - UserList: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - name: string; - userIds?: string[]; - isPublic: boolean; + '/admin/abuse-report/notification-recipient/update': { + /** + * admin/abuse-report/notification-recipient/update + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient* + */ + post: operations['admin___abuse-report___notification-recipient___update']; }; - Achievement: { - name: components['schemas']['AchievementName']; - unlockedAt: number; + '/admin/abuse-user-reports': { + /** + * admin/abuse-user-reports + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:abuse-user-reports* + */ + post: operations['admin___abuse-user-reports']; }; - /** @enum {string} */ - AchievementName: 'notes1' | 'notes10' | 'notes100' | 'notes500' | 'notes1000' | 'notes5000' | 'notes10000' | 'notes20000' | 'notes30000' | 'notes40000' | 'notes50000' | 'notes60000' | 'notes70000' | 'notes80000' | 'notes90000' | 'notes100000' | 'login3' | 'login7' | 'login15' | 'login30' | 'login60' | 'login100' | 'login200' | 'login300' | 'login400' | 'login500' | 'login600' | 'login700' | 'login800' | 'login900' | 'login1000' | 'passedSinceAccountCreated1' | 'passedSinceAccountCreated2' | 'passedSinceAccountCreated3' | 'loggedInOnBirthday' | 'loggedInOnNewYearsDay' | 'noteClipped1' | 'noteFavorited1' | 'myNoteFavorited1' | 'profileFilled' | 'markedAsCat' | 'following1' | 'following10' | 'following50' | 'following100' | 'following300' | 'followers1' | 'followers10' | 'followers50' | 'followers100' | 'followers300' | 'followers500' | 'followers1000' | 'collectAchievements30' | 'viewAchievements3min' | 'iLoveMisskey' | 'foundTreasure' | 'client30min' | 'client60min' | 'noteDeletedWithin1min' | 'postedAtLateNight' | 'postedAt0min0sec' | 'selfQuote' | 'htl20npm' | 'viewInstanceChart' | 'outputHelloWorldOnScratchpad' | 'open3windows' | 'driveFolderCircularReference' | 'reactWithoutRead' | 'clickedClickHere' | 'justPlainLucky' | 'setNameToSyuilo' | 'cookieClicked' | 'brainDiver' | 'smashTestNotificationButton' | 'tutorialCompleted' | 'bubbleGameExplodingHead' | 'bubbleGameDoubleExplodingHead'; - Ad: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - expiresAt: string; - /** Format: date-time */ - startsAt: string; - place: string; - priority: string; - ratio: number; - url: string; - imageUrl: string; - memo: string; - dayOfWeek: number; + '/admin/accounts/create': { + /** + * admin/accounts/create + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['admin___accounts___create']; }; - Announcement: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - /** Format: date-time */ - updatedAt: string | null; - text: string; - title: string; - imageUrl: string | null; - /** @enum {string} */ - icon: 'info' | 'warning' | 'error' | 'success'; - /** @enum {string} */ - display: 'dialog' | 'normal' | 'banner'; - needConfirmationToRead: boolean; - silence: boolean; - forYou: boolean; - isRead?: boolean; + '/admin/accounts/delete': { + /** + * admin/accounts/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:account* + */ + post: operations['admin___accounts___delete']; }; - App: { - id: string; - name: string; - callbackUrl: string | null; - permission: string[]; - secret?: string; - isAuthorized?: boolean; + '/admin/accounts/find-by-email': { + /** + * admin/accounts/find-by-email + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:account* + */ + post: operations['admin___accounts___find-by-email']; }; - Note: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - /** Format: date-time */ - deletedAt?: string | null; - text: string | null; - cw?: string | null; - /** Format: id */ - userId: string; - user: components['schemas']['UserLite']; - /** - * Format: id - * @example xxxxxxxxxx - */ - replyId?: string | null; - /** - * Format: id - * @example xxxxxxxxxx - */ - renoteId?: string | null; - reply?: components['schemas']['Note'] | null; - renote?: components['schemas']['Note'] | null; - isHidden?: boolean; - /** @enum {string} */ - visibility: 'public' | 'home' | 'followers' | 'specified'; - mentions?: string[]; - visibleUserIds?: string[]; - fileIds?: string[]; - files?: components['schemas']['DriveFile'][]; - tags?: string[]; - poll?: ({ - /** Format: date-time */ - expiresAt?: string | null; - multiple: boolean; - choices: { - isVoted: boolean; - text: string; - votes: number; - }[]; - }) | null; - emojis?: { - [key: string]: string; - }; - /** - * Format: id - * @example xxxxxxxxxx - */ - channelId?: string | null; - channel?: ({ - id: string; - name: string; - color: string; - isSensitive: boolean; - allowRenoteToExternal: boolean; - userId: string | null; - }) | null; - localOnly?: boolean; - /** @enum {string|null} */ - reactionAcceptance: 'likeOnly' | 'likeOnlyForRemote' | 'nonSensitiveOnly' | 'nonSensitiveOnlyForLocalLikeOnlyForRemote' | null; - reactionEmojis: { - [key: string]: string; - }; - reactions: { - [key: string]: number; - }; - reactionCount: number; - renoteCount: number; - repliesCount: number; - uri?: string; - url?: string; - reactionAndUserPairCache?: string[]; - clippedCount?: number; - hasPoll?: boolean; - myReaction?: string | null; + '/admin/ad/create': { + /** + * admin/ad/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:ad* + */ + post: operations['admin___ad___create']; }; - NoteReaction: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - user: components['schemas']['UserLite']; - type: string; + '/admin/ad/delete': { + /** + * admin/ad/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:ad* + */ + post: operations['admin___ad___delete']; }; - NoteFavorite: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - note: components['schemas']['Note']; - /** Format: id */ - noteId: string; + '/admin/ad/list': { + /** + * admin/ad/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:ad* + */ + post: operations['admin___ad___list']; }; - Notification: { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'note'; - user: components['schemas']['UserLite']; - /** Format: id */ - userId: string; - note: components['schemas']['Note']; - } | { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'mention'; - user: components['schemas']['UserLite']; - /** Format: id */ - userId: string; - note: components['schemas']['Note']; - } | { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'reply'; - user: components['schemas']['UserLite']; - /** Format: id */ - userId: string; - note: components['schemas']['Note']; - } | { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'renote'; - user: components['schemas']['UserLite']; - /** Format: id */ - userId: string; - note: components['schemas']['Note']; - } | { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'quote'; - user: components['schemas']['UserLite']; - /** Format: id */ - userId: string; - note: components['schemas']['Note']; - } | { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'reaction'; - user: components['schemas']['UserLite']; - /** Format: id */ - userId: string; - note: components['schemas']['Note']; - reaction: string; - } | { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'pollEnded'; - user: components['schemas']['UserLite']; - /** Format: id */ - userId: string; - note: components['schemas']['Note']; - } | { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'follow'; - user: components['schemas']['UserLite']; - /** Format: id */ - userId: string; - } | { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'receiveFollowRequest'; - user: components['schemas']['UserLite']; - /** Format: id */ - userId: string; - } | ({ - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'followRequestAccepted'; - user: components['schemas']['UserLite']; - /** Format: id */ - userId: string; - message: string | null; - }) | { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'roleAssigned'; - role: components['schemas']['Role']; - } | { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'chatRoomInvitationReceived'; - invitation: components['schemas']['ChatRoomInvitation']; - } | { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'achievementEarned'; - achievement: components['schemas']['AchievementName']; - } | ({ - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'exportCompleted'; - /** @enum {string} */ - exportedEntity: 'antenna' | 'blocking' | 'clip' | 'customEmoji' | 'favorite' | 'following' | 'muting' | 'note' | 'userList'; - /** Format: id */ - fileId: string; - }) | { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'login'; - } | { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'createToken'; - } | ({ - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'app'; - body: string; - header: string | null; - icon: string | null; - }) | { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'reaction:grouped'; - note: components['schemas']['Note']; - reactions: { - user: components['schemas']['UserLite']; - reaction: string; - }[]; - } | { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'renote:grouped'; - note: components['schemas']['Note']; - users: components['schemas']['UserLite'][]; - } | { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @enum {string} */ - type: 'test'; + '/admin/ad/update': { + /** + * admin/ad/update + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:ad* + */ + post: operations['admin___ad___update']; }; - DriveFile: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - /** @example 192.jpg */ - name: string; - /** @example image/jpeg */ - type: string; - /** - * Format: md5 - * @example 15eca7fba0480996e2245f5185bf39f2 - */ - md5: string; - /** @example 51469 */ - size: number; - isSensitive: boolean; - blurhash: string | null; - properties: { - /** @example 1280 */ - width?: number; - /** @example 720 */ - height?: number; - /** @example 8 */ - orientation?: number; - /** @example rgb(40,65,87) */ - avgColor?: string; - }; - /** Format: url */ - url: string; - /** Format: url */ - thumbnailUrl: string | null; - comment: string | null; - /** - * Format: id - * @example xxxxxxxxxx - */ - folderId: string | null; - folder?: components['schemas']['DriveFolder'] | null; - /** - * Format: id - * @example xxxxxxxxxx - */ - userId: string | null; - user?: components['schemas']['UserLite'] | null; + '/admin/announcements/create': { + /** + * admin/announcements/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:announcements* + */ + post: operations['admin___announcements___create']; }; - DriveFolder: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - name: string; - /** - * Format: id - * @example xxxxxxxxxx - */ - parentId: string | null; - foldersCount?: number; - filesCount?: number; - parent?: components['schemas']['DriveFolder'] | null; + '/admin/announcements/delete': { + /** + * admin/announcements/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:announcements* + */ + post: operations['admin___announcements___delete']; }; - Following: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - /** Format: id */ - followeeId: string; - /** Format: id */ - followerId: string; - followee?: components['schemas']['UserDetailedNotMe']; - follower?: components['schemas']['UserDetailedNotMe']; + '/admin/announcements/list': { + /** + * admin/announcements/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:announcements* + */ + post: operations['admin___announcements___list']; }; - Muting: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - /** Format: date-time */ - expiresAt: string | null; - /** Format: id */ - muteeId: string; - mutee: components['schemas']['UserDetailedNotMe']; + '/admin/announcements/update': { + /** + * admin/announcements/update + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:announcements* + */ + post: operations['admin___announcements___update']; }; - RenoteMuting: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - /** Format: id */ - muteeId: string; - mutee: components['schemas']['UserDetailedNotMe']; + '/admin/avatar-decorations/create': { + /** + * admin/avatar-decorations/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:avatar-decorations* + */ + post: operations['admin___avatar-decorations___create']; }; - Blocking: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - /** Format: id */ - blockeeId: string; - blockee: components['schemas']['UserDetailedNotMe']; + '/admin/avatar-decorations/delete': { + /** + * admin/avatar-decorations/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:avatar-decorations* + */ + post: operations['admin___avatar-decorations___delete']; }; - Hashtag: { - /** @example misskey */ - tag: string; - mentionedUsersCount: number; - mentionedLocalUsersCount: number; - mentionedRemoteUsersCount: number; - attachedUsersCount: number; - attachedLocalUsersCount: number; - attachedRemoteUsersCount: number; + '/admin/avatar-decorations/list': { + /** + * admin/avatar-decorations/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:avatar-decorations* + */ + post: operations['admin___avatar-decorations___list']; }; - InviteCode: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** @example GR6S02ERUA5VR */ - code: string; - /** Format: date-time */ - expiresAt: string | null; - /** Format: date-time */ - createdAt: string; - createdBy: components['schemas']['UserLite'] | null; - usedBy: components['schemas']['UserLite'] | null; - /** Format: date-time */ - usedAt: string | null; - used: boolean; + '/admin/avatar-decorations/update': { + /** + * admin/avatar-decorations/update + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:avatar-decorations* + */ + post: operations['admin___avatar-decorations___update']; }; - Page: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - /** Format: date-time */ - updatedAt: string; - /** Format: id */ - userId: string; - user: components['schemas']['UserLite']; - content: components['schemas']['PageBlock'][]; - variables: Record[]; - title: string; - name: string; - summary: string | null; - hideTitleWhenPinned: boolean; - alignCenter: boolean; - font: string; - script: string; - eyeCatchingImageId: string | null; - eyeCatchingImage: components['schemas']['DriveFile'] | null; - attachedFiles: components['schemas']['DriveFile'][]; - likedCount: number; - isLiked?: boolean; + '/admin/captcha/current': { + /** + * admin/captcha/current + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:meta* + */ + post: operations['admin___captcha___current']; }; - PageBlock: OneOf<[{ - id: string; - /** @enum {string} */ - type: 'text'; - text: string; - }, { - id: string; - /** @enum {string} */ - type: 'section'; - title: string; - children: components['schemas']['PageBlock'][]; - }, { - id: string; - /** @enum {string} */ - type: 'image'; - fileId: string | null; - }, { - id: string; - /** @enum {string} */ - type: 'note'; - detailed: boolean; - note: string | null; - }]>; - Channel: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - /** Format: date-time */ - lastNotedAt: string | null; - name: string; - description: string | null; - /** Format: id */ - userId: string | null; - /** Format: url */ - bannerUrl: string | null; - pinnedNoteIds: string[]; - color: string; - isArchived: boolean; - usersCount: number; - notesCount: number; - isSensitive: boolean; - allowRenoteToExternal: boolean; - isFollowing?: boolean; - isFavorited?: boolean; - pinnedNotes?: components['schemas']['Note'][]; + '/admin/captcha/save': { + /** + * admin/captcha/save + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:meta* + */ + post: operations['admin___captcha___save']; }; - QueueCount: { - waiting: number; - active: number; - completed: number; - failed: number; - delayed: number; + '/admin/delete-account': { + /** + * admin/delete-account + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:delete-account* + */ + post: operations['admin___delete-account']; }; - QueueMetrics: { - meta: { - count: number; - prevTS: number; - prevCount: number; - }; - data: number[]; - count: number; + '/admin/delete-all-files-of-a-user': { + /** + * admin/delete-all-files-of-a-user + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:delete-all-files-of-a-user* + */ + post: operations['admin___delete-all-files-of-a-user']; }; - QueueJob: { - id: string; - name: string; - data: Record; - opts: Record; - timestamp: number; - processedOn?: number; - processedBy?: string; - finishedOn?: number; - progress: Record; - attempts: number; - delay: number; - failedReason: string; - stacktrace: string[]; - returnValue: Record; - isFailed: boolean; + '/admin/drive/clean-remote-files': { + /** + * admin/drive/clean-remote-files + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:drive* + */ + post: operations['admin___drive___clean-remote-files']; }; - Antenna: { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - name: string; - keywords: string[][]; - excludeKeywords: string[][]; - /** @enum {string} */ - src: 'home' | 'all' | 'users' | 'list' | 'users_blacklist'; - /** Format: id */ - userListId: string | null; - users: string[]; - /** @default false */ - caseSensitive: boolean; - /** @default false */ - localOnly: boolean; - /** @default false */ - excludeBots: boolean; - /** @default false */ - withReplies: boolean; - withFile: boolean; - isActive: boolean; - /** @default false */ - hasUnreadNote: boolean; - /** @default false */ - notify: boolean; - /** @default false */ - excludeNotesInSensitiveChannel: boolean; + '/admin/drive/cleanup': { + /** + * admin/drive/cleanup + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:drive* + */ + post: operations['admin___drive___cleanup']; }; - Clip: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - /** Format: date-time */ - lastClippedAt: string | null; - /** Format: id */ - userId: string; - user: components['schemas']['UserLite']; - name: string; - description: string | null; - isPublic: boolean; - favoritedCount: number; - isFavorited?: boolean; - notesCount?: number; + '/admin/drive/files': { + /** + * admin/drive/files + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:drive* + */ + post: operations['admin___drive___files']; }; - FederationInstance: { - /** Format: id */ - id: string; - /** Format: date-time */ - firstRetrievedAt: string; - /** @example misskey.example.com */ - host: string; - usersCount: number; - notesCount: number; - followingCount: number; - followersCount: number; - isNotResponding: boolean; - isSuspended: boolean; - /** @enum {string} */ - suspensionState: 'none' | 'manuallySuspended' | 'goneSuspended' | 'autoSuspendedForNotResponding' | 'softwareSuspended'; - isBlocked: boolean; - /** @example misskey */ - softwareName: string | null; - softwareVersion: string | null; - /** @example true */ - openRegistrations: boolean | null; - name: string | null; - description: string | null; - maintainerName: string | null; - maintainerEmail: string | null; - isSilenced: boolean; - isMediaSilenced: boolean; - /** Format: url */ - iconUrl: string | null; - /** Format: url */ - faviconUrl: string | null; - themeColor: string | null; - /** Format: date-time */ - infoUpdatedAt: string | null; - /** Format: date-time */ - latestRequestReceivedAt: string | null; - moderationNote?: string | null; + '/admin/drive/show-file': { + /** + * admin/drive/show-file + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:drive* + */ + post: operations['admin___drive___show-file']; }; - GalleryPost: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - /** Format: date-time */ - updatedAt: string; - /** Format: id */ - userId: string; - user: components['schemas']['UserLite']; - title: string; - description: string | null; - fileIds?: string[]; - files?: components['schemas']['DriveFile'][]; - tags?: string[]; - isSensitive: boolean; - likedCount: number; - isLiked?: boolean; + '/admin/emoji/add': { + /** + * admin/emoji/add + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* + */ + post: operations['admin___emoji___add']; }; - EmojiSimple: { - aliases: string[]; - name: string; - category: string | null; - url: string; - localOnly?: boolean; - isSensitive?: boolean; - roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; + '/admin/emoji/add-aliases-bulk': { + /** + * admin/emoji/add-aliases-bulk + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* + */ + post: operations['admin___emoji___add-aliases-bulk']; }; - EmojiDetailed: { - /** Format: id */ - id: string; - aliases: string[]; - name: string; - category: string | null; - /** @description The local host is represented with `null`. */ - host: string | null; - url: string; - license: string | null; - isSensitive: boolean; - localOnly: boolean; - roleIdsThatCanBeUsedThisEmojiAsReaction: string[]; + '/admin/emoji/copy': { + /** + * admin/emoji/copy + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* + */ + post: operations['admin___emoji___copy']; }; - EmojiDetailedAdmin: { - /** Format: id */ - id: string; - /** Format: date-time */ - updatedAt: string | null; - name: string; - /** @description The local host is represented with `null`. */ - host: string | null; - publicUrl: string; - originalUrl: string; - uri: string | null; - type: string | null; - aliases: string[]; - category: string | null; - license: string | null; - localOnly: boolean; - isSensitive: boolean; - roleIdsThatCanBeUsedThisEmojiAsReaction: { - /** Format: misskey:id */ - id: string; - name: string; - }[]; + '/admin/emoji/delete': { + /** + * admin/emoji/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* + */ + post: operations['admin___emoji___delete']; }; - Flash: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - /** Format: date-time */ - updatedAt: string; - /** Format: id */ - userId: string; - user: components['schemas']['UserLite']; - title: string; - summary: string; - script: string; - /** @enum {string} */ - visibility: 'private' | 'public'; - likedCount: number | null; - isLiked?: boolean; + '/admin/emoji/delete-bulk': { + /** + * admin/emoji/delete-bulk + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* + */ + post: operations['admin___emoji___delete-bulk']; }; - Signin: { - id: string; - /** Format: date-time */ - createdAt: string; - ip: string; - headers: Record; - success: boolean; + '/admin/emoji/import-zip': { + /** + * admin/emoji/import-zip + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['admin___emoji___import-zip']; }; - RoleCondFormulaLogics: { - id: string; - /** @enum {string} */ - type: 'and' | 'or'; - values: components['schemas']['RoleCondFormulaValue'][]; + '/admin/emoji/list': { + /** + * admin/emoji/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:emoji* + */ + post: operations['admin___emoji___list']; }; - RoleCondFormulaValueNot: { - id: string; - /** @enum {string} */ - type: 'not'; - value: components['schemas']['RoleCondFormulaValue']; + '/admin/emoji/list-remote': { + /** + * admin/emoji/list-remote + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:emoji* + */ + post: operations['admin___emoji___list-remote']; }; - RoleCondFormulaValueIsLocalOrRemote: { - id: string; - /** @enum {string} */ - type: 'isLocal' | 'isRemote'; + '/admin/emoji/remove-aliases-bulk': { + /** + * admin/emoji/remove-aliases-bulk + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* + */ + post: operations['admin___emoji___remove-aliases-bulk']; }; - RoleCondFormulaValueUserSettingBooleanSchema: { - id: string; - /** @enum {string} */ - type: 'isSuspended' | 'isLocked' | 'isBot' | 'isCat' | 'isExplorable'; + '/admin/emoji/set-aliases-bulk': { + /** + * admin/emoji/set-aliases-bulk + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* + */ + post: operations['admin___emoji___set-aliases-bulk']; }; - RoleCondFormulaValueAssignedRole: { - id: string; - /** @enum {string} */ - type: 'roleAssignedTo'; - /** - * Format: id - * @example xxxxxxxxxx - */ - roleId: string; + '/admin/emoji/set-category-bulk': { + /** + * admin/emoji/set-category-bulk + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* + */ + post: operations['admin___emoji___set-category-bulk']; }; - RoleCondFormulaValueCreated: { - id: string; - /** @enum {string} */ - type: 'createdLessThan' | 'createdMoreThan'; - sec: number; + '/admin/emoji/set-license-bulk': { + /** + * admin/emoji/set-license-bulk + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* + */ + post: operations['admin___emoji___set-license-bulk']; }; - RoleCondFormulaFollowersOrFollowingOrNotes: { - id: string; - /** @enum {string} */ - type: 'followersLessThanOrEq' | 'followersMoreThanOrEq' | 'followingLessThanOrEq' | 'followingMoreThanOrEq' | 'notesLessThanOrEq' | 'notesMoreThanOrEq'; - value: number; + '/admin/emoji/update': { + /** + * admin/emoji/update + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* + */ + post: operations['admin___emoji___update']; }; - RoleCondFormulaValue: components['schemas']['RoleCondFormulaLogics'] | components['schemas']['RoleCondFormulaValueNot'] | components['schemas']['RoleCondFormulaValueIsLocalOrRemote'] | components['schemas']['RoleCondFormulaValueUserSettingBooleanSchema'] | components['schemas']['RoleCondFormulaValueAssignedRole'] | components['schemas']['RoleCondFormulaValueCreated'] | components['schemas']['RoleCondFormulaFollowersOrFollowingOrNotes']; - RoleLite: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** @example New Role */ - name: string; - /** @example #000000 */ - color: string | null; - iconUrl: string | null; - description: string; - /** @example false */ - isModerator: boolean; - /** @example false */ - isAdministrator: boolean; - /** @example 0 */ - displayOrder: number; + '/admin/federation/delete-all-files': { + /** + * admin/federation/delete-all-files + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:federation* + */ + post: operations['admin___federation___delete-all-files']; }; - Role: components['schemas']['RoleLite'] & ({ - /** Format: date-time */ - createdAt: string; - /** Format: date-time */ - updatedAt: string; - /** @enum {string} */ - target: 'manual' | 'conditional'; - condFormula: components['schemas']['RoleCondFormulaValue']; - /** @example false */ - isPublic: boolean; - /** @example false */ - isExplorable: boolean; - /** @example false */ - asBadge: boolean; - /** @example false */ - preserveAssignmentOnMoveAccount: boolean; - /** @example false */ - canEditMembersByModerator: boolean; - policies: { - [key: string]: { - value?: number | boolean; - priority?: number; - useDefault?: boolean; - }; - }; - usersCount: number; - }); - RolePolicies: { - gtlAvailable: boolean; - ltlAvailable: boolean; - canPublicNote: boolean; - mentionLimit: number; - canInvite: boolean; - inviteLimit: number; - inviteLimitCycle: number; - inviteExpirationTime: number; - canManageCustomEmojis: boolean; - canManageAvatarDecorations: boolean; - canSearchNotes: boolean; - canUseTranslator: boolean; - canHideAds: boolean; - driveCapacityMb: number; - maxFileSizeMb: number; - uploadableFileTypes: string[]; - alwaysMarkNsfw: boolean; - canUpdateBioMedia: boolean; - pinLimit: number; - antennaLimit: number; - wordMuteLimit: number; - webhookLimit: number; - clipLimit: number; - noteEachClipsLimit: number; - userListLimit: number; - userEachUserListsLimit: number; - rateLimitFactor: number; - avatarDecorationLimit: number; - canImportAntennas: boolean; - canImportBlocking: boolean; - canImportFollowing: boolean; - canImportMuting: boolean; - canImportUserLists: boolean; - /** @enum {string} */ - chatAvailability: 'available' | 'readonly' | 'unavailable'; + '/admin/federation/refresh-remote-instance-metadata': { + /** + * admin/federation/refresh-remote-instance-metadata + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:federation* + */ + post: operations['admin___federation___refresh-remote-instance-metadata']; }; - ReversiGameLite: { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** Format: date-time */ - startedAt: string | null; - /** Format: date-time */ - endedAt: string | null; - isStarted: boolean; - isEnded: boolean; - /** Format: id */ - user1Id: string; - /** Format: id */ - user2Id: string; - user1: components['schemas']['UserLite']; - user2: components['schemas']['UserLite']; - /** Format: id */ - winnerId: string | null; - winner: components['schemas']['UserLite'] | null; - /** Format: id */ - surrenderedUserId: string | null; - /** Format: id */ - timeoutUserId: string | null; - black: number | null; - bw: string; - noIrregularRules: boolean; - isLlotheo: boolean; - canPutEverywhere: boolean; - loopedBoard: boolean; - timeLimitForEachTurn: number; + '/admin/federation/remove-all-following': { + /** + * admin/federation/remove-all-following + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:federation* + */ + post: operations['admin___federation___remove-all-following']; }; - ReversiGameDetailed: { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** Format: date-time */ - startedAt: string | null; - /** Format: date-time */ - endedAt: string | null; - isStarted: boolean; - isEnded: boolean; - form1: Record | null; - form2: Record | null; - user1Ready: boolean; - user2Ready: boolean; - /** Format: id */ - user1Id: string; - /** Format: id */ - user2Id: string; - user1: components['schemas']['UserLite']; - user2: components['schemas']['UserLite']; - /** Format: id */ - winnerId: string | null; - winner: components['schemas']['UserLite'] | null; - /** Format: id */ - surrenderedUserId: string | null; - /** Format: id */ - timeoutUserId: string | null; - black: number | null; - bw: string; - noIrregularRules: boolean; - isLlotheo: boolean; - canPutEverywhere: boolean; - loopedBoard: boolean; - timeLimitForEachTurn: number; - logs: number[][]; - map: string[]; + '/admin/federation/update-instance': { + /** + * admin/federation/update-instance + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:federation* + */ + post: operations['admin___federation___update-instance']; }; - MetaLite: { - maintainerName: string | null; - maintainerEmail: string | null; - version: string; - providesTarball: boolean; - name: string | null; - shortName: string | null; - /** - * Format: url - * @example https://misskey.example.com - */ - uri: string; - description: string | null; - langs: string[]; - tosUrl: string | null; - /** @default https://github.com/misskey-dev/misskey */ - repositoryUrl: string | null; - /** @default https://github.com/misskey-dev/misskey/issues/new */ - feedbackUrl: string | null; - defaultDarkTheme: string | null; - defaultLightTheme: string | null; - disableRegistration: boolean; - emailRequiredForSignup: boolean; - enableHcaptcha: boolean; - hcaptchaSiteKey: string | null; - enableMcaptcha: boolean; - mcaptchaSiteKey: string | null; - mcaptchaInstanceUrl: string | null; - enableRecaptcha: boolean; - recaptchaSiteKey: string | null; - enableTurnstile: boolean; - turnstileSiteKey: string | null; - enableTestcaptcha: boolean; - googleAnalyticsMeasurementId: string | null; - swPublickey: string | null; - /** @default /assets/ai.png */ - mascotImageUrl: string; - bannerUrl: string | null; - serverErrorImageUrl: string | null; - infoImageUrl: string | null; - notFoundImageUrl: string | null; - iconUrl: string | null; - maxNoteTextLength: number; - ads: { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: url */ - url: string; - place: string; - ratio: number; - /** Format: url */ - imageUrl: string; - dayOfWeek: number; - }[]; - /** @default 0 */ - notesPerOneAd: number; - enableEmail: boolean; - enableServiceWorker: boolean; - translatorAvailable: boolean; - sentryForFrontend: ({ - options: { - dsn: string; - [key: string]: unknown; - }; - vueIntegration?: { - [key: string]: unknown; - } | null; - browserTracingIntegration?: { - [key: string]: unknown; - } | null; - replayIntegration?: { - [key: string]: unknown; - } | null; - }) | null; - mediaProxy: string; - enableUrlPreview: boolean; - backgroundImageUrl: string | null; - impressumUrl: string | null; - logoImageUrl: string | null; - privacyPolicyUrl: string | null; - inquiryUrl: string | null; - serverRules: string[]; - themeColor: string | null; - policies: components['schemas']['RolePolicies']; - /** - * @default local - * @enum {string} - */ - noteSearchableScope: 'local' | 'global'; - maxFileSize: number; - /** @enum {string} */ - federation: 'all' | 'specified' | 'none'; + '/admin/forward-abuse-user-report': { + /** + * admin/forward-abuse-user-report + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:resolve-abuse-user-report* + */ + post: operations['admin___forward-abuse-user-report']; }; - MetaDetailedOnly: { - features?: { - registration: boolean; - emailRequiredForSignup: boolean; - localTimeline: boolean; - globalTimeline: boolean; - hcaptcha: boolean; - turnstile: boolean; - recaptcha: boolean; - objectStorage: boolean; - serviceWorker: boolean; - /** @default true */ - miauth?: boolean; - }; - proxyAccountName: string | null; - /** @example false */ - requireSetup: boolean; - cacheRemoteFiles: boolean; - cacheRemoteSensitiveFiles: boolean; + '/admin/get-index-stats': { + /** + * admin/get-index-stats + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:index-stats* + */ + post: operations['admin___get-index-stats']; }; - MetaDetailed: components['schemas']['MetaLite'] & components['schemas']['MetaDetailedOnly']; - SystemWebhook: { - id: string; - isActive: boolean; - /** Format: date-time */ - updatedAt: string; - /** Format: date-time */ - latestSentAt: string | null; - latestStatus: number | null; - name: string; - on: ('abuseReport' | 'abuseReportResolved' | 'userCreated' | 'inactiveModeratorsWarning' | 'inactiveModeratorsInvitationOnlyChanged')[]; - url: string; - secret: string; + '/admin/get-table-stats': { + /** + * admin/get-table-stats + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:table-stats* + */ + post: operations['admin___get-table-stats']; }; - AbuseReportNotificationRecipient: { - id: string; - isActive: boolean; - /** Format: date-time */ - updatedAt: string; - name: string; - /** @enum {string} */ - method: 'email' | 'webhook'; - userId?: string; - user?: components['schemas']['UserLite']; - systemWebhookId?: string; - systemWebhook?: components['schemas']['SystemWebhook']; + '/admin/get-user-ips': { + /** + * admin/get-user-ips + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:user-ips* + */ + post: operations['admin___get-user-ips']; }; - ChatMessage: { - id: string; - /** Format: date-time */ - createdAt: string; - fromUserId: string; - fromUser: components['schemas']['UserLite']; - toUserId?: string | null; - toUser?: components['schemas']['UserLite'] | null; - toRoomId?: string | null; - toRoom?: components['schemas']['ChatRoom'] | null; - text?: string | null; - fileId?: string | null; - file?: components['schemas']['DriveFile'] | null; - isRead?: boolean; - reactions: { - reaction: string; - user: components['schemas']['UserLite']; - }[]; + '/admin/invite/create': { + /** + * admin/invite/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:invite-codes* + */ + post: operations['admin___invite___create']; }; - ChatMessageLite: { - id: string; - /** Format: date-time */ - createdAt: string; - fromUserId: string; - fromUser?: components['schemas']['UserLite']; - toUserId?: string | null; - toRoomId?: string | null; - text?: string | null; - fileId?: string | null; - file?: components['schemas']['DriveFile'] | null; - reactions: ({ - reaction: string; - user?: components['schemas']['UserLite'] | null; - })[]; + '/admin/invite/list': { + /** + * admin/invite/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:invite-codes* + */ + post: operations['admin___invite___list']; }; - ChatMessageLiteFor1on1: { - id: string; - /** Format: date-time */ - createdAt: string; - fromUserId: string; - toUserId: string; - text?: string | null; - fileId?: string | null; - file?: components['schemas']['DriveFile'] | null; - reactions: { - reaction: string; - }[]; + '/admin/meta': { + /** + * admin/meta + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:meta* + */ + post: operations['admin___meta']; }; - ChatMessageLiteForRoom: { - id: string; - /** Format: date-time */ - createdAt: string; - fromUserId: string; - fromUser: components['schemas']['UserLite']; - toRoomId: string; - text?: string | null; - fileId?: string | null; - file?: components['schemas']['DriveFile'] | null; - reactions: { - reaction: string; - user: components['schemas']['UserLite']; - }[]; + '/admin/promo/create': { + /** + * admin/promo/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:promo* + */ + post: operations['admin___promo___create']; }; - ChatRoom: { - id: string; - /** Format: date-time */ - createdAt: string; - ownerId: string; - owner: components['schemas']['UserLite']; - name: string; - description: string; - isMuted?: boolean; - invitationExists?: boolean; + '/admin/queue/clear': { + /** + * admin/queue/clear + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:queue* + */ + post: operations['admin___queue___clear']; }; - ChatRoomInvitation: { - id: string; - /** Format: date-time */ - createdAt: string; - userId: string; - user: components['schemas']['UserLite']; - roomId: string; - room: components['schemas']['ChatRoom']; + '/admin/queue/deliver-delayed': { + /** + * admin/queue/deliver-delayed + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:queue* + */ + post: operations['admin___queue___deliver-delayed']; }; - ChatRoomMembership: { - id: string; - /** Format: date-time */ - createdAt: string; - userId: string; - user?: components['schemas']['UserLite']; - roomId: string; - room?: components['schemas']['ChatRoom']; + '/admin/queue/inbox-delayed': { + /** + * admin/queue/inbox-delayed + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:queue* + */ + post: operations['admin___queue___inbox-delayed']; + }; + '/admin/queue/jobs': { + /** + * admin/queue/jobs + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:queue* + */ + post: operations['admin___queue___jobs']; + }; + '/admin/queue/promote-jobs': { + /** + * admin/queue/promote-jobs + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:queue* + */ + post: operations['admin___queue___promote-jobs']; + }; + '/admin/queue/queue-stats': { + /** + * admin/queue/queue-stats + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:queue* + */ + post: operations['admin___queue___queue-stats']; + }; + '/admin/queue/queues': { + /** + * admin/queue/queues + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:queue* + */ + post: operations['admin___queue___queues']; + }; + '/admin/queue/remove-job': { + /** + * admin/queue/remove-job + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:queue* + */ + post: operations['admin___queue___remove-job']; + }; + '/admin/queue/retry-job': { + /** + * admin/queue/retry-job + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:queue* + */ + post: operations['admin___queue___retry-job']; + }; + '/admin/queue/show-job': { + /** + * admin/queue/show-job + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:queue* + */ + post: operations['admin___queue___show-job']; + }; + '/admin/queue/stats': { + /** + * admin/queue/stats + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:emoji* + */ + post: operations['admin___queue___stats']; + }; + '/admin/relays/add': { + /** + * admin/relays/add + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:relays* + */ + post: operations['admin___relays___add']; + }; + '/admin/relays/list': { + /** + * admin/relays/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:relays* + */ + post: operations['admin___relays___list']; + }; + '/admin/relays/remove': { + /** + * admin/relays/remove + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:relays* + */ + post: operations['admin___relays___remove']; + }; + '/admin/reset-password': { + /** + * admin/reset-password + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:reset-password* + */ + post: operations['admin___reset-password']; + }; + '/admin/resolve-abuse-user-report': { + /** + * admin/resolve-abuse-user-report + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:resolve-abuse-user-report* + */ + post: operations['admin___resolve-abuse-user-report']; + }; + '/admin/roles/assign': { + /** + * admin/roles/assign + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:roles* + */ + post: operations['admin___roles___assign']; + }; + '/admin/roles/create': { + /** + * admin/roles/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:roles* + */ + post: operations['admin___roles___create']; + }; + '/admin/roles/delete': { + /** + * admin/roles/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:roles* + */ + post: operations['admin___roles___delete']; + }; + '/admin/roles/list': { + /** + * admin/roles/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:roles* + */ + post: operations['admin___roles___list']; + }; + '/admin/roles/show': { + /** + * admin/roles/show + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:roles* + */ + post: operations['admin___roles___show']; + }; + '/admin/roles/unassign': { + /** + * admin/roles/unassign + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:roles* + */ + post: operations['admin___roles___unassign']; + }; + '/admin/roles/update': { + /** + * admin/roles/update + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:roles* + */ + post: operations['admin___roles___update']; + }; + '/admin/roles/update-default-policies': { + /** + * admin/roles/update-default-policies + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:roles* + */ + post: operations['admin___roles___update-default-policies']; + }; + '/admin/roles/users': { + /** + * admin/roles/users + * @description No description provided. + * + * **Credential required**: *No* / **Permission**: *read:admin:roles* + */ + post: operations['admin___roles___users']; + }; + '/admin/send-email': { + /** + * admin/send-email + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:send-email* + */ + post: operations['admin___send-email']; + }; + '/admin/server-info': { + /** + * admin/server-info + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:server-info* + */ + post: operations['admin___server-info']; + }; + '/admin/show-moderation-logs': { + /** + * admin/show-moderation-logs + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:show-moderation-log* + */ + post: operations['admin___show-moderation-logs']; + }; + '/admin/show-user': { + /** + * admin/show-user + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:show-user* + */ + post: operations['admin___show-user']; + }; + '/admin/show-users': { + /** + * admin/show-users + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:show-user* + */ + post: operations['admin___show-users']; + }; + '/admin/suspend-user': { + /** + * admin/suspend-user + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:suspend-user* + */ + post: operations['admin___suspend-user']; + }; + '/admin/system-webhook/create': { + /** + * admin/system-webhook/create + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook* + */ + post: operations['admin___system-webhook___create']; + }; + '/admin/system-webhook/delete': { + /** + * admin/system-webhook/delete + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook* + */ + post: operations['admin___system-webhook___delete']; + }; + '/admin/system-webhook/list': { + /** + * admin/system-webhook/list + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook* + */ + post: operations['admin___system-webhook___list']; + }; + '/admin/system-webhook/show': { + /** + * admin/system-webhook/show + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook* + */ + post: operations['admin___system-webhook___show']; + }; + '/admin/system-webhook/test': { + /** + * admin/system-webhook/test + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* / **Permission**: *read:admin:system-webhook* + */ + post: operations['admin___system-webhook___test']; + }; + '/admin/system-webhook/update': { + /** + * admin/system-webhook/update + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook* + */ + post: operations['admin___system-webhook___update']; + }; + '/admin/unset-user-avatar': { + /** + * admin/unset-user-avatar + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:unset-user-avatar* + */ + post: operations['admin___unset-user-avatar']; + }; + '/admin/unset-user-banner': { + /** + * admin/unset-user-banner + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:unset-user-banner* + */ + post: operations['admin___unset-user-banner']; + }; + '/admin/unsuspend-user': { + /** + * admin/unsuspend-user + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:unsuspend-user* + */ + post: operations['admin___unsuspend-user']; + }; + '/admin/update-abuse-user-report': { + /** + * admin/update-abuse-user-report + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:resolve-abuse-user-report* + */ + post: operations['admin___update-abuse-user-report']; + }; + '/admin/update-meta': { + /** + * admin/update-meta + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:meta* + */ + post: operations['admin___update-meta']; + }; + '/admin/update-proxy-account': { + /** + * admin/update-proxy-account + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:account* + */ + post: operations['admin___update-proxy-account']; + }; + '/admin/update-user-note': { + /** + * admin/update-user-note + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:admin:user-note* + */ + post: operations['admin___update-user-note']; + }; + '/announcements': { + /** + * announcements + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['announcements']; + }; + '/announcements/show': { + /** + * announcements/show + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['announcements___show']; + }; + '/antennas/create': { + /** + * antennas/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['antennas___create']; + }; + '/antennas/delete': { + /** + * antennas/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['antennas___delete']; + }; + '/antennas/list': { + /** + * antennas/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['antennas___list']; + }; + '/antennas/notes': { + /** + * antennas/notes + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['antennas___notes']; + }; + '/antennas/show': { + /** + * antennas/show + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['antennas___show']; + }; + '/antennas/update': { + /** + * antennas/update + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['antennas___update']; + }; + '/ap/get': { + /** + * ap/get + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:federation* + */ + post: operations['ap___get']; + }; + '/ap/show': { + /** + * ap/show + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['ap___show']; + }; + '/app/create': { + /** + * app/create + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['app___create']; + }; + '/app/show': { + /** + * app/show + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['app___show']; + }; + '/auth/accept': { + /** + * auth/accept + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['auth___accept']; + }; + '/auth/session/generate': { + /** + * auth/session/generate + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['auth___session___generate']; + }; + '/auth/session/show': { + /** + * auth/session/show + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['auth___session___show']; + }; + '/auth/session/userkey': { + /** + * auth/session/userkey + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['auth___session___userkey']; + }; + '/blocking/create': { + /** + * blocking/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:blocks* + */ + post: operations['blocking___create']; + }; + '/blocking/delete': { + /** + * blocking/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:blocks* + */ + post: operations['blocking___delete']; + }; + '/blocking/list': { + /** + * blocking/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:blocks* + */ + post: operations['blocking___list']; + }; + '/bubble-game/ranking': { + /** + * bubble-game/ranking + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['bubble-game___ranking']; + }; + '/bubble-game/register': { + /** + * bubble-game/register + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['bubble-game___register']; + }; + '/channels/create': { + /** + * channels/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:channels* + */ + post: operations['channels___create']; + }; + '/channels/favorite': { + /** + * channels/favorite + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:channels* + */ + post: operations['channels___favorite']; + }; + '/channels/featured': { + /** + * channels/featured + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['channels___featured']; + }; + '/channels/follow': { + /** + * channels/follow + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:channels* + */ + post: operations['channels___follow']; + }; + '/channels/followed': { + /** + * channels/followed + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:channels* + */ + post: operations['channels___followed']; + }; + '/channels/my-favorites': { + /** + * channels/my-favorites + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:channels* + */ + post: operations['channels___my-favorites']; + }; + '/channels/owned': { + /** + * channels/owned + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:channels* + */ + post: operations['channels___owned']; + }; + '/channels/search': { + /** + * channels/search + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['channels___search']; + }; + '/channels/show': { + /** + * channels/show + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['channels___show']; + }; + '/channels/timeline': { + /** + * channels/timeline + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['channels___timeline']; + }; + '/channels/unfavorite': { + /** + * channels/unfavorite + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:channels* + */ + post: operations['channels___unfavorite']; + }; + '/channels/unfollow': { + /** + * channels/unfollow + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:channels* + */ + post: operations['channels___unfollow']; + }; + '/channels/update': { + /** + * channels/update + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:channels* + */ + post: operations['channels___update']; + }; + '/charts/active-users': { + /** + * charts/active-users + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['charts___active-users']; + }; + '/charts/ap-request': { + /** + * charts/ap-request + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['charts___ap-request']; + }; + '/charts/drive': { + /** + * charts/drive + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['charts___drive']; + }; + '/charts/federation': { + /** + * charts/federation + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['charts___federation']; + }; + '/charts/instance': { + /** + * charts/instance + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['charts___instance']; + }; + '/charts/notes': { + /** + * charts/notes + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['charts___notes']; + }; + '/charts/user/drive': { + /** + * charts/user/drive + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['charts___user___drive']; + }; + '/charts/user/following': { + /** + * charts/user/following + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['charts___user___following']; + }; + '/charts/user/notes': { + /** + * charts/user/notes + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['charts___user___notes']; + }; + '/charts/user/pv': { + /** + * charts/user/pv + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['charts___user___pv']; + }; + '/charts/user/reactions': { + /** + * charts/user/reactions + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['charts___user___reactions']; + }; + '/charts/users': { + /** + * charts/users + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['charts___users']; + }; + '/chat/history': { + /** + * chat/history + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:chat* + */ + post: operations['chat___history']; + }; + '/chat/messages/create-to-room': { + /** + * chat/messages/create-to-room + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:chat* + */ + post: operations['chat___messages___create-to-room']; + }; + '/chat/messages/create-to-user': { + /** + * chat/messages/create-to-user + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:chat* + */ + post: operations['chat___messages___create-to-user']; + }; + '/chat/messages/delete': { + /** + * chat/messages/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:chat* + */ + post: operations['chat___messages___delete']; + }; + '/chat/messages/react': { + /** + * chat/messages/react + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:chat* + */ + post: operations['chat___messages___react']; + }; + '/chat/messages/room-timeline': { + /** + * chat/messages/room-timeline + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:chat* + */ + post: operations['chat___messages___room-timeline']; + }; + '/chat/messages/search': { + /** + * chat/messages/search + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:chat* + */ + post: operations['chat___messages___search']; + }; + '/chat/messages/show': { + /** + * chat/messages/show + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:chat* + */ + post: operations['chat___messages___show']; + }; + '/chat/messages/unreact': { + /** + * chat/messages/unreact + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:chat* + */ + post: operations['chat___messages___unreact']; + }; + '/chat/messages/user-timeline': { + /** + * chat/messages/user-timeline + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:chat* + */ + post: operations['chat___messages___user-timeline']; + }; + '/chat/read-all': { + /** + * chat/read-all + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:chat* + */ + post: operations['chat___read-all']; + }; + '/chat/rooms/create': { + /** + * chat/rooms/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:chat* + */ + post: operations['chat___rooms___create']; + }; + '/chat/rooms/delete': { + /** + * chat/rooms/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:chat* + */ + post: operations['chat___rooms___delete']; + }; + '/chat/rooms/invitations/create': { + /** + * chat/rooms/invitations/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:chat* + */ + post: operations['chat___rooms___invitations___create']; + }; + '/chat/rooms/invitations/ignore': { + /** + * chat/rooms/invitations/ignore + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:chat* + */ + post: operations['chat___rooms___invitations___ignore']; + }; + '/chat/rooms/invitations/inbox': { + /** + * chat/rooms/invitations/inbox + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:chat* + */ + post: operations['chat___rooms___invitations___inbox']; + }; + '/chat/rooms/invitations/outbox': { + /** + * chat/rooms/invitations/outbox + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:chat* + */ + post: operations['chat___rooms___invitations___outbox']; + }; + '/chat/rooms/join': { + /** + * chat/rooms/join + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:chat* + */ + post: operations['chat___rooms___join']; + }; + '/chat/rooms/joining': { + /** + * chat/rooms/joining + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:chat* + */ + post: operations['chat___rooms___joining']; + }; + '/chat/rooms/leave': { + /** + * chat/rooms/leave + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:chat* + */ + post: operations['chat___rooms___leave']; + }; + '/chat/rooms/members': { + /** + * chat/rooms/members + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:chat* + */ + post: operations['chat___rooms___members']; + }; + '/chat/rooms/mute': { + /** + * chat/rooms/mute + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:chat* + */ + post: operations['chat___rooms___mute']; + }; + '/chat/rooms/owned': { + /** + * chat/rooms/owned + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:chat* + */ + post: operations['chat___rooms___owned']; + }; + '/chat/rooms/show': { + /** + * chat/rooms/show + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:chat* + */ + post: operations['chat___rooms___show']; + }; + '/chat/rooms/update': { + /** + * chat/rooms/update + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:chat* + */ + post: operations['chat___rooms___update']; + }; + '/clips/add-note': { + /** + * clips/add-note + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['clips___add-note']; + }; + '/clips/create': { + /** + * clips/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['clips___create']; + }; + '/clips/delete': { + /** + * clips/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['clips___delete']; + }; + '/clips/favorite': { + /** + * clips/favorite + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:clip-favorite* + */ + post: operations['clips___favorite']; + }; + '/clips/list': { + /** + * clips/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['clips___list']; + }; + '/clips/my-favorites': { + /** + * clips/my-favorites + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:clip-favorite* + */ + post: operations['clips___my-favorites']; + }; + '/clips/notes': { + /** + * clips/notes + * @description No description provided. + * + * **Credential required**: *No* / **Permission**: *read:account* + */ + post: operations['clips___notes']; + }; + '/clips/remove-note': { + /** + * clips/remove-note + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['clips___remove-note']; + }; + '/clips/show': { + /** + * clips/show + * @description No description provided. + * + * **Credential required**: *No* / **Permission**: *read:account* + */ + post: operations['clips___show']; + }; + '/clips/unfavorite': { + /** + * clips/unfavorite + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:clip-favorite* + */ + post: operations['clips___unfavorite']; + }; + '/clips/update': { + /** + * clips/update + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['clips___update']; + }; + '/drive': { + /** + * drive + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:drive* + */ + post: operations['drive']; + }; + '/drive/files': { + /** + * drive/files + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:drive* + */ + post: operations['drive___files']; + }; + '/drive/files/attached-notes': { + /** + * drive/files/attached-notes + * @description Find the notes to which the given file is attached. + * + * **Credential required**: *Yes* / **Permission**: *read:drive* + */ + post: operations['drive___files___attached-notes']; + }; + '/drive/files/check-existence': { + /** + * drive/files/check-existence + * @description Check if a given file exists. + * + * **Credential required**: *Yes* / **Permission**: *read:drive* + */ + post: operations['drive___files___check-existence']; + }; + '/drive/files/create': { + /** + * drive/files/create + * @description Upload a new drive file. + * + * **Credential required**: *Yes* / **Permission**: *write:drive* + */ + post: operations['drive___files___create']; + }; + '/drive/files/delete': { + /** + * drive/files/delete + * @description Delete an existing drive file. + * + * **Credential required**: *Yes* / **Permission**: *write:drive* + */ + post: operations['drive___files___delete']; + }; + '/drive/files/find': { + /** + * drive/files/find + * @description Search for a drive file by the given parameters. + * + * **Credential required**: *Yes* / **Permission**: *read:drive* + */ + post: operations['drive___files___find']; + }; + '/drive/files/find-by-hash': { + /** + * drive/files/find-by-hash + * @description Search for a drive file by a hash of the contents. + * + * **Credential required**: *Yes* / **Permission**: *read:drive* + */ + post: operations['drive___files___find-by-hash']; + }; + '/drive/files/move-bulk': { + /** + * drive/files/move-bulk + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:drive* + */ + post: operations['drive___files___move-bulk']; + }; + '/drive/files/show': { + /** + * drive/files/show + * @description Show the properties of a drive file. + * + * **Credential required**: *Yes* / **Permission**: *read:drive* + */ + post: operations['drive___files___show']; + }; + '/drive/files/update': { + /** + * drive/files/update + * @description Update the properties of a drive file. + * + * **Credential required**: *Yes* / **Permission**: *write:drive* + */ + post: operations['drive___files___update']; + }; + '/drive/files/upload-from-url': { + /** + * drive/files/upload-from-url + * @description Request the server to download a new drive file from the specified URL. + * + * **Credential required**: *Yes* / **Permission**: *write:drive* + */ + post: operations['drive___files___upload-from-url']; + }; + '/drive/folders': { + /** + * drive/folders + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:drive* + */ + post: operations['drive___folders']; + }; + '/drive/folders/create': { + /** + * drive/folders/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:drive* + */ + post: operations['drive___folders___create']; + }; + '/drive/folders/delete': { + /** + * drive/folders/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:drive* + */ + post: operations['drive___folders___delete']; + }; + '/drive/folders/find': { + /** + * drive/folders/find + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:drive* + */ + post: operations['drive___folders___find']; + }; + '/drive/folders/show': { + /** + * drive/folders/show + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:drive* + */ + post: operations['drive___folders___show']; + }; + '/drive/folders/update': { + /** + * drive/folders/update + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:drive* + */ + post: operations['drive___folders___update']; + }; + '/drive/stream': { + /** + * drive/stream + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:drive* + */ + post: operations['drive___stream']; + }; + '/email-address/available': { + /** + * email-address/available + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['email-address___available']; + }; + '/emoji': { + /** + * emoji + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['emoji']; + }; + '/emojis': { + /** + * emojis + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['emojis']; + }; + '/endpoint': { + /** + * endpoint + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['endpoint']; + }; + '/endpoints': { + /** + * endpoints + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['endpoints']; + }; + '/export-custom-emojis': { + /** + * export-custom-emojis + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['export-custom-emojis']; + }; + '/federation/followers': { + /** + * federation/followers + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['federation___followers']; + }; + '/federation/following': { + /** + * federation/following + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['federation___following']; + }; + '/federation/instances': { + /** + * federation/instances + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['federation___instances']; + }; + '/federation/show-instance': { + /** + * federation/show-instance + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['federation___show-instance']; + }; + '/federation/stats': { + /** + * federation/stats + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['federation___stats']; + }; + '/federation/update-remote-user': { + /** + * federation/update-remote-user + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['federation___update-remote-user']; + }; + '/federation/users': { + /** + * federation/users + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['federation___users']; + }; + '/fetch-external-resources': { + /** + * fetch-external-resources + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['fetch-external-resources']; + }; + '/fetch-rss': { + /** + * fetch-rss + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['fetch-rss']; + }; + '/flash/create': { + /** + * flash/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:flash* + */ + post: operations['flash___create']; + }; + '/flash/delete': { + /** + * flash/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:flash* + */ + post: operations['flash___delete']; + }; + '/flash/featured': { + /** + * flash/featured + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['flash___featured']; + }; + '/flash/like': { + /** + * flash/like + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:flash-likes* + */ + post: operations['flash___like']; + }; + '/flash/my': { + /** + * flash/my + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:flash* + */ + post: operations['flash___my']; + }; + '/flash/my-likes': { + /** + * flash/my-likes + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:flash-likes* + */ + post: operations['flash___my-likes']; + }; + '/flash/show': { + /** + * flash/show + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['flash___show']; + }; + '/flash/unlike': { + /** + * flash/unlike + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:flash-likes* + */ + post: operations['flash___unlike']; + }; + '/flash/update': { + /** + * flash/update + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:flash* + */ + post: operations['flash___update']; + }; + '/following/create': { + /** + * following/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:following* + */ + post: operations['following___create']; + }; + '/following/delete': { + /** + * following/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:following* + */ + post: operations['following___delete']; + }; + '/following/invalidate': { + /** + * following/invalidate + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:following* + */ + post: operations['following___invalidate']; + }; + '/following/requests/accept': { + /** + * following/requests/accept + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:following* + */ + post: operations['following___requests___accept']; + }; + '/following/requests/cancel': { + /** + * following/requests/cancel + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:following* + */ + post: operations['following___requests___cancel']; + }; + '/following/requests/list': { + /** + * following/requests/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:following* + */ + post: operations['following___requests___list']; + }; + '/following/requests/reject': { + /** + * following/requests/reject + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:following* + */ + post: operations['following___requests___reject']; + }; + '/following/requests/sent': { + /** + * following/requests/sent + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:following* + */ + post: operations['following___requests___sent']; + }; + '/following/update': { + /** + * following/update + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:following* + */ + post: operations['following___update']; + }; + '/following/update-all': { + /** + * following/update-all + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:following* + */ + post: operations['following___update-all']; + }; + '/gallery/featured': { + /** + * gallery/featured + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['gallery___featured']; + }; + '/gallery/popular': { + /** + * gallery/popular + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['gallery___popular']; + }; + '/gallery/posts': { + /** + * gallery/posts + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['gallery___posts']; + }; + '/gallery/posts/create': { + /** + * gallery/posts/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:gallery* + */ + post: operations['gallery___posts___create']; + }; + '/gallery/posts/delete': { + /** + * gallery/posts/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:gallery* + */ + post: operations['gallery___posts___delete']; + }; + '/gallery/posts/like': { + /** + * gallery/posts/like + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:gallery-likes* + */ + post: operations['gallery___posts___like']; + }; + '/gallery/posts/show': { + /** + * gallery/posts/show + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['gallery___posts___show']; + }; + '/gallery/posts/unlike': { + /** + * gallery/posts/unlike + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:gallery-likes* + */ + post: operations['gallery___posts___unlike']; + }; + '/gallery/posts/update': { + /** + * gallery/posts/update + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:gallery* + */ + post: operations['gallery___posts___update']; + }; + '/get-avatar-decorations': { + /** + * get-avatar-decorations + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['get-avatar-decorations']; + }; + '/get-online-users-count': { + /** + * get-online-users-count + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['get-online-users-count']; + }; + '/hashtags/list': { + /** + * hashtags/list + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['hashtags___list']; + }; + '/hashtags/search': { + /** + * hashtags/search + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['hashtags___search']; + }; + '/hashtags/show': { + /** + * hashtags/show + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['hashtags___show']; + }; + '/hashtags/trend': { + /** + * hashtags/trend + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['hashtags___trend']; + }; + '/hashtags/users': { + /** + * hashtags/users + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['hashtags___users']; + }; + '/i': { + /** + * i + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['i']; + }; + '/i/2fa/done': { + /** + * i/2fa/done + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___2fa___done']; + }; + '/i/2fa/key-done': { + /** + * i/2fa/key-done + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___2fa___key-done']; + }; + '/i/2fa/password-less': { + /** + * i/2fa/password-less + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___2fa___password-less']; + }; + '/i/2fa/register': { + /** + * i/2fa/register + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___2fa___register']; + }; + '/i/2fa/register-key': { + /** + * i/2fa/register-key + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___2fa___register-key']; + }; + '/i/2fa/remove-key': { + /** + * i/2fa/remove-key + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___2fa___remove-key']; + }; + '/i/2fa/unregister': { + /** + * i/2fa/unregister + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___2fa___unregister']; + }; + '/i/2fa/update-key': { + /** + * i/2fa/update-key + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___2fa___update-key']; + }; + '/i/apps': { + /** + * i/apps + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___apps']; + }; + '/i/authorized-apps': { + /** + * i/authorized-apps + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___authorized-apps']; + }; + '/i/change-password': { + /** + * i/change-password + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___change-password']; + }; + '/i/claim-achievement': { + /** + * i/claim-achievement + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['i___claim-achievement']; + }; + '/i/delete-account': { + /** + * i/delete-account + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___delete-account']; + }; + '/i/export-antennas': { + /** + * i/export-antennas + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___export-antennas']; + }; + '/i/export-blocking': { + /** + * i/export-blocking + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___export-blocking']; + }; + '/i/export-clips': { + /** + * i/export-clips + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___export-clips']; + }; + '/i/export-favorites': { + /** + * i/export-favorites + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___export-favorites']; + }; + '/i/export-following': { + /** + * i/export-following + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___export-following']; + }; + '/i/export-mute': { + /** + * i/export-mute + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___export-mute']; + }; + '/i/export-notes': { + /** + * i/export-notes + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___export-notes']; + }; + '/i/export-user-lists': { + /** + * i/export-user-lists + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___export-user-lists']; + }; + '/i/favorites': { + /** + * i/favorites + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:favorites* + */ + post: operations['i___favorites']; + }; + '/i/gallery/likes': { + /** + * i/gallery/likes + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:gallery-likes* + */ + post: operations['i___gallery___likes']; + }; + '/i/gallery/posts': { + /** + * i/gallery/posts + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:gallery* + */ + post: operations['i___gallery___posts']; + }; + '/i/import-antennas': { + /** + * i/import-antennas + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___import-antennas']; + }; + '/i/import-blocking': { + /** + * i/import-blocking + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___import-blocking']; + }; + '/i/import-following': { + /** + * i/import-following + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___import-following']; + }; + '/i/import-muting': { + /** + * i/import-muting + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___import-muting']; + }; + '/i/import-user-lists': { + /** + * i/import-user-lists + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___import-user-lists']; + }; + '/i/move': { + /** + * i/move + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___move']; + }; + '/i/notifications': { + /** + * i/notifications + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:notifications* + */ + post: operations['i___notifications']; + }; + '/i/notifications-grouped': { + /** + * i/notifications-grouped + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:notifications* + */ + post: operations['i___notifications-grouped']; + }; + '/i/page-likes': { + /** + * i/page-likes + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:page-likes* + */ + post: operations['i___page-likes']; + }; + '/i/pages': { + /** + * i/pages + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:pages* + */ + post: operations['i___pages']; + }; + '/i/pin': { + /** + * i/pin + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['i___pin']; + }; + '/i/read-announcement': { + /** + * i/read-announcement + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['i___read-announcement']; + }; + '/i/regenerate-token': { + /** + * i/regenerate-token + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___regenerate-token']; + }; + '/i/registry/get': { + /** + * i/registry/get + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['i___registry___get']; + }; + '/i/registry/get-all': { + /** + * i/registry/get-all + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['i___registry___get-all']; + }; + '/i/registry/get-detail': { + /** + * i/registry/get-detail + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['i___registry___get-detail']; + }; + '/i/registry/keys': { + /** + * i/registry/keys + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['i___registry___keys']; + }; + '/i/registry/keys-with-type': { + /** + * i/registry/keys-with-type + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['i___registry___keys-with-type']; + }; + '/i/registry/remove': { + /** + * i/registry/remove + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['i___registry___remove']; + }; + '/i/registry/scopes-with-domain': { + /** + * i/registry/scopes-with-domain + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___registry___scopes-with-domain']; + }; + '/i/registry/set': { + /** + * i/registry/set + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['i___registry___set']; + }; + '/i/revoke-token': { + /** + * i/revoke-token + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___revoke-token']; + }; + '/i/signin-history': { + /** + * i/signin-history + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___signin-history']; + }; + '/i/unpin': { + /** + * i/unpin + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['i___unpin']; + }; + '/i/update': { + /** + * i/update + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['i___update']; + }; + '/i/update-email': { + /** + * i/update-email + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['i___update-email']; + }; + '/i/webhooks/create': { + /** + * i/webhooks/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['i___webhooks___create']; + }; + '/i/webhooks/delete': { + /** + * i/webhooks/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['i___webhooks___delete']; + }; + '/i/webhooks/list': { + /** + * i/webhooks/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['i___webhooks___list']; + }; + '/i/webhooks/show': { + /** + * i/webhooks/show + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['i___webhooks___show']; + }; + '/i/webhooks/test': { + /** + * i/webhooks/test + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['i___webhooks___test']; + }; + '/i/webhooks/update': { + /** + * i/webhooks/update + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['i___webhooks___update']; + }; + '/invite/create': { + /** + * invite/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:invite-codes* + */ + post: operations['invite___create']; + }; + '/invite/delete': { + /** + * invite/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:invite-codes* + */ + post: operations['invite___delete']; + }; + '/invite/limit': { + /** + * invite/limit + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:invite-codes* + */ + post: operations['invite___limit']; + }; + '/invite/list': { + /** + * invite/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:invite-codes* + */ + post: operations['invite___list']; + }; + '/meta': { + /** + * meta + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['meta']; + }; + '/miauth/gen-token': { + /** + * miauth/gen-token + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['miauth___gen-token']; + }; + '/mute/create': { + /** + * mute/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:mutes* + */ + post: operations['mute___create']; + }; + '/mute/delete': { + /** + * mute/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:mutes* + */ + post: operations['mute___delete']; + }; + '/mute/list': { + /** + * mute/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:mutes* + */ + post: operations['mute___list']; + }; + '/my/apps': { + /** + * my/apps + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['my___apps']; + }; + '/notes': { + /** + * notes + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['notes']; + }; + '/notes/children': { + /** + * notes/children + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['notes___children']; + }; + '/notes/clips': { + /** + * notes/clips + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['notes___clips']; + }; + '/notes/conversation': { + /** + * notes/conversation + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['notes___conversation']; + }; + '/notes/create': { + /** + * notes/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:notes* + */ + post: operations['notes___create']; + }; + '/notes/delete': { + /** + * notes/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:notes* + */ + post: operations['notes___delete']; + }; + '/notes/favorites/create': { + /** + * notes/favorites/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:favorites* + */ + post: operations['notes___favorites___create']; + }; + '/notes/favorites/delete': { + /** + * notes/favorites/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:favorites* + */ + post: operations['notes___favorites___delete']; + }; + '/notes/featured': { + /** + * notes/featured + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['notes___featured']; + }; + '/notes/global-timeline': { + /** + * notes/global-timeline + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['notes___global-timeline']; + }; + '/notes/hybrid-timeline': { + /** + * notes/hybrid-timeline + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['notes___hybrid-timeline']; + }; + '/notes/local-timeline': { + /** + * notes/local-timeline + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['notes___local-timeline']; + }; + '/notes/mentions': { + /** + * notes/mentions + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['notes___mentions']; + }; + '/notes/polls/recommendation': { + /** + * notes/polls/recommendation + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['notes___polls___recommendation']; + }; + '/notes/polls/vote': { + /** + * notes/polls/vote + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:votes* + */ + post: operations['notes___polls___vote']; + }; + '/notes/reactions': { + /** + * notes/reactions + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['notes___reactions']; + }; + '/notes/reactions/create': { + /** + * notes/reactions/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:reactions* + */ + post: operations['notes___reactions___create']; + }; + '/notes/reactions/delete': { + /** + * notes/reactions/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:reactions* + */ + post: operations['notes___reactions___delete']; + }; + '/notes/renotes': { + /** + * notes/renotes + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['notes___renotes']; + }; + '/notes/replies': { + /** + * notes/replies + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['notes___replies']; + }; + '/notes/search': { + /** + * notes/search + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['notes___search']; + }; + '/notes/search-by-tag': { + /** + * notes/search-by-tag + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['notes___search-by-tag']; + }; + '/notes/show': { + /** + * notes/show + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['notes___show']; + }; + '/notes/show-partial-bulk': { + /** + * notes/show-partial-bulk + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['notes___show-partial-bulk']; + }; + '/notes/state': { + /** + * notes/state + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['notes___state']; + }; + '/notes/thread-muting/create': { + /** + * notes/thread-muting/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['notes___thread-muting___create']; + }; + '/notes/thread-muting/delete': { + /** + * notes/thread-muting/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['notes___thread-muting___delete']; + }; + '/notes/timeline': { + /** + * notes/timeline + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['notes___timeline']; + }; + '/notes/translate': { + /** + * notes/translate + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['notes___translate']; + }; + '/notes/unrenote': { + /** + * notes/unrenote + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:notes* + */ + post: operations['notes___unrenote']; + }; + '/notes/user-list-timeline': { + /** + * notes/user-list-timeline + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['notes___user-list-timeline']; + }; + '/notifications/create': { + /** + * notifications/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:notifications* + */ + post: operations['notifications___create']; + }; + '/notifications/flush': { + /** + * notifications/flush + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:notifications* + */ + post: operations['notifications___flush']; + }; + '/notifications/mark-all-as-read': { + /** + * notifications/mark-all-as-read + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:notifications* + */ + post: operations['notifications___mark-all-as-read']; + }; + '/notifications/test-notification': { + /** + * notifications/test-notification + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:notifications* + */ + post: operations['notifications___test-notification']; + }; + '/page-push': { + /** + * page-push + * @description No description provided. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['page-push']; + }; + '/pages/create': { + /** + * pages/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:pages* + */ + post: operations['pages___create']; + }; + '/pages/delete': { + /** + * pages/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:pages* + */ + post: operations['pages___delete']; + }; + '/pages/featured': { + /** + * pages/featured + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['pages___featured']; + }; + '/pages/like': { + /** + * pages/like + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:page-likes* + */ + post: operations['pages___like']; + }; + '/pages/show': { + /** + * pages/show + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['pages___show']; + }; + '/pages/unlike': { + /** + * pages/unlike + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:page-likes* + */ + post: operations['pages___unlike']; + }; + '/pages/update': { + /** + * pages/update + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:pages* + */ + post: operations['pages___update']; + }; + '/ping': { + /** + * ping + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['ping']; + }; + '/pinned-users': { + /** + * pinned-users + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['pinned-users']; + }; + '/promo/read': { + /** + * promo/read + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['promo___read']; + }; + '/renote-mute/create': { + /** + * renote-mute/create + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:mutes* + */ + post: operations['renote-mute___create']; + }; + '/renote-mute/delete': { + /** + * renote-mute/delete + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:mutes* + */ + post: operations['renote-mute___delete']; + }; + '/renote-mute/list': { + /** + * renote-mute/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:mutes* + */ + post: operations['renote-mute___list']; + }; + '/request-reset-password': { + /** + * request-reset-password + * @description Request a users password to be reset. + * + * **Credential required**: *No* + */ + post: operations['request-reset-password']; + }; + '/reset-db': { + /** + * reset-db + * @description Only available when running with NODE_ENV=testing. Reset the database and flush Redis. + * + * **Credential required**: *No* + */ + post: operations['reset-db']; + }; + '/reset-password': { + /** + * reset-password + * @description Complete the password reset that was previously requested. + * + * **Credential required**: *No* + */ + post: operations['reset-password']; + }; + '/retention': { + /** + * retention + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['retention']; + }; + '/reversi/cancel-match': { + /** + * reversi/cancel-match + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['reversi___cancel-match']; + }; + '/reversi/games': { + /** + * reversi/games + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['reversi___games']; + }; + '/reversi/invitations': { + /** + * reversi/invitations + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['reversi___invitations']; + }; + '/reversi/match': { + /** + * reversi/match + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['reversi___match']; + }; + '/reversi/show-game': { + /** + * reversi/show-game + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['reversi___show-game']; + }; + '/reversi/surrender': { + /** + * reversi/surrender + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['reversi___surrender']; + }; + '/reversi/verify': { + /** + * reversi/verify + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['reversi___verify']; + }; + '/roles/list': { + /** + * roles/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['roles___list']; + }; + '/roles/notes': { + /** + * roles/notes + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['roles___notes']; + }; + '/roles/show': { + /** + * roles/show + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['roles___show']; + }; + '/roles/users': { + /** + * roles/users + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['roles___users']; + }; + '/server-info': { + /** + * server-info + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['server-info']; + }; + '/stats': { + /** + * stats + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['stats']; + }; + '/sw/register': { + /** + * sw/register + * @description Register to receive push notifications. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['sw___register']; + }; + '/sw/show-registration': { + /** + * sw/show-registration + * @description Check push notification registration exists. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['sw___show-registration']; + }; + '/sw/unregister': { + /** + * sw/unregister + * @description Unregister from receiving push notifications. + * + * **Credential required**: *No* + */ + post: operations['sw___unregister']; + }; + '/sw/update-registration': { + /** + * sw/update-registration + * @description Update push notification registration. + * + * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. + * **Credential required**: *Yes* + */ + post: operations['sw___update-registration']; + }; + '/test': { + /** + * test + * @description Endpoint for testing input validation. + * + * **Credential required**: *No* + */ + post: operations['test']; + }; + '/username/available': { + /** + * username/available + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['username___available']; + }; + '/users': { + /** + * users + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['users']; + }; + '/users/achievements': { + /** + * users/achievements + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['users___achievements']; + }; + '/users/clips': { + /** + * users/clips + * @description Show all clips this user owns. + * + * **Credential required**: *No* + */ + post: operations['users___clips']; + }; + '/users/featured-notes': { + /** + * users/featured-notes + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['users___featured-notes']; + }; + '/users/flashs': { + /** + * users/flashs + * @description Show all flashs this user created. + * + * **Credential required**: *No* + */ + post: operations['users___flashs']; + }; + '/users/followers': { + /** + * users/followers + * @description Show everyone that follows this user. + * + * **Credential required**: *No* + */ + post: operations['users___followers']; + }; + '/users/following': { + /** + * users/following + * @description Show everyone that this user is following. + * + * **Credential required**: *No* + */ + post: operations['users___following']; + }; + '/users/gallery/posts': { + /** + * users/gallery/posts + * @description Show all gallery posts by the given user. + * + * **Credential required**: *No* + */ + post: operations['users___gallery___posts']; + }; + '/users/get-frequently-replied-users': { + /** + * users/get-frequently-replied-users + * @description Get a list of other users that the specified user frequently replies to. + * + * **Credential required**: *No* + */ + post: operations['users___get-frequently-replied-users']; + }; + '/users/lists/create': { + /** + * users/lists/create + * @description Create a new list of users. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['users___lists___create']; + }; + '/users/lists/create-from-public': { + /** + * users/lists/create-from-public + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['users___lists___create-from-public']; + }; + '/users/lists/delete': { + /** + * users/lists/delete + * @description Delete an existing list of users. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['users___lists___delete']; + }; + '/users/lists/favorite': { + /** + * users/lists/favorite + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['users___lists___favorite']; + }; + '/users/lists/get-memberships': { + /** + * users/lists/get-memberships + * @description No description provided. + * + * **Credential required**: *No* / **Permission**: *read:account* + */ + post: operations['users___lists___get-memberships']; + }; + '/users/lists/list': { + /** + * users/lists/list + * @description Show all lists that the authenticated user has created. + * + * **Credential required**: *No* / **Permission**: *read:account* + */ + post: operations['users___lists___list']; + }; + '/users/lists/pull': { + /** + * users/lists/pull + * @description Remove a user from a list. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['users___lists___pull']; + }; + '/users/lists/push': { + /** + * users/lists/push + * @description Add a user to an existing list. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['users___lists___push']; + }; + '/users/lists/show': { + /** + * users/lists/show + * @description Show the properties of a list. + * + * **Credential required**: *No* / **Permission**: *read:account* + */ + post: operations['users___lists___show']; + }; + '/users/lists/unfavorite': { + /** + * users/lists/unfavorite + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['users___lists___unfavorite']; + }; + '/users/lists/update': { + /** + * users/lists/update + * @description Update the properties of a list. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['users___lists___update']; + }; + '/users/lists/update-membership': { + /** + * users/lists/update-membership + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['users___lists___update-membership']; + }; + '/users/notes': { + /** + * users/notes + * @description No description provided. + * + * **Credential required**: *No* + */ + post: operations['users___notes']; + }; + '/users/pages': { + /** + * users/pages + * @description Show all pages this user created. + * + * **Credential required**: *No* + */ + post: operations['users___pages']; + }; + '/users/reactions': { + /** + * users/reactions + * @description Show all reactions this user made. + * + * **Credential required**: *No* + */ + post: operations['users___reactions']; + }; + '/users/recommendation': { + /** + * users/recommendation + * @description Show users that the authenticated user might be interested to follow. + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['users___recommendation']; + }; + '/users/relation': { + /** + * users/relation + * @description Show the different kinds of relations between the authenticated user and the specified user(s). + * + * **Credential required**: *Yes* / **Permission**: *read:account* + */ + post: operations['users___relation']; + }; + '/users/report-abuse': { + /** + * users/report-abuse + * @description File a report. + * + * **Credential required**: *Yes* / **Permission**: *write:report-abuse* + */ + post: operations['users___report-abuse']; + }; + '/users/search': { + /** + * users/search + * @description Search for users. + * + * **Credential required**: *No* + */ + post: operations['users___search']; + }; + '/users/search-by-username-and-host': { + /** + * users/search-by-username-and-host + * @description Search for a user by username and/or host. + * + * **Credential required**: *No* + */ + post: operations['users___search-by-username-and-host']; + }; + '/users/show': { + /** + * users/show + * @description Show the properties of a user. + * + * **Credential required**: *No* + */ + post: operations['users___show']; + }; + '/users/update-memo': { + /** + * users/update-memo + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *write:account* + */ + post: operations['users___update-memo']; + }; + '/v2/admin/emoji/list': { + /** + * v2/admin/emoji/list + * @description No description provided. + * + * **Credential required**: *Yes* / **Permission**: *read:admin:emoji* + */ + post: operations['v2___admin___emoji___list']; }; - }; - responses: never; - parameters: never; - requestBodies: never; - headers: never; - pathItems: never; }; - -export type $defs = Record; - -export type external = Record; - -export type operations = { - - /** - * admin/abuse-report/notification-recipient/create - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient* - */ - 'admin___abuse-report___notification-recipient___create': { - requestBody: { - content: { - 'application/json': { - isActive: boolean; - name: string; - /** @enum {string} */ - method: 'email' | 'webhook'; - /** Format: misskey:id */ - userId?: string; - /** Format: misskey:id */ - systemWebhookId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['AbuseReportNotificationRecipient']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/abuse-report/notification-recipient/delete - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient* - */ - 'admin___abuse-report___notification-recipient___delete': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/abuse-report/notification-recipient/list - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *read:admin:abuse-report:notification-recipient* - */ - 'admin___abuse-report___notification-recipient___list': { - requestBody: { - content: { - 'application/json': { - method?: ('email' | 'webhook')[]; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['AbuseReportNotificationRecipient'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/abuse-report/notification-recipient/show - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *read:admin:abuse-report:notification-recipient* - */ - 'admin___abuse-report___notification-recipient___show': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['AbuseReportNotificationRecipient']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/abuse-report/notification-recipient/update - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient* - */ - 'admin___abuse-report___notification-recipient___update': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - isActive: boolean; - name: string; - /** @enum {string} */ - method: 'email' | 'webhook'; - /** Format: misskey:id */ - userId?: string; - /** Format: misskey:id */ - systemWebhookId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['AbuseReportNotificationRecipient']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/abuse-user-reports - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:abuse-user-reports* - */ - 'admin___abuse-user-reports': { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default null */ - state?: string | null; - /** - * @default combined - * @enum {string} - */ - reporterOrigin?: 'combined' | 'local' | 'remote'; - /** - * @default combined - * @enum {string} - */ - targetUserOrigin?: 'combined' | 'local' | 'remote'; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': ({ - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - comment: string; - /** @example false */ - resolved: boolean; - /** Format: id */ - reporterId: string; - /** Format: id */ - targetUserId: string; - /** Format: id */ - assigneeId: string | null; - reporter: components['schemas']['UserDetailedNotMe']; - targetUser: components['schemas']['UserDetailedNotMe']; - assignee: components['schemas']['UserDetailedNotMe'] | null; - forwarded: boolean; - /** @enum {string|null} */ - resolvedAs: 'accept' | 'reject' | null; - moderationNote: string; - })[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/accounts/create - * @description No description provided. - * - * **Credential required**: *No* - */ - admin___accounts___create: { - requestBody: { - content: { - 'application/json': { - username: string; - password: string; - setupPassword?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['MeDetailed']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/accounts/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:account* - */ - admin___accounts___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/accounts/find-by-email - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:account* - */ - 'admin___accounts___find-by-email': { - requestBody: { - content: { - 'application/json': { - email: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserDetailedNotMe']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/ad/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:ad* - */ - admin___ad___create: { - requestBody: { - content: { - 'application/json': { - url: string; - memo: string; - place: string; - priority: string; - ratio: number; - expiresAt: number; - startsAt: number; - imageUrl: string; - dayOfWeek: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Ad']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/ad/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:ad* - */ - admin___ad___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/ad/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:ad* - */ - admin___ad___list: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default null */ - publishing?: boolean | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Ad'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/ad/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:ad* - */ - admin___ad___update: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - memo?: string; - url?: string; - imageUrl?: string; - place?: string; - priority?: string; - ratio?: number; - expiresAt?: number; - startsAt?: number; - dayOfWeek?: number; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/announcements/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:announcements* - */ - admin___announcements___create: { - requestBody: { - content: { - 'application/json': { - title: string; - text: string; - imageUrl: string | null; - /** - * @default info - * @enum {string} - */ - icon?: 'info' | 'warning' | 'error' | 'success'; - /** - * @default normal - * @enum {string} - */ - display?: 'normal' | 'banner' | 'dialog'; - /** @default false */ - forExistingUsers?: boolean; - /** @default false */ - silence?: boolean; - /** @default false */ - needConfirmationToRead?: boolean; - /** - * Format: misskey:id - * @default null - */ - userId?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { +export type webhooks = Record; +export type components = { + schemas: { + Error: { + /** @description An error object. */ + error: { + /** @description An error code. Unique within the endpoint. */ + code: string; + /** @description An error message. */ + message: string; + /** + * Format: uuid + * @description An error ID. This ID is static. + */ + id: string; + }; + }; + UserLite: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** @example 藍 */ + name: string | null; + /** @example ai */ + username: string; + /** + * @description The local host is represented with `null`. + * @example misskey.example.com + */ + host: string | null; + /** Format: url */ + avatarUrl: string | null; + avatarBlurhash: string | null; + avatarDecorations: { + /** Format: id */ + id: string; + angle?: number; + flipH?: boolean; + /** Format: url */ + url: string; + offsetX?: number; + offsetY?: number; + }[]; + isBot?: boolean; + isCat?: boolean; + requireSigninToViewContents?: boolean; + makeNotesFollowersOnlyBefore?: number | null; + makeNotesHiddenBefore?: number | null; + instance?: { + name: string | null; + softwareName: string | null; + softwareVersion: string | null; + iconUrl: string | null; + faviconUrl: string | null; + themeColor: string | null; + }; + emojis: { + [key: string]: string; + }; + /** @enum {string} */ + onlineStatus: 'unknown' | 'online' | 'active' | 'offline'; + badgeRoles?: { + name: string; + iconUrl: string | null; + displayOrder: number; + }[]; + }; + UserDetailedNotMeOnly: { + /** Format: url */ + url: string | null; + /** Format: uri */ + uri: string | null; + /** Format: uri */ + movedTo: string | null; + alsoKnownAs: string[] | null; + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + updatedAt: string | null; + /** Format: date-time */ + lastFetchedAt: string | null; + /** Format: url */ + bannerUrl: string | null; + bannerBlurhash: string | null; + isLocked: boolean; + isSilenced: boolean; + /** @example false */ + isSuspended: boolean; + /** @example Hi masters, I am Ai! */ + description: string | null; + location: string | null; + /** @example 2018-03-12 */ + birthday: string | null; + /** @example ja-JP */ + lang: string | null; + fields: { + name: string; + value: string; + }[]; + verifiedLinks: string[]; + followersCount: number; + followingCount: number; + notesCount: number; + pinnedNoteIds: string[]; + pinnedNotes: components['schemas']['Note'][]; + pinnedPageId: string | null; + pinnedPage: components['schemas']['Page'] | null; + publicReactions: boolean; + /** @enum {string} */ + followingVisibility: 'public' | 'followers' | 'private'; + /** @enum {string} */ + followersVisibility: 'public' | 'followers' | 'private'; + /** @enum {string} */ + chatScope: 'everyone' | 'following' | 'followers' | 'mutual' | 'none'; + canChat: boolean; + roles: components['schemas']['RoleLite'][]; + followedMessage?: string | null; + memo: string | null; + moderationNote?: string; + twoFactorEnabled?: boolean; + usePasswordLessLogin?: boolean; + securityKeys?: boolean; + isFollowing?: boolean; + isFollowed?: boolean; + hasPendingFollowRequestFromYou?: boolean; + hasPendingFollowRequestToYou?: boolean; + isBlocking?: boolean; + isBlocked?: boolean; + isMuted?: boolean; + isRenoteMuted?: boolean; + /** @enum {string} */ + notify?: 'normal' | 'none'; + withReplies?: boolean; + }; + MeDetailedOnly: { + /** Format: id */ + avatarId: string | null; + /** Format: id */ + bannerId: string | null; + followedMessage: string | null; + isModerator: boolean | null; + isAdmin: boolean | null; + injectFeaturedNote: boolean; + receiveAnnouncementEmail: boolean; + alwaysMarkNsfw: boolean; + autoSensitive: boolean; + carefulBot: boolean; + autoAcceptFollowed: boolean; + noCrawle: boolean; + preventAiLearning: boolean; + isExplorable: boolean; + isDeleted: boolean; + /** @enum {string} */ + twoFactorBackupCodesStock: 'full' | 'partial' | 'none'; + hideOnlineStatus: boolean; + hasUnreadSpecifiedNotes: boolean; + hasUnreadMentions: boolean; + hasUnreadAnnouncement: boolean; + unreadAnnouncements: components['schemas']['Announcement'][]; + hasUnreadAntenna: boolean; + hasUnreadChannel: boolean; + hasUnreadChatMessages: boolean; + hasUnreadNotification: boolean; + hasPendingReceivedFollowRequest: boolean; + unreadNotificationsCount: number; + mutedWords: string[][]; + hardMutedWords: string[][]; + mutedInstances: string[] | null; + notificationRecieveConfig: { + note?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + follow?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + mention?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + reply?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + renote?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + quote?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + reaction?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + pollEnded?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + receiveFollowRequest?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + followRequestAccepted?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + roleAssigned?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + chatRoomInvitationReceived?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + achievementEarned?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + app?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + test?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + }; + emailNotificationTypes: string[]; + achievements: components['schemas']['Achievement'][]; + loggedInDays: number; + policies: components['schemas']['RolePolicies']; + /** @default false */ + twoFactorEnabled: boolean; + /** @default false */ + usePasswordLessLogin: boolean; + /** @default false */ + securityKeys: boolean; + email?: string | null; + emailVerified?: boolean | null; + securityKeysList?: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + name: string; + /** Format: date-time */ + lastUsed: string; + }[]; + }; + UserDetailedNotMe: components['schemas']['UserLite'] & components['schemas']['UserDetailedNotMeOnly']; + MeDetailed: components['schemas']['UserLite'] & components['schemas']['UserDetailedNotMeOnly'] & components['schemas']['MeDetailedOnly']; + UserDetailed: components['schemas']['UserDetailedNotMe'] | components['schemas']['MeDetailed']; + User: components['schemas']['UserLite'] | components['schemas']['UserDetailed']; + UserList: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + name: string; + userIds?: string[]; + isPublic: boolean; + }; + Achievement: { + name: components['schemas']['AchievementName']; + unlockedAt: number; + }; + /** @enum {string} */ + AchievementName: 'notes1' | 'notes10' | 'notes100' | 'notes500' | 'notes1000' | 'notes5000' | 'notes10000' | 'notes20000' | 'notes30000' | 'notes40000' | 'notes50000' | 'notes60000' | 'notes70000' | 'notes80000' | 'notes90000' | 'notes100000' | 'login3' | 'login7' | 'login15' | 'login30' | 'login60' | 'login100' | 'login200' | 'login300' | 'login400' | 'login500' | 'login600' | 'login700' | 'login800' | 'login900' | 'login1000' | 'passedSinceAccountCreated1' | 'passedSinceAccountCreated2' | 'passedSinceAccountCreated3' | 'loggedInOnBirthday' | 'loggedInOnNewYearsDay' | 'noteClipped1' | 'noteFavorited1' | 'myNoteFavorited1' | 'profileFilled' | 'markedAsCat' | 'following1' | 'following10' | 'following50' | 'following100' | 'following300' | 'followers1' | 'followers10' | 'followers50' | 'followers100' | 'followers300' | 'followers500' | 'followers1000' | 'collectAchievements30' | 'viewAchievements3min' | 'iLoveMisskey' | 'foundTreasure' | 'client30min' | 'client60min' | 'noteDeletedWithin1min' | 'postedAtLateNight' | 'postedAt0min0sec' | 'selfQuote' | 'htl20npm' | 'viewInstanceChart' | 'outputHelloWorldOnScratchpad' | 'open3windows' | 'driveFolderCircularReference' | 'reactWithoutRead' | 'clickedClickHere' | 'justPlainLucky' | 'setNameToSyuilo' | 'cookieClicked' | 'brainDiver' | 'smashTestNotificationButton' | 'tutorialCompleted' | 'bubbleGameExplodingHead' | 'bubbleGameDoubleExplodingHead'; + Ad: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + expiresAt: string; + /** Format: date-time */ + startsAt: string; + place: string; + priority: string; + ratio: number; + url: string; + imageUrl: string; + memo: string; + dayOfWeek: number; + }; + Announcement: { /** * Format: id * @example xxxxxxxxxx @@ -6438,894 +4215,327 @@ export type operations = { createdAt: string; /** Format: date-time */ updatedAt: string | null; - title: string; text: string; + title: string; imageUrl: string | null; - }; + /** @enum {string} */ + icon: 'info' | 'warning' | 'error' | 'success'; + /** @enum {string} */ + display: 'dialog' | 'normal' | 'banner'; + needConfirmationToRead: boolean; + silence: boolean; + forYou: boolean; + isRead?: boolean; }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; + App: { + id: string; + name: string; + callbackUrl: string | null; + permission: string[]; + secret?: string; + isAuthorized?: boolean; }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; + Note: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + deletedAt?: string | null; + text: string | null; + cw?: string | null; + /** Format: id */ + userId: string; + user: components['schemas']['UserLite']; + /** + * Format: id + * @example xxxxxxxxxx + */ + replyId?: string | null; + /** + * Format: id + * @example xxxxxxxxxx + */ + renoteId?: string | null; + reply?: components['schemas']['Note'] | null; + renote?: components['schemas']['Note'] | null; + isHidden?: boolean; + /** @enum {string} */ + visibility: 'public' | 'home' | 'followers' | 'specified'; + mentions?: string[]; + visibleUserIds?: string[]; + fileIds?: string[]; + files?: components['schemas']['DriveFile'][]; + tags?: string[]; + poll?: { + /** Format: date-time */ + expiresAt?: string | null; + multiple: boolean; + choices: { + isVoted: boolean; + text: string; + votes: number; + }[]; + } | null; + emojis?: { + [key: string]: string; + }; + /** + * Format: id + * @example xxxxxxxxxx + */ + channelId?: string | null; + channel?: { + id: string; + name: string; + color: string; + isSensitive: boolean; + allowRenoteToExternal: boolean; + userId: string | null; + } | null; + localOnly?: boolean; + /** @enum {string|null} */ + reactionAcceptance: 'likeOnly' | 'likeOnlyForRemote' | 'nonSensitiveOnly' | 'nonSensitiveOnlyForLocalLikeOnlyForRemote' | null; + reactionEmojis: { + [key: string]: string; + }; + reactions: { + [key: string]: number; + }; + reactionCount: number; + renoteCount: number; + repliesCount: number; + uri?: string; + url?: string; + reactionAndUserPairCache?: string[]; + clippedCount?: number; + hasPoll?: boolean; + myReaction?: string | null; }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; + NoteReaction: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + user: components['schemas']['UserLite']; + type: string; }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; + NoteFavorite: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + note: components['schemas']['Note']; + /** Format: id */ + noteId: string; }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/announcements/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:announcements* - */ - admin___announcements___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/announcements/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:announcements* - */ - admin___announcements___list: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** Format: misskey:id */ - userId?: string | null; - /** - * @default active - * @enum {string} - */ - status?: 'all' | 'active' | 'archived'; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': ({ - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - /** Format: date-time */ - updatedAt: string | null; - text: string; - title: string; - imageUrl: string | null; - reads: number; - })[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/announcements/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:announcements* - */ - admin___announcements___update: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - title?: string; - text?: string; - imageUrl?: string | null; - /** @enum {string} */ - icon?: 'info' | 'warning' | 'error' | 'success'; - /** @enum {string} */ - display?: 'normal' | 'banner' | 'dialog'; - forExistingUsers?: boolean; - silence?: boolean; - needConfirmationToRead?: boolean; - isActive?: boolean; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/avatar-decorations/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:avatar-decorations* - */ - 'admin___avatar-decorations___create': { - requestBody: { - content: { - 'application/json': { - name: string; - description: string; - url: string; - roleIdsThatCanBeUsedThisDecoration?: string[]; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { + Notification: { /** Format: id */ id: string; /** Format: date-time */ createdAt: string; - /** Format: date-time */ - updatedAt: string | null; - name: string; - description: string; - url: string; - roleIdsThatCanBeUsedThisDecoration: string[]; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/avatar-decorations/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:avatar-decorations* - */ - 'admin___avatar-decorations___delete': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/avatar-decorations/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:avatar-decorations* - */ - 'admin___avatar-decorations___list': { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** Format: misskey:id */ - userId?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': ({ - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - /** Format: date-time */ - createdAt: string; - /** Format: date-time */ - updatedAt: string | null; - name: string; - description: string; - url: string; - roleIdsThatCanBeUsedThisDecoration: string[]; - })[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/avatar-decorations/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:avatar-decorations* - */ - 'admin___avatar-decorations___update': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - name?: string; - description?: string; - url?: string; - roleIdsThatCanBeUsedThisDecoration?: string[]; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/captcha/current - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:meta* - */ - admin___captcha___current: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { /** @enum {string} */ - provider: 'none' | 'hcaptcha' | 'mcaptcha' | 'recaptcha' | 'turnstile' | 'testcaptcha'; - hcaptcha: { - siteKey: string | null; - secretKey: string | null; - }; - mcaptcha: { - siteKey: string | null; - secretKey: string | null; - instanceUrl: string | null; - }; - recaptcha: { - siteKey: string | null; - secretKey: string | null; - }; - turnstile: { - siteKey: string | null; - secretKey: string | null; - }; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/captcha/save - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:meta* - */ - admin___captcha___save: { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - provider: 'none' | 'hcaptcha' | 'mcaptcha' | 'recaptcha' | 'turnstile' | 'testcaptcha'; - captchaResult?: string | null; - sitekey?: string | null; - secret?: string | null; - instanceUrl?: string | null; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/delete-account - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:delete-account* - */ - 'admin___delete-account': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/delete-all-files-of-a-user - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:delete-all-files-of-a-user* - */ - 'admin___delete-all-files-of-a-user': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/drive/clean-remote-files - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:drive* - */ - 'admin___drive___clean-remote-files': { - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/drive/cleanup - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:drive* - */ - admin___drive___cleanup: { - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/drive/files - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:drive* - */ - admin___drive___files: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** Format: misskey:id */ - userId?: string | null; - type?: string | null; - /** - * @default local - * @enum {string} - */ - origin?: 'combined' | 'local' | 'remote'; - /** - * @description The local host is represented with `null`. - * @default null - */ - hostname?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['DriveFile'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/drive/show-file - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:drive* - */ - 'admin___drive___show-file': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - fileId: string; + type: 'note'; + user: components['schemas']['UserLite']; + /** Format: id */ + userId: string; + note: components['schemas']['Note']; } | { - url: string; + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'mention'; + user: components['schemas']['UserLite']; + /** Format: id */ + userId: string; + note: components['schemas']['Note']; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'reply'; + user: components['schemas']['UserLite']; + /** Format: id */ + userId: string; + note: components['schemas']['Note']; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'renote'; + user: components['schemas']['UserLite']; + /** Format: id */ + userId: string; + note: components['schemas']['Note']; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'quote'; + user: components['schemas']['UserLite']; + /** Format: id */ + userId: string; + note: components['schemas']['Note']; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'reaction'; + user: components['schemas']['UserLite']; + /** Format: id */ + userId: string; + note: components['schemas']['Note']; + reaction: string; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'pollEnded'; + user: components['schemas']['UserLite']; + /** Format: id */ + userId: string; + note: components['schemas']['Note']; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'follow'; + user: components['schemas']['UserLite']; + /** Format: id */ + userId: string; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'receiveFollowRequest'; + user: components['schemas']['UserLite']; + /** Format: id */ + userId: string; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'followRequestAccepted'; + user: components['schemas']['UserLite']; + /** Format: id */ + userId: string; + message: string | null; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'roleAssigned'; + role: components['schemas']['Role']; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'chatRoomInvitationReceived'; + invitation: components['schemas']['ChatRoomInvitation']; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'achievementEarned'; + achievement: components['schemas']['AchievementName']; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'exportCompleted'; + /** @enum {string} */ + exportedEntity: 'antenna' | 'blocking' | 'clip' | 'customEmoji' | 'favorite' | 'following' | 'muting' | 'note' | 'userList'; + /** Format: id */ + fileId: string; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'login'; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'createToken'; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'app'; + body: string; + header: string | null; + icon: string | null; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'reaction:grouped'; + note: components['schemas']['Note']; + reactions: { + user: components['schemas']['UserLite']; + reaction: string; + }[]; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'renote:grouped'; + note: components['schemas']['Note']; + users: components['schemas']['UserLite'][]; + } | { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** @enum {string} */ + type: 'test'; }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { + DriveFile: { /** * Format: id * @example xxxxxxxxxx @@ -7333,1379 +4543,662 @@ export type operations = { id: string; /** Format: date-time */ createdAt: string; - /** - * Format: id - * @example xxxxxxxxxx - */ - userId: string | null; - /** @description The local host is represented with `null`. */ - userHost: string | null; + /** @example 192.jpg */ + name: string; + /** @example image/jpeg */ + type: string; /** * Format: md5 * @example 15eca7fba0480996e2245f5185bf39f2 */ md5: string; - /** @example 192.jpg */ - name: string; - /** @example image/jpeg */ - type: string; /** @example 51469 */ size: number; - comment: string | null; + isSensitive: boolean; blurhash: string | null; properties: { - width?: number; - height?: number; - orientation?: number; - avgColor?: string; + /** @example 1280 */ + width?: number; + /** @example 720 */ + height?: number; + /** @example 8 */ + orientation?: number; + /** @example rgb(40,65,87) */ + avgColor?: string; }; - /** @example true */ - storedInternal: boolean | null; /** Format: url */ - url: string | null; + url: string; /** Format: url */ thumbnailUrl: string | null; - /** Format: url */ - webpublicUrl: string | null; - accessKey: string | null; - thumbnailAccessKey: string | null; - webpublicAccessKey: string | null; - uri: string | null; - src: string | null; + comment: string | null; /** * Format: id * @example xxxxxxxxxx */ folderId: string | null; + folder?: components['schemas']['DriveFolder'] | null; + /** + * Format: id + * @example xxxxxxxxxx + */ + userId: string | null; + user?: components['schemas']['UserLite'] | null; + }; + DriveFolder: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + name: string; + /** + * Format: id + * @example xxxxxxxxxx + */ + parentId: string | null; + foldersCount?: number; + filesCount?: number; + parent?: components['schemas']['DriveFolder'] | null; + }; + Following: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: id */ + followeeId: string; + /** Format: id */ + followerId: string; + followee?: components['schemas']['UserDetailedNotMe']; + follower?: components['schemas']['UserDetailedNotMe']; + }; + Muting: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + expiresAt: string | null; + /** Format: id */ + muteeId: string; + mutee: components['schemas']['UserDetailedNotMe']; + }; + RenoteMuting: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: id */ + muteeId: string; + mutee: components['schemas']['UserDetailedNotMe']; + }; + Blocking: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: id */ + blockeeId: string; + blockee: components['schemas']['UserDetailedNotMe']; + }; + Hashtag: { + /** @example misskey */ + tag: string; + mentionedUsersCount: number; + mentionedLocalUsersCount: number; + mentionedRemoteUsersCount: number; + attachedUsersCount: number; + attachedLocalUsersCount: number; + attachedRemoteUsersCount: number; + }; + InviteCode: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** @example GR6S02ERUA5VR */ + code: string; + /** Format: date-time */ + expiresAt: string | null; + /** Format: date-time */ + createdAt: string; + createdBy: components['schemas']['UserLite'] | null; + usedBy: components['schemas']['UserLite'] | null; + /** Format: date-time */ + usedAt: string | null; + used: boolean; + }; + Page: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + updatedAt: string; + /** Format: id */ + userId: string; + user: components['schemas']['UserLite']; + content: components['schemas']['PageBlock'][]; + variables: Record[]; + title: string; + name: string; + summary: string | null; + hideTitleWhenPinned: boolean; + alignCenter: boolean; + font: string; + script: string; + eyeCatchingImageId: string | null; + eyeCatchingImage: components['schemas']['DriveFile'] | null; + attachedFiles: components['schemas']['DriveFile'][]; + likedCount: number; + isLiked?: boolean; + }; + PageBlock: { + id: string; + /** @enum {string} */ + type: 'text'; + text: string; + } | { + id: string; + /** @enum {string} */ + type: 'section'; + title: string; + children: components['schemas']['PageBlock'][]; + } | { + id: string; + /** @enum {string} */ + type: 'image'; + fileId: string | null; + } | { + id: string; + /** @enum {string} */ + type: 'note'; + detailed: boolean; + note: string | null; + }; + Channel: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + lastNotedAt: string | null; + name: string; + description: string | null; + /** Format: id */ + userId: string | null; + /** Format: url */ + bannerUrl: string | null; + pinnedNoteIds: string[]; + color: string; + isArchived: boolean; + usersCount: number; + notesCount: number; isSensitive: boolean; - isLink: boolean; - }; + allowRenoteToExternal: boolean; + isFollowing?: boolean; + isFavorited?: boolean; + pinnedNotes?: components['schemas']['Note'][]; }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; + QueueCount: { + waiting: number; + active: number; + completed: number; + failed: number; + delayed: number; }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; + QueueMetrics: { + meta: { + count: number; + prevTS: number; + prevCount: number; + }; + data: number[]; + count: number; }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; + QueueJob: { + id: string; + name: string; + data: Record; + opts: Record; + timestamp: number; + processedOn?: number; + processedBy?: string; + finishedOn?: number; + progress: Record; + attempts: number; + delay: number; + failedReason: string; + stacktrace: string[]; + returnValue: Record; + isFailed: boolean; }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/emoji/add - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - admin___emoji___add: { - requestBody: { - content: { - 'application/json': { - name: string; - /** Format: misskey:id */ - fileId: string; - /** @description Use `null` to reset the category. */ - category?: string | null; - aliases?: string[]; - license?: string | null; - isSensitive?: boolean; - localOnly?: boolean; - roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['EmojiDetailed']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/emoji/add-aliases-bulk - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - 'admin___emoji___add-aliases-bulk': { - requestBody: { - content: { - 'application/json': { - ids: string[]; - aliases: string[]; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/emoji/copy - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - admin___emoji___copy: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - emojiId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { + Antenna: { /** Format: id */ id: string; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/emoji/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - admin___emoji___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/emoji/delete-bulk - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - 'admin___emoji___delete-bulk': { - requestBody: { - content: { - 'application/json': { - ids: string[]; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/emoji/import-zip - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'admin___emoji___import-zip': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - fileId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/emoji/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:emoji* - */ - admin___emoji___list: { - requestBody: { - content: { - 'application/json': { - /** @default null */ - query?: string | null; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': ({ - /** Format: id */ - id: string; - aliases: string[]; - name: string; - category: string | null; - /** @description The local host is represented with `null`. The field exists for compatibility with other API endpoints that return files. */ - host: string | null; - url: string; - })[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/emoji/list-remote - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:emoji* - */ - 'admin___emoji___list-remote': { - requestBody: { - content: { - 'application/json': { - /** @default null */ - query?: string | null; - /** - * @description Use `null` to represent the local host. - * @default null - */ - host?: string | null; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': ({ - /** Format: id */ - id: string; - aliases: string[]; - name: string; - category: string | null; - /** @description The local host is represented with `null`. */ - host: string | null; - url: string; - })[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/emoji/remove-aliases-bulk - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - 'admin___emoji___remove-aliases-bulk': { - requestBody: { - content: { - 'application/json': { - ids: string[]; - aliases: string[]; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/emoji/set-aliases-bulk - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - 'admin___emoji___set-aliases-bulk': { - requestBody: { - content: { - 'application/json': { - ids: string[]; - aliases: string[]; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/emoji/set-category-bulk - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - 'admin___emoji___set-category-bulk': { - requestBody: { - content: { - 'application/json': { - ids: string[]; - /** @description Use `null` to reset the category. */ - category?: string | null; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/emoji/set-license-bulk - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - 'admin___emoji___set-license-bulk': { - requestBody: { - content: { - 'application/json': { - ids: string[]; - /** @description Use `null` to reset the license. */ - license?: string | null; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/emoji/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:emoji* - */ - admin___emoji___update: { - requestBody: { - content: { - 'application/json': ({ - /** Format: misskey:id */ - id: string; - } | { - name: string; - }) & ({ - /** Format: misskey:id */ - fileId?: string; - /** @description Use `null` to reset the category. */ - category?: string | null; - aliases?: string[]; - license?: string | null; - isSensitive?: boolean; - localOnly?: boolean; - roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; - }); - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/federation/delete-all-files - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:federation* - */ - 'admin___federation___delete-all-files': { - requestBody: { - content: { - 'application/json': { - host: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/federation/refresh-remote-instance-metadata - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:federation* - */ - 'admin___federation___refresh-remote-instance-metadata': { - requestBody: { - content: { - 'application/json': { - host: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/federation/remove-all-following - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:federation* - */ - 'admin___federation___remove-all-following': { - requestBody: { - content: { - 'application/json': { - host: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/federation/update-instance - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:federation* - */ - 'admin___federation___update-instance': { - requestBody: { - content: { - 'application/json': { - host: string; - isSuspended?: boolean; - moderationNote?: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/forward-abuse-user-report - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:resolve-abuse-user-report* - */ - 'admin___forward-abuse-user-report': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - reportId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/get-index-stats - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:index-stats* - */ - 'admin___get-index-stats': { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - tablename: string; - indexname: string; + /** Format: date-time */ + createdAt: string; + name: string; + keywords: string[][]; + excludeKeywords: string[][]; + /** @enum {string} */ + src: 'home' | 'all' | 'users' | 'list' | 'users_blacklist'; + /** Format: id */ + userListId: string | null; + users: string[]; + /** @default false */ + caseSensitive: boolean; + /** @default false */ + localOnly: boolean; + /** @default false */ + excludeBots: boolean; + /** @default false */ + withReplies: boolean; + withFile: boolean; + isActive: boolean; + /** @default false */ + hasUnreadNote: boolean; + /** @default false */ + notify: boolean; + /** @default false */ + excludeNotesInSensitiveChannel: boolean; + }; + Clip: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + lastClippedAt: string | null; + /** Format: id */ + userId: string; + user: components['schemas']['UserLite']; + name: string; + description: string | null; + isPublic: boolean; + favoritedCount: number; + isFavorited?: boolean; + notesCount?: number; + }; + FederationInstance: { + /** Format: id */ + id: string; + /** Format: date-time */ + firstRetrievedAt: string; + /** @example misskey.example.com */ + host: string; + usersCount: number; + notesCount: number; + followingCount: number; + followersCount: number; + isNotResponding: boolean; + isSuspended: boolean; + /** @enum {string} */ + suspensionState: 'none' | 'manuallySuspended' | 'goneSuspended' | 'autoSuspendedForNotResponding' | 'softwareSuspended'; + isBlocked: boolean; + /** @example misskey */ + softwareName: string | null; + softwareVersion: string | null; + /** @example true */ + openRegistrations: boolean | null; + name: string | null; + description: string | null; + maintainerName: string | null; + maintainerEmail: string | null; + isSilenced: boolean; + isMediaSilenced: boolean; + /** Format: url */ + iconUrl: string | null; + /** Format: url */ + faviconUrl: string | null; + themeColor: string | null; + /** Format: date-time */ + infoUpdatedAt: string | null; + /** Format: date-time */ + latestRequestReceivedAt: string | null; + moderationNote?: string | null; + }; + GalleryPost: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + updatedAt: string; + /** Format: id */ + userId: string; + user: components['schemas']['UserLite']; + title: string; + description: string | null; + fileIds?: string[]; + files?: components['schemas']['DriveFile'][]; + tags?: string[]; + isSensitive: boolean; + likedCount: number; + isLiked?: boolean; + }; + EmojiSimple: { + aliases: string[]; + name: string; + category: string | null; + url: string; + localOnly?: boolean; + isSensitive?: boolean; + roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; + }; + EmojiDetailed: { + /** Format: id */ + id: string; + aliases: string[]; + name: string; + category: string | null; + /** @description The local host is represented with `null`. */ + host: string | null; + url: string; + license: string | null; + isSensitive: boolean; + localOnly: boolean; + roleIdsThatCanBeUsedThisEmojiAsReaction: string[]; + }; + EmojiDetailedAdmin: { + /** Format: id */ + id: string; + /** Format: date-time */ + updatedAt: string | null; + name: string; + /** @description The local host is represented with `null`. */ + host: string | null; + publicUrl: string; + originalUrl: string; + uri: string | null; + type: string | null; + aliases: string[]; + category: string | null; + license: string | null; + localOnly: boolean; + isSensitive: boolean; + roleIdsThatCanBeUsedThisEmojiAsReaction: { + /** Format: misskey:id */ + id: string; + name: string; }[]; }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; + Flash: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + updatedAt: string; + /** Format: id */ + userId: string; + user: components['schemas']['UserLite']; + title: string; + summary: string; + script: string; + /** @enum {string} */ + visibility: 'private' | 'public'; + likedCount: number | null; + isLiked?: boolean; }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; + Signin: { + id: string; + /** Format: date-time */ + createdAt: string; + ip: string; + headers: Record; + success: boolean; }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; + RoleCondFormulaLogics: { + id: string; + /** @enum {string} */ + type: 'and' | 'or'; + values: components['schemas']['RoleCondFormulaValue'][]; }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; + RoleCondFormulaValueNot: { + id: string; + /** @enum {string} */ + type: 'not'; + value: components['schemas']['RoleCondFormulaValue']; }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; + RoleCondFormulaValueIsLocalOrRemote: { + id: string; + /** @enum {string} */ + type: 'isLocal' | 'isRemote'; }; - }; - }; - }; - /** - * admin/get-table-stats - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:table-stats* - */ - 'admin___get-table-stats': { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - [key: string]: { - count: number; - size: number; + RoleCondFormulaValueUserSettingBooleanSchema: { + id: string; + /** @enum {string} */ + type: 'isSuspended' | 'isLocked' | 'isBot' | 'isCat' | 'isExplorable'; + }; + RoleCondFormulaValueAssignedRole: { + id: string; + /** @enum {string} */ + type: 'roleAssignedTo'; + /** + * Format: id + * @example xxxxxxxxxx + */ + roleId: string; + }; + RoleCondFormulaValueCreated: { + id: string; + /** @enum {string} */ + type: 'createdLessThan' | 'createdMoreThan'; + sec: number; + }; + RoleCondFormulaFollowersOrFollowingOrNotes: { + id: string; + /** @enum {string} */ + type: 'followersLessThanOrEq' | 'followersMoreThanOrEq' | 'followingLessThanOrEq' | 'followingMoreThanOrEq' | 'notesLessThanOrEq' | 'notesMoreThanOrEq'; + value: number; + }; + RoleCondFormulaValue: components['schemas']['RoleCondFormulaLogics'] | components['schemas']['RoleCondFormulaValueNot'] | components['schemas']['RoleCondFormulaValueIsLocalOrRemote'] | components['schemas']['RoleCondFormulaValueUserSettingBooleanSchema'] | components['schemas']['RoleCondFormulaValueAssignedRole'] | components['schemas']['RoleCondFormulaValueCreated'] | components['schemas']['RoleCondFormulaFollowersOrFollowingOrNotes']; + RoleLite: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** @example New Role */ + name: string; + /** @example #000000 */ + color: string | null; + iconUrl: string | null; + description: string; + /** @example false */ + isModerator: boolean; + /** @example false */ + isAdministrator: boolean; + /** @example 0 */ + displayOrder: number; + }; + Role: components['schemas']['RoleLite'] & { + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + updatedAt: string; + /** @enum {string} */ + target: 'manual' | 'conditional'; + condFormula: components['schemas']['RoleCondFormulaValue']; + /** @example false */ + isPublic: boolean; + /** @example false */ + isExplorable: boolean; + /** @example false */ + asBadge: boolean; + /** @example false */ + preserveAssignmentOnMoveAccount: boolean; + /** @example false */ + canEditMembersByModerator: boolean; + policies: { + [key: string]: { + value?: number | boolean; + priority?: number; + useDefault?: boolean; + }; }; - }; + usersCount: number; }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; + RolePolicies: { + gtlAvailable: boolean; + ltlAvailable: boolean; + canPublicNote: boolean; + mentionLimit: number; + canInvite: boolean; + inviteLimit: number; + inviteLimitCycle: number; + inviteExpirationTime: number; + canManageCustomEmojis: boolean; + canManageAvatarDecorations: boolean; + canSearchNotes: boolean; + canUseTranslator: boolean; + canHideAds: boolean; + driveCapacityMb: number; + maxFileSizeMb: number; + uploadableFileTypes: string[]; + alwaysMarkNsfw: boolean; + canUpdateBioMedia: boolean; + pinLimit: number; + antennaLimit: number; + wordMuteLimit: number; + webhookLimit: number; + clipLimit: number; + noteEachClipsLimit: number; + userListLimit: number; + userEachUserListsLimit: number; + rateLimitFactor: number; + avatarDecorationLimit: number; + canImportAntennas: boolean; + canImportBlocking: boolean; + canImportFollowing: boolean; + canImportMuting: boolean; + canImportUserLists: boolean; + /** @enum {string} */ + chatAvailability: 'available' | 'readonly' | 'unavailable'; }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; + ReversiGameLite: { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + startedAt: string | null; + /** Format: date-time */ + endedAt: string | null; + isStarted: boolean; + isEnded: boolean; + /** Format: id */ + user1Id: string; + /** Format: id */ + user2Id: string; + user1: components['schemas']['UserLite']; + user2: components['schemas']['UserLite']; + /** Format: id */ + winnerId: string | null; + winner: components['schemas']['UserLite'] | null; + /** Format: id */ + surrenderedUserId: string | null; + /** Format: id */ + timeoutUserId: string | null; + black: number | null; + bw: string; + noIrregularRules: boolean; + isLlotheo: boolean; + canPutEverywhere: boolean; + loopedBoard: boolean; + timeLimitForEachTurn: number; }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; + ReversiGameDetailed: { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + startedAt: string | null; + /** Format: date-time */ + endedAt: string | null; + isStarted: boolean; + isEnded: boolean; + form1: Record | null; + form2: Record | null; + user1Ready: boolean; + user2Ready: boolean; + /** Format: id */ + user1Id: string; + /** Format: id */ + user2Id: string; + user1: components['schemas']['UserLite']; + user2: components['schemas']['UserLite']; + /** Format: id */ + winnerId: string | null; + winner: components['schemas']['UserLite'] | null; + /** Format: id */ + surrenderedUserId: string | null; + /** Format: id */ + timeoutUserId: string | null; + black: number | null; + bw: string; + noIrregularRules: boolean; + isLlotheo: boolean; + canPutEverywhere: boolean; + loopedBoard: boolean; + timeLimitForEachTurn: number; + logs: number[][]; + map: string[]; }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/get-user-ips - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:user-ips* - */ - 'admin___get-user-ips': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - ip: string; - /** Format: date-time */ - createdAt: string; - }[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/invite/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:invite-codes* - */ - admin___invite___create: { - requestBody: { - content: { - 'application/json': { - /** @default 1 */ - count?: number; - expiresAt?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['InviteCode'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/invite/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:invite-codes* - */ - admin___invite___list: { - requestBody: { - content: { - 'application/json': { - /** @default 30 */ - limit?: number; - /** @default 0 */ - offset?: number; - /** - * @default all - * @enum {string} - */ - type?: 'unused' | 'used' | 'expired' | 'all'; - /** @enum {string} */ - sort?: '+createdAt' | '-createdAt' | '+usedAt' | '-usedAt'; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['InviteCode'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/meta - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:meta* - */ - admin___meta: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - cacheRemoteFiles: boolean; - cacheRemoteSensitiveFiles: boolean; + MetaLite: { + maintainerName: string | null; + maintainerEmail: string | null; + version: string; + providesTarball: boolean; + name: string | null; + shortName: string | null; + /** + * Format: url + * @example https://misskey.example.com + */ + uri: string; + description: string | null; + langs: string[]; + tosUrl: string | null; + /** @default https://github.com/misskey-dev/misskey */ + repositoryUrl: string | null; + /** @default https://github.com/misskey-dev/misskey/issues/new */ + feedbackUrl: string | null; + defaultDarkTheme: string | null; + defaultLightTheme: string | null; + disableRegistration: boolean; emailRequiredForSignup: boolean; enableHcaptcha: boolean; hcaptchaSiteKey: string | null; @@ -8720,21946 +5213,30290 @@ export type operations = { googleAnalyticsMeasurementId: string | null; swPublickey: string | null; /** @default /assets/ai.png */ - mascotImageUrl: string | null; + mascotImageUrl: string; bannerUrl: string | null; serverErrorImageUrl: string | null; infoImageUrl: string | null; notFoundImageUrl: string | null; iconUrl: string | null; - app192IconUrl: string | null; - app512IconUrl: string | null; + maxNoteTextLength: number; + ads: { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: url */ + url: string; + place: string; + ratio: number; + /** Format: url */ + imageUrl: string; + dayOfWeek: number; + }[]; + /** @default 0 */ + notesPerOneAd: number; enableEmail: boolean; enableServiceWorker: boolean; translatorAvailable: boolean; - silencedHosts?: string[]; - mediaSilencedHosts: string[]; - pinnedUsers: string[]; - hiddenTags: string[]; - blockedHosts: string[]; - sensitiveWords: string[]; - prohibitedWords: string[]; - prohibitedWordsForNameOfUser: string[]; - bannedEmailDomains?: string[]; - preservedUsernames: string[]; - hcaptchaSecretKey: string | null; - mcaptchaSecretKey: string | null; - recaptchaSecretKey: string | null; - turnstileSecretKey: string | null; - sensitiveMediaDetection: string; - sensitiveMediaDetectionSensitivity: string; - setSensitiveFlagAutomatically: boolean; - enableSensitiveMediaDetectionForVideos: boolean; - /** Format: id */ - proxyAccountId: string; - email: string | null; - smtpSecure: boolean; - smtpHost: string | null; - smtpPort: number | null; - smtpUser: string | null; - smtpPass: string | null; - swPrivateKey: string | null; - useObjectStorage: boolean; - objectStorageBaseUrl: string | null; - objectStorageBucket: string | null; - objectStoragePrefix: string | null; - objectStorageEndpoint: string | null; - objectStorageRegion: string | null; - objectStoragePort: number | null; - objectStorageAccessKey: string | null; - objectStorageSecretKey: string | null; - objectStorageUseSSL: boolean; - objectStorageUseProxy: boolean; - objectStorageSetPublicRead: boolean; - enableIpLogging: boolean; - enableActiveEmailValidation: boolean; - enableVerifymailApi: boolean; - verifymailAuthKey: string | null; - enableTruemailApi: boolean; - truemailInstance: string | null; - truemailAuthKey: string | null; - enableChartsForRemoteUser: boolean; - enableChartsForFederatedInstances: boolean; - enableStatsForFederatedInstances: boolean; - enableServerMachineStats: boolean; - enableIdenticonGeneration: boolean; - manifestJsonOverride: string; - policies: Record; - enableFanoutTimeline: boolean; - enableFanoutTimelineDbFallback: boolean; - perLocalUserUserTimelineCacheMax: number; - perRemoteUserUserTimelineCacheMax: number; - perUserHomeTimelineCacheMax: number; - perUserListTimelineCacheMax: number; - enableReactionsBuffering: boolean; - notesPerOneAd: number; + sentryForFrontend: { + options: { + dsn: string; + } & { + [key: string]: unknown; + }; + vueIntegration?: { + [key: string]: unknown; + } | null; + browserTracingIntegration?: { + [key: string]: unknown; + } | null; + replayIntegration?: { + [key: string]: unknown; + } | null; + } | null; + mediaProxy: string; + enableUrlPreview: boolean; backgroundImageUrl: string | null; - deeplAuthKey: string | null; - deeplIsPro: boolean; - defaultDarkTheme: string | null; - defaultLightTheme: string | null; - description: string | null; - disableRegistration: boolean; impressumUrl: string | null; - maintainerEmail: string | null; - maintainerName: string | null; - name: string | null; - shortName: string | null; - objectStorageS3ForcePathStyle: boolean; + logoImageUrl: string | null; privacyPolicyUrl: string | null; inquiryUrl: string | null; - repositoryUrl: string | null; - /** - * @deprecated - * @description [Deprecated] Use "urlPreviewSummaryProxyUrl" instead. - */ - summalyProxy: string | null; + serverRules: string[]; themeColor: string | null; - tosUrl: string | null; - uri: string; - version: string; - urlPreviewEnabled: boolean; - urlPreviewAllowRedirect: boolean; - urlPreviewTimeout: number; - urlPreviewMaximumContentLength: number; - urlPreviewRequireContentLength: boolean; - urlPreviewUserAgent: string | null; - urlPreviewSummaryProxyUrl: string | null; + policies: components['schemas']['RolePolicies']; + /** + * @default local + * @enum {string} + */ + noteSearchableScope: 'local' | 'global'; + maxFileSize: number; /** @enum {string} */ federation: 'all' | 'specified' | 'none'; - federationHosts: string[]; - deliverSuspendedSoftware: { - software: string; - versionRange: string; - }[]; - singleUserMode: boolean; - /** @enum {string} */ - ugcVisibilityForVisitor: 'all' | 'local' | 'none'; - proxyRemoteFiles: boolean; - signToActivityPubGet: boolean; - allowExternalApRedirect: boolean; - }; }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/promo/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:promo* - */ - admin___promo___create: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - expiresAt: number; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/queue/clear - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:queue* - */ - admin___queue___clear: { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - queue: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; - /** @enum {string} */ - state: '*' | 'completed' | 'wait' | 'active' | 'paused' | 'prioritized' | 'delayed' | 'failed'; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/queue/deliver-delayed - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:queue* - */ - 'admin___queue___deliver-delayed': { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': [string, number][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/queue/inbox-delayed - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:queue* - */ - 'admin___queue___inbox-delayed': { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': [string, number][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/queue/jobs - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:queue* - */ - admin___queue___jobs: { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - queue: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; - state: ('active' | 'wait' | 'delayed' | 'completed' | 'failed' | 'paused')[]; - search?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['QueueJob'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/queue/promote-jobs - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:queue* - */ - 'admin___queue___promote-jobs': { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - queue: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/queue/queue-stats - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:queue* - */ - 'admin___queue___queue-stats': { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - queue: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** @enum {string} */ - name: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; - qualifiedName: string; - counts: { - [key: string]: number; + MetaDetailedOnly: { + features?: { + registration: boolean; + emailRequiredForSignup: boolean; + localTimeline: boolean; + globalTimeline: boolean; + hcaptcha: boolean; + turnstile: boolean; + recaptcha: boolean; + objectStorage: boolean; + serviceWorker: boolean; + /** @default true */ + miauth: boolean; }; - isPaused: boolean; - metrics: { - completed: components['schemas']['QueueMetrics']; - failed: components['schemas']['QueueMetrics']; - }; - db: { - version: string; - /** @enum {string} */ - mode: 'cluster' | 'standalone' | 'sentinel'; - runId: string; - processId: string; - port: number; - os: string; - uptime: number; - memory: { - total: number; - used: number; - fragmentationRatio: number; - peak: number; - }; - clients: { - blocked: number; - connected: number; - }; - }; - }; + proxyAccountName: string | null; + /** @example false */ + requireSetup: boolean; + cacheRemoteFiles: boolean; + cacheRemoteSensitiveFiles: boolean; }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/queue/queues - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:queue* - */ - admin___queue___queues: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': ({ - /** @enum {string} */ - name: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; - counts: { - [key: string]: number; - }; - isPaused: boolean; - metrics: { - completed: components['schemas']['QueueMetrics']; - failed: components['schemas']['QueueMetrics']; - }; - })[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/queue/remove-job - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:queue* - */ - 'admin___queue___remove-job': { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - queue: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; - jobId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/queue/retry-job - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:queue* - */ - 'admin___queue___retry-job': { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - queue: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; - jobId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/queue/show-job - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:queue* - */ - 'admin___queue___show-job': { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - queue: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; - jobId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['QueueJob']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/queue/stats - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:emoji* - */ - admin___queue___stats: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - deliver: components['schemas']['QueueCount']; - inbox: components['schemas']['QueueCount']; - db: components['schemas']['QueueCount']; - objectStorage: components['schemas']['QueueCount']; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/relays/add - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:relays* - */ - admin___relays___add: { - requestBody: { - content: { - 'application/json': { - inbox: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** Format: id */ + MetaDetailed: components['schemas']['MetaLite'] & components['schemas']['MetaDetailedOnly']; + SystemWebhook: { id: string; - /** Format: url */ - inbox: string; - /** - * @default requesting - * @enum {string} - */ - status: 'requesting' | 'accepted' | 'rejected'; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/relays/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:relays* - */ - admin___relays___list: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': ({ - /** Format: id */ - id: string; - /** Format: url */ - inbox: string; - /** - * @default requesting - * @enum {string} - */ - status: 'requesting' | 'accepted' | 'rejected'; - })[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/relays/remove - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:relays* - */ - admin___relays___remove: { - requestBody: { - content: { - 'application/json': { - inbox: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/reset-password - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:reset-password* - */ - 'admin___reset-password': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - password: string; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/resolve-abuse-user-report - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:resolve-abuse-user-report* - */ - 'admin___resolve-abuse-user-report': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - reportId: string; - /** @enum {string|null} */ - resolvedAs?: 'accept' | 'reject' | null; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/roles/assign - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:roles* - */ - admin___roles___assign: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roleId: string; - /** Format: misskey:id */ - userId: string; - expiresAt?: number | null; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/roles/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:roles* - */ - admin___roles___create: { - requestBody: { - content: { - 'application/json': { - name: string; - description: string; - color: string | null; - iconUrl: string | null; - /** @enum {string} */ - target: 'manual' | 'conditional'; - condFormula: Record; - isPublic: boolean; - isModerator: boolean; - isAdministrator: boolean; - /** @default false */ - isExplorable?: boolean; - asBadge: boolean; - preserveAssignmentOnMoveAccount?: boolean; - canEditMembersByModerator: boolean; - displayOrder: number; - policies: Record; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Role']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/roles/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:roles* - */ - admin___roles___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roleId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/roles/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:roles* - */ - admin___roles___list: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Role'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/roles/show - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:roles* - */ - admin___roles___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roleId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Role']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/roles/unassign - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:roles* - */ - admin___roles___unassign: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roleId: string; - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/roles/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:roles* - */ - admin___roles___update: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roleId: string; - name?: string; - description?: string; - color?: string | null; - iconUrl?: string | null; - /** @enum {string} */ - target?: 'manual' | 'conditional'; - condFormula?: Record; - isPublic?: boolean; - isModerator?: boolean; - isAdministrator?: boolean; - isExplorable?: boolean; - asBadge?: boolean; - preserveAssignmentOnMoveAccount?: boolean; - canEditMembersByModerator?: boolean; - displayOrder?: number; - policies?: Record; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/roles/update-default-policies - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:roles* - */ - 'admin___roles___update-default-policies': { - requestBody: { - content: { - 'application/json': { - policies: Record; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/roles/users - * @description No description provided. - * - * **Credential required**: *No* / **Permission**: *read:admin:roles* - */ - admin___roles___users: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roleId: string; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 10 */ - limit?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': ({ - /** Format: misskey:id */ - id: string; - /** Format: date-time */ - createdAt: string; - user: components['schemas']['UserDetailed']; - /** Format: date-time */ - expiresAt: string | null; - })[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/send-email - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:send-email* - */ - 'admin___send-email': { - requestBody: { - content: { - 'application/json': { - to: string; - subject: string; - text: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/server-info - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:server-info* - */ - 'admin___server-info': { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - machine: string; - /** @example linux */ - os: string; - node: string; - psql: string; - cpu: { - model: string; - cores: number; - }; - mem: { - /** Format: bytes */ - total: number; - }; - fs: { - /** Format: bytes */ - total: number; - /** Format: bytes */ - used: number; - }; - net: { - /** @example eth0 */ - interface: string; - }; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/show-moderation-logs - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:show-moderation-log* - */ - 'admin___show-moderation-logs': { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - type?: string | null; - /** Format: misskey:id */ - userId?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** Format: id */ - id: string; - /** Format: date-time */ - createdAt: string; - type: string; - info: Record; - /** Format: id */ - userId: string; - user: components['schemas']['UserDetailedNotMe']; - }[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/show-user - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:show-user* - */ - 'admin___show-user': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - email: string | null; - emailVerified: boolean; - followedMessage: string | null; - autoAcceptFollowed: boolean; - noCrawle: boolean; - preventAiLearning: boolean; - alwaysMarkNsfw: boolean; - autoSensitive: boolean; - carefulBot: boolean; - injectFeaturedNote: boolean; - receiveAnnouncementEmail: boolean; - mutedWords: (string | string[])[]; - mutedInstances: string[]; - notificationRecieveConfig: { - note?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - follow?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - mention?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - reply?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - renote?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - quote?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - reaction?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - pollEnded?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - receiveFollowRequest?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - followRequestAccepted?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - roleAssigned?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - chatRoomInvitationReceived?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - achievementEarned?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - app?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - test?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - }; - isModerator: boolean; - isSilenced: boolean; - isSuspended: boolean; - isHibernated: boolean; - lastActiveDate: string | null; - moderationNote: string; - signins: components['schemas']['Signin'][]; - policies: components['schemas']['RolePolicies']; - roles: components['schemas']['Role'][]; - roleAssigns: ({ - createdAt: string; - expiresAt: string | null; - roleId: string; - })[]; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/show-users - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:show-user* - */ - 'admin___show-users': { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** @default 0 */ - offset?: number; - /** @enum {string} */ - sort?: '+follower' | '-follower' | '+createdAt' | '-createdAt' | '+updatedAt' | '-updatedAt' | '+lastActiveDate' | '-lastActiveDate'; - /** - * @default all - * @enum {string} - */ - state?: 'all' | 'alive' | 'available' | 'admin' | 'moderator' | 'adminOrModerator' | 'suspended'; - /** - * @default combined - * @enum {string} - */ - origin?: 'combined' | 'local' | 'remote'; - /** @default null */ - username?: string | null; - /** - * @description The local host is represented with `null`. - * @default null - */ - hostname?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserDetailed'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/suspend-user - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:suspend-user* - */ - 'admin___suspend-user': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/system-webhook/create - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook* - */ - 'admin___system-webhook___create': { - requestBody: { - content: { - 'application/json': { - isActive: boolean; - name: string; - on: ('abuseReport' | 'abuseReportResolved' | 'userCreated' | 'inactiveModeratorsWarning' | 'inactiveModeratorsInvitationOnlyChanged')[]; - url: string; - secret: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['SystemWebhook']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/system-webhook/delete - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook* - */ - 'admin___system-webhook___delete': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/system-webhook/list - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook* - */ - 'admin___system-webhook___list': { - requestBody: { - content: { - 'application/json': { - isActive?: boolean; - on?: ('abuseReport' | 'abuseReportResolved' | 'userCreated' | 'inactiveModeratorsWarning' | 'inactiveModeratorsInvitationOnlyChanged')[]; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['SystemWebhook'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/system-webhook/show - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook* - */ - 'admin___system-webhook___show': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['SystemWebhook']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/system-webhook/test - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *read:admin:system-webhook* - */ - 'admin___system-webhook___test': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - webhookId: string; - /** @enum {string} */ - type: 'abuseReport' | 'abuseReportResolved' | 'userCreated' | 'inactiveModeratorsWarning' | 'inactiveModeratorsInvitationOnlyChanged'; - override?: { - url?: string; - secret?: string; - }; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/system-webhook/update - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook* - */ - 'admin___system-webhook___update': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - isActive: boolean; - name: string; - on: ('abuseReport' | 'abuseReportResolved' | 'userCreated' | 'inactiveModeratorsWarning' | 'inactiveModeratorsInvitationOnlyChanged')[]; - url: string; - secret: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['SystemWebhook']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/unset-user-avatar - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:unset-user-avatar* - */ - 'admin___unset-user-avatar': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/unset-user-banner - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:unset-user-banner* - */ - 'admin___unset-user-banner': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/unsuspend-user - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:unsuspend-user* - */ - 'admin___unsuspend-user': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/update-abuse-user-report - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:resolve-abuse-user-report* - */ - 'admin___update-abuse-user-report': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - reportId: string; - moderationNote?: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/update-meta - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:meta* - */ - 'admin___update-meta': { - requestBody: { - content: { - 'application/json': { - disableRegistration?: boolean | null; - pinnedUsers?: string[] | null; - hiddenTags?: string[] | null; - blockedHosts?: string[] | null; - sensitiveWords?: string[] | null; - prohibitedWords?: string[] | null; - prohibitedWordsForNameOfUser?: string[] | null; - themeColor?: string | null; - mascotImageUrl?: string | null; - bannerUrl?: string | null; - serverErrorImageUrl?: string | null; - infoImageUrl?: string | null; - notFoundImageUrl?: string | null; - iconUrl?: string | null; - app192IconUrl?: string | null; - app512IconUrl?: string | null; - backgroundImageUrl?: string | null; - logoImageUrl?: string | null; - name?: string | null; - shortName?: string | null; - description?: string | null; - defaultLightTheme?: string | null; - defaultDarkTheme?: string | null; - cacheRemoteFiles?: boolean; - cacheRemoteSensitiveFiles?: boolean; - emailRequiredForSignup?: boolean; - enableHcaptcha?: boolean; - hcaptchaSiteKey?: string | null; - hcaptchaSecretKey?: string | null; - enableMcaptcha?: boolean; - mcaptchaSiteKey?: string | null; - mcaptchaInstanceUrl?: string | null; - mcaptchaSecretKey?: string | null; - enableRecaptcha?: boolean; - recaptchaSiteKey?: string | null; - recaptchaSecretKey?: string | null; - enableTurnstile?: boolean; - turnstileSiteKey?: string | null; - turnstileSecretKey?: string | null; - enableTestcaptcha?: boolean; - googleAnalyticsMeasurementId?: string | null; - /** @enum {string} */ - sensitiveMediaDetection?: 'none' | 'all' | 'local' | 'remote'; - /** @enum {string} */ - sensitiveMediaDetectionSensitivity?: 'medium' | 'low' | 'high' | 'veryLow' | 'veryHigh'; - setSensitiveFlagAutomatically?: boolean; - enableSensitiveMediaDetectionForVideos?: boolean; - maintainerName?: string | null; - maintainerEmail?: string | null; - langs?: string[]; - deeplAuthKey?: string | null; - deeplIsPro?: boolean; - enableEmail?: boolean; - email?: string | null; - smtpSecure?: boolean; - smtpHost?: string | null; - smtpPort?: number | null; - smtpUser?: string | null; - smtpPass?: string | null; - enableServiceWorker?: boolean; - swPublicKey?: string | null; - swPrivateKey?: string | null; - tosUrl?: string | null; - repositoryUrl?: string | null; - feedbackUrl?: string | null; - impressumUrl?: string | null; - privacyPolicyUrl?: string | null; - inquiryUrl?: string | null; - useObjectStorage?: boolean; - objectStorageBaseUrl?: string | null; - objectStorageBucket?: string | null; - objectStoragePrefix?: string | null; - objectStorageEndpoint?: string | null; - objectStorageRegion?: string | null; - objectStoragePort?: number | null; - objectStorageAccessKey?: string | null; - objectStorageSecretKey?: string | null; - objectStorageUseSSL?: boolean; - objectStorageUseProxy?: boolean; - objectStorageSetPublicRead?: boolean; - objectStorageS3ForcePathStyle?: boolean; - enableIpLogging?: boolean; - enableActiveEmailValidation?: boolean; - enableVerifymailApi?: boolean; - verifymailAuthKey?: string | null; - enableTruemailApi?: boolean; - truemailInstance?: string | null; - truemailAuthKey?: string | null; - enableChartsForRemoteUser?: boolean; - enableChartsForFederatedInstances?: boolean; - enableStatsForFederatedInstances?: boolean; - enableServerMachineStats?: boolean; - enableIdenticonGeneration?: boolean; - serverRules?: string[]; - bannedEmailDomains?: string[]; - preservedUsernames?: string[]; - manifestJsonOverride?: string; - enableFanoutTimeline?: boolean; - enableFanoutTimelineDbFallback?: boolean; - perLocalUserUserTimelineCacheMax?: number; - perRemoteUserUserTimelineCacheMax?: number; - perUserHomeTimelineCacheMax?: number; - perUserListTimelineCacheMax?: number; - enableReactionsBuffering?: boolean; - notesPerOneAd?: number; - silencedHosts?: string[] | null; - mediaSilencedHosts?: string[] | null; - /** @description [Deprecated] Use "urlPreviewSummaryProxyUrl" instead. */ - summalyProxy?: string | null; - urlPreviewEnabled?: boolean; - urlPreviewAllowRedirect?: boolean; - urlPreviewTimeout?: number; - urlPreviewMaximumContentLength?: number; - urlPreviewRequireContentLength?: boolean; - urlPreviewUserAgent?: string | null; - urlPreviewSummaryProxyUrl?: string | null; - /** @enum {string} */ - federation?: 'all' | 'none' | 'specified'; - federationHosts?: string[]; - deliverSuspendedSoftware?: { - software: string; - versionRange: string; - }[]; - singleUserMode?: boolean; - /** @enum {string} */ - ugcVisibilityForVisitor?: 'all' | 'local' | 'none'; - proxyRemoteFiles?: boolean; - signToActivityPubGet?: boolean; - allowExternalApRedirect?: boolean; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/update-proxy-account - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:account* - */ - 'admin___update-proxy-account': { - requestBody: { - content: { - 'application/json': { - description?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserDetailed']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * admin/update-user-note - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:admin:user-note* - */ - 'admin___update-user-note': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - text: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * announcements - * @description No description provided. - * - * **Credential required**: *No* - */ - announcements: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default true */ - isActive?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Announcement'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * announcements/show - * @description No description provided. - * - * **Credential required**: *No* - */ - announcements___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - announcementId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Announcement']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * antennas/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - antennas___create: { - requestBody: { - content: { - 'application/json': { - name: string; - /** @enum {string} */ - src: 'home' | 'all' | 'users' | 'list' | 'users_blacklist'; - /** Format: misskey:id */ - userListId?: string | null; - keywords: string[][]; - excludeKeywords: string[][]; - users: string[]; - caseSensitive: boolean; - localOnly?: boolean; - excludeBots?: boolean; - withReplies: boolean; - withFile: boolean; - excludeNotesInSensitiveChannel?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Antenna']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * antennas/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - antennas___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - antennaId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * antennas/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - antennas___list: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Antenna'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * antennas/notes - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - antennas___notes: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - antennaId: string; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - sinceDate?: number; - untilDate?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * antennas/show - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - antennas___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - antennaId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Antenna']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * antennas/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - antennas___update: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - antennaId: string; - name?: string; - /** @enum {string} */ - src?: 'home' | 'all' | 'users' | 'list' | 'users_blacklist'; - /** Format: misskey:id */ - userListId?: string | null; - keywords?: string[][]; - excludeKeywords?: string[][]; - users?: string[]; - caseSensitive?: boolean; - localOnly?: boolean; - excludeBots?: boolean; - withReplies?: boolean; - withFile?: boolean; - excludeNotesInSensitiveChannel?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Antenna']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * ap/get - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:federation* - */ - ap___get: { - requestBody: { - content: { - 'application/json': { - uri: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': Record; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * ap/show - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - ap___show: { - requestBody: { - content: { - 'application/json': { - uri: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': OneOf<[{ - /** @enum {string} */ - type: 'User'; - object: components['schemas']['UserDetailedNotMe']; - }, { - /** @enum {string} */ - type: 'Note'; - object: components['schemas']['Note']; - }]>; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * app/create - * @description No description provided. - * - * **Credential required**: *No* - */ - app___create: { - requestBody: { - content: { - 'application/json': { - name: string; - description: string; - permission: string[]; - callbackUrl?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['App']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * app/show - * @description No description provided. - * - * **Credential required**: *No* - */ - app___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - appId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['App']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * auth/accept - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - auth___accept: { - requestBody: { - content: { - 'application/json': { - token: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * auth/session/generate - * @description No description provided. - * - * **Credential required**: *No* - */ - auth___session___generate: { - requestBody: { - content: { - 'application/json': { - appSecret: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - token: string; - /** Format: url */ - url: string; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * auth/session/show - * @description No description provided. - * - * **Credential required**: *No* - */ - auth___session___show: { - requestBody: { - content: { - 'application/json': { - token: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** Format: id */ - id: string; - app: components['schemas']['App']; - token: string; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * auth/session/userkey - * @description No description provided. - * - * **Credential required**: *No* - */ - auth___session___userkey: { - requestBody: { - content: { - 'application/json': { - appSecret: string; - token: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - accessToken: string; - user: components['schemas']['UserDetailedNotMe']; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * blocking/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:blocks* - */ - blocking___create: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserDetailedNotMe']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * blocking/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:blocks* - */ - blocking___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserDetailedNotMe']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * blocking/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:blocks* - */ - blocking___list: { - requestBody: { - content: { - 'application/json': { - /** @default 30 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Blocking'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * bubble-game/ranking - * @description No description provided. - * - * **Credential required**: *No* - */ - 'bubble-game___ranking': { - requestBody: { - content: { - 'application/json': { - gameMode: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - score: number; - user?: components['schemas']['UserLite']; - }[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * bubble-game/register - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - 'bubble-game___register': { - requestBody: { - content: { - 'application/json': { - score: number; - seed: string; - logs: number[][]; - gameMode: string; - gameVersion: number; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * channels/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:channels* - */ - channels___create: { - requestBody: { - content: { - 'application/json': { - name: string; - description?: string | null; - /** Format: misskey:id */ - bannerId?: string | null; - color?: string; - isSensitive?: boolean | null; - allowRenoteToExternal?: boolean | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Channel']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * channels/favorite - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:channels* - */ - channels___favorite: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - channelId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * channels/featured - * @description No description provided. - * - * **Credential required**: *No* - */ - channels___featured: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Channel'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * channels/follow - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:channels* - */ - channels___follow: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - channelId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * channels/followed - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:channels* - */ - channels___followed: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 5 */ - limit?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Channel'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * channels/my-favorites - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:channels* - */ - 'channels___my-favorites': { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Channel'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * channels/owned - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:channels* - */ - channels___owned: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 5 */ - limit?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Channel'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * channels/search - * @description No description provided. - * - * **Credential required**: *No* - */ - channels___search: { - requestBody: { - content: { - 'application/json': { - query: string; - /** - * @default nameAndDescription - * @enum {string} - */ - type?: 'nameAndDescription' | 'nameOnly'; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 5 */ - limit?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Channel'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * channels/show - * @description No description provided. - * - * **Credential required**: *No* - */ - channels___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - channelId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Channel']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * channels/timeline - * @description No description provided. - * - * **Credential required**: *No* - */ - channels___timeline: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - channelId: string; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - sinceDate?: number; - untilDate?: number; - /** @default false */ - allowPartial?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * channels/unfavorite - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:channels* - */ - channels___unfavorite: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - channelId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * channels/unfollow - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:channels* - */ - channels___unfollow: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - channelId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * channels/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:channels* - */ - channels___update: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - channelId: string; - name?: string; - description?: string | null; - /** Format: misskey:id */ - bannerId?: string | null; - isArchived?: boolean | null; - pinnedNoteIds?: string[]; - color?: string; - isSensitive?: boolean | null; - allowRenoteToExternal?: boolean | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Channel']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * charts/active-users - * @description No description provided. - * - * **Credential required**: *No* - */ - 'charts___active-users': { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - span: 'day' | 'hour'; - /** @default 30 */ - limit?: number; - /** @default null */ - offset?: number | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - readWrite: number[]; - read: number[]; - write: number[]; - registeredWithinWeek: number[]; - registeredWithinMonth: number[]; - registeredWithinYear: number[]; - registeredOutsideWeek: number[]; - registeredOutsideMonth: number[]; - registeredOutsideYear: number[]; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * charts/ap-request - * @description No description provided. - * - * **Credential required**: *No* - */ - 'charts___ap-request': { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - span: 'day' | 'hour'; - /** @default 30 */ - limit?: number; - /** @default null */ - offset?: number | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - deliverFailed: number[]; - deliverSucceeded: number[]; - inboxReceived: number[]; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * charts/drive - * @description No description provided. - * - * **Credential required**: *No* - */ - charts___drive: { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - span: 'day' | 'hour'; - /** @default 30 */ - limit?: number; - /** @default null */ - offset?: number | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - local: { - incCount: number[]; - incSize: number[]; - decCount: number[]; - decSize: number[]; - }; - remote: { - incCount: number[]; - incSize: number[]; - decCount: number[]; - decSize: number[]; - }; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * charts/federation - * @description No description provided. - * - * **Credential required**: *No* - */ - charts___federation: { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - span: 'day' | 'hour'; - /** @default 30 */ - limit?: number; - /** @default null */ - offset?: number | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - deliveredInstances: number[]; - inboxInstances: number[]; - stalled: number[]; - sub: number[]; - pub: number[]; - pubsub: number[]; - subActive: number[]; - pubActive: number[]; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * charts/instance - * @description No description provided. - * - * **Credential required**: *No* - */ - charts___instance: { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - span: 'day' | 'hour'; - /** @default 30 */ - limit?: number; - /** @default null */ - offset?: number | null; - host: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - requests: { - failed: number[]; - succeeded: number[]; - received: number[]; - }; - notes: { - total: number[]; - inc: number[]; - dec: number[]; - diffs: { - normal: number[]; - reply: number[]; - renote: number[]; - withFile: number[]; - }; - }; - users: { - total: number[]; - inc: number[]; - dec: number[]; - }; - following: { - total: number[]; - inc: number[]; - dec: number[]; - }; - followers: { - total: number[]; - inc: number[]; - dec: number[]; - }; - drive: { - totalFiles: number[]; - incFiles: number[]; - decFiles: number[]; - incUsage: number[]; - decUsage: number[]; - }; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * charts/notes - * @description No description provided. - * - * **Credential required**: *No* - */ - charts___notes: { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - span: 'day' | 'hour'; - /** @default 30 */ - limit?: number; - /** @default null */ - offset?: number | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - local: { - total: number[]; - inc: number[]; - dec: number[]; - diffs: { - normal: number[]; - reply: number[]; - renote: number[]; - withFile: number[]; - }; - }; - remote: { - total: number[]; - inc: number[]; - dec: number[]; - diffs: { - normal: number[]; - reply: number[]; - renote: number[]; - withFile: number[]; - }; - }; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * charts/user/drive - * @description No description provided. - * - * **Credential required**: *No* - */ - charts___user___drive: { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - span: 'day' | 'hour'; - /** @default 30 */ - limit?: number; - /** @default null */ - offset?: number | null; - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - totalCount: number[]; - totalSize: number[]; - incCount: number[]; - incSize: number[]; - decCount: number[]; - decSize: number[]; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * charts/user/following - * @description No description provided. - * - * **Credential required**: *No* - */ - charts___user___following: { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - span: 'day' | 'hour'; - /** @default 30 */ - limit?: number; - /** @default null */ - offset?: number | null; - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - local: { - followings: { - total: number[]; - inc: number[]; - dec: number[]; - }; - followers: { - total: number[]; - inc: number[]; - dec: number[]; - }; - }; - remote: { - followings: { - total: number[]; - inc: number[]; - dec: number[]; - }; - followers: { - total: number[]; - inc: number[]; - dec: number[]; - }; - }; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * charts/user/notes - * @description No description provided. - * - * **Credential required**: *No* - */ - charts___user___notes: { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - span: 'day' | 'hour'; - /** @default 30 */ - limit?: number; - /** @default null */ - offset?: number | null; - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - total: number[]; - inc: number[]; - dec: number[]; - diffs: { - normal: number[]; - reply: number[]; - renote: number[]; - withFile: number[]; - }; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * charts/user/pv - * @description No description provided. - * - * **Credential required**: *No* - */ - charts___user___pv: { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - span: 'day' | 'hour'; - /** @default 30 */ - limit?: number; - /** @default null */ - offset?: number | null; - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - upv: { - user: number[]; - visitor: number[]; - }; - pv: { - user: number[]; - visitor: number[]; - }; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * charts/user/reactions - * @description No description provided. - * - * **Credential required**: *No* - */ - charts___user___reactions: { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - span: 'day' | 'hour'; - /** @default 30 */ - limit?: number; - /** @default null */ - offset?: number | null; - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - local: { - count: number[]; - }; - remote: { - count: number[]; - }; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * charts/users - * @description No description provided. - * - * **Credential required**: *No* - */ - charts___users: { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - span: 'day' | 'hour'; - /** @default 30 */ - limit?: number; - /** @default null */ - offset?: number | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - local: { - total: number[]; - inc: number[]; - dec: number[]; - }; - remote: { - total: number[]; - inc: number[]; - dec: number[]; - }; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/history - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - chat___history: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** @default false */ - room?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ChatMessage'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/messages/create-to-room - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - 'chat___messages___create-to-room': { - requestBody: { - content: { - 'application/json': { - text?: string | null; - /** Format: misskey:id */ - fileId?: string; - /** Format: misskey:id */ - toRoomId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ChatMessageLiteForRoom']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/messages/create-to-user - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - 'chat___messages___create-to-user': { - requestBody: { - content: { - 'application/json': { - text?: string | null; - /** Format: misskey:id */ - fileId?: string; - /** Format: misskey:id */ - toUserId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ChatMessageLiteFor1on1']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/messages/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - chat___messages___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - messageId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/messages/react - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - chat___messages___react: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - messageId: string; - reaction: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/messages/room-timeline - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - 'chat___messages___room-timeline': { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** Format: misskey:id */ - roomId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ChatMessageLiteForRoom'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/messages/search - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - chat___messages___search: { - requestBody: { - content: { - 'application/json': { - query: string; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - userId?: string | null; - /** Format: misskey:id */ - roomId?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ChatMessage'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/messages/show - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - chat___messages___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - messageId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ChatMessage']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/messages/unreact - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - chat___messages___unreact: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - messageId: string; - reaction: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/messages/user-timeline - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - 'chat___messages___user-timeline': { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ChatMessageLiteFor1on1'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/read-all - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - 'chat___read-all': { - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/rooms/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - chat___rooms___create: { - requestBody: { - content: { - 'application/json': { - name: string; - description?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ChatRoom']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/rooms/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - chat___rooms___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roomId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/rooms/invitations/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - chat___rooms___invitations___create: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roomId: string; - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ChatRoomInvitation']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/rooms/invitations/ignore - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - chat___rooms___invitations___ignore: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roomId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/rooms/invitations/inbox - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - chat___rooms___invitations___inbox: { - requestBody: { - content: { - 'application/json': { - /** @default 30 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ChatRoomInvitation'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/rooms/invitations/outbox - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - chat___rooms___invitations___outbox: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roomId: string; - /** @default 30 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ChatRoomInvitation'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/rooms/join - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - chat___rooms___join: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roomId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/rooms/joining - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - chat___rooms___joining: { - requestBody: { - content: { - 'application/json': { - /** @default 30 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ChatRoomMembership'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/rooms/leave - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - chat___rooms___leave: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roomId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/rooms/members - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - chat___rooms___members: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roomId: string; - /** @default 30 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ChatRoomMembership'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/rooms/mute - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - chat___rooms___mute: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roomId: string; - mute: boolean; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/rooms/owned - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - chat___rooms___owned: { - requestBody: { - content: { - 'application/json': { - /** @default 30 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ChatRoom'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/rooms/show - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:chat* - */ - chat___rooms___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roomId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ChatRoom']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * chat/rooms/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:chat* - */ - chat___rooms___update: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roomId: string; - name?: string; - description?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ChatRoom']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * clips/add-note - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - 'clips___add-note': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - clipId: string; - /** Format: misskey:id */ - noteId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * clips/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - clips___create: { - requestBody: { - content: { - 'application/json': { - name: string; - /** @default false */ - isPublic?: boolean; - description?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Clip']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * clips/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - clips___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - clipId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * clips/favorite - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:clip-favorite* - */ - clips___favorite: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - clipId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * clips/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - clips___list: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Clip'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * clips/my-favorites - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:clip-favorite* - */ - 'clips___my-favorites': { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Clip'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * clips/notes - * @description No description provided. - * - * **Credential required**: *No* / **Permission**: *read:account* - */ - clips___notes: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - clipId: string; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * clips/remove-note - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - 'clips___remove-note': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - clipId: string; - /** Format: misskey:id */ - noteId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * clips/show - * @description No description provided. - * - * **Credential required**: *No* / **Permission**: *read:account* - */ - clips___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - clipId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Clip']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * clips/unfavorite - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:clip-favorite* - */ - clips___unfavorite: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - clipId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * clips/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - clips___update: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - clipId: string; - name?: string; - isPublic?: boolean; - description?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Clip']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - drive: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - capacity: number; - usage: number; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/files - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - drive___files: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** - * Format: misskey:id - * @default null - */ - folderId?: string | null; - type?: string | null; - /** @enum {string|null} */ - sort?: '+createdAt' | '-createdAt' | '+name' | '-name' | '+size' | '-size' | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['DriveFile'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/files/attached-notes - * @description Find the notes to which the given file is attached. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - 'drive___files___attached-notes': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - fileId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/files/check-existence - * @description Check if a given file exists. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - 'drive___files___check-existence': { - requestBody: { - content: { - 'application/json': { - md5: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': boolean; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/files/create - * @description Upload a new drive file. - * - * **Credential required**: *Yes* / **Permission**: *write:drive* - */ - drive___files___create: { - requestBody: { - content: { - 'multipart/form-data': { - /** - * Format: misskey:id - * @default null - */ - folderId?: string | null; - /** @default null */ - name?: string | null; - /** @default null */ - comment?: string | null; - /** @default false */ - isSensitive?: boolean; - /** @default false */ - force?: boolean; - /** - * Format: binary - * @description The file contents. - */ - file: Blob; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['DriveFile']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/files/delete - * @description Delete an existing drive file. - * - * **Credential required**: *Yes* / **Permission**: *write:drive* - */ - drive___files___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - fileId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/files/find - * @description Search for a drive file by the given parameters. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - drive___files___find: { - requestBody: { - content: { - 'application/json': { - name: string; - /** - * Format: misskey:id - * @default null - */ - folderId?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['DriveFile'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/files/find-by-hash - * @description Search for a drive file by a hash of the contents. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - 'drive___files___find-by-hash': { - requestBody: { - content: { - 'application/json': { - md5: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['DriveFile'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/files/move-bulk - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:drive* - */ - 'drive___files___move-bulk': { - requestBody: { - content: { - 'application/json': { - fileIds: string[]; - /** Format: misskey:id */ - folderId?: string | null; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/files/show - * @description Show the properties of a drive file. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - drive___files___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - fileId: string; - } | { - url: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['DriveFile']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/files/update - * @description Update the properties of a drive file. - * - * **Credential required**: *Yes* / **Permission**: *write:drive* - */ - drive___files___update: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - fileId: string; - /** Format: misskey:id */ - folderId?: string | null; - name?: string; - isSensitive?: boolean; - comment?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['DriveFile']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/files/upload-from-url - * @description Request the server to download a new drive file from the specified URL. - * - * **Credential required**: *Yes* / **Permission**: *write:drive* - */ - 'drive___files___upload-from-url': { - requestBody: { - content: { - 'application/json': { - url: string; - /** - * Format: misskey:id - * @default null - */ - folderId?: string | null; - /** @default false */ - isSensitive?: boolean; - /** @default null */ - comment?: string | null; - /** @default null */ - marker?: string | null; - /** @default false */ - force?: boolean; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/folders - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - drive___folders: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** - * Format: misskey:id - * @default null - */ - folderId?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['DriveFolder'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/folders/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:drive* - */ - drive___folders___create: { - requestBody: { - content: { - 'application/json': { - /** @default Untitled */ - name?: string; - /** Format: misskey:id */ - parentId?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['DriveFolder']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/folders/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:drive* - */ - drive___folders___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - folderId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/folders/find - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - drive___folders___find: { - requestBody: { - content: { - 'application/json': { - name: string; - /** - * Format: misskey:id - * @default null - */ - parentId?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['DriveFolder'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/folders/show - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - drive___folders___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - folderId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['DriveFolder']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/folders/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:drive* - */ - drive___folders___update: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - folderId: string; - name?: string; - /** Format: misskey:id */ - parentId?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['DriveFolder']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * drive/stream - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:drive* - */ - drive___stream: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - type?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['DriveFile'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * email-address/available - * @description No description provided. - * - * **Credential required**: *No* - */ - 'email-address___available': { - requestBody: { - content: { - 'application/json': { - emailAddress: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - available: boolean; - reason: string | null; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * emoji - * @description No description provided. - * - * **Credential required**: *No* - */ - emoji: { - requestBody: { - content: { - 'application/json': { - name: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['EmojiDetailed']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * emojis - * @description No description provided. - * - * **Credential required**: *No* - */ - emojis: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - emojis: components['schemas']['EmojiSimple'][]; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * endpoint - * @description No description provided. - * - * **Credential required**: *No* - */ - endpoint: { - requestBody: { - content: { - 'application/json': { - endpoint: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - params: { - name: string; - type: string; - }[]; - } | null; - }; - }; - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * endpoints - * @description No description provided. - * - * **Credential required**: *No* - */ - endpoints: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': string[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * export-custom-emojis - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'export-custom-emojis': { - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * federation/followers - * @description No description provided. - * - * **Credential required**: *No* - */ - federation___followers: { - requestBody: { - content: { - 'application/json': { - host: string; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 10 */ - limit?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Following'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * federation/following - * @description No description provided. - * - * **Credential required**: *No* - */ - federation___following: { - requestBody: { - content: { - 'application/json': { - host: string; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 10 */ - limit?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Following'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * federation/instances - * @description No description provided. - * - * **Credential required**: *No* - */ - federation___instances: { - requestBody: { - content: { - 'application/json': { - /** @description Omit or use `null` to not filter by host. */ - host?: string | null; - blocked?: boolean | null; - notResponding?: boolean | null; - suspended?: boolean | null; - silenced?: boolean | null; - federating?: boolean | null; - subscribing?: boolean | null; - publishing?: boolean | null; - /** @default 30 */ - limit?: number; - /** @default 0 */ - offset?: number; - /** @enum {string|null} */ - sort?: '+pubSub' | '-pubSub' | '+notes' | '-notes' | '+users' | '-users' | '+following' | '-following' | '+followers' | '-followers' | '+firstRetrievedAt' | '-firstRetrievedAt' | '+latestRequestReceivedAt' | '-latestRequestReceivedAt' | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['FederationInstance'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * federation/show-instance - * @description No description provided. - * - * **Credential required**: *No* - */ - 'federation___show-instance': { - requestBody: { - content: { - 'application/json': { - host: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['FederationInstance'] | null; - }; - }; - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * federation/stats - * @description No description provided. - * - * **Credential required**: *No* - */ - federation___stats: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - topSubInstances: components['schemas']['FederationInstance'][]; - otherFollowersCount: number; - topPubInstances: components['schemas']['FederationInstance'][]; - otherFollowingCount: number; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * federation/update-remote-user - * @description No description provided. - * - * **Credential required**: *No* - */ - 'federation___update-remote-user': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * federation/users - * @description No description provided. - * - * **Credential required**: *No* - */ - federation___users: { - requestBody: { - content: { - 'application/json': { - host: string; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 10 */ - limit?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserDetailedNotMe'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * fetch-external-resources - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'fetch-external-resources': { - requestBody: { - content: { - 'application/json': { - url: string; - hash: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - type: string; - data: string; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * fetch-rss - * @description No description provided. - * - * **Credential required**: *No* - */ - 'fetch-rss': { - requestBody: { - content: { - 'application/json': { - url: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - image?: { - link?: string; - url: string; - title?: string; - }; - paginationLinks?: { - self?: string; - first?: string; - next?: string; - last?: string; - prev?: string; - }; - link?: string; - title?: string; - items: { - link?: string; - guid?: string; - title?: string; - pubDate?: string; - creator?: string; - summary?: string; - content?: string; - isoDate?: string; - categories?: string[]; - contentSnippet?: string; - enclosure?: { - url: string; - length?: number; - type?: string; - }; - }[]; - feedUrl?: string; - description?: string; - itunes?: { - image?: string; - owner?: { - name?: string; - email?: string; - }; - author?: string; - summary?: string; - explicit?: string; - categories?: string[]; - keywords?: string[]; - [key: string]: unknown; - }; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * flash/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:flash* - */ - flash___create: { - requestBody: { - content: { - 'application/json': { - title: string; - summary: string; - script: string; - permissions: string[]; - /** - * @default public - * @enum {string} - */ - visibility?: 'public' | 'private'; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Flash']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * flash/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:flash* - */ - flash___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - flashId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * flash/featured - * @description No description provided. - * - * **Credential required**: *No* - */ - flash___featured: { - requestBody: { - content: { - 'application/json': { - /** @default 0 */ - offset?: number; - /** @default 10 */ - limit?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Flash'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * flash/like - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:flash-likes* - */ - flash___like: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - flashId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * flash/my - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:flash* - */ - flash___my: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Flash'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * flash/my-likes - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:flash-likes* - */ - 'flash___my-likes': { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** Format: id */ - id: string; - flash: components['schemas']['Flash']; - }[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * flash/show - * @description No description provided. - * - * **Credential required**: *No* - */ - flash___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - flashId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Flash']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * flash/unlike - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:flash-likes* - */ - flash___unlike: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - flashId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * flash/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:flash* - */ - flash___update: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - flashId: string; - title?: string; - summary?: string; - script?: string; - permissions?: string[]; - /** @enum {string} */ - visibility?: 'public' | 'private'; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * following/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:following* - */ - following___create: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - withReplies?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserLite']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * following/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:following* - */ - following___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserLite']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * following/invalidate - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:following* - */ - following___invalidate: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserLite']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * following/requests/accept - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:following* - */ - following___requests___accept: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * following/requests/cancel - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:following* - */ - following___requests___cancel: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserLite']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * following/requests/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:following* - */ - following___requests___list: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 10 */ - limit?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** Format: id */ - id: string; - follower: components['schemas']['UserLite']; - followee: components['schemas']['UserLite']; - }[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * following/requests/reject - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:following* - */ - following___requests___reject: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * following/requests/sent - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:following* - */ - following___requests___sent: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 10 */ - limit?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** Format: id */ - id: string; - follower: components['schemas']['UserLite']; - followee: components['schemas']['UserLite']; - }[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * following/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:following* - */ - following___update: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - /** @enum {string} */ - notify?: 'normal' | 'none'; - withReplies?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserLite']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * following/update-all - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:following* - */ - 'following___update-all': { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - notify?: 'normal' | 'none'; - withReplies?: boolean; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * gallery/featured - * @description No description provided. - * - * **Credential required**: *No* - */ - gallery___featured: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['GalleryPost'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * gallery/popular - * @description No description provided. - * - * **Credential required**: *No* - */ - gallery___popular: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['GalleryPost'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * gallery/posts - * @description No description provided. - * - * **Credential required**: *No* - */ - gallery___posts: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['GalleryPost'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * gallery/posts/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:gallery* - */ - gallery___posts___create: { - requestBody: { - content: { - 'application/json': { - title: string; - description?: string | null; - fileIds: string[]; - /** @default false */ - isSensitive?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['GalleryPost']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * gallery/posts/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:gallery* - */ - gallery___posts___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - postId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * gallery/posts/like - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:gallery-likes* - */ - gallery___posts___like: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - postId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * gallery/posts/show - * @description No description provided. - * - * **Credential required**: *No* - */ - gallery___posts___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - postId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['GalleryPost']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * gallery/posts/unlike - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:gallery-likes* - */ - gallery___posts___unlike: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - postId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * gallery/posts/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:gallery* - */ - gallery___posts___update: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - postId: string; - title?: string; - description?: string | null; - fileIds?: string[]; - /** @default false */ - isSensitive?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['GalleryPost']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * get-avatar-decorations - * @description No description provided. - * - * **Credential required**: *No* - */ - 'get-avatar-decorations': { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** - * Format: id - * @example xxxxxxxxxx - */ - id: string; - name: string; - description: string; - url: string; - roleIdsThatCanBeUsedThisDecoration: string[]; - }[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * get-online-users-count - * @description No description provided. - * - * **Credential required**: *No* - */ - 'get-online-users-count': { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - count: number; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * hashtags/list - * @description No description provided. - * - * **Credential required**: *No* - */ - hashtags___list: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** @default false */ - attachedToUserOnly?: boolean; - /** @default false */ - attachedToLocalUserOnly?: boolean; - /** @default false */ - attachedToRemoteUserOnly?: boolean; - /** @enum {string} */ - sort: '+mentionedUsers' | '-mentionedUsers' | '+mentionedLocalUsers' | '-mentionedLocalUsers' | '+mentionedRemoteUsers' | '-mentionedRemoteUsers' | '+attachedUsers' | '-attachedUsers' | '+attachedLocalUsers' | '-attachedLocalUsers' | '+attachedRemoteUsers' | '-attachedRemoteUsers'; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Hashtag'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * hashtags/search - * @description No description provided. - * - * **Credential required**: *No* - */ - hashtags___search: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - query: string; - /** @default 0 */ - offset?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': string[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * hashtags/show - * @description No description provided. - * - * **Credential required**: *No* - */ - hashtags___show: { - requestBody: { - content: { - 'application/json': { - tag: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Hashtag']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * hashtags/trend - * @description No description provided. - * - * **Credential required**: *No* - */ - hashtags___trend: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - tag: string; - chart: number[]; - usersCount: number; - }[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * hashtags/users - * @description No description provided. - * - * **Credential required**: *No* - */ - hashtags___users: { - requestBody: { - content: { - 'application/json': { - tag: string; - /** @default 10 */ - limit?: number; - /** @enum {string} */ - sort: '+follower' | '-follower' | '+createdAt' | '-createdAt' | '+updatedAt' | '-updatedAt'; - /** - * @default all - * @enum {string} - */ - state?: 'all' | 'alive'; - /** - * @default local - * @enum {string} - */ - origin?: 'combined' | 'local' | 'remote'; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserDetailed'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - i: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['MeDetailed']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/2fa/done - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - i___2fa___done: { - requestBody: { - content: { - 'application/json': { - token: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - backupCodes: string[]; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/2fa/key-done - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___2fa___key-done': { - requestBody: { - content: { - 'application/json': { - password: string; - token?: string | null; - name: string; - credential: Record; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - id: string; - name: string; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/2fa/password-less - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___2fa___password-less': { - requestBody: { - content: { - 'application/json': { - value: boolean; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/2fa/register - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - i___2fa___register: { - requestBody: { - content: { - 'application/json': { - password: string; - token?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - qr: string; - url: string; - secret: string; - label: string; - issuer: string; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/2fa/register-key - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___2fa___register-key': { - requestBody: { - content: { - 'application/json': { - password: string; - token?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - rp: { - id?: string; - }; - user: { - id: string; - name: string; - displayName: string; - }; - challenge: string; - pubKeyCredParams: { - type: string; - alg: number; - }[]; - timeout: number | null; - excludeCredentials: (({ - id: string; - type: string; - transports: ('ble' | 'cable' | 'hybrid' | 'internal' | 'nfc' | 'smart-card' | 'usb')[]; - })[]) | null; - authenticatorSelection: ({ - /** @enum {string} */ - authenticatorAttachment: 'cross-platform' | 'platform'; - requireResidentKey: boolean; - /** @enum {string} */ - userVerification: 'discouraged' | 'preferred' | 'required'; - }) | null; - /** @enum {string|null} */ - attestation: 'direct' | 'enterprise' | 'indirect' | 'none' | null; - extensions: ({ - appid: string | null; - credProps: boolean | null; - hmacCreateSecret: boolean | null; - }) | null; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/2fa/remove-key - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___2fa___remove-key': { - requestBody: { - content: { - 'application/json': { - password: string; - token?: string | null; - credentialId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/2fa/unregister - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - i___2fa___unregister: { - requestBody: { - content: { - 'application/json': { - password: string; - token?: string | null; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/2fa/update-key - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___2fa___update-key': { - requestBody: { - content: { - 'application/json': { - name: string; - credentialId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/apps - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - i___apps: { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - sort?: '+createdAt' | '-createdAt' | '+lastUsedAt' | '-lastUsedAt'; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - name?: string; - /** Format: date-time */ - createdAt: string; - /** Format: date-time */ - lastUsedAt?: string; - permission: string[]; - }[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/authorized-apps - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___authorized-apps': { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** @default 0 */ - offset?: number; - /** - * @default desc - * @enum {string} - */ - sort?: 'desc' | 'asc'; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': ({ - /** Format: misskey:id */ - id: string; - name: string; - callbackUrl: string | null; - permission: string[]; - isAuthorized?: boolean; - })[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/change-password - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___change-password': { - requestBody: { - content: { - 'application/json': { - currentPassword: string; - newPassword: string; - token?: string | null; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/claim-achievement - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - 'i___claim-achievement': { - requestBody: { - content: { - 'application/json': { - /** @enum {string} */ - name: 'notes1' | 'notes10' | 'notes100' | 'notes500' | 'notes1000' | 'notes5000' | 'notes10000' | 'notes20000' | 'notes30000' | 'notes40000' | 'notes50000' | 'notes60000' | 'notes70000' | 'notes80000' | 'notes90000' | 'notes100000' | 'login3' | 'login7' | 'login15' | 'login30' | 'login60' | 'login100' | 'login200' | 'login300' | 'login400' | 'login500' | 'login600' | 'login700' | 'login800' | 'login900' | 'login1000' | 'passedSinceAccountCreated1' | 'passedSinceAccountCreated2' | 'passedSinceAccountCreated3' | 'loggedInOnBirthday' | 'loggedInOnNewYearsDay' | 'noteClipped1' | 'noteFavorited1' | 'myNoteFavorited1' | 'profileFilled' | 'markedAsCat' | 'following1' | 'following10' | 'following50' | 'following100' | 'following300' | 'followers1' | 'followers10' | 'followers50' | 'followers100' | 'followers300' | 'followers500' | 'followers1000' | 'collectAchievements30' | 'viewAchievements3min' | 'iLoveMisskey' | 'foundTreasure' | 'client30min' | 'client60min' | 'noteDeletedWithin1min' | 'postedAtLateNight' | 'postedAt0min0sec' | 'selfQuote' | 'htl20npm' | 'viewInstanceChart' | 'outputHelloWorldOnScratchpad' | 'open3windows' | 'driveFolderCircularReference' | 'reactWithoutRead' | 'clickedClickHere' | 'justPlainLucky' | 'setNameToSyuilo' | 'cookieClicked' | 'brainDiver' | 'smashTestNotificationButton' | 'tutorialCompleted' | 'bubbleGameExplodingHead' | 'bubbleGameDoubleExplodingHead'; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/delete-account - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___delete-account': { - requestBody: { - content: { - 'application/json': { - password: string; - token?: string | null; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/export-antennas - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___export-antennas': { - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/export-blocking - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___export-blocking': { - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/export-clips - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___export-clips': { - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/export-favorites - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___export-favorites': { - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/export-following - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___export-following': { - requestBody: { - content: { - 'application/json': { - /** @default false */ - excludeMuting?: boolean; - /** @default false */ - excludeInactive?: boolean; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/export-mute - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___export-mute': { - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/export-notes - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___export-notes': { - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/export-user-lists - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___export-user-lists': { - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/favorites - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:favorites* - */ - i___favorites: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['NoteFavorite'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/gallery/likes - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:gallery-likes* - */ - i___gallery___likes: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** Format: id */ - id: string; - post: components['schemas']['GalleryPost']; - }[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/gallery/posts - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:gallery* - */ - i___gallery___posts: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['GalleryPost'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/import-antennas - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___import-antennas': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - fileId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/import-blocking - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___import-blocking': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - fileId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/import-following - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___import-following': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - fileId: string; - withReplies?: boolean; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/import-muting - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___import-muting': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - fileId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/import-user-lists - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___import-user-lists': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - fileId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/move - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - i___move: { - requestBody: { - content: { - 'application/json': { - moveToAccount: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': Record; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/notifications - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:notifications* - */ - i___notifications: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default true */ - markAsRead?: boolean; - includeTypes?: ('note' | 'follow' | 'mention' | 'reply' | 'renote' | 'quote' | 'reaction' | 'pollEnded' | 'receiveFollowRequest' | 'followRequestAccepted' | 'roleAssigned' | 'chatRoomInvitationReceived' | 'achievementEarned' | 'exportCompleted' | 'login' | 'createToken' | 'app' | 'test' | 'pollVote' | 'groupInvited')[]; - excludeTypes?: ('note' | 'follow' | 'mention' | 'reply' | 'renote' | 'quote' | 'reaction' | 'pollEnded' | 'receiveFollowRequest' | 'followRequestAccepted' | 'roleAssigned' | 'chatRoomInvitationReceived' | 'achievementEarned' | 'exportCompleted' | 'login' | 'createToken' | 'app' | 'test' | 'pollVote' | 'groupInvited')[]; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Notification'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/notifications-grouped - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:notifications* - */ - 'i___notifications-grouped': { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default true */ - markAsRead?: boolean; - includeTypes?: ('note' | 'follow' | 'mention' | 'reply' | 'renote' | 'quote' | 'reaction' | 'pollEnded' | 'receiveFollowRequest' | 'followRequestAccepted' | 'roleAssigned' | 'chatRoomInvitationReceived' | 'achievementEarned' | 'exportCompleted' | 'login' | 'createToken' | 'app' | 'test' | 'pollVote' | 'groupInvited')[]; - excludeTypes?: ('note' | 'follow' | 'mention' | 'reply' | 'renote' | 'quote' | 'reaction' | 'pollEnded' | 'receiveFollowRequest' | 'followRequestAccepted' | 'roleAssigned' | 'chatRoomInvitationReceived' | 'achievementEarned' | 'exportCompleted' | 'login' | 'createToken' | 'app' | 'test' | 'pollVote' | 'groupInvited')[]; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Notification'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/page-likes - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:page-likes* - */ - 'i___page-likes': { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** Format: id */ - id: string; - page: components['schemas']['Page']; - }[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/pages - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:pages* - */ - i___pages: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Page'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/pin - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - i___pin: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['MeDetailed']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/read-announcement - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - 'i___read-announcement': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - announcementId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/regenerate-token - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___regenerate-token': { - requestBody: { - content: { - 'application/json': { - password: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/registry/get - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - i___registry___get: { - requestBody: { - content: { - 'application/json': { - key: string; - /** @default [] */ - scope: string[]; - domain?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': Record; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/registry/get-all - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - 'i___registry___get-all': { - requestBody: { - content: { - 'application/json': { - /** @default [] */ - scope: string[]; - domain?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': Record; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/registry/get-detail - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - 'i___registry___get-detail': { - requestBody: { - content: { - 'application/json': { - key: string; - /** @default [] */ - scope: string[]; - domain?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { + isActive: boolean; + /** Format: date-time */ updatedAt: string; - value: unknown; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/registry/keys - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - i___registry___keys: { - requestBody: { - content: { - 'application/json': { - /** @default [] */ - scope: string[]; - domain?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': string[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/registry/keys-with-type - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - 'i___registry___keys-with-type': { - requestBody: { - content: { - 'application/json': { - /** @default [] */ - scope: string[]; - domain?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - [key: string]: string; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/registry/remove - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - i___registry___remove: { - requestBody: { - content: { - 'application/json': { - key: string; - /** @default [] */ - scope: string[]; - domain?: string | null; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/registry/scopes-with-domain - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___registry___scopes-with-domain': { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': ({ - scopes: string[][]; - domain: string | null; - })[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/registry/set - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - i___registry___set: { - requestBody: { - content: { - 'application/json': { - key: string; - value: unknown; - /** @default [] */ - scope: string[]; - domain?: string | null; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/revoke-token - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___revoke-token': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - tokenId: string; - } | ({ - token: string | null; - }); - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/signin-history - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___signin-history': { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Signin'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/unpin - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - i___unpin: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['MeDetailed']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - i___update: { - requestBody: { - content: { - 'application/json': { - name?: string | null; - description?: string | null; - followedMessage?: string | null; - location?: string | null; - birthday?: string | null; - /** @enum {string|null} */ - lang?: null | 'ach' | 'ady' | 'af' | 'af-NA' | 'af-ZA' | 'ak' | 'ar' | 'ar-AR' | 'ar-MA' | 'ar-SA' | 'ay-BO' | 'az' | 'az-AZ' | 'be-BY' | 'bg' | 'bg-BG' | 'bn' | 'bn-IN' | 'bn-BD' | 'br' | 'bs-BA' | 'ca' | 'ca-ES' | 'cak' | 'ck-US' | 'cs' | 'cs-CZ' | 'cy' | 'cy-GB' | 'da' | 'da-DK' | 'de' | 'de-AT' | 'de-DE' | 'de-CH' | 'dsb' | 'el' | 'el-GR' | 'en' | 'en-GB' | 'en-AU' | 'en-CA' | 'en-IE' | 'en-IN' | 'en-PI' | 'en-SG' | 'en-UD' | 'en-US' | 'en-ZA' | 'en@pirate' | 'eo' | 'eo-EO' | 'es' | 'es-AR' | 'es-419' | 'es-CL' | 'es-CO' | 'es-EC' | 'es-ES' | 'es-LA' | 'es-NI' | 'es-MX' | 'es-US' | 'es-VE' | 'et' | 'et-EE' | 'eu' | 'eu-ES' | 'fa' | 'fa-IR' | 'fb-LT' | 'ff' | 'fi' | 'fi-FI' | 'fo' | 'fo-FO' | 'fr' | 'fr-CA' | 'fr-FR' | 'fr-BE' | 'fr-CH' | 'fy-NL' | 'ga' | 'ga-IE' | 'gd' | 'gl' | 'gl-ES' | 'gn-PY' | 'gu-IN' | 'gv' | 'gx-GR' | 'he' | 'he-IL' | 'hi' | 'hi-IN' | 'hr' | 'hr-HR' | 'hsb' | 'ht' | 'hu' | 'hu-HU' | 'hy' | 'hy-AM' | 'id' | 'id-ID' | 'is' | 'is-IS' | 'it' | 'it-IT' | 'ja' | 'ja-JP' | 'jv-ID' | 'ka-GE' | 'kk-KZ' | 'km' | 'kl' | 'km-KH' | 'kab' | 'kn' | 'kn-IN' | 'ko' | 'ko-KR' | 'ku-TR' | 'kw' | 'la' | 'la-VA' | 'lb' | 'li-NL' | 'lt' | 'lt-LT' | 'lv' | 'lv-LV' | 'mai' | 'mg-MG' | 'mk' | 'mk-MK' | 'ml' | 'ml-IN' | 'mn-MN' | 'mr' | 'mr-IN' | 'ms' | 'ms-MY' | 'mt' | 'mt-MT' | 'my' | 'no' | 'nb' | 'nb-NO' | 'ne' | 'ne-NP' | 'nl' | 'nl-BE' | 'nl-NL' | 'nn-NO' | 'oc' | 'or-IN' | 'pa' | 'pa-IN' | 'pl' | 'pl-PL' | 'ps-AF' | 'pt' | 'pt-BR' | 'pt-PT' | 'qu-PE' | 'rm-CH' | 'ro' | 'ro-RO' | 'ru' | 'ru-RU' | 'sa-IN' | 'se-NO' | 'sh' | 'si-LK' | 'sk' | 'sk-SK' | 'sl' | 'sl-SI' | 'so-SO' | 'sq' | 'sq-AL' | 'sr' | 'sr-RS' | 'su' | 'sv' | 'sv-SE' | 'sw' | 'sw-KE' | 'ta' | 'ta-IN' | 'te' | 'te-IN' | 'tg' | 'tg-TJ' | 'th' | 'th-TH' | 'fil' | 'tlh' | 'tr' | 'tr-TR' | 'tt-RU' | 'uk' | 'uk-UA' | 'ur' | 'ur-PK' | 'uz' | 'uz-UZ' | 'vi' | 'vi-VN' | 'xh-ZA' | 'yi' | 'yi-DE' | 'zh' | 'zh-Hans' | 'zh-Hant' | 'zh-CN' | 'zh-HK' | 'zh-SG' | 'zh-TW' | 'zu-ZA'; - /** Format: misskey:id */ - avatarId?: string | null; - avatarDecorations?: ({ - /** Format: misskey:id */ - id: string; - angle?: number | null; - flipH?: boolean | null; - offsetX?: number | null; - offsetY?: number | null; - })[]; - /** Format: misskey:id */ - bannerId?: string | null; - fields?: { - name: string; - value: string; - }[]; - isLocked?: boolean; - isExplorable?: boolean; - hideOnlineStatus?: boolean; - publicReactions?: boolean; - carefulBot?: boolean; - autoAcceptFollowed?: boolean; - noCrawle?: boolean; - preventAiLearning?: boolean; - requireSigninToViewContents?: boolean; - makeNotesFollowersOnlyBefore?: number | null; - makeNotesHiddenBefore?: number | null; - isBot?: boolean; - isCat?: boolean; - injectFeaturedNote?: boolean; - receiveAnnouncementEmail?: boolean; - alwaysMarkNsfw?: boolean; - autoSensitive?: boolean; - /** @enum {string} */ - followingVisibility?: 'public' | 'followers' | 'private'; - /** @enum {string} */ - followersVisibility?: 'public' | 'followers' | 'private'; - /** @enum {string} */ - chatScope?: 'everyone' | 'followers' | 'following' | 'mutual' | 'none'; - /** Format: misskey:id */ - pinnedPageId?: string | null; - mutedWords?: (string[] | string)[]; - hardMutedWords?: (string[] | string)[]; - mutedInstances?: string[]; - notificationRecieveConfig?: { - note?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - follow?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - mention?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - reply?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - renote?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - quote?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - reaction?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - pollEnded?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - receiveFollowRequest?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - followRequestAccepted?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - roleAssigned?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - chatRoomInvitationReceived?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - achievementEarned?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - app?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - test?: OneOf<[{ - /** @enum {string} */ - type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; - }, { - /** @enum {string} */ - type: 'list'; - /** Format: misskey:id */ - userListId: string; - }]>; - }; - emailNotificationTypes?: string[]; - alsoKnownAs?: string[]; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['MeDetailed']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/update-email - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'i___update-email': { - requestBody: { - content: { - 'application/json': { - password: string; - email?: string | null; - token?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['MeDetailed']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/webhooks/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - i___webhooks___create: { - requestBody: { - content: { - 'application/json': { - name: string; - url: string; - /** @default */ - secret?: string; - on: ('mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction')[]; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - /** Format: misskey:id */ - userId: string; - name: string; - on: ('mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction')[]; - url: string; - secret: string; - active: boolean; /** Format: date-time */ latestSentAt: string | null; latestStatus: number | null; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/webhooks/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - i___webhooks___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - webhookId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/webhooks/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - i___webhooks___list: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': ({ - /** Format: misskey:id */ - id: string; - /** Format: misskey:id */ - userId: string; - name: string; - on: ('mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction')[]; - url: string; - secret: string; - active: boolean; - /** Format: date-time */ - latestSentAt: string | null; - latestStatus: number | null; - })[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/webhooks/show - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - i___webhooks___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - webhookId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - /** Format: misskey:id */ - userId: string; name: string; - on: ('mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction')[]; + on: ('abuseReport' | 'abuseReportResolved' | 'userCreated' | 'inactiveModeratorsWarning' | 'inactiveModeratorsInvitationOnlyChanged')[]; url: string; secret: string; - active: boolean; + }; + AbuseReportNotificationRecipient: { + id: string; + isActive: boolean; /** Format: date-time */ - latestSentAt: string | null; - latestStatus: number | null; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/webhooks/test - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - i___webhooks___test: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - webhookId: string; - /** @enum {string} */ - type: 'mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction'; - override?: { - url?: string; - secret?: string; - }; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * i/webhooks/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - i___webhooks___update: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - webhookId: string; - name?: string; - url?: string; - secret?: string | null; - on?: ('mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction')[]; - active?: boolean; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * invite/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:invite-codes* - */ - invite___create: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['InviteCode']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * invite/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:invite-codes* - */ - invite___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - inviteId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * invite/limit - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:invite-codes* - */ - invite___limit: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - remaining: number | null; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * invite/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:invite-codes* - */ - invite___list: { - requestBody: { - content: { - 'application/json': { - /** @default 30 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['InviteCode'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * meta - * @description No description provided. - * - * **Credential required**: *No* - */ - meta: { - requestBody: { - content: { - 'application/json': { - /** @default true */ - detail?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['MetaLite'] | components['schemas']['MetaDetailed']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * miauth/gen-token - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'miauth___gen-token': { - requestBody: { - content: { - 'application/json': { - session: string | null; - name?: string | null; - description?: string | null; - iconUrl?: string | null; - permission: string[]; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - token: string; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * mute/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:mutes* - */ - mute___create: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - /** @description A Unix Epoch timestamp that must lie in the future. `null` means an indefinite mute. */ - expiresAt?: number | null; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * mute/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:mutes* - */ - mute___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * mute/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:mutes* - */ - mute___list: { - requestBody: { - content: { - 'application/json': { - /** @default 30 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Muting'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * my/apps - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - my___apps: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** @default 0 */ - offset?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['App'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes - * @description No description provided. - * - * **Credential required**: *No* - */ - notes: { - requestBody: { - content: { - 'application/json': { - /** @default false */ - local?: boolean; - reply?: boolean; - renote?: boolean; - withFiles?: boolean; - poll?: boolean; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/children - * @description No description provided. - * - * **Credential required**: *No* - */ - notes___children: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/clips - * @description No description provided. - * - * **Credential required**: *No* - */ - notes___clips: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Clip'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/conversation - * @description No description provided. - * - * **Credential required**: *No* - */ - notes___conversation: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - /** @default 10 */ - limit?: number; - /** @default 0 */ - offset?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:notes* - */ - notes___create: { - requestBody: { - content: { - 'application/json': { - /** - * @default public - * @enum {string} - */ - visibility?: 'public' | 'home' | 'followers' | 'specified'; - visibleUserIds?: string[]; - cw?: string | null; - /** @default false */ - localOnly?: boolean; - /** - * @default null - * @enum {string|null} - */ - reactionAcceptance?: null | 'likeOnly' | 'likeOnlyForRemote' | 'nonSensitiveOnly' | 'nonSensitiveOnlyForLocalLikeOnlyForRemote'; - /** @default false */ - noExtractMentions?: boolean; - /** @default false */ - noExtractHashtags?: boolean; - /** @default false */ - noExtractEmojis?: boolean; - /** Format: misskey:id */ - replyId?: string | null; - /** Format: misskey:id */ - renoteId?: string | null; - /** Format: misskey:id */ - channelId?: string | null; - text?: string | null; - fileIds?: string[]; - mediaIds?: string[]; - poll?: ({ - choices: string[]; - multiple?: boolean; - expiresAt?: number | null; - expiredAfter?: number | null; - }) | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - createdNote: components['schemas']['Note']; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:notes* - */ - notes___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/favorites/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:favorites* - */ - notes___favorites___create: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/favorites/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:favorites* - */ - notes___favorites___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/featured - * @description No description provided. - * - * **Credential required**: *No* - */ - notes___featured: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - untilId?: string; - /** Format: misskey:id */ - channelId?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/global-timeline - * @description No description provided. - * - * **Credential required**: *No* - */ - 'notes___global-timeline': { - requestBody: { - content: { - 'application/json': { - /** @default false */ - withFiles?: boolean; - /** @default true */ - withRenotes?: boolean; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - sinceDate?: number; - untilDate?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/hybrid-timeline - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - 'notes___hybrid-timeline': { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - sinceDate?: number; - untilDate?: number; - /** @default false */ - allowPartial?: boolean; - /** @default true */ - includeMyRenotes?: boolean; - /** @default true */ - includeRenotedMyNotes?: boolean; - /** @default true */ - includeLocalRenotes?: boolean; - /** @default false */ - withFiles?: boolean; - /** @default true */ - withRenotes?: boolean; - /** @default false */ - withReplies?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/local-timeline - * @description No description provided. - * - * **Credential required**: *No* - */ - 'notes___local-timeline': { - requestBody: { - content: { - 'application/json': { - /** @default false */ - withFiles?: boolean; - /** @default true */ - withRenotes?: boolean; - /** @default false */ - withReplies?: boolean; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default false */ - allowPartial?: boolean; - sinceDate?: number; - untilDate?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/mentions - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - notes___mentions: { - requestBody: { - content: { - 'application/json': { - /** @default false */ - following?: boolean; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - visibility?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/polls/recommendation - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - notes___polls___recommendation: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** @default 0 */ - offset?: number; - /** @default false */ - excludeChannels?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/polls/vote - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:votes* - */ - notes___polls___vote: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - choice: number; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/reactions - * @description No description provided. - * - * **Credential required**: *No* - */ - notes___reactions: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - type?: string | null; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['NoteReaction'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/reactions/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:reactions* - */ - notes___reactions___create: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - reaction: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/reactions/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:reactions* - */ - notes___reactions___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/renotes - * @description No description provided. - * - * **Credential required**: *No* - */ - notes___renotes: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/replies - * @description No description provided. - * - * **Credential required**: *No* - */ - notes___replies: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 10 */ - limit?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/search - * @description No description provided. - * - * **Credential required**: *No* - */ - notes___search: { - requestBody: { - content: { - 'application/json': { - query: string; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 10 */ - limit?: number; - /** @default 0 */ - offset?: number; - /** @description The local host is represented with `.`. */ - host?: string; - /** - * Format: misskey:id - * @default null - */ - userId?: string | null; - /** - * Format: misskey:id - * @default null - */ - channelId?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/search-by-tag - * @description No description provided. - * - * **Credential required**: *No* - */ - 'notes___search-by-tag': { - requestBody: { - content: { - 'application/json': ({ - tag: string; - } | { - /** @description The outer arrays are chained with OR, the inner arrays are chained with AND. */ - query: string[][]; - }) & ({ - /** @default null */ - reply?: boolean | null; - /** @default null */ - renote?: boolean | null; - /** - * @description Only show notes that have attached files. - * @default false - */ - withFiles?: boolean; - /** @default null */ - poll?: boolean | null; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 10 */ - limit?: number; - }); - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/show - * @description No description provided. - * - * **Credential required**: *No* - */ - notes___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/show-partial-bulk - * @description No description provided. - * - * **Credential required**: *No* - */ - 'notes___show-partial-bulk': { - requestBody: { - content: { - 'application/json': { - noteIds: string[]; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - id: string; - reactions: { - [key: string]: number; - }; - reactionEmojis: { - [key: string]: string; - }; - }[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/state - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - notes___state: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - isFavorited: boolean; - isMutedThread: boolean; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/thread-muting/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - 'notes___thread-muting___create': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/thread-muting/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - 'notes___thread-muting___delete': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/timeline - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - notes___timeline: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - sinceDate?: number; - untilDate?: number; - /** @default false */ - allowPartial?: boolean; - /** @default true */ - includeMyRenotes?: boolean; - /** @default true */ - includeRenotedMyNotes?: boolean; - /** @default true */ - includeLocalRenotes?: boolean; - /** @default false */ - withFiles?: boolean; - /** @default true */ - withRenotes?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/translate - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - notes___translate: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - targetLang: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - sourceLang: string; - text: string; - }; - }; - }; - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/unrenote - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:notes* - */ - notes___unrenote: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notes/user-list-timeline - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - 'notes___user-list-timeline': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - listId: string; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - sinceDate?: number; - untilDate?: number; - /** @default false */ - allowPartial?: boolean; - /** @default true */ - includeMyRenotes?: boolean; - /** @default true */ - includeRenotedMyNotes?: boolean; - /** @default true */ - includeLocalRenotes?: boolean; - /** @default true */ - withRenotes?: boolean; - /** - * @description Only show notes that have attached files. - * @default false - */ - withFiles?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notifications/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:notifications* - */ - notifications___create: { - requestBody: { - content: { - 'application/json': { - body: string; - header?: string | null; - icon?: string | null; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notifications/flush - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:notifications* - */ - notifications___flush: { - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notifications/mark-all-as-read - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:notifications* - */ - 'notifications___mark-all-as-read': { - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * notifications/test-notification - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:notifications* - */ - 'notifications___test-notification': { - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * page-push - * @description No description provided. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'page-push': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - pageId: string; - event: string; - var?: unknown; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * pages/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:pages* - */ - pages___create: { - requestBody: { - content: { - 'application/json': { - title: string; - name: string; - summary?: string | null; - content: { - [key: string]: unknown; - }[]; - variables: { - [key: string]: unknown; - }[]; - script: string; - /** Format: misskey:id */ - eyeCatchingImageId?: string | null; - /** - * @default sans-serif - * @enum {string} - */ - font?: 'serif' | 'sans-serif'; - /** @default false */ - alignCenter?: boolean; - /** @default false */ - hideTitleWhenPinned?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Page']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * pages/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:pages* - */ - pages___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - pageId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * pages/featured - * @description No description provided. - * - * **Credential required**: *No* - */ - pages___featured: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Page'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * pages/like - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:page-likes* - */ - pages___like: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - pageId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * pages/show - * @description No description provided. - * - * **Credential required**: *No* - */ - pages___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - pageId: string; - } | { - name: string; - username: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Page']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * pages/unlike - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:page-likes* - */ - pages___unlike: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - pageId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * pages/update - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:pages* - */ - pages___update: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - pageId: string; - title?: string; - name?: string; - summary?: string | null; - content?: { - [key: string]: unknown; - }[]; - variables?: { - [key: string]: unknown; - }[]; - script?: string; - /** Format: misskey:id */ - eyeCatchingImageId?: string | null; - /** @enum {string} */ - font?: 'serif' | 'sans-serif'; - alignCenter?: boolean; - hideTitleWhenPinned?: boolean; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * ping - * @description No description provided. - * - * **Credential required**: *No* - */ - ping: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - pong: number; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * pinned-users - * @description No description provided. - * - * **Credential required**: *No* - */ - 'pinned-users': { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserDetailed'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * promo/read - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - promo___read: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - noteId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * renote-mute/create - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:mutes* - */ - 'renote-mute___create': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * renote-mute/delete - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:mutes* - */ - 'renote-mute___delete': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * renote-mute/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:mutes* - */ - 'renote-mute___list': { - requestBody: { - content: { - 'application/json': { - /** @default 30 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['RenoteMuting'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * request-reset-password - * @description Request a users password to be reset. - * - * **Credential required**: *No* - */ - 'request-reset-password': { - requestBody: { - content: { - 'application/json': { - username: string; - email: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * reset-db - * @description Only available when running with NODE_ENV=testing. Reset the database and flush Redis. - * - * **Credential required**: *No* - */ - 'reset-db': { - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * reset-password - * @description Complete the password reset that was previously requested. - * - * **Credential required**: *No* - */ - 'reset-password': { - requestBody: { - content: { - 'application/json': { - token: string; - password: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * retention - * @description No description provided. - * - * **Credential required**: *No* - */ - retention: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** Format: date-time */ - createdAt: string; - users: number; - data: { - [key: string]: number; - }; - }[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * reversi/cancel-match - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - 'reversi___cancel-match': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId?: string | null; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * reversi/games - * @description No description provided. - * - * **Credential required**: *No* - */ - reversi___games: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default false */ - my?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ReversiGameLite'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * reversi/invitations - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - reversi___invitations: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserLite'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * reversi/match - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - reversi___match: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId?: string | null; - /** @default false */ - noIrregularRules?: boolean; - /** @default false */ - multiple?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ReversiGameDetailed']; - }; - }; - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * reversi/show-game - * @description No description provided. - * - * **Credential required**: *No* - */ - 'reversi___show-game': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - gameId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['ReversiGameDetailed']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * reversi/surrender - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - reversi___surrender: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - gameId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * reversi/verify - * @description No description provided. - * - * **Credential required**: *No* - */ - reversi___verify: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - gameId: string; - crc32: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - desynced: boolean; - game?: components['schemas']['ReversiGameDetailed'] | null; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * roles/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - roles___list: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Role'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * roles/notes - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - roles___notes: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roleId: string; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - sinceDate?: number; - untilDate?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * roles/show - * @description No description provided. - * - * **Credential required**: *No* - */ - roles___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roleId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Role']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * roles/users - * @description No description provided. - * - * **Credential required**: *No* - */ - roles___users: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - roleId: string; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 10 */ - limit?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - user: components['schemas']['UserDetailed']; - }[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * server-info - * @description No description provided. - * - * **Credential required**: *No* - */ - 'server-info': { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - machine: string; - cpu: { - model: string; - cores: number; - }; - mem: { - total: number; - }; - fs: { - total: number; - used: number; - }; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * stats - * @description No description provided. - * - * **Credential required**: *No* - */ - stats: { - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - notesCount: number; - originalNotesCount: number; - usersCount: number; - originalUsersCount: number; - instances: number; - driveUsageLocal: number; - driveUsageRemote: number; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * sw/register - * @description Register to receive push notifications. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - sw___register: { - requestBody: { - content: { - 'application/json': { - endpoint: string; - auth: string; - publickey: string; - /** @default false */ - sendReadMessage?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { + updatedAt: string; + name: string; /** @enum {string} */ - state?: 'already-subscribed' | 'subscribed'; - key: string | null; - userId: string; - endpoint: string; - sendReadMessage: boolean; - }; + method: 'email' | 'webhook'; + userId?: string; + user?: components['schemas']['UserLite']; + systemWebhookId?: string; + systemWebhook?: components['schemas']['SystemWebhook']; }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * sw/show-registration - * @description Check push notification registration exists. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'sw___show-registration': { - requestBody: { - content: { - 'application/json': { - endpoint: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - userId: string; - endpoint: string; - sendReadMessage: boolean; - } | null; - }; - }; - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * sw/unregister - * @description Unregister from receiving push notifications. - * - * **Credential required**: *No* - */ - sw___unregister: { - requestBody: { - content: { - 'application/json': { - endpoint: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * sw/update-registration - * @description Update push notification registration. - * - * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties. - * **Credential required**: *Yes* - */ - 'sw___update-registration': { - requestBody: { - content: { - 'application/json': { - endpoint: string; - sendReadMessage?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - userId: string; - endpoint: string; - sendReadMessage: boolean; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * test - * @description Endpoint for testing input validation. - * - * **Credential required**: *No* - */ - test: { - requestBody: { - content: { - 'application/json': { - required: boolean; - string?: string; - /** @default hello */ - default?: string; - /** @default hello */ - nullableDefault?: string | null; - /** Format: misskey:id */ - id?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** Format: misskey:id */ - id?: string; - required: boolean; - string?: string; - default?: string; - /** @default hello */ - nullableDefault?: string | null; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * username/available - * @description No description provided. - * - * **Credential required**: *No* - */ - username___available: { - requestBody: { - content: { - 'application/json': { - username: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - available: boolean; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users - * @description No description provided. - * - * **Credential required**: *No* - */ - users: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** @default 0 */ - offset?: number; - /** @enum {string} */ - sort?: '+follower' | '-follower' | '+createdAt' | '-createdAt' | '+updatedAt' | '-updatedAt'; - /** - * @default all - * @enum {string} - */ - state?: 'all' | 'alive'; - /** - * @default local - * @enum {string} - */ - origin?: 'combined' | 'local' | 'remote'; - /** - * @description The local host is represented with `null`. - * @default null - */ - hostname?: string | null; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserDetailed'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/achievements - * @description No description provided. - * - * **Credential required**: *No* - */ - users___achievements: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Achievement'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/clips - * @description Show all clips this user owns. - * - * **Credential required**: *No* - */ - users___clips: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Clip'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/featured-notes - * @description No description provided. - * - * **Credential required**: *No* - */ - 'users___featured-notes': { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - untilId?: string; - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/flashs - * @description Show all flashs this user created. - * - * **Credential required**: *No* - */ - users___flashs: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Flash'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/followers - * @description Show everyone that follows this user. - * - * **Credential required**: *No* - */ - users___followers: { - requestBody: { - content: { - 'application/json': ({ - /** Format: misskey:id */ - userId: string; - } | ({ - username: string; - /** @description The local host is represented with `null`. */ - host: string | null; - })) & { - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 10 */ - limit?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Following'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/following - * @description Show everyone that this user is following. - * - * **Credential required**: *No* - */ - users___following: { - requestBody: { - content: { - 'application/json': ({ - /** Format: misskey:id */ - userId: string; - } | ({ - username: string; - /** @description The local host is represented with `null`. */ - host: string | null; - })) & ({ - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 10 */ - limit?: number; - birthday?: string | null; - }); - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Following'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/gallery/posts - * @description Show all gallery posts by the given user. - * - * **Credential required**: *No* - */ - users___gallery___posts: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['GalleryPost'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/get-frequently-replied-users - * @description Get a list of other users that the specified user frequently replies to. - * - * **Credential required**: *No* - */ - 'users___get-frequently-replied-users': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - /** @default 10 */ - limit?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - user: components['schemas']['UserDetailed']; - weight: number; - }[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/lists/create - * @description Create a new list of users. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - users___lists___create: { - requestBody: { - content: { - 'application/json': { - name: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserList']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/lists/create-from-public - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - 'users___lists___create-from-public': { - requestBody: { - content: { - 'application/json': { - name: string; - /** Format: misskey:id */ - listId: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserList']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/lists/delete - * @description Delete an existing list of users. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - users___lists___delete: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - listId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/lists/favorite - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - users___lists___favorite: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - listId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/lists/get-memberships - * @description No description provided. - * - * **Credential required**: *No* / **Permission**: *read:account* - */ - 'users___lists___get-memberships': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - listId: string; - /** @default false */ - forPublic?: boolean; - /** @default 30 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - /** Format: misskey:id */ - id: string; - /** Format: date-time */ - createdAt: string; - /** Format: misskey:id */ - userId: string; - user: components['schemas']['UserLite']; - withReplies: boolean; - }[]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/lists/list - * @description Show all lists that the authenticated user has created. - * - * **Credential required**: *No* / **Permission**: *read:account* - */ - users___lists___list: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserList'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/lists/pull - * @description Remove a user from a list. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - users___lists___pull: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - listId: string; - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/lists/push - * @description Add a user to an existing list. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - users___lists___push: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - listId: string; - /** Format: misskey:id */ - userId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Too many requests */ - 429: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/lists/show - * @description Show the properties of a list. - * - * **Credential required**: *No* / **Permission**: *read:account* - */ - users___lists___show: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - listId: string; - /** @default false */ - forPublic?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserList']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/lists/unfavorite - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - users___lists___unfavorite: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - listId: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/lists/update - * @description Update the properties of a list. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - users___lists___update: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - listId: string; - name?: string; - isPublic?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserList']; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/lists/update-membership - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - 'users___lists___update-membership': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - listId: string; - /** Format: misskey:id */ - userId: string; - withReplies?: boolean; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/notes - * @description No description provided. - * - * **Credential required**: *No* - */ - users___notes: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - /** @default false */ - withReplies?: boolean; - /** @default true */ - withRenotes?: boolean; - /** @default false */ - withChannelNotes?: boolean; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - sinceDate?: number; - untilDate?: number; - /** @default false */ - allowPartial?: boolean; - /** @default false */ - withFiles?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Note'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/pages - * @description Show all pages this user created. - * - * **Credential required**: *No* - */ - users___pages: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['Page'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/reactions - * @description Show all reactions this user made. - * - * **Credential required**: *No* - */ - users___reactions: { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - /** @default 10 */ - limit?: number; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - sinceDate?: number; - untilDate?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['NoteReaction'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/recommendation - * @description Show users that the authenticated user might be interested to follow. - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - users___recommendation: { - requestBody: { - content: { - 'application/json': { - /** @default 10 */ - limit?: number; - /** @default 0 */ - offset?: number; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserDetailed'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/relation - * @description Show the different kinds of relations between the authenticated user and the specified user(s). - * - * **Credential required**: *Yes* / **Permission**: *read:account* - */ - users___relation: { - requestBody: { - content: { - 'application/json': { - userId: string | string[]; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': OneOf<[{ - /** Format: id */ + ChatMessage: { id: string; - isFollowing: boolean; - hasPendingFollowRequestFromYou: boolean; - hasPendingFollowRequestToYou: boolean; - isFollowed: boolean; - isBlocking: boolean; - isBlocked: boolean; - isMuted: boolean; - isRenoteMuted: boolean; - }, { - /** Format: id */ - id: string; - isFollowing: boolean; - hasPendingFollowRequestFromYou: boolean; - hasPendingFollowRequestToYou: boolean; - isFollowed: boolean; - isBlocking: boolean; - isBlocked: boolean; - isMuted: boolean; - isRenoteMuted: boolean; - }[]]>; + /** Format: date-time */ + createdAt: string; + fromUserId: string; + fromUser: components['schemas']['UserLite']; + toUserId?: string | null; + toUser?: components['schemas']['UserLite'] | null; + toRoomId?: string | null; + toRoom?: components['schemas']['ChatRoom'] | null; + text?: string | null; + fileId?: string | null; + file?: components['schemas']['DriveFile'] | null; + isRead?: boolean; + reactions: { + reaction: string; + user: components['schemas']['UserLite']; + }[]; }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; + ChatMessageLite: { + id: string; + /** Format: date-time */ + createdAt: string; + fromUserId: string; + fromUser?: components['schemas']['UserLite']; + toUserId?: string | null; + toRoomId?: string | null; + text?: string | null; + fileId?: string | null; + file?: components['schemas']['DriveFile'] | null; + reactions: { + reaction: string; + user?: components['schemas']['UserLite'] | null; + }[]; }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; + ChatMessageLiteFor1on1: { + id: string; + /** Format: date-time */ + createdAt: string; + fromUserId: string; + toUserId: string; + text?: string | null; + fileId?: string | null; + file?: components['schemas']['DriveFile'] | null; + reactions: { + reaction: string; + }[]; }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; + ChatMessageLiteForRoom: { + id: string; + /** Format: date-time */ + createdAt: string; + fromUserId: string; + fromUser: components['schemas']['UserLite']; + toRoomId: string; + text?: string | null; + fileId?: string | null; + file?: components['schemas']['DriveFile'] | null; + reactions: { + reaction: string; + user: components['schemas']['UserLite']; + }[]; }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; + ChatRoom: { + id: string; + /** Format: date-time */ + createdAt: string; + ownerId: string; + owner: components['schemas']['UserLite']; + name: string; + description: string; + isMuted?: boolean; + invitationExists?: boolean; }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; + ChatRoomInvitation: { + id: string; + /** Format: date-time */ + createdAt: string; + userId: string; + user: components['schemas']['UserLite']; + roomId: string; + room: components['schemas']['ChatRoom']; + }; + ChatRoomMembership: { + id: string; + /** Format: date-time */ + createdAt: string; + userId: string; + user?: components['schemas']['UserLite']; + roomId: string; + room?: components['schemas']['ChatRoom']; }; - }; }; - }; - /** - * users/report-abuse - * @description File a report. - * - * **Credential required**: *Yes* / **Permission**: *write:report-abuse* - */ - 'users___report-abuse': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - comment: string; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/search - * @description Search for users. - * - * **Credential required**: *No* - */ - users___search: { - requestBody: { - content: { - 'application/json': { - query: string; - /** @default 0 */ - offset?: number; - /** @default 10 */ - limit?: number; - /** - * @default combined - * @enum {string} - */ - origin?: 'local' | 'remote' | 'combined'; - /** @default true */ - detail?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['User'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/search-by-username-and-host - * @description Search for a user by username and/or host. - * - * **Credential required**: *No* - */ - 'users___search-by-username-and-host': { - requestBody: { - content: { - 'application/json': (({ - username: string | null; - }) | ({ - host: string | null; - })) & { - /** @default 10 */ - limit?: number; - /** @default true */ - detail?: boolean; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['User'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/show - * @description Show the properties of a user. - * - * **Credential required**: *No* - */ - users___show: { - requestBody: { - content: { - 'application/json': ({ - /** Format: misskey:id */ - userId: string; - } | { - userIds: string[]; - } | { - username: string; - }) & ({ - /** @description The local host is represented with `null`. */ - host?: string | null; - }); - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': components['schemas']['UserDetailed'] | components['schemas']['UserDetailed'][]; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * users/update-memo - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *write:account* - */ - 'users___update-memo': { - requestBody: { - content: { - 'application/json': { - /** Format: misskey:id */ - userId: string; - /** @description A personal memo for the target user. If null or empty, delete the memo. */ - memo: string | null; - }; - }; - }; - responses: { - /** @description OK (without any results) */ - 204: { - content: never; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; - /** - * v2/admin/emoji/list - * @description No description provided. - * - * **Credential required**: *Yes* / **Permission**: *read:admin:emoji* - */ - v2___admin___emoji___list: { - requestBody: { - content: { - 'application/json': { - query?: ({ - updatedAtFrom?: string; - updatedAtTo?: string; - name?: string; - host?: string; - uri?: string; - publicUrl?: string; - originalUrl?: string; - type?: string; - aliases?: string; - category?: string; - license?: string; - isSensitive?: boolean; - localOnly?: boolean; - /** - * @default all - * @enum {string} - */ - hostType?: 'local' | 'remote' | 'all'; - roleIds?: string[]; - }) | null; - /** Format: misskey:id */ - sinceId?: string; - /** Format: misskey:id */ - untilId?: string; - /** @default 10 */ - limit?: number; - page?: number; - /** - * @default [ - * "-id" - * ] - */ - sortKeys?: ('+id' | '-id' | '+updatedAt' | '-updatedAt' | '+name' | '-name' | '+host' | '-host' | '+uri' | '-uri' | '+publicUrl' | '-publicUrl' | '+type' | '-type' | '+aliases' | '-aliases' | '+category' | '-category' | '+license' | '-license' | '+isSensitive' | '-isSensitive' | '+localOnly' | '-localOnly' | '+roleIdsThatCanBeUsedThisEmojiAsReaction' | '-roleIdsThatCanBeUsedThisEmojiAsReaction')[]; - }; - }; - }; - responses: { - /** @description OK (with results) */ - 200: { - content: { - 'application/json': { - emojis: components['schemas']['EmojiDetailedAdmin'][]; - count: number; - allCount: number; - allPages: number; - }; - }; - }; - /** @description Client error */ - 400: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Authentication error */ - 401: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Forbidden error */ - 403: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description I'm Ai */ - 418: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - /** @description Internal server error */ - 500: { - content: { - 'application/json': components['schemas']['Error']; - }; - }; - }; - }; + responses: never; + parameters: never; + requestBodies: never; + headers: never; + pathItems: never; }; +export type $defs = Record; +export interface operations { + 'admin___abuse-report___notification-recipient___create': { + requestBody: { + content: { + 'application/json': { + isActive: boolean; + name: string; + /** @enum {string} */ + method: 'email' | 'webhook'; + /** Format: misskey:id */ + userId?: string; + /** Format: misskey:id */ + systemWebhookId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['AbuseReportNotificationRecipient']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___abuse-report___notification-recipient___delete': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___abuse-report___notification-recipient___list': { + requestBody: { + content: { + 'application/json': { + method?: ('email' | 'webhook')[]; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['AbuseReportNotificationRecipient'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___abuse-report___notification-recipient___show': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['AbuseReportNotificationRecipient']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___abuse-report___notification-recipient___update': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + isActive: boolean; + name: string; + /** @enum {string} */ + method: 'email' | 'webhook'; + /** Format: misskey:id */ + userId?: string; + /** Format: misskey:id */ + systemWebhookId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['AbuseReportNotificationRecipient']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___abuse-user-reports': { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default null */ + state?: string | null; + /** + * @default combined + * @enum {string} + */ + reporterOrigin?: 'combined' | 'local' | 'remote'; + /** + * @default combined + * @enum {string} + */ + targetUserOrigin?: 'combined' | 'local' | 'remote'; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + comment: string; + /** @example false */ + resolved: boolean; + /** Format: id */ + reporterId: string; + /** Format: id */ + targetUserId: string; + /** Format: id */ + assigneeId: string | null; + reporter: components['schemas']['UserDetailedNotMe']; + targetUser: components['schemas']['UserDetailedNotMe']; + assignee: components['schemas']['UserDetailedNotMe'] | null; + forwarded: boolean; + /** @enum {string|null} */ + resolvedAs: 'accept' | 'reject' | null; + moderationNote: string; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___accounts___create: { + requestBody: { + content: { + 'application/json': { + username: string; + password: string; + setupPassword?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['MeDetailed']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___accounts___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___accounts___find-by-email': { + requestBody: { + content: { + 'application/json': { + email: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserDetailedNotMe']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___ad___create: { + requestBody: { + content: { + 'application/json': { + url: string; + memo: string; + place: string; + priority: string; + ratio: number; + expiresAt: number; + startsAt: number; + imageUrl: string; + dayOfWeek: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Ad']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___ad___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___ad___list: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default null */ + publishing?: boolean | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Ad'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___ad___update: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + memo?: string; + url?: string; + imageUrl?: string; + place?: string; + priority?: string; + ratio?: number; + expiresAt?: number; + startsAt?: number; + dayOfWeek?: number; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___announcements___create: { + requestBody: { + content: { + 'application/json': { + title: string; + text: string; + imageUrl: string | null; + /** + * @default info + * @enum {string} + */ + icon?: 'info' | 'warning' | 'error' | 'success'; + /** + * @default normal + * @enum {string} + */ + display?: 'normal' | 'banner' | 'dialog'; + /** @default false */ + forExistingUsers?: boolean; + /** @default false */ + silence?: boolean; + /** @default false */ + needConfirmationToRead?: boolean; + /** + * Format: misskey:id + * @default null + */ + userId?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + updatedAt: string | null; + title: string; + text: string; + imageUrl: string | null; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___announcements___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___announcements___list: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** Format: misskey:id */ + userId?: string | null; + /** + * @default active + * @enum {string} + */ + status?: 'all' | 'active' | 'archived'; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + updatedAt: string | null; + text: string; + title: string; + imageUrl: string | null; + reads: number; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___announcements___update: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + title?: string; + text?: string; + imageUrl?: string | null; + /** @enum {string} */ + icon?: 'info' | 'warning' | 'error' | 'success'; + /** @enum {string} */ + display?: 'normal' | 'banner' | 'dialog'; + forExistingUsers?: boolean; + silence?: boolean; + needConfirmationToRead?: boolean; + isActive?: boolean; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___avatar-decorations___create': { + requestBody: { + content: { + 'application/json': { + name: string; + description: string; + url: string; + roleIdsThatCanBeUsedThisDecoration?: string[]; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + updatedAt: string | null; + name: string; + description: string; + url: string; + roleIdsThatCanBeUsedThisDecoration: string[]; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___avatar-decorations___delete': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___avatar-decorations___list': { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** Format: misskey:id */ + userId?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + updatedAt: string | null; + name: string; + description: string; + url: string; + roleIdsThatCanBeUsedThisDecoration: string[]; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___avatar-decorations___update': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + name?: string; + description?: string; + url?: string; + roleIdsThatCanBeUsedThisDecoration?: string[]; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___captcha___current: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** @enum {string} */ + provider: 'none' | 'hcaptcha' | 'mcaptcha' | 'recaptcha' | 'turnstile' | 'testcaptcha'; + hcaptcha: { + siteKey: string | null; + secretKey: string | null; + }; + mcaptcha: { + siteKey: string | null; + secretKey: string | null; + instanceUrl: string | null; + }; + recaptcha: { + siteKey: string | null; + secretKey: string | null; + }; + turnstile: { + siteKey: string | null; + secretKey: string | null; + }; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___captcha___save: { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + provider: 'none' | 'hcaptcha' | 'mcaptcha' | 'recaptcha' | 'turnstile' | 'testcaptcha'; + captchaResult?: string | null; + sitekey?: string | null; + secret?: string | null; + instanceUrl?: string | null; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___delete-account': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___delete-all-files-of-a-user': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___drive___clean-remote-files': { + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___drive___cleanup: { + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___drive___files: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** Format: misskey:id */ + userId?: string | null; + type?: string | null; + /** + * @default local + * @enum {string} + */ + origin?: 'combined' | 'local' | 'remote'; + /** + * @description The local host is represented with `null`. + * @default null + */ + hostname?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['DriveFile'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___drive___show-file': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + fileId: string; + } | { + url: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + /** Format: date-time */ + createdAt: string; + /** + * Format: id + * @example xxxxxxxxxx + */ + userId: string | null; + /** @description The local host is represented with `null`. */ + userHost: string | null; + /** + * Format: md5 + * @example 15eca7fba0480996e2245f5185bf39f2 + */ + md5: string; + /** @example 192.jpg */ + name: string; + /** @example image/jpeg */ + type: string; + /** @example 51469 */ + size: number; + comment: string | null; + blurhash: string | null; + properties: { + width?: number; + height?: number; + orientation?: number; + avgColor?: string; + }; + /** @example true */ + storedInternal: boolean | null; + /** Format: url */ + url: string | null; + /** Format: url */ + thumbnailUrl: string | null; + /** Format: url */ + webpublicUrl: string | null; + accessKey: string | null; + thumbnailAccessKey: string | null; + webpublicAccessKey: string | null; + uri: string | null; + src: string | null; + /** + * Format: id + * @example xxxxxxxxxx + */ + folderId: string | null; + isSensitive: boolean; + isLink: boolean; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___emoji___add: { + requestBody: { + content: { + 'application/json': { + name: string; + /** Format: misskey:id */ + fileId: string; + /** @description Use `null` to reset the category. */ + category?: string | null; + aliases?: string[]; + license?: string | null; + isSensitive?: boolean; + localOnly?: boolean; + roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['EmojiDetailed']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___emoji___add-aliases-bulk': { + requestBody: { + content: { + 'application/json': { + ids: string[]; + aliases: string[]; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___emoji___copy: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + emojiId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: id */ + id: string; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___emoji___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___emoji___delete-bulk': { + requestBody: { + content: { + 'application/json': { + ids: string[]; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___emoji___import-zip': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + fileId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___emoji___list: { + requestBody: { + content: { + 'application/json': { + /** @default null */ + query?: string | null; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: id */ + id: string; + aliases: string[]; + name: string; + category: string | null; + /** @description The local host is represented with `null`. The field exists for compatibility with other API endpoints that return files. */ + host: string | null; + url: string; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___emoji___list-remote': { + requestBody: { + content: { + 'application/json': { + /** @default null */ + query?: string | null; + /** + * @description Use `null` to represent the local host. + * @default null + */ + host?: string | null; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: id */ + id: string; + aliases: string[]; + name: string; + category: string | null; + /** @description The local host is represented with `null`. */ + host: string | null; + url: string; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___emoji___remove-aliases-bulk': { + requestBody: { + content: { + 'application/json': { + ids: string[]; + aliases: string[]; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___emoji___set-aliases-bulk': { + requestBody: { + content: { + 'application/json': { + ids: string[]; + aliases: string[]; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___emoji___set-category-bulk': { + requestBody: { + content: { + 'application/json': { + ids: string[]; + /** @description Use `null` to reset the category. */ + category?: string | null; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___emoji___set-license-bulk': { + requestBody: { + content: { + 'application/json': { + ids: string[]; + /** @description Use `null` to reset the license. */ + license?: string | null; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___emoji___update: { + requestBody: { + content: { + 'application/json': ({ + /** Format: misskey:id */ + id: string; + } | { + name: string; + }) & { + /** Format: misskey:id */ + fileId?: string; + /** @description Use `null` to reset the category. */ + category?: string | null; + aliases?: string[]; + license?: string | null; + isSensitive?: boolean; + localOnly?: boolean; + roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___federation___delete-all-files': { + requestBody: { + content: { + 'application/json': { + host: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___federation___refresh-remote-instance-metadata': { + requestBody: { + content: { + 'application/json': { + host: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___federation___remove-all-following': { + requestBody: { + content: { + 'application/json': { + host: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___federation___update-instance': { + requestBody: { + content: { + 'application/json': { + host: string; + isSuspended?: boolean; + moderationNote?: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___forward-abuse-user-report': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + reportId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___get-index-stats': { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + tablename: string; + indexname: string; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___get-table-stats': { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + [key: string]: { + count: number; + size: number; + }; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___get-user-ips': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + ip: string; + /** Format: date-time */ + createdAt: string; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___invite___create: { + requestBody: { + content: { + 'application/json': { + /** @default 1 */ + count?: number; + expiresAt?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['InviteCode'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___invite___list: { + requestBody: { + content: { + 'application/json': { + /** @default 30 */ + limit?: number; + /** @default 0 */ + offset?: number; + /** + * @default all + * @enum {string} + */ + type?: 'unused' | 'used' | 'expired' | 'all'; + /** @enum {string} */ + sort?: '+createdAt' | '-createdAt' | '+usedAt' | '-usedAt'; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['InviteCode'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___meta: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + cacheRemoteFiles: boolean; + cacheRemoteSensitiveFiles: boolean; + emailRequiredForSignup: boolean; + enableHcaptcha: boolean; + hcaptchaSiteKey: string | null; + enableMcaptcha: boolean; + mcaptchaSiteKey: string | null; + mcaptchaInstanceUrl: string | null; + enableRecaptcha: boolean; + recaptchaSiteKey: string | null; + enableTurnstile: boolean; + turnstileSiteKey: string | null; + enableTestcaptcha: boolean; + googleAnalyticsMeasurementId: string | null; + swPublickey: string | null; + /** @default /assets/ai.png */ + mascotImageUrl: string | null; + bannerUrl: string | null; + serverErrorImageUrl: string | null; + infoImageUrl: string | null; + notFoundImageUrl: string | null; + iconUrl: string | null; + app192IconUrl: string | null; + app512IconUrl: string | null; + enableEmail: boolean; + enableServiceWorker: boolean; + translatorAvailable: boolean; + silencedHosts?: string[]; + mediaSilencedHosts: string[]; + pinnedUsers: string[]; + hiddenTags: string[]; + blockedHosts: string[]; + sensitiveWords: string[]; + prohibitedWords: string[]; + prohibitedWordsForNameOfUser: string[]; + bannedEmailDomains?: string[]; + preservedUsernames: string[]; + hcaptchaSecretKey: string | null; + mcaptchaSecretKey: string | null; + recaptchaSecretKey: string | null; + turnstileSecretKey: string | null; + sensitiveMediaDetection: string; + sensitiveMediaDetectionSensitivity: string; + setSensitiveFlagAutomatically: boolean; + enableSensitiveMediaDetectionForVideos: boolean; + /** Format: id */ + proxyAccountId: string; + email: string | null; + smtpSecure: boolean; + smtpHost: string | null; + smtpPort: number | null; + smtpUser: string | null; + smtpPass: string | null; + swPrivateKey: string | null; + useObjectStorage: boolean; + objectStorageBaseUrl: string | null; + objectStorageBucket: string | null; + objectStoragePrefix: string | null; + objectStorageEndpoint: string | null; + objectStorageRegion: string | null; + objectStoragePort: number | null; + objectStorageAccessKey: string | null; + objectStorageSecretKey: string | null; + objectStorageUseSSL: boolean; + objectStorageUseProxy: boolean; + objectStorageSetPublicRead: boolean; + enableIpLogging: boolean; + enableActiveEmailValidation: boolean; + enableVerifymailApi: boolean; + verifymailAuthKey: string | null; + enableTruemailApi: boolean; + truemailInstance: string | null; + truemailAuthKey: string | null; + enableChartsForRemoteUser: boolean; + enableChartsForFederatedInstances: boolean; + enableStatsForFederatedInstances: boolean; + enableServerMachineStats: boolean; + enableIdenticonGeneration: boolean; + manifestJsonOverride: string; + policies: Record; + enableFanoutTimeline: boolean; + enableFanoutTimelineDbFallback: boolean; + perLocalUserUserTimelineCacheMax: number; + perRemoteUserUserTimelineCacheMax: number; + perUserHomeTimelineCacheMax: number; + perUserListTimelineCacheMax: number; + enableReactionsBuffering: boolean; + notesPerOneAd: number; + backgroundImageUrl: string | null; + deeplAuthKey: string | null; + deeplIsPro: boolean; + defaultDarkTheme: string | null; + defaultLightTheme: string | null; + description: string | null; + disableRegistration: boolean; + impressumUrl: string | null; + maintainerEmail: string | null; + maintainerName: string | null; + name: string | null; + shortName: string | null; + objectStorageS3ForcePathStyle: boolean; + privacyPolicyUrl: string | null; + inquiryUrl: string | null; + repositoryUrl: string | null; + /** + * @deprecated + * @description [Deprecated] Use "urlPreviewSummaryProxyUrl" instead. + */ + summalyProxy: string | null; + themeColor: string | null; + tosUrl: string | null; + uri: string; + version: string; + urlPreviewEnabled: boolean; + urlPreviewAllowRedirect: boolean; + urlPreviewTimeout: number; + urlPreviewMaximumContentLength: number; + urlPreviewRequireContentLength: boolean; + urlPreviewUserAgent: string | null; + urlPreviewSummaryProxyUrl: string | null; + /** @enum {string} */ + federation: 'all' | 'specified' | 'none'; + federationHosts: string[]; + deliverSuspendedSoftware: { + software: string; + versionRange: string; + }[]; + singleUserMode: boolean; + /** @enum {string} */ + ugcVisibilityForVisitor: 'all' | 'local' | 'none'; + proxyRemoteFiles: boolean; + signToActivityPubGet: boolean; + allowExternalApRedirect: boolean; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___promo___create: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + expiresAt: number; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___queue___clear: { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + queue: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; + /** @enum {string} */ + state: '*' | 'completed' | 'wait' | 'active' | 'paused' | 'prioritized' | 'delayed' | 'failed'; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___queue___deliver-delayed': { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': [ + string, + number, + ][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___queue___inbox-delayed': { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': [ + string, + number, + ][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___queue___jobs: { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + queue: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; + state: ('active' | 'wait' | 'delayed' | 'completed' | 'failed' | 'paused')[]; + search?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['QueueJob'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___queue___promote-jobs': { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + queue: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___queue___queue-stats': { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + queue: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** @enum {string} */ + name: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; + qualifiedName: string; + counts: { + [key: string]: number; + }; + isPaused: boolean; + metrics: { + completed: components['schemas']['QueueMetrics']; + failed: components['schemas']['QueueMetrics']; + }; + db: { + version: string; + /** @enum {string} */ + mode: 'cluster' | 'standalone' | 'sentinel'; + runId: string; + processId: string; + port: number; + os: string; + uptime: number; + memory: { + total: number; + used: number; + fragmentationRatio: number; + peak: number; + }; + clients: { + blocked: number; + connected: number; + }; + }; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___queue___queues: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** @enum {string} */ + name: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; + counts: { + [key: string]: number; + }; + isPaused: boolean; + metrics: { + completed: components['schemas']['QueueMetrics']; + failed: components['schemas']['QueueMetrics']; + }; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___queue___remove-job': { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + queue: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; + jobId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___queue___retry-job': { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + queue: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; + jobId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___queue___show-job': { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + queue: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver'; + jobId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['QueueJob']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___queue___stats: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + deliver: components['schemas']['QueueCount']; + inbox: components['schemas']['QueueCount']; + db: components['schemas']['QueueCount']; + objectStorage: components['schemas']['QueueCount']; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___relays___add: { + requestBody: { + content: { + 'application/json': { + inbox: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: id */ + id: string; + /** Format: url */ + inbox: string; + /** + * @default requesting + * @enum {string} + */ + status: 'requesting' | 'accepted' | 'rejected'; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___relays___list: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: id */ + id: string; + /** Format: url */ + inbox: string; + /** + * @default requesting + * @enum {string} + */ + status: 'requesting' | 'accepted' | 'rejected'; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___relays___remove: { + requestBody: { + content: { + 'application/json': { + inbox: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___reset-password': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + password: string; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___resolve-abuse-user-report': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + reportId: string; + /** @enum {string|null} */ + resolvedAs?: 'accept' | 'reject' | null; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___roles___assign: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roleId: string; + /** Format: misskey:id */ + userId: string; + expiresAt?: number | null; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___roles___create: { + requestBody: { + content: { + 'application/json': { + name: string; + description: string; + color: string | null; + iconUrl: string | null; + /** @enum {string} */ + target: 'manual' | 'conditional'; + condFormula: Record; + isPublic: boolean; + isModerator: boolean; + isAdministrator: boolean; + /** @default false */ + isExplorable?: boolean; + asBadge: boolean; + preserveAssignmentOnMoveAccount?: boolean; + canEditMembersByModerator: boolean; + displayOrder: number; + policies: Record; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Role']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___roles___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roleId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___roles___list: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Role'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___roles___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roleId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Role']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___roles___unassign: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roleId: string; + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___roles___update: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roleId: string; + name?: string; + description?: string; + color?: string | null; + iconUrl?: string | null; + /** @enum {string} */ + target?: 'manual' | 'conditional'; + condFormula?: Record; + isPublic?: boolean; + isModerator?: boolean; + isAdministrator?: boolean; + isExplorable?: boolean; + asBadge?: boolean; + preserveAssignmentOnMoveAccount?: boolean; + canEditMembersByModerator?: boolean; + displayOrder?: number; + policies?: Record; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___roles___update-default-policies': { + requestBody: { + content: { + 'application/json': { + policies: Record; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + admin___roles___users: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roleId: string; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 10 */ + limit?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + /** Format: date-time */ + createdAt: string; + user: components['schemas']['UserDetailed']; + /** Format: date-time */ + expiresAt: string | null; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___send-email': { + requestBody: { + content: { + 'application/json': { + to: string; + subject: string; + text: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___server-info': { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + machine: string; + /** @example linux */ + os: string; + node: string; + psql: string; + cpu: { + model: string; + cores: number; + }; + mem: { + /** Format: bytes */ + total: number; + }; + fs: { + /** Format: bytes */ + total: number; + /** Format: bytes */ + used: number; + }; + net: { + /** @example eth0 */ + interface: string; + }; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___show-moderation-logs': { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + type?: string | null; + /** Format: misskey:id */ + userId?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: id */ + id: string; + /** Format: date-time */ + createdAt: string; + type: string; + info: Record; + /** Format: id */ + userId: string; + user: components['schemas']['UserDetailedNotMe']; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___show-user': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + email: string | null; + emailVerified: boolean; + followedMessage: string | null; + autoAcceptFollowed: boolean; + noCrawle: boolean; + preventAiLearning: boolean; + alwaysMarkNsfw: boolean; + autoSensitive: boolean; + carefulBot: boolean; + injectFeaturedNote: boolean; + receiveAnnouncementEmail: boolean; + mutedWords: (string | string[])[]; + mutedInstances: string[]; + notificationRecieveConfig: { + note?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + follow?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + mention?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + reply?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + renote?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + quote?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + reaction?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + pollEnded?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + receiveFollowRequest?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + followRequestAccepted?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + roleAssigned?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + chatRoomInvitationReceived?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + achievementEarned?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + app?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + test?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + }; + isModerator: boolean; + isSilenced: boolean; + isSuspended: boolean; + isHibernated: boolean; + lastActiveDate: string | null; + moderationNote: string; + signins: components['schemas']['Signin'][]; + policies: components['schemas']['RolePolicies']; + roles: components['schemas']['Role'][]; + roleAssigns: { + createdAt: string; + expiresAt: string | null; + roleId: string; + }[]; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___show-users': { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** @default 0 */ + offset?: number; + /** @enum {string} */ + sort?: '+follower' | '-follower' | '+createdAt' | '-createdAt' | '+updatedAt' | '-updatedAt' | '+lastActiveDate' | '-lastActiveDate'; + /** + * @default all + * @enum {string} + */ + state?: 'all' | 'alive' | 'available' | 'admin' | 'moderator' | 'adminOrModerator' | 'suspended'; + /** + * @default combined + * @enum {string} + */ + origin?: 'combined' | 'local' | 'remote'; + /** @default null */ + username?: string | null; + /** + * @description The local host is represented with `null`. + * @default null + */ + hostname?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserDetailed'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___suspend-user': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___system-webhook___create': { + requestBody: { + content: { + 'application/json': { + isActive: boolean; + name: string; + on: ('abuseReport' | 'abuseReportResolved' | 'userCreated' | 'inactiveModeratorsWarning' | 'inactiveModeratorsInvitationOnlyChanged')[]; + url: string; + secret: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['SystemWebhook']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___system-webhook___delete': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___system-webhook___list': { + requestBody: { + content: { + 'application/json': { + isActive?: boolean; + on?: ('abuseReport' | 'abuseReportResolved' | 'userCreated' | 'inactiveModeratorsWarning' | 'inactiveModeratorsInvitationOnlyChanged')[]; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['SystemWebhook'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___system-webhook___show': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['SystemWebhook']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___system-webhook___test': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + webhookId: string; + /** @enum {string} */ + type: 'abuseReport' | 'abuseReportResolved' | 'userCreated' | 'inactiveModeratorsWarning' | 'inactiveModeratorsInvitationOnlyChanged'; + override?: { + url?: string; + secret?: string; + }; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___system-webhook___update': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + isActive: boolean; + name: string; + on: ('abuseReport' | 'abuseReportResolved' | 'userCreated' | 'inactiveModeratorsWarning' | 'inactiveModeratorsInvitationOnlyChanged')[]; + url: string; + secret: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['SystemWebhook']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___unset-user-avatar': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___unset-user-banner': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___unsuspend-user': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___update-abuse-user-report': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + reportId: string; + moderationNote?: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___update-meta': { + requestBody: { + content: { + 'application/json': { + disableRegistration?: boolean | null; + pinnedUsers?: string[] | null; + hiddenTags?: string[] | null; + blockedHosts?: string[] | null; + sensitiveWords?: string[] | null; + prohibitedWords?: string[] | null; + prohibitedWordsForNameOfUser?: string[] | null; + themeColor?: string | null; + mascotImageUrl?: string | null; + bannerUrl?: string | null; + serverErrorImageUrl?: string | null; + infoImageUrl?: string | null; + notFoundImageUrl?: string | null; + iconUrl?: string | null; + app192IconUrl?: string | null; + app512IconUrl?: string | null; + backgroundImageUrl?: string | null; + logoImageUrl?: string | null; + name?: string | null; + shortName?: string | null; + description?: string | null; + defaultLightTheme?: string | null; + defaultDarkTheme?: string | null; + cacheRemoteFiles?: boolean; + cacheRemoteSensitiveFiles?: boolean; + emailRequiredForSignup?: boolean; + enableHcaptcha?: boolean; + hcaptchaSiteKey?: string | null; + hcaptchaSecretKey?: string | null; + enableMcaptcha?: boolean; + mcaptchaSiteKey?: string | null; + mcaptchaInstanceUrl?: string | null; + mcaptchaSecretKey?: string | null; + enableRecaptcha?: boolean; + recaptchaSiteKey?: string | null; + recaptchaSecretKey?: string | null; + enableTurnstile?: boolean; + turnstileSiteKey?: string | null; + turnstileSecretKey?: string | null; + enableTestcaptcha?: boolean; + googleAnalyticsMeasurementId?: string | null; + /** @enum {string} */ + sensitiveMediaDetection?: 'none' | 'all' | 'local' | 'remote'; + /** @enum {string} */ + sensitiveMediaDetectionSensitivity?: 'medium' | 'low' | 'high' | 'veryLow' | 'veryHigh'; + setSensitiveFlagAutomatically?: boolean; + enableSensitiveMediaDetectionForVideos?: boolean; + maintainerName?: string | null; + maintainerEmail?: string | null; + langs?: string[]; + deeplAuthKey?: string | null; + deeplIsPro?: boolean; + enableEmail?: boolean; + email?: string | null; + smtpSecure?: boolean; + smtpHost?: string | null; + smtpPort?: number | null; + smtpUser?: string | null; + smtpPass?: string | null; + enableServiceWorker?: boolean; + swPublicKey?: string | null; + swPrivateKey?: string | null; + tosUrl?: string | null; + repositoryUrl?: string | null; + feedbackUrl?: string | null; + impressumUrl?: string | null; + privacyPolicyUrl?: string | null; + inquiryUrl?: string | null; + useObjectStorage?: boolean; + objectStorageBaseUrl?: string | null; + objectStorageBucket?: string | null; + objectStoragePrefix?: string | null; + objectStorageEndpoint?: string | null; + objectStorageRegion?: string | null; + objectStoragePort?: number | null; + objectStorageAccessKey?: string | null; + objectStorageSecretKey?: string | null; + objectStorageUseSSL?: boolean; + objectStorageUseProxy?: boolean; + objectStorageSetPublicRead?: boolean; + objectStorageS3ForcePathStyle?: boolean; + enableIpLogging?: boolean; + enableActiveEmailValidation?: boolean; + enableVerifymailApi?: boolean; + verifymailAuthKey?: string | null; + enableTruemailApi?: boolean; + truemailInstance?: string | null; + truemailAuthKey?: string | null; + enableChartsForRemoteUser?: boolean; + enableChartsForFederatedInstances?: boolean; + enableStatsForFederatedInstances?: boolean; + enableServerMachineStats?: boolean; + enableIdenticonGeneration?: boolean; + serverRules?: string[]; + bannedEmailDomains?: string[]; + preservedUsernames?: string[]; + manifestJsonOverride?: string; + enableFanoutTimeline?: boolean; + enableFanoutTimelineDbFallback?: boolean; + perLocalUserUserTimelineCacheMax?: number; + perRemoteUserUserTimelineCacheMax?: number; + perUserHomeTimelineCacheMax?: number; + perUserListTimelineCacheMax?: number; + enableReactionsBuffering?: boolean; + notesPerOneAd?: number; + silencedHosts?: string[] | null; + mediaSilencedHosts?: string[] | null; + /** @description [Deprecated] Use "urlPreviewSummaryProxyUrl" instead. */ + summalyProxy?: string | null; + urlPreviewEnabled?: boolean; + urlPreviewAllowRedirect?: boolean; + urlPreviewTimeout?: number; + urlPreviewMaximumContentLength?: number; + urlPreviewRequireContentLength?: boolean; + urlPreviewUserAgent?: string | null; + urlPreviewSummaryProxyUrl?: string | null; + /** @enum {string} */ + federation?: 'all' | 'none' | 'specified'; + federationHosts?: string[]; + deliverSuspendedSoftware?: { + software: string; + versionRange: string; + }[]; + singleUserMode?: boolean; + /** @enum {string} */ + ugcVisibilityForVisitor?: 'all' | 'local' | 'none'; + proxyRemoteFiles?: boolean; + signToActivityPubGet?: boolean; + allowExternalApRedirect?: boolean; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___update-proxy-account': { + requestBody: { + content: { + 'application/json': { + description?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserDetailed']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'admin___update-user-note': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + text: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + announcements: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default true */ + isActive?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Announcement'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + announcements___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + announcementId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Announcement']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + antennas___create: { + requestBody: { + content: { + 'application/json': { + name: string; + /** @enum {string} */ + src: 'home' | 'all' | 'users' | 'list' | 'users_blacklist'; + /** Format: misskey:id */ + userListId?: string | null; + keywords: string[][]; + excludeKeywords: string[][]; + users: string[]; + caseSensitive: boolean; + localOnly?: boolean; + excludeBots?: boolean; + withReplies: boolean; + withFile: boolean; + excludeNotesInSensitiveChannel?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Antenna']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + antennas___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + antennaId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + antennas___list: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Antenna'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + antennas___notes: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + antennaId: string; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + sinceDate?: number; + untilDate?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + antennas___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + antennaId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Antenna']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + antennas___update: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + antennaId: string; + name?: string; + /** @enum {string} */ + src?: 'home' | 'all' | 'users' | 'list' | 'users_blacklist'; + /** Format: misskey:id */ + userListId?: string | null; + keywords?: string[][]; + excludeKeywords?: string[][]; + users?: string[]; + caseSensitive?: boolean; + localOnly?: boolean; + excludeBots?: boolean; + withReplies?: boolean; + withFile?: boolean; + excludeNotesInSensitiveChannel?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Antenna']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + ap___get: { + requestBody: { + content: { + 'application/json': { + uri: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': Record; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + ap___show: { + requestBody: { + content: { + 'application/json': { + uri: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** @enum {string} */ + type: 'User'; + object: components['schemas']['UserDetailedNotMe']; + } | { + /** @enum {string} */ + type: 'Note'; + object: components['schemas']['Note']; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + app___create: { + requestBody: { + content: { + 'application/json': { + name: string; + description: string; + permission: string[]; + callbackUrl?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['App']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + app___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + appId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['App']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + auth___accept: { + requestBody: { + content: { + 'application/json': { + token: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + auth___session___generate: { + requestBody: { + content: { + 'application/json': { + appSecret: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + token: string; + /** Format: url */ + url: string; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + auth___session___show: { + requestBody: { + content: { + 'application/json': { + token: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: id */ + id: string; + app: components['schemas']['App']; + token: string; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + auth___session___userkey: { + requestBody: { + content: { + 'application/json': { + appSecret: string; + token: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + accessToken: string; + user: components['schemas']['UserDetailedNotMe']; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + blocking___create: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserDetailedNotMe']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + blocking___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserDetailedNotMe']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + blocking___list: { + requestBody: { + content: { + 'application/json': { + /** @default 30 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Blocking'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'bubble-game___ranking': { + requestBody: { + content: { + 'application/json': { + gameMode: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + score: number; + user?: components['schemas']['UserLite']; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'bubble-game___register': { + requestBody: { + content: { + 'application/json': { + score: number; + seed: string; + logs: number[][]; + gameMode: string; + gameVersion: number; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + channels___create: { + requestBody: { + content: { + 'application/json': { + name: string; + description?: string | null; + /** Format: misskey:id */ + bannerId?: string | null; + color?: string; + isSensitive?: boolean | null; + allowRenoteToExternal?: boolean | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Channel']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + channels___favorite: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + channelId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + channels___featured: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Channel'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + channels___follow: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + channelId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + channels___followed: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 5 */ + limit?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Channel'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'channels___my-favorites': { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Channel'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + channels___owned: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 5 */ + limit?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Channel'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + channels___search: { + requestBody: { + content: { + 'application/json': { + query: string; + /** + * @default nameAndDescription + * @enum {string} + */ + type?: 'nameAndDescription' | 'nameOnly'; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 5 */ + limit?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Channel'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + channels___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + channelId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Channel']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + channels___timeline: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + channelId: string; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + sinceDate?: number; + untilDate?: number; + /** @default false */ + allowPartial?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + channels___unfavorite: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + channelId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + channels___unfollow: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + channelId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + channels___update: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + channelId: string; + name?: string; + description?: string | null; + /** Format: misskey:id */ + bannerId?: string | null; + isArchived?: boolean | null; + pinnedNoteIds?: string[]; + color?: string; + isSensitive?: boolean | null; + allowRenoteToExternal?: boolean | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Channel']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'charts___active-users': { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + span: 'day' | 'hour'; + /** @default 30 */ + limit?: number; + /** @default null */ + offset?: number | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + readWrite: number[]; + read: number[]; + write: number[]; + registeredWithinWeek: number[]; + registeredWithinMonth: number[]; + registeredWithinYear: number[]; + registeredOutsideWeek: number[]; + registeredOutsideMonth: number[]; + registeredOutsideYear: number[]; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'charts___ap-request': { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + span: 'day' | 'hour'; + /** @default 30 */ + limit?: number; + /** @default null */ + offset?: number | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + deliverFailed: number[]; + deliverSucceeded: number[]; + inboxReceived: number[]; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + charts___drive: { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + span: 'day' | 'hour'; + /** @default 30 */ + limit?: number; + /** @default null */ + offset?: number | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + local: { + incCount: number[]; + incSize: number[]; + decCount: number[]; + decSize: number[]; + }; + remote: { + incCount: number[]; + incSize: number[]; + decCount: number[]; + decSize: number[]; + }; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + charts___federation: { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + span: 'day' | 'hour'; + /** @default 30 */ + limit?: number; + /** @default null */ + offset?: number | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + deliveredInstances: number[]; + inboxInstances: number[]; + stalled: number[]; + sub: number[]; + pub: number[]; + pubsub: number[]; + subActive: number[]; + pubActive: number[]; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + charts___instance: { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + span: 'day' | 'hour'; + /** @default 30 */ + limit?: number; + /** @default null */ + offset?: number | null; + host: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + requests: { + failed: number[]; + succeeded: number[]; + received: number[]; + }; + notes: { + total: number[]; + inc: number[]; + dec: number[]; + diffs: { + normal: number[]; + reply: number[]; + renote: number[]; + withFile: number[]; + }; + }; + users: { + total: number[]; + inc: number[]; + dec: number[]; + }; + following: { + total: number[]; + inc: number[]; + dec: number[]; + }; + followers: { + total: number[]; + inc: number[]; + dec: number[]; + }; + drive: { + totalFiles: number[]; + incFiles: number[]; + decFiles: number[]; + incUsage: number[]; + decUsage: number[]; + }; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + charts___notes: { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + span: 'day' | 'hour'; + /** @default 30 */ + limit?: number; + /** @default null */ + offset?: number | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + local: { + total: number[]; + inc: number[]; + dec: number[]; + diffs: { + normal: number[]; + reply: number[]; + renote: number[]; + withFile: number[]; + }; + }; + remote: { + total: number[]; + inc: number[]; + dec: number[]; + diffs: { + normal: number[]; + reply: number[]; + renote: number[]; + withFile: number[]; + }; + }; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + charts___user___drive: { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + span: 'day' | 'hour'; + /** @default 30 */ + limit?: number; + /** @default null */ + offset?: number | null; + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + totalCount: number[]; + totalSize: number[]; + incCount: number[]; + incSize: number[]; + decCount: number[]; + decSize: number[]; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + charts___user___following: { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + span: 'day' | 'hour'; + /** @default 30 */ + limit?: number; + /** @default null */ + offset?: number | null; + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + local: { + followings: { + total: number[]; + inc: number[]; + dec: number[]; + }; + followers: { + total: number[]; + inc: number[]; + dec: number[]; + }; + }; + remote: { + followings: { + total: number[]; + inc: number[]; + dec: number[]; + }; + followers: { + total: number[]; + inc: number[]; + dec: number[]; + }; + }; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + charts___user___notes: { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + span: 'day' | 'hour'; + /** @default 30 */ + limit?: number; + /** @default null */ + offset?: number | null; + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + total: number[]; + inc: number[]; + dec: number[]; + diffs: { + normal: number[]; + reply: number[]; + renote: number[]; + withFile: number[]; + }; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + charts___user___pv: { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + span: 'day' | 'hour'; + /** @default 30 */ + limit?: number; + /** @default null */ + offset?: number | null; + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + upv: { + user: number[]; + visitor: number[]; + }; + pv: { + user: number[]; + visitor: number[]; + }; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + charts___user___reactions: { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + span: 'day' | 'hour'; + /** @default 30 */ + limit?: number; + /** @default null */ + offset?: number | null; + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + local: { + count: number[]; + }; + remote: { + count: number[]; + }; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + charts___users: { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + span: 'day' | 'hour'; + /** @default 30 */ + limit?: number; + /** @default null */ + offset?: number | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + local: { + total: number[]; + inc: number[]; + dec: number[]; + }; + remote: { + total: number[]; + inc: number[]; + dec: number[]; + }; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___history: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** @default false */ + room?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ChatMessage'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'chat___messages___create-to-room': { + requestBody: { + content: { + 'application/json': { + text?: string | null; + /** Format: misskey:id */ + fileId?: string; + /** Format: misskey:id */ + toRoomId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ChatMessageLiteForRoom']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'chat___messages___create-to-user': { + requestBody: { + content: { + 'application/json': { + text?: string | null; + /** Format: misskey:id */ + fileId?: string; + /** Format: misskey:id */ + toUserId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ChatMessageLiteFor1on1']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___messages___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + messageId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___messages___react: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + messageId: string; + reaction: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'chat___messages___room-timeline': { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** Format: misskey:id */ + roomId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ChatMessageLiteForRoom'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___messages___search: { + requestBody: { + content: { + 'application/json': { + query: string; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + userId?: string | null; + /** Format: misskey:id */ + roomId?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ChatMessage'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___messages___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + messageId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ChatMessage']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___messages___unreact: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + messageId: string; + reaction: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'chat___messages___user-timeline': { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ChatMessageLiteFor1on1'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'chat___read-all': { + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___rooms___create: { + requestBody: { + content: { + 'application/json': { + name: string; + description?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ChatRoom']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___rooms___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roomId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___rooms___invitations___create: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roomId: string; + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ChatRoomInvitation']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___rooms___invitations___ignore: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roomId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___rooms___invitations___inbox: { + requestBody: { + content: { + 'application/json': { + /** @default 30 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ChatRoomInvitation'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___rooms___invitations___outbox: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roomId: string; + /** @default 30 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ChatRoomInvitation'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___rooms___join: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roomId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___rooms___joining: { + requestBody: { + content: { + 'application/json': { + /** @default 30 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ChatRoomMembership'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___rooms___leave: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roomId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___rooms___members: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roomId: string; + /** @default 30 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ChatRoomMembership'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___rooms___mute: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roomId: string; + mute: boolean; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___rooms___owned: { + requestBody: { + content: { + 'application/json': { + /** @default 30 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ChatRoom'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___rooms___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roomId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ChatRoom']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + chat___rooms___update: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roomId: string; + name?: string; + description?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ChatRoom']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'clips___add-note': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + clipId: string; + /** Format: misskey:id */ + noteId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + clips___create: { + requestBody: { + content: { + 'application/json': { + name: string; + /** @default false */ + isPublic?: boolean; + description?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Clip']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + clips___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + clipId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + clips___favorite: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + clipId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + clips___list: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Clip'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'clips___my-favorites': { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Clip'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + clips___notes: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + clipId: string; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'clips___remove-note': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + clipId: string; + /** Format: misskey:id */ + noteId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + clips___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + clipId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Clip']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + clips___unfavorite: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + clipId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + clips___update: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + clipId: string; + name?: string; + isPublic?: boolean; + description?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Clip']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + drive: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + capacity: number; + usage: number; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + drive___files: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** + * Format: misskey:id + * @default null + */ + folderId?: string | null; + type?: string | null; + /** @enum {string|null} */ + sort?: '+createdAt' | '-createdAt' | '+name' | '-name' | '+size' | '-size' | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['DriveFile'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'drive___files___attached-notes': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + fileId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'drive___files___check-existence': { + requestBody: { + content: { + 'application/json': { + md5: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': boolean; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + drive___files___create: { + requestBody: { + content: { + 'multipart/form-data': { + /** + * Format: misskey:id + * @default null + */ + folderId?: string | null; + /** @default null */ + name?: string | null; + /** @default null */ + comment?: string | null; + /** @default false */ + isSensitive?: boolean; + /** @default false */ + force?: boolean; + /** + * Format: binary + * @description The file contents. + */ + file: Blob; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['DriveFile']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + drive___files___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + fileId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + drive___files___find: { + requestBody: { + content: { + 'application/json': { + name: string; + /** + * Format: misskey:id + * @default null + */ + folderId?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['DriveFile'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'drive___files___find-by-hash': { + requestBody: { + content: { + 'application/json': { + md5: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['DriveFile'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'drive___files___move-bulk': { + requestBody: { + content: { + 'application/json': { + fileIds: string[]; + /** Format: misskey:id */ + folderId?: string | null; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + drive___files___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + fileId: string; + } | { + url: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['DriveFile']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + drive___files___update: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + fileId: string; + /** Format: misskey:id */ + folderId?: string | null; + name?: string; + isSensitive?: boolean; + comment?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['DriveFile']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'drive___files___upload-from-url': { + requestBody: { + content: { + 'application/json': { + url: string; + /** + * Format: misskey:id + * @default null + */ + folderId?: string | null; + /** @default false */ + isSensitive?: boolean; + /** @default null */ + comment?: string | null; + /** @default null */ + marker?: string | null; + /** @default false */ + force?: boolean; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + drive___folders: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** + * Format: misskey:id + * @default null + */ + folderId?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['DriveFolder'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + drive___folders___create: { + requestBody: { + content: { + 'application/json': { + /** @default Untitled */ + name?: string; + /** Format: misskey:id */ + parentId?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['DriveFolder']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + drive___folders___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + folderId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + drive___folders___find: { + requestBody: { + content: { + 'application/json': { + name: string; + /** + * Format: misskey:id + * @default null + */ + parentId?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['DriveFolder'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + drive___folders___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + folderId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['DriveFolder']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + drive___folders___update: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + folderId: string; + name?: string; + /** Format: misskey:id */ + parentId?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['DriveFolder']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + drive___stream: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + type?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['DriveFile'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'email-address___available': { + requestBody: { + content: { + 'application/json': { + emailAddress: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + available: boolean; + reason: string | null; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + emoji: { + requestBody: { + content: { + 'application/json': { + name: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['EmojiDetailed']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + emojis: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + emojis: components['schemas']['EmojiSimple'][]; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + endpoint: { + requestBody: { + content: { + 'application/json': { + endpoint: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + params: { + name: string; + type: string; + }[]; + } | null; + }; + }; + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + endpoints: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': string[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'export-custom-emojis': { + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + federation___followers: { + requestBody: { + content: { + 'application/json': { + host: string; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 10 */ + limit?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Following'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + federation___following: { + requestBody: { + content: { + 'application/json': { + host: string; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 10 */ + limit?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Following'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + federation___instances: { + requestBody: { + content: { + 'application/json': { + /** @description Omit or use `null` to not filter by host. */ + host?: string | null; + blocked?: boolean | null; + notResponding?: boolean | null; + suspended?: boolean | null; + silenced?: boolean | null; + federating?: boolean | null; + subscribing?: boolean | null; + publishing?: boolean | null; + /** @default 30 */ + limit?: number; + /** @default 0 */ + offset?: number; + /** @enum {string|null} */ + sort?: '+pubSub' | '-pubSub' | '+notes' | '-notes' | '+users' | '-users' | '+following' | '-following' | '+followers' | '-followers' | '+firstRetrievedAt' | '-firstRetrievedAt' | '+latestRequestReceivedAt' | '-latestRequestReceivedAt' | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['FederationInstance'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'federation___show-instance': { + requestBody: { + content: { + 'application/json': { + host: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['FederationInstance'] | null; + }; + }; + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + federation___stats: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + topSubInstances: components['schemas']['FederationInstance'][]; + otherFollowersCount: number; + topPubInstances: components['schemas']['FederationInstance'][]; + otherFollowingCount: number; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'federation___update-remote-user': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + federation___users: { + requestBody: { + content: { + 'application/json': { + host: string; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 10 */ + limit?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserDetailedNotMe'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'fetch-external-resources': { + requestBody: { + content: { + 'application/json': { + url: string; + hash: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + type: string; + data: string; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'fetch-rss': { + requestBody: { + content: { + 'application/json': { + url: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + image?: { + link?: string; + url: string; + title?: string; + }; + paginationLinks?: { + self?: string; + first?: string; + next?: string; + last?: string; + prev?: string; + }; + link?: string; + title?: string; + items: { + link?: string; + guid?: string; + title?: string; + pubDate?: string; + creator?: string; + summary?: string; + content?: string; + isoDate?: string; + categories?: string[]; + contentSnippet?: string; + enclosure?: { + url: string; + length?: number; + type?: string; + }; + }[]; + feedUrl?: string; + description?: string; + itunes?: { + image?: string; + owner?: { + name?: string; + email?: string; + }; + author?: string; + summary?: string; + explicit?: string; + categories?: string[]; + keywords?: string[]; + } & { + [key: string]: unknown; + }; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + flash___create: { + requestBody: { + content: { + 'application/json': { + title: string; + summary: string; + script: string; + permissions: string[]; + /** + * @default public + * @enum {string} + */ + visibility?: 'public' | 'private'; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Flash']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + flash___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + flashId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + flash___featured: { + requestBody: { + content: { + 'application/json': { + /** @default 0 */ + offset?: number; + /** @default 10 */ + limit?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Flash'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + flash___like: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + flashId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + flash___my: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Flash'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'flash___my-likes': { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: id */ + id: string; + flash: components['schemas']['Flash']; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + flash___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + flashId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Flash']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + flash___unlike: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + flashId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + flash___update: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + flashId: string; + title?: string; + summary?: string; + script?: string; + permissions?: string[]; + /** @enum {string} */ + visibility?: 'public' | 'private'; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + following___create: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + withReplies?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserLite']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + following___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserLite']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + following___invalidate: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserLite']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + following___requests___accept: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + following___requests___cancel: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserLite']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + following___requests___list: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 10 */ + limit?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: id */ + id: string; + follower: components['schemas']['UserLite']; + followee: components['schemas']['UserLite']; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + following___requests___reject: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + following___requests___sent: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 10 */ + limit?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: id */ + id: string; + follower: components['schemas']['UserLite']; + followee: components['schemas']['UserLite']; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + following___update: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + /** @enum {string} */ + notify?: 'normal' | 'none'; + withReplies?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserLite']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'following___update-all': { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + notify?: 'normal' | 'none'; + withReplies?: boolean; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + gallery___featured: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['GalleryPost'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + gallery___popular: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['GalleryPost'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + gallery___posts: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['GalleryPost'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + gallery___posts___create: { + requestBody: { + content: { + 'application/json': { + title: string; + description?: string | null; + fileIds: string[]; + /** @default false */ + isSensitive?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['GalleryPost']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + gallery___posts___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + postId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + gallery___posts___like: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + postId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + gallery___posts___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + postId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['GalleryPost']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + gallery___posts___unlike: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + postId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + gallery___posts___update: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + postId: string; + title?: string; + description?: string | null; + fileIds?: string[]; + /** @default false */ + isSensitive?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['GalleryPost']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'get-avatar-decorations': { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** + * Format: id + * @example xxxxxxxxxx + */ + id: string; + name: string; + description: string; + url: string; + roleIdsThatCanBeUsedThisDecoration: string[]; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'get-online-users-count': { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + count: number; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + hashtags___list: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** @default false */ + attachedToUserOnly?: boolean; + /** @default false */ + attachedToLocalUserOnly?: boolean; + /** @default false */ + attachedToRemoteUserOnly?: boolean; + /** @enum {string} */ + sort: '+mentionedUsers' | '-mentionedUsers' | '+mentionedLocalUsers' | '-mentionedLocalUsers' | '+mentionedRemoteUsers' | '-mentionedRemoteUsers' | '+attachedUsers' | '-attachedUsers' | '+attachedLocalUsers' | '-attachedLocalUsers' | '+attachedRemoteUsers' | '-attachedRemoteUsers'; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Hashtag'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + hashtags___search: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + query: string; + /** @default 0 */ + offset?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': string[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + hashtags___show: { + requestBody: { + content: { + 'application/json': { + tag: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Hashtag']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + hashtags___trend: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + tag: string; + chart: number[]; + usersCount: number; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + hashtags___users: { + requestBody: { + content: { + 'application/json': { + tag: string; + /** @default 10 */ + limit?: number; + /** @enum {string} */ + sort: '+follower' | '-follower' | '+createdAt' | '-createdAt' | '+updatedAt' | '-updatedAt'; + /** + * @default all + * @enum {string} + */ + state?: 'all' | 'alive'; + /** + * @default local + * @enum {string} + */ + origin?: 'combined' | 'local' | 'remote'; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserDetailed'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['MeDetailed']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___2fa___done: { + requestBody: { + content: { + 'application/json': { + token: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + backupCodes: string[]; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___2fa___key-done': { + requestBody: { + content: { + 'application/json': { + password: string; + token?: string | null; + name: string; + credential: Record; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + id: string; + name: string; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___2fa___password-less': { + requestBody: { + content: { + 'application/json': { + value: boolean; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___2fa___register: { + requestBody: { + content: { + 'application/json': { + password: string; + token?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + qr: string; + url: string; + secret: string; + label: string; + issuer: string; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___2fa___register-key': { + requestBody: { + content: { + 'application/json': { + password: string; + token?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + rp: { + id?: string; + }; + user: { + id: string; + name: string; + displayName: string; + }; + challenge: string; + pubKeyCredParams: { + type: string; + alg: number; + }[]; + timeout: number | null; + excludeCredentials: { + id: string; + type: string; + transports: ('ble' | 'cable' | 'hybrid' | 'internal' | 'nfc' | 'smart-card' | 'usb')[]; + }[] | null; + authenticatorSelection: { + /** @enum {string} */ + authenticatorAttachment: 'cross-platform' | 'platform'; + requireResidentKey: boolean; + /** @enum {string} */ + userVerification: 'discouraged' | 'preferred' | 'required'; + } | null; + /** @enum {string|null} */ + attestation: 'direct' | 'enterprise' | 'indirect' | 'none' | null; + extensions: { + appid: string | null; + credProps: boolean | null; + hmacCreateSecret: boolean | null; + } | null; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___2fa___remove-key': { + requestBody: { + content: { + 'application/json': { + password: string; + token?: string | null; + credentialId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___2fa___unregister: { + requestBody: { + content: { + 'application/json': { + password: string; + token?: string | null; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___2fa___update-key': { + requestBody: { + content: { + 'application/json': { + name: string; + credentialId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___apps: { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + sort?: '+createdAt' | '-createdAt' | '+lastUsedAt' | '-lastUsedAt'; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + name?: string; + /** Format: date-time */ + createdAt: string; + /** Format: date-time */ + lastUsedAt?: string; + permission: string[]; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___authorized-apps': { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** @default 0 */ + offset?: number; + /** + * @default desc + * @enum {string} + */ + sort?: 'desc' | 'asc'; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + name: string; + callbackUrl: string | null; + permission: string[]; + isAuthorized?: boolean; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___change-password': { + requestBody: { + content: { + 'application/json': { + currentPassword: string; + newPassword: string; + token?: string | null; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___claim-achievement': { + requestBody: { + content: { + 'application/json': { + /** @enum {string} */ + name: 'notes1' | 'notes10' | 'notes100' | 'notes500' | 'notes1000' | 'notes5000' | 'notes10000' | 'notes20000' | 'notes30000' | 'notes40000' | 'notes50000' | 'notes60000' | 'notes70000' | 'notes80000' | 'notes90000' | 'notes100000' | 'login3' | 'login7' | 'login15' | 'login30' | 'login60' | 'login100' | 'login200' | 'login300' | 'login400' | 'login500' | 'login600' | 'login700' | 'login800' | 'login900' | 'login1000' | 'passedSinceAccountCreated1' | 'passedSinceAccountCreated2' | 'passedSinceAccountCreated3' | 'loggedInOnBirthday' | 'loggedInOnNewYearsDay' | 'noteClipped1' | 'noteFavorited1' | 'myNoteFavorited1' | 'profileFilled' | 'markedAsCat' | 'following1' | 'following10' | 'following50' | 'following100' | 'following300' | 'followers1' | 'followers10' | 'followers50' | 'followers100' | 'followers300' | 'followers500' | 'followers1000' | 'collectAchievements30' | 'viewAchievements3min' | 'iLoveMisskey' | 'foundTreasure' | 'client30min' | 'client60min' | 'noteDeletedWithin1min' | 'postedAtLateNight' | 'postedAt0min0sec' | 'selfQuote' | 'htl20npm' | 'viewInstanceChart' | 'outputHelloWorldOnScratchpad' | 'open3windows' | 'driveFolderCircularReference' | 'reactWithoutRead' | 'clickedClickHere' | 'justPlainLucky' | 'setNameToSyuilo' | 'cookieClicked' | 'brainDiver' | 'smashTestNotificationButton' | 'tutorialCompleted' | 'bubbleGameExplodingHead' | 'bubbleGameDoubleExplodingHead'; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___delete-account': { + requestBody: { + content: { + 'application/json': { + password: string; + token?: string | null; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___export-antennas': { + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___export-blocking': { + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___export-clips': { + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___export-favorites': { + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___export-following': { + requestBody: { + content: { + 'application/json': { + /** @default false */ + excludeMuting?: boolean; + /** @default false */ + excludeInactive?: boolean; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___export-mute': { + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___export-notes': { + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___export-user-lists': { + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___favorites: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['NoteFavorite'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___gallery___likes: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: id */ + id: string; + post: components['schemas']['GalleryPost']; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___gallery___posts: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['GalleryPost'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___import-antennas': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + fileId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___import-blocking': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + fileId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___import-following': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + fileId: string; + withReplies?: boolean; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___import-muting': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + fileId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___import-user-lists': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + fileId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___move: { + requestBody: { + content: { + 'application/json': { + moveToAccount: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': Record; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___notifications: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default true */ + markAsRead?: boolean; + includeTypes?: ('note' | 'follow' | 'mention' | 'reply' | 'renote' | 'quote' | 'reaction' | 'pollEnded' | 'receiveFollowRequest' | 'followRequestAccepted' | 'roleAssigned' | 'chatRoomInvitationReceived' | 'achievementEarned' | 'exportCompleted' | 'login' | 'createToken' | 'app' | 'test' | 'pollVote' | 'groupInvited')[]; + excludeTypes?: ('note' | 'follow' | 'mention' | 'reply' | 'renote' | 'quote' | 'reaction' | 'pollEnded' | 'receiveFollowRequest' | 'followRequestAccepted' | 'roleAssigned' | 'chatRoomInvitationReceived' | 'achievementEarned' | 'exportCompleted' | 'login' | 'createToken' | 'app' | 'test' | 'pollVote' | 'groupInvited')[]; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Notification'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___notifications-grouped': { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default true */ + markAsRead?: boolean; + includeTypes?: ('note' | 'follow' | 'mention' | 'reply' | 'renote' | 'quote' | 'reaction' | 'pollEnded' | 'receiveFollowRequest' | 'followRequestAccepted' | 'roleAssigned' | 'chatRoomInvitationReceived' | 'achievementEarned' | 'exportCompleted' | 'login' | 'createToken' | 'app' | 'test' | 'pollVote' | 'groupInvited')[]; + excludeTypes?: ('note' | 'follow' | 'mention' | 'reply' | 'renote' | 'quote' | 'reaction' | 'pollEnded' | 'receiveFollowRequest' | 'followRequestAccepted' | 'roleAssigned' | 'chatRoomInvitationReceived' | 'achievementEarned' | 'exportCompleted' | 'login' | 'createToken' | 'app' | 'test' | 'pollVote' | 'groupInvited')[]; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Notification'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___page-likes': { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: id */ + id: string; + page: components['schemas']['Page']; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___pages: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Page'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___pin: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['MeDetailed']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___read-announcement': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + announcementId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___regenerate-token': { + requestBody: { + content: { + 'application/json': { + password: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___registry___get: { + requestBody: { + content: { + 'application/json': { + key: string; + /** @default [] */ + scope: string[]; + domain?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': Record; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___registry___get-all': { + requestBody: { + content: { + 'application/json': { + /** @default [] */ + scope: string[]; + domain?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': Record; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___registry___get-detail': { + requestBody: { + content: { + 'application/json': { + key: string; + /** @default [] */ + scope: string[]; + domain?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + updatedAt: string; + value: unknown; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___registry___keys: { + requestBody: { + content: { + 'application/json': { + /** @default [] */ + scope: string[]; + domain?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': string[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___registry___keys-with-type': { + requestBody: { + content: { + 'application/json': { + /** @default [] */ + scope: string[]; + domain?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + [key: string]: string; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___registry___remove: { + requestBody: { + content: { + 'application/json': { + key: string; + /** @default [] */ + scope: string[]; + domain?: string | null; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___registry___scopes-with-domain': { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + scopes: string[][]; + domain: string | null; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___registry___set: { + requestBody: { + content: { + 'application/json': { + key: string; + value: unknown; + /** @default [] */ + scope: string[]; + domain?: string | null; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___revoke-token': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + tokenId: string; + } | { + token: string | null; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___signin-history': { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Signin'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___unpin: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['MeDetailed']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___update: { + requestBody: { + content: { + 'application/json': { + name?: string | null; + description?: string | null; + followedMessage?: string | null; + location?: string | null; + birthday?: string | null; + /** @enum {string|null} */ + lang?: null | 'ach' | 'ady' | 'af' | 'af-NA' | 'af-ZA' | 'ak' | 'ar' | 'ar-AR' | 'ar-MA' | 'ar-SA' | 'ay-BO' | 'az' | 'az-AZ' | 'be-BY' | 'bg' | 'bg-BG' | 'bn' | 'bn-IN' | 'bn-BD' | 'br' | 'bs-BA' | 'ca' | 'ca-ES' | 'cak' | 'ck-US' | 'cs' | 'cs-CZ' | 'cy' | 'cy-GB' | 'da' | 'da-DK' | 'de' | 'de-AT' | 'de-DE' | 'de-CH' | 'dsb' | 'el' | 'el-GR' | 'en' | 'en-GB' | 'en-AU' | 'en-CA' | 'en-IE' | 'en-IN' | 'en-PI' | 'en-SG' | 'en-UD' | 'en-US' | 'en-ZA' | 'en@pirate' | 'eo' | 'eo-EO' | 'es' | 'es-AR' | 'es-419' | 'es-CL' | 'es-CO' | 'es-EC' | 'es-ES' | 'es-LA' | 'es-NI' | 'es-MX' | 'es-US' | 'es-VE' | 'et' | 'et-EE' | 'eu' | 'eu-ES' | 'fa' | 'fa-IR' | 'fb-LT' | 'ff' | 'fi' | 'fi-FI' | 'fo' | 'fo-FO' | 'fr' | 'fr-CA' | 'fr-FR' | 'fr-BE' | 'fr-CH' | 'fy-NL' | 'ga' | 'ga-IE' | 'gd' | 'gl' | 'gl-ES' | 'gn-PY' | 'gu-IN' | 'gv' | 'gx-GR' | 'he' | 'he-IL' | 'hi' | 'hi-IN' | 'hr' | 'hr-HR' | 'hsb' | 'ht' | 'hu' | 'hu-HU' | 'hy' | 'hy-AM' | 'id' | 'id-ID' | 'is' | 'is-IS' | 'it' | 'it-IT' | 'ja' | 'ja-JP' | 'jv-ID' | 'ka-GE' | 'kk-KZ' | 'km' | 'kl' | 'km-KH' | 'kab' | 'kn' | 'kn-IN' | 'ko' | 'ko-KR' | 'ku-TR' | 'kw' | 'la' | 'la-VA' | 'lb' | 'li-NL' | 'lt' | 'lt-LT' | 'lv' | 'lv-LV' | 'mai' | 'mg-MG' | 'mk' | 'mk-MK' | 'ml' | 'ml-IN' | 'mn-MN' | 'mr' | 'mr-IN' | 'ms' | 'ms-MY' | 'mt' | 'mt-MT' | 'my' | 'no' | 'nb' | 'nb-NO' | 'ne' | 'ne-NP' | 'nl' | 'nl-BE' | 'nl-NL' | 'nn-NO' | 'oc' | 'or-IN' | 'pa' | 'pa-IN' | 'pl' | 'pl-PL' | 'ps-AF' | 'pt' | 'pt-BR' | 'pt-PT' | 'qu-PE' | 'rm-CH' | 'ro' | 'ro-RO' | 'ru' | 'ru-RU' | 'sa-IN' | 'se-NO' | 'sh' | 'si-LK' | 'sk' | 'sk-SK' | 'sl' | 'sl-SI' | 'so-SO' | 'sq' | 'sq-AL' | 'sr' | 'sr-RS' | 'su' | 'sv' | 'sv-SE' | 'sw' | 'sw-KE' | 'ta' | 'ta-IN' | 'te' | 'te-IN' | 'tg' | 'tg-TJ' | 'th' | 'th-TH' | 'fil' | 'tlh' | 'tr' | 'tr-TR' | 'tt-RU' | 'uk' | 'uk-UA' | 'ur' | 'ur-PK' | 'uz' | 'uz-UZ' | 'vi' | 'vi-VN' | 'xh-ZA' | 'yi' | 'yi-DE' | 'zh' | 'zh-Hans' | 'zh-Hant' | 'zh-CN' | 'zh-HK' | 'zh-SG' | 'zh-TW' | 'zu-ZA'; + /** Format: misskey:id */ + avatarId?: string | null; + avatarDecorations?: { + /** Format: misskey:id */ + id: string; + angle?: number | null; + flipH?: boolean | null; + offsetX?: number | null; + offsetY?: number | null; + }[]; + /** Format: misskey:id */ + bannerId?: string | null; + fields?: { + name: string; + value: string; + }[]; + isLocked?: boolean; + isExplorable?: boolean; + hideOnlineStatus?: boolean; + publicReactions?: boolean; + carefulBot?: boolean; + autoAcceptFollowed?: boolean; + noCrawle?: boolean; + preventAiLearning?: boolean; + requireSigninToViewContents?: boolean; + makeNotesFollowersOnlyBefore?: number | null; + makeNotesHiddenBefore?: number | null; + isBot?: boolean; + isCat?: boolean; + injectFeaturedNote?: boolean; + receiveAnnouncementEmail?: boolean; + alwaysMarkNsfw?: boolean; + autoSensitive?: boolean; + /** @enum {string} */ + followingVisibility?: 'public' | 'followers' | 'private'; + /** @enum {string} */ + followersVisibility?: 'public' | 'followers' | 'private'; + /** @enum {string} */ + chatScope?: 'everyone' | 'followers' | 'following' | 'mutual' | 'none'; + /** Format: misskey:id */ + pinnedPageId?: string | null; + mutedWords?: (string[] | string)[]; + hardMutedWords?: (string[] | string)[]; + mutedInstances?: string[]; + notificationRecieveConfig?: { + note?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + follow?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + mention?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + reply?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + renote?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + quote?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + reaction?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + pollEnded?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + receiveFollowRequest?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + followRequestAccepted?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + roleAssigned?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + chatRoomInvitationReceived?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + achievementEarned?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + app?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + test?: { + /** @enum {string} */ + type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'followingOrFollower' | 'never'; + } | { + /** @enum {string} */ + type: 'list'; + /** Format: misskey:id */ + userListId: string; + }; + }; + emailNotificationTypes?: string[]; + alsoKnownAs?: string[]; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['MeDetailed']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'i___update-email': { + requestBody: { + content: { + 'application/json': { + password: string; + email?: string | null; + token?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['MeDetailed']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___webhooks___create: { + requestBody: { + content: { + 'application/json': { + name: string; + url: string; + /** @default */ + secret?: string; + on: ('mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction')[]; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + /** Format: misskey:id */ + userId: string; + name: string; + on: ('mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction')[]; + url: string; + secret: string; + active: boolean; + /** Format: date-time */ + latestSentAt: string | null; + latestStatus: number | null; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___webhooks___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + webhookId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___webhooks___list: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + /** Format: misskey:id */ + userId: string; + name: string; + on: ('mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction')[]; + url: string; + secret: string; + active: boolean; + /** Format: date-time */ + latestSentAt: string | null; + latestStatus: number | null; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___webhooks___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + webhookId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + /** Format: misskey:id */ + userId: string; + name: string; + on: ('mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction')[]; + url: string; + secret: string; + active: boolean; + /** Format: date-time */ + latestSentAt: string | null; + latestStatus: number | null; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___webhooks___test: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + webhookId: string; + /** @enum {string} */ + type: 'mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction'; + override?: { + url?: string; + secret?: string; + }; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + i___webhooks___update: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + webhookId: string; + name?: string; + url?: string; + secret?: string | null; + on?: ('mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction')[]; + active?: boolean; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + invite___create: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['InviteCode']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + invite___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + inviteId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + invite___limit: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + remaining: number | null; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + invite___list: { + requestBody: { + content: { + 'application/json': { + /** @default 30 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['InviteCode'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + meta: { + requestBody: { + content: { + 'application/json': { + /** @default true */ + detail?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['MetaLite'] | components['schemas']['MetaDetailed']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'miauth___gen-token': { + requestBody: { + content: { + 'application/json': { + session: string | null; + name?: string | null; + description?: string | null; + iconUrl?: string | null; + permission: string[]; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + token: string; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + mute___create: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + /** @description A Unix Epoch timestamp that must lie in the future. `null` means an indefinite mute. */ + expiresAt?: number | null; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + mute___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + mute___list: { + requestBody: { + content: { + 'application/json': { + /** @default 30 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Muting'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + my___apps: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** @default 0 */ + offset?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['App'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes: { + requestBody: { + content: { + 'application/json': { + /** @default false */ + local?: boolean; + reply?: boolean; + renote?: boolean; + withFiles?: boolean; + poll?: boolean; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___children: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___clips: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Clip'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___conversation: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + /** @default 10 */ + limit?: number; + /** @default 0 */ + offset?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___create: { + requestBody: { + content: { + 'application/json': { + /** + * @default public + * @enum {string} + */ + visibility?: 'public' | 'home' | 'followers' | 'specified'; + visibleUserIds?: string[]; + cw?: string | null; + /** @default false */ + localOnly?: boolean; + /** + * @default null + * @enum {string|null} + */ + reactionAcceptance?: null | 'likeOnly' | 'likeOnlyForRemote' | 'nonSensitiveOnly' | 'nonSensitiveOnlyForLocalLikeOnlyForRemote'; + /** @default false */ + noExtractMentions?: boolean; + /** @default false */ + noExtractHashtags?: boolean; + /** @default false */ + noExtractEmojis?: boolean; + /** Format: misskey:id */ + replyId?: string | null; + /** Format: misskey:id */ + renoteId?: string | null; + /** Format: misskey:id */ + channelId?: string | null; + text?: string | null; + fileIds?: string[]; + mediaIds?: string[]; + poll?: { + choices: string[]; + multiple?: boolean; + expiresAt?: number | null; + expiredAfter?: number | null; + } | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + createdNote: components['schemas']['Note']; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___favorites___create: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___favorites___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___featured: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + untilId?: string; + /** Format: misskey:id */ + channelId?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'notes___global-timeline': { + requestBody: { + content: { + 'application/json': { + /** @default false */ + withFiles?: boolean; + /** @default true */ + withRenotes?: boolean; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + sinceDate?: number; + untilDate?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'notes___hybrid-timeline': { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + sinceDate?: number; + untilDate?: number; + /** @default false */ + allowPartial?: boolean; + /** @default true */ + includeMyRenotes?: boolean; + /** @default true */ + includeRenotedMyNotes?: boolean; + /** @default true */ + includeLocalRenotes?: boolean; + /** @default false */ + withFiles?: boolean; + /** @default true */ + withRenotes?: boolean; + /** @default false */ + withReplies?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'notes___local-timeline': { + requestBody: { + content: { + 'application/json': { + /** @default false */ + withFiles?: boolean; + /** @default true */ + withRenotes?: boolean; + /** @default false */ + withReplies?: boolean; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default false */ + allowPartial?: boolean; + sinceDate?: number; + untilDate?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___mentions: { + requestBody: { + content: { + 'application/json': { + /** @default false */ + following?: boolean; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + visibility?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___polls___recommendation: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** @default 0 */ + offset?: number; + /** @default false */ + excludeChannels?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___polls___vote: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + choice: number; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___reactions: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + type?: string | null; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['NoteReaction'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___reactions___create: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + reaction: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___reactions___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___renotes: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___replies: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 10 */ + limit?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___search: { + requestBody: { + content: { + 'application/json': { + query: string; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 10 */ + limit?: number; + /** @default 0 */ + offset?: number; + /** @description The local host is represented with `.`. */ + host?: string; + /** + * Format: misskey:id + * @default null + */ + userId?: string | null; + /** + * Format: misskey:id + * @default null + */ + channelId?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'notes___search-by-tag': { + requestBody: { + content: { + 'application/json': ({ + tag: string; + } | { + /** @description The outer arrays are chained with OR, the inner arrays are chained with AND. */ + query: string[][]; + }) & { + /** @default null */ + reply?: boolean | null; + /** @default null */ + renote?: boolean | null; + /** + * @description Only show notes that have attached files. + * @default false + */ + withFiles?: boolean; + /** @default null */ + poll?: boolean | null; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 10 */ + limit?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'notes___show-partial-bulk': { + requestBody: { + content: { + 'application/json': { + noteIds: string[]; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + id: string; + reactions: { + [key: string]: number; + }; + reactionEmojis: { + [key: string]: string; + }; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___state: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + isFavorited: boolean; + isMutedThread: boolean; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'notes___thread-muting___create': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'notes___thread-muting___delete': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___timeline: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + sinceDate?: number; + untilDate?: number; + /** @default false */ + allowPartial?: boolean; + /** @default true */ + includeMyRenotes?: boolean; + /** @default true */ + includeRenotedMyNotes?: boolean; + /** @default true */ + includeLocalRenotes?: boolean; + /** @default false */ + withFiles?: boolean; + /** @default true */ + withRenotes?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___translate: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + targetLang: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + sourceLang: string; + text: string; + }; + }; + }; + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notes___unrenote: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'notes___user-list-timeline': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + listId: string; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + sinceDate?: number; + untilDate?: number; + /** @default false */ + allowPartial?: boolean; + /** @default true */ + includeMyRenotes?: boolean; + /** @default true */ + includeRenotedMyNotes?: boolean; + /** @default true */ + includeLocalRenotes?: boolean; + /** @default true */ + withRenotes?: boolean; + /** + * @description Only show notes that have attached files. + * @default false + */ + withFiles?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notifications___create: { + requestBody: { + content: { + 'application/json': { + body: string; + header?: string | null; + icon?: string | null; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + notifications___flush: { + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'notifications___mark-all-as-read': { + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'notifications___test-notification': { + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'page-push': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + pageId: string; + event: string; + var?: unknown; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + pages___create: { + requestBody: { + content: { + 'application/json': { + title: string; + name: string; + summary?: string | null; + content: { + [key: string]: unknown; + }[]; + variables: { + [key: string]: unknown; + }[]; + script: string; + /** Format: misskey:id */ + eyeCatchingImageId?: string | null; + /** + * @default sans-serif + * @enum {string} + */ + font?: 'serif' | 'sans-serif'; + /** @default false */ + alignCenter?: boolean; + /** @default false */ + hideTitleWhenPinned?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Page']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + pages___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + pageId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + pages___featured: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Page'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + pages___like: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + pageId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + pages___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + pageId: string; + } | { + name: string; + username: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Page']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + pages___unlike: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + pageId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + pages___update: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + pageId: string; + title?: string; + name?: string; + summary?: string | null; + content?: { + [key: string]: unknown; + }[]; + variables?: { + [key: string]: unknown; + }[]; + script?: string; + /** Format: misskey:id */ + eyeCatchingImageId?: string | null; + /** @enum {string} */ + font?: 'serif' | 'sans-serif'; + alignCenter?: boolean; + hideTitleWhenPinned?: boolean; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + ping: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + pong: number; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'pinned-users': { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserDetailed'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + promo___read: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + noteId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'renote-mute___create': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'renote-mute___delete': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'renote-mute___list': { + requestBody: { + content: { + 'application/json': { + /** @default 30 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['RenoteMuting'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'request-reset-password': { + requestBody: { + content: { + 'application/json': { + username: string; + email: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'reset-db': { + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'reset-password': { + requestBody: { + content: { + 'application/json': { + token: string; + password: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + retention: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: date-time */ + createdAt: string; + users: number; + data: { + [key: string]: number; + }; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'reversi___cancel-match': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId?: string | null; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + reversi___games: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default false */ + my?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ReversiGameLite'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + reversi___invitations: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserLite'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + reversi___match: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId?: string | null; + /** @default false */ + noIrregularRules?: boolean; + /** @default false */ + multiple?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ReversiGameDetailed']; + }; + }; + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'reversi___show-game': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + gameId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ReversiGameDetailed']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + reversi___surrender: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + gameId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + reversi___verify: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + gameId: string; + crc32: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + desynced: boolean; + game?: components['schemas']['ReversiGameDetailed'] | null; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + roles___list: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Role'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + roles___notes: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roleId: string; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + sinceDate?: number; + untilDate?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + roles___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roleId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Role']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + roles___users: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + roleId: string; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 10 */ + limit?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + user: components['schemas']['UserDetailed']; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'server-info': { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + machine: string; + cpu: { + model: string; + cores: number; + }; + mem: { + total: number; + }; + fs: { + total: number; + used: number; + }; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + stats: { + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + notesCount: number; + originalNotesCount: number; + usersCount: number; + originalUsersCount: number; + instances: number; + driveUsageLocal: number; + driveUsageRemote: number; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + sw___register: { + requestBody: { + content: { + 'application/json': { + endpoint: string; + auth: string; + publickey: string; + /** @default false */ + sendReadMessage?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** @enum {string} */ + state?: 'already-subscribed' | 'subscribed'; + key: string | null; + userId: string; + endpoint: string; + sendReadMessage: boolean; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'sw___show-registration': { + requestBody: { + content: { + 'application/json': { + endpoint: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + userId: string; + endpoint: string; + sendReadMessage: boolean; + } | null; + }; + }; + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + sw___unregister: { + requestBody: { + content: { + 'application/json': { + endpoint: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'sw___update-registration': { + requestBody: { + content: { + 'application/json': { + endpoint: string; + sendReadMessage?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + userId: string; + endpoint: string; + sendReadMessage: boolean; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + test: { + requestBody: { + content: { + 'application/json': { + required: boolean; + string?: string; + /** @default hello */ + default?: string; + /** @default hello */ + nullableDefault?: string | null; + /** Format: misskey:id */ + id?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: misskey:id */ + id?: string; + required: boolean; + string?: string; + default?: string; + /** @default hello */ + nullableDefault: string | null; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + username___available: { + requestBody: { + content: { + 'application/json': { + username: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + available: boolean; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** @default 0 */ + offset?: number; + /** @enum {string} */ + sort?: '+follower' | '-follower' | '+createdAt' | '-createdAt' | '+updatedAt' | '-updatedAt'; + /** + * @default all + * @enum {string} + */ + state?: 'all' | 'alive'; + /** + * @default local + * @enum {string} + */ + origin?: 'combined' | 'local' | 'remote'; + /** + * @description The local host is represented with `null`. + * @default null + */ + hostname?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserDetailed'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___achievements: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Achievement'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___clips: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Clip'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'users___featured-notes': { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + untilId?: string; + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___flashs: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Flash'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___followers: { + requestBody: { + content: { + 'application/json': ({ + /** Format: misskey:id */ + userId: string; + } | { + username: string; + /** @description The local host is represented with `null`. */ + host: string | null; + }) & { + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 10 */ + limit?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Following'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___following: { + requestBody: { + content: { + 'application/json': ({ + /** Format: misskey:id */ + userId: string; + } | { + username: string; + /** @description The local host is represented with `null`. */ + host: string | null; + }) & { + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 10 */ + limit?: number; + birthday?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Following'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___gallery___posts: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['GalleryPost'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'users___get-frequently-replied-users': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + /** @default 10 */ + limit?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + user: components['schemas']['UserDetailed']; + weight: number; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___lists___create: { + requestBody: { + content: { + 'application/json': { + name: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserList']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'users___lists___create-from-public': { + requestBody: { + content: { + 'application/json': { + name: string; + /** Format: misskey:id */ + listId: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserList']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___lists___delete: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + listId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___lists___favorite: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + listId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'users___lists___get-memberships': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + listId: string; + /** @default false */ + forPublic?: boolean; + /** @default 30 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: misskey:id */ + id: string; + /** Format: date-time */ + createdAt: string; + /** Format: misskey:id */ + userId: string; + user: components['schemas']['UserLite']; + withReplies: boolean; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___lists___list: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserList'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___lists___pull: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + listId: string; + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___lists___push: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + listId: string; + /** Format: misskey:id */ + userId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Too many requests */ + 429: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___lists___show: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + listId: string; + /** @default false */ + forPublic?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserList']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___lists___unfavorite: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + listId: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___lists___update: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + listId: string; + name?: string; + isPublic?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserList']; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'users___lists___update-membership': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + listId: string; + /** Format: misskey:id */ + userId: string; + withReplies?: boolean; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___notes: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + /** @default false */ + withReplies?: boolean; + /** @default true */ + withRenotes?: boolean; + /** @default false */ + withChannelNotes?: boolean; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + sinceDate?: number; + untilDate?: number; + /** @default false */ + allowPartial?: boolean; + /** @default false */ + withFiles?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Note'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___pages: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Page'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___reactions: { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + /** @default 10 */ + limit?: number; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + sinceDate?: number; + untilDate?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['NoteReaction'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___recommendation: { + requestBody: { + content: { + 'application/json': { + /** @default 10 */ + limit?: number; + /** @default 0 */ + offset?: number; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserDetailed'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___relation: { + requestBody: { + content: { + 'application/json': { + userId: string | string[]; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + /** Format: id */ + id: string; + isFollowing: boolean; + hasPendingFollowRequestFromYou: boolean; + hasPendingFollowRequestToYou: boolean; + isFollowed: boolean; + isBlocking: boolean; + isBlocked: boolean; + isMuted: boolean; + isRenoteMuted: boolean; + } | { + /** Format: id */ + id: string; + isFollowing: boolean; + hasPendingFollowRequestFromYou: boolean; + hasPendingFollowRequestToYou: boolean; + isFollowed: boolean; + isBlocking: boolean; + isBlocked: boolean; + isMuted: boolean; + isRenoteMuted: boolean; + }[]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'users___report-abuse': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + comment: string; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___search: { + requestBody: { + content: { + 'application/json': { + query: string; + /** @default 0 */ + offset?: number; + /** @default 10 */ + limit?: number; + /** + * @default combined + * @enum {string} + */ + origin?: 'local' | 'remote' | 'combined'; + /** @default true */ + detail?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['User'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'users___search-by-username-and-host': { + requestBody: { + content: { + 'application/json': ({ + username: string | null; + } | { + host: string | null; + }) & { + /** @default 10 */ + limit?: number; + /** @default true */ + detail?: boolean; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['User'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + users___show: { + requestBody: { + content: { + 'application/json': ({ + /** Format: misskey:id */ + userId: string; + } | { + userIds: string[]; + } | { + username: string; + }) & { + /** @description The local host is represented with `null`. */ + host?: string | null; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['UserDetailed'] | components['schemas']['UserDetailed'][]; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + 'users___update-memo': { + requestBody: { + content: { + 'application/json': { + /** Format: misskey:id */ + userId: string; + /** @description A personal memo for the target user. If null or empty, delete the memo. */ + memo: string | null; + }; + }; + }; + responses: { + /** @description OK (without any results) */ + 204: { + headers: { + [name: string]: unknown; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; + v2___admin___emoji___list: { + requestBody: { + content: { + 'application/json': { + query?: { + updatedAtFrom?: string; + updatedAtTo?: string; + name?: string; + host?: string; + uri?: string; + publicUrl?: string; + originalUrl?: string; + type?: string; + aliases?: string; + category?: string; + license?: string; + isSensitive?: boolean; + localOnly?: boolean; + /** + * @default all + * @enum {string} + */ + hostType?: 'local' | 'remote' | 'all'; + roleIds?: string[]; + } | null; + /** Format: misskey:id */ + sinceId?: string; + /** Format: misskey:id */ + untilId?: string; + /** @default 10 */ + limit?: number; + page?: number; + /** @default [ + * "-id" + * ] */ + sortKeys?: ('+id' | '-id' | '+updatedAt' | '-updatedAt' | '+name' | '-name' | '+host' | '-host' | '+uri' | '-uri' | '+publicUrl' | '-publicUrl' | '+type' | '-type' | '+aliases' | '-aliases' | '+category' | '-category' | '+license' | '-license' | '+isSensitive' | '-isSensitive' | '+localOnly' | '-localOnly' | '+roleIdsThatCanBeUsedThisEmojiAsReaction' | '-roleIdsThatCanBeUsedThisEmojiAsReaction')[]; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + emojis: components['schemas']['EmojiDetailedAdmin'][]; + count: number; + allCount: number; + allPages: number; + }; + }; + }; + /** @description Client error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Authentication error */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Forbidden error */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description I'm Ai */ + 418: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Error']; + }; + }; + }; + }; +} diff --git a/packages/misskey-js/src/entities.ts b/packages/misskey-js/src/entities.ts index ed1d89a685..9bc9aa6668 100644 --- a/packages/misskey-js/src/entities.ts +++ b/packages/misskey-js/src/entities.ts @@ -24,10 +24,14 @@ type NonNullableRecord = { type AllNullRecord = { [P in keyof T]: null; }; +type AllNullOrOptionalRecord = { + [P in keyof T]: never; +}; export type PureRenote = Omit - & AllNullRecord> + & AllNullRecord> + & AllNullOrOptionalRecord> & { files: []; fileIds: []; } & NonNullableRecord>; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7159527588..ceb05d01e3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1434,8 +1434,8 @@ importers: specifier: 12.1.3 version: 12.1.3 openapi-typescript: - specifier: 6.7.6 - version: 6.7.6 + specifier: 7.8.0 + version: 7.8.0(typescript@5.8.3) ts-case-convert: specifier: 2.1.0 version: 2.1.0 @@ -1705,6 +1705,10 @@ packages: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.24.7': resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} engines: {node: '>=6.9.0'} @@ -3407,6 +3411,16 @@ packages: resolution: {integrity: sha512-9FC/6ho8uFa8fV50+FPy/ngWN53jaUu4GRXlAjcxIRrzhltJnpKkBG2Tp0IDraFJeWrOpk84RJ9EMEEYzaI1Bw==} engines: {node: '>=18'} + '@redocly/ajv@8.11.2': + resolution: {integrity: sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==} + + '@redocly/config@0.22.2': + resolution: {integrity: sha512-roRDai8/zr2S9YfmzUfNhKjOF0NdcOIqF7bhf4MVC5UxpjIysDjyudvlAiVbpPHp3eDRWbdzUgtkK1a7YiDNyQ==} + + '@redocly/openapi-core@1.34.3': + resolution: {integrity: sha512-3arRdUp1fNx55itnjKiUhO6t4Mf91TsrTIYINDNLAZPS0TPd5YpiXRctwjel0qqWoOOhjA34cZ3m4dksLDFUYg==} + engines: {node: '>=18.17.0', npm: '>=9.5.0'} + '@rollup/plugin-json@6.1.0': resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} engines: {node: '>=14.0.0'} @@ -4920,18 +4934,12 @@ packages: '@vue/compiler-core@3.5.13': resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} - '@vue/compiler-core@3.5.14': - resolution: {integrity: sha512-k7qMHMbKvoCXIxPhquKQVw3Twid3Kg4s7+oYURxLGRd56LiuHJVrvFKI4fm2AM3c8apqODPfVJGoh8nePbXMRA==} - '@vue/compiler-core@3.5.16': resolution: {integrity: sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==} '@vue/compiler-dom@3.5.13': resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} - '@vue/compiler-dom@3.5.14': - resolution: {integrity: sha512-1aOCSqxGOea5I80U2hQJvXYpPm/aXo95xL/m/mMhgyPUsKe9jhjwWpziNAw7tYRnbz1I61rd9Mld4W9KmmRoug==} - '@vue/compiler-dom@3.5.16': resolution: {integrity: sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==} @@ -4977,9 +4985,6 @@ packages: '@vue/shared@3.5.13': resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} - '@vue/shared@3.5.14': - resolution: {integrity: sha512-oXTwNxVfc9EtP1zzXAlSlgARLXNC84frFYkS0HHz0h3E4WZSP9sywqjqzGCP9Y34M8ipNmd380pVgmMuwELDyQ==} - '@vue/shared@3.5.16': resolution: {integrity: sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==} @@ -5594,6 +5599,9 @@ packages: resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + change-case@5.4.4: + resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} @@ -5765,6 +5773,9 @@ packages: colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + colorette@1.4.0: + resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + colorette@2.0.19: resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} @@ -7232,6 +7243,10 @@ packages: resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} engines: {node: '>=12'} + index-to-position@1.1.0: + resolution: {integrity: sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg==} + engines: {node: '>=18'} + inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -7667,6 +7682,10 @@ packages: engines: {node: '>=12'} hasBin: true + js-levenshtein@1.1.6: + resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} + engines: {node: '>=0.10.0'} + js-stringify@1.0.2: resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==} @@ -8621,9 +8640,11 @@ packages: openapi-types@12.1.3: resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} - openapi-typescript@6.7.6: - resolution: {integrity: sha512-c/hfooPx+RBIOPM09GSxABOZhYPblDoyaGhqBkD/59vtpN21jEuWKDlM0KYTvqJVlSYjKs0tBcIdeXKChlSPtw==} + openapi-typescript@7.8.0: + resolution: {integrity: sha512-1EeVWmDzi16A+siQlo/SwSGIT7HwaFAVjvMA7/jG5HMLSnrUOzPL7uSTRZZa4v/LCRxHTApHKtNY6glApEoiUQ==} hasBin: true + peerDependencies: + typescript: ^5.x optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} @@ -8700,6 +8721,10 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} + parse-json@8.3.0: + resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} + engines: {node: '>=18'} + parse-ms@4.0.0: resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} engines: {node: '>=18'} @@ -8894,6 +8919,10 @@ packages: resolution: {integrity: sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==} engines: {node: '>=10'} + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + pngjs@5.0.0: resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} engines: {node: '>=10.13.0'} @@ -10128,6 +10157,10 @@ packages: resolution: {integrity: sha512-aI59HBTlG9e2wTjxGJV+DygfNLgnWbGdZxiA/sgrnNNikIW8lbDvCtF6RnhZoJ82nU7qv7ZLjrvWqCEm52fAmw==} engines: {node: '>=14.18.0'} + supports-color@10.0.0: + resolution: {integrity: sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==} + engines: {node: '>=18'} + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -10140,10 +10173,6 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} - supports-color@9.4.0: - resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} - engines: {node: '>=12'} - supports-hyperlinks@2.3.0: resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} engines: {node: '>=8'} @@ -10414,6 +10443,10 @@ packages: resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} engines: {node: '>=16'} + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -10603,6 +10636,9 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + uri-js-replace@1.0.1: + resolution: {integrity: sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -11029,6 +11065,9 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} + yaml-ast-parser@0.0.43: + resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} + yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} @@ -11609,6 +11648,12 @@ snapshots: '@babel/highlight': 7.24.7 picocolors: 1.1.1 + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.24.7': {} '@babel/core@7.24.7': @@ -11619,12 +11664,12 @@ snapshots: '@babel/helper-compilation-targets': 7.24.7 '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) '@babel/helpers': 7.24.7 - '@babel/parser': 7.27.2 + '@babel/parser': 7.25.6 '@babel/template': 7.24.7 '@babel/traverse': 7.24.7 - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 convert-source-map: 2.0.0 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -11633,7 +11678,7 @@ snapshots: '@babel/generator@7.24.7': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 @@ -11648,21 +11693,21 @@ snapshots: '@babel/helper-environment-visitor@7.24.7': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 '@babel/helper-function-name@7.24.7': dependencies: '@babel/template': 7.24.7 - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 '@babel/helper-hoist-variables@7.24.7': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 '@babel/helper-module-imports@7.24.7': dependencies: '@babel/traverse': 7.24.7 - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color @@ -11673,7 +11718,7 @@ snapshots: '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.24.7 transitivePeerDependencies: - supports-color @@ -11682,13 +11727,13 @@ snapshots: '@babel/helper-simple-access@7.24.7': dependencies: '@babel/traverse': 7.24.7 - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color '@babel/helper-split-export-declaration@7.24.7': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 '@babel/helper-string-parser@7.24.8': {} @@ -11703,7 +11748,7 @@ snapshots: '@babel/helpers@7.24.7': dependencies: '@babel/template': 7.24.7 - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 '@babel/highlight@7.24.7': dependencies: @@ -11797,8 +11842,8 @@ snapshots: '@babel/template@7.24.7': dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.27.2 - '@babel/types': 7.27.1 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 '@babel/traverse@7.24.7': dependencies: @@ -11808,9 +11853,9 @@ snapshots: '@babel/helper-function-name': 7.24.7 '@babel/helper-hoist-variables': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.27.2 - '@babel/types': 7.27.1 - debug: 4.4.1(supports-color@5.5.0) + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 + debug: 4.4.1(supports-color@10.0.0) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -12148,7 +12193,7 @@ snapshots: '@eslint/config-array@0.20.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -12162,7 +12207,7 @@ snapshots: '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) espree: 10.3.0 globals: 14.0.0 ignore: 5.3.1 @@ -12963,7 +13008,7 @@ snapshots: dependencies: agent-base: 7.1.3 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 + https-proxy-agent: 7.0.6(supports-color@10.0.0) lru-cache: 10.4.3 socks-proxy-agent: 8.0.5 transitivePeerDependencies: @@ -13426,6 +13471,29 @@ snapshots: '@readme/openapi-schemas@3.1.0': {} + '@redocly/ajv@8.11.2': + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js-replace: 1.0.1 + + '@redocly/config@0.22.2': {} + + '@redocly/openapi-core@1.34.3(supports-color@10.0.0)': + dependencies: + '@redocly/ajv': 8.11.2 + '@redocly/config': 0.22.2 + colorette: 1.4.0 + https-proxy-agent: 7.0.6(supports-color@10.0.0) + js-levenshtein: 1.1.6 + js-yaml: 4.1.0 + minimatch: 5.1.6 + pluralize: 8.0.0 + yaml-ast-parser: 0.0.43 + transitivePeerDependencies: + - supports-color + '@rollup/plugin-json@6.1.0(rollup@4.41.1)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.41.1) @@ -14658,7 +14726,7 @@ snapshots: '@tokenizer/inflate@0.2.7': dependencies: - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) fflate: 0.8.2 token-types: 6.0.0 transitivePeerDependencies: @@ -14690,24 +14758,24 @@ snapshots: '@types/babel__core@7.20.0': dependencies: - '@babel/parser': 7.27.2 - '@babel/types': 7.27.1 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.20.0 '@types/babel__generator@7.6.4': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 '@types/babel__template@7.4.1': dependencies: - '@babel/parser': 7.27.2 - '@babel/types': 7.27.1 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 '@types/babel__traverse@7.20.0': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 '@types/bcryptjs@2.4.6': {} @@ -15065,7 +15133,7 @@ snapshots: '@typescript-eslint/types': 8.32.1 '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.32.1 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) eslint: 9.27.0 typescript: 5.8.3 transitivePeerDependencies: @@ -15077,7 +15145,7 @@ snapshots: '@typescript-eslint/types': 8.33.0 '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.33.0 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) eslint: 9.27.0 typescript: 5.8.3 transitivePeerDependencies: @@ -15087,7 +15155,7 @@ snapshots: dependencies: '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) '@typescript-eslint/types': 8.33.0 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) transitivePeerDependencies: - supports-color - typescript @@ -15110,7 +15178,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) eslint: 9.27.0 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 @@ -15121,7 +15189,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) '@typescript-eslint/utils': 8.33.0(eslint@9.27.0)(typescript@5.8.3) - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) eslint: 9.27.0 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 @@ -15136,7 +15204,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.32.1 '@typescript-eslint/visitor-keys': 8.32.1 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 @@ -15152,7 +15220,7 @@ snapshots: '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) '@typescript-eslint/types': 8.33.0 '@typescript-eslint/visitor-keys': 8.33.0 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 @@ -15205,7 +15273,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 @@ -15325,14 +15393,6 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-core@3.5.14': - dependencies: - '@babel/parser': 7.27.2 - '@vue/shared': 3.5.14 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - '@vue/compiler-core@3.5.16': dependencies: '@babel/parser': 7.27.2 @@ -15346,11 +15406,6 @@ snapshots: '@vue/compiler-core': 3.5.13 '@vue/shared': 3.5.13 - '@vue/compiler-dom@3.5.14': - dependencies: - '@vue/compiler-core': 3.5.14 - '@vue/shared': 3.5.14 - '@vue/compiler-dom@3.5.16': dependencies: '@vue/compiler-core': 3.5.16 @@ -15381,8 +15436,8 @@ snapshots: '@vue/language-core@2.0.16(typescript@5.8.3)': dependencies: '@volar/language-core': 2.2.0 - '@vue/compiler-dom': 3.5.14 - '@vue/shared': 3.5.14 + '@vue/compiler-dom': 3.5.13 + '@vue/shared': 3.5.13 computeds: 0.0.1 minimatch: 9.0.5 path-browserify: 1.0.1 @@ -15395,7 +15450,7 @@ snapshots: '@volar/language-core': 2.4.11 '@vue/compiler-dom': 3.5.13 '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.14 + '@vue/shared': 3.5.13 alien-signals: 1.0.3 minimatch: 9.0.5 muggle-string: 0.4.1 @@ -15427,8 +15482,6 @@ snapshots: '@vue/shared@3.5.13': {} - '@vue/shared@3.5.14': {} - '@vue/shared@3.5.16': {} '@vue/test-utils@2.4.1(@vue/server-renderer@3.5.16(vue@3.5.16(typescript@5.8.3)))(vue@3.5.16(typescript@5.8.3))': @@ -15546,7 +15599,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) transitivePeerDependencies: - supports-color optional: true @@ -15872,7 +15925,7 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: '@babel/template': 7.24.7 - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 '@types/babel__core': 7.20.0 '@types/babel__traverse': 7.20.0 @@ -15900,7 +15953,7 @@ snapshots: babel-walk@3.0.0-canary-5: dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 bail@2.0.2: {} @@ -16176,6 +16229,8 @@ snapshots: chalk@5.4.1: {} + change-case@5.4.4: {} + char-regex@1.0.2: {} character-entities-html4@2.1.0: {} @@ -16341,6 +16396,8 @@ snapshots: colord@2.9.3: {} + colorette@1.4.0: {} + colorette@2.0.19: {} colors@1.4.0: @@ -16403,7 +16460,7 @@ snapshots: constantinople@4.0.1: dependencies: - '@babel/parser': 7.27.2 + '@babel/parser': 7.25.6 '@babel/types': 7.25.6 content-disposition@0.5.4: @@ -16668,6 +16725,12 @@ snapshots: optionalDependencies: supports-color: 8.1.1 + debug@4.4.1(supports-color@10.0.0): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 10.0.0 + debug@4.4.1(supports-color@5.5.0): dependencies: ms: 2.1.3 @@ -17037,7 +17100,7 @@ snapshots: esbuild-register@3.5.0(esbuild@0.25.5): dependencies: - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) esbuild: 0.25.5 transitivePeerDependencies: - supports-color @@ -17251,7 +17314,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) escape-string-regexp: 4.0.0 eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 @@ -17679,7 +17742,7 @@ snapshots: follow-redirects@1.15.9(debug@4.4.1): optionalDependencies: - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) for-each@0.3.3: dependencies: @@ -18077,7 +18140,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.3 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) transitivePeerDependencies: - supports-color @@ -18105,15 +18168,15 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) transitivePeerDependencies: - supports-color optional: true - https-proxy-agent@7.0.6: + https-proxy-agent@7.0.6(supports-color@10.0.0): dependencies: agent-base: 7.1.3 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) transitivePeerDependencies: - supports-color @@ -18178,6 +18241,8 @@ snapshots: indent-string@5.0.0: {} + index-to-position@1.1.0: {} + inflight@1.0.6: dependencies: once: 1.4.0 @@ -18209,7 +18274,7 @@ snapshots: dependencies: '@ioredis/commands': 1.2.0 cluster-key-slot: 1.1.2 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -18419,7 +18484,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -18428,7 +18493,7 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -18819,6 +18884,8 @@ snapshots: glob: 8.1.0 nopt: 6.0.0 + js-levenshtein@1.1.6: {} + js-stringify@1.0.2: {} js-tokens@4.0.0: {} @@ -18847,7 +18914,7 @@ snapshots: decimal.js: 10.5.0 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 + https-proxy-agent: 7.0.6(supports-color@10.0.0) is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.16 parse5: 7.3.0 @@ -19474,7 +19541,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -19667,7 +19734,7 @@ snapshots: path-to-regexp: 6.3.0 picocolors: 1.1.1 strict-event-emitter: 0.5.1 - type-fest: 4.26.1 + type-fest: 4.41.0 yargs: 17.7.2 optionalDependencies: typescript: 5.8.3 @@ -19974,13 +20041,14 @@ snapshots: openapi-types@12.1.3: {} - openapi-typescript@6.7.6: + openapi-typescript@7.8.0(typescript@5.8.3): dependencies: + '@redocly/openapi-core': 1.34.3(supports-color@10.0.0) ansi-colors: 4.1.3 - fast-glob: 3.3.3 - js-yaml: 4.1.0 - supports-color: 9.4.0 - undici: 5.28.5 + change-case: 5.4.4 + parse-json: 8.3.0 + supports-color: 10.0.0 + typescript: 5.8.3 yargs-parser: 21.1.1 optionator@0.9.4: @@ -20054,6 +20122,12 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + parse-json@8.3.0: + dependencies: + '@babel/code-frame': 7.27.1 + index-to-position: 1.1.0 + type-fest: 4.41.0 + parse-ms@4.0.0: {} parse-srcset@1.0.2: {} @@ -20229,6 +20303,8 @@ snapshots: dependencies: irregular-plurals: 3.5.0 + pluralize@8.0.0: {} + pngjs@5.0.0: {} pnpm@10.11.0: {} @@ -20863,7 +20939,7 @@ snapshots: require-in-the-middle@7.3.0: dependencies: - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) module-details-from-path: 1.0.3 resolve: 1.22.8 transitivePeerDependencies: @@ -21220,7 +21296,7 @@ snapshots: dependencies: '@hapi/hoek': 11.0.4 '@hapi/wreck': 18.0.1 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) joi: 17.13.3 transitivePeerDependencies: - supports-color @@ -21320,7 +21396,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.3 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) socks: 2.8.4 transitivePeerDependencies: - supports-color @@ -21417,7 +21493,7 @@ snapshots: arg: 5.0.2 bluebird: 3.7.2 check-more-types: 2.24.0 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) execa: 5.1.1 lazy-ass: 1.6.0 ps-tree: 1.2.0 @@ -21595,7 +21671,7 @@ snapshots: dependencies: component-emitter: 1.3.1 cookiejar: 2.1.4 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) fast-safe-stringify: 2.1.1 form-data: 4.0.2 formidable: 3.5.4 @@ -21612,6 +21688,8 @@ snapshots: transitivePeerDependencies: - supports-color + supports-color@10.0.0: {} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -21624,8 +21702,6 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-color@9.4.0: {} - supports-hyperlinks@2.3.0: dependencies: has-flag: 4.0.0 @@ -21894,6 +21970,8 @@ snapshots: type-fest@4.26.1: {} + type-fest@4.41.0: {} + type-is@1.6.18: dependencies: media-typer: 0.3.0 @@ -21940,7 +22018,7 @@ snapshots: app-root-path: 3.1.0 buffer: 6.0.3 dayjs: 1.11.13 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) dedent: 1.6.0 dotenv: 16.4.7 glob: 10.4.5 @@ -22061,6 +22139,8 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + uri-js-replace@1.0.1: {} + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -22136,7 +22216,7 @@ snapshots: vite-node@3.1.4(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4): dependencies: cac: 6.7.14 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) es-module-lexer: 1.7.0 pathe: 2.0.3 vite: 6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4) @@ -22185,7 +22265,7 @@ snapshots: '@vitest/spy': 3.1.4 '@vitest/utils': 3.1.4 chai: 5.2.0 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) expect-type: 1.2.1 magic-string: 0.30.17 pathe: 2.0.3 @@ -22257,7 +22337,7 @@ snapshots: vue-docgen-api@4.75.1(vue@3.5.16(typescript@5.8.3)): dependencies: - '@babel/parser': 7.27.2 + '@babel/parser': 7.25.6 '@babel/types': 7.25.6 '@vue/compiler-dom': 3.5.13 '@vue/compiler-sfc': 3.5.16 @@ -22272,7 +22352,7 @@ snapshots: vue-eslint-parser@10.1.3(eslint@9.27.0): dependencies: - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1(supports-color@10.0.0) eslint: 9.27.0 eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 @@ -22341,7 +22421,7 @@ snapshots: dependencies: asn1.js: 5.4.1 http_ece: 1.2.0 - https-proxy-agent: 7.0.6 + https-proxy-agent: 7.0.6(supports-color@10.0.0) jws: 4.0.0 minimist: 1.2.8 transitivePeerDependencies: @@ -22435,7 +22515,7 @@ snapshots: with@7.0.2: dependencies: - '@babel/parser': 7.27.2 + '@babel/parser': 7.25.6 '@babel/types': 7.25.6 assert-never: 1.2.1 babel-walk: 3.0.0-canary-5 @@ -22503,6 +22583,8 @@ snapshots: yallist@5.0.0: {} + yaml-ast-parser@0.0.43: {} + yargs-parser@18.1.3: dependencies: camelcase: 5.3.1 From ac9206f19258fe2000f334eda3cfcf2dd2d21c58 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 7 Jun 2025 10:52:03 +0000 Subject: [PATCH 45/76] Bump version to 2025.6.1-alpha.4 --- package.json | 2 +- packages/misskey-js/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index db15da253b..e3117b22c6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2025.6.1-alpha.3", + "version": "2025.6.1-alpha.4", "codename": "nasubi", "repository": { "type": "git", diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json index 69ba672e0d..b15ce75e98 100644 --- a/packages/misskey-js/package.json +++ b/packages/misskey-js/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "misskey-js", - "version": "2025.6.1-alpha.3", + "version": "2025.6.1-alpha.4", "description": "Misskey SDK for JavaScript", "license": "MIT", "main": "./built/index.js", From b5767c315a31363edac4fe39aa5202f94942f7e9 Mon Sep 17 00:00:00 2001 From: zyoshoka <107108195+zyoshoka@users.noreply.github.com> Date: Sun, 8 Jun 2025 09:12:59 +0900 Subject: [PATCH 46/76] fix(backend): correct outbox pagination (#16176) --- CHANGELOG.md | 1 + .../src/server/ActivityPubServerService.ts | 27 ++++++++++++++----- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 412d6e2f51..446f74007f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ ### Server - Feat: 全てのチャットメッセージを既読にするAPIを追加(chat/read-all) - Fix: アカウント削除が正常に行われないことがあった問題を修正 +- Fix: outboxのページネーションが正しく行われない問題を修正 ## 2025.6.0 diff --git a/packages/backend/src/server/ActivityPubServerService.ts b/packages/backend/src/server/ActivityPubServerService.ts index f7b22c44c4..a5fb5b82e3 100644 --- a/packages/backend/src/server/ActivityPubServerService.ts +++ b/packages/backend/src/server/ActivityPubServerService.ts @@ -482,9 +482,19 @@ export class ActivityPubServerService { return true; }, dbFallback: async (untilId, sinceId, limit) => { - return await this.getUserNotesFromDb(sinceId, untilId, limit, user.id); + return await this.getUserNotesFromDb({ + untilId, + sinceId, + limit, + userId: user.id, + }); }, - }) : await this.getUserNotesFromDb(sinceId ?? null, untilId ?? null, limit, user.id); + }) : await this.getUserNotesFromDb({ + untilId: untilId ?? null, + sinceId: sinceId ?? null, + limit, + userId: user.id, + }); if (sinceId) notes.reverse(); @@ -523,16 +533,21 @@ export class ActivityPubServerService { } @bindThis - private async getUserNotesFromDb(untilId: string | null, sinceId: string | null, limit: number, userId: MiUser['id']) { - return await this.queryService.makePaginationQuery(this.notesRepository.createQueryBuilder('note'), sinceId, untilId) - .andWhere('note.userId = :userId', { userId }) + private async getUserNotesFromDb(ps: { + untilId: string | null, + sinceId: string | null, + limit: number, + userId: MiUser['id'], + }) { + return await this.queryService.makePaginationQuery(this.notesRepository.createQueryBuilder('note'), ps.sinceId, ps.untilId) + .andWhere('note.userId = :userId', { userId: ps.userId }) .andWhere(new Brackets(qb => { qb .where('note.visibility = \'public\'') .orWhere('note.visibility = \'home\''); })) .andWhere('note.localOnly = FALSE') - .limit(limit) + .limit(ps.limit) .getMany(); } From 9a3219f12ef95f4b99fba9d734f8330f5b32a7a1 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Tue, 10 Jun 2025 09:51:45 +0900 Subject: [PATCH 47/76] =?UTF-8?q?fix(frontend):=20Plugin:register=5Fnote?= =?UTF-8?q?=5Fview=5Finterruptor()=E3=81=AB=E3=82=88=E3=82=8B=E3=83=8E?= =?UTF-8?q?=E3=83=BC=E3=83=88=E3=81=AE=E6=9B=B8=E3=81=8D=E6=8F=9B=E3=81=88?= =?UTF-8?q?=E3=81=8C=E6=A9=9F=E8=83=BD=E3=81=97=E3=81=AA=E3=81=84=E5=95=8F?= =?UTF-8?q?=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix #16180 --- CHANGELOG.md | 1 + packages/frontend/src/components/MkNote.vue | 18 ++++++++---------- .../frontend/src/components/MkNoteDetailed.vue | 18 ++++++++---------- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 446f74007f..dd2534adeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 - Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 - Fix: タッチ操作時にチャートのツールチップが消えなくなる場合がある問題を修正 +- Fix: Plugin:register_note_view_interruptor()によるノートの書き換えが機能しない問題を修正 ### Server - Feat: 全てのチャットメッセージを既読にするAPIを追加(chat/read-all) diff --git a/packages/frontend/src/components/MkNote.vue b/packages/frontend/src/components/MkNote.vue index 4a78d00665..040c2acdc2 100644 --- a/packages/frontend/src/components/MkNote.vue +++ b/packages/frontend/src/components/MkNote.vue @@ -268,17 +268,15 @@ let note = deepClone(props.note); // plugin const noteViewInterruptors = getPluginHandlers('note_view_interruptor'); if (noteViewInterruptors.length > 0) { - onMounted(async () => { - let result: Misskey.entities.Note | null = deepClone(note); - for (const interruptor of noteViewInterruptors) { - try { - result = await interruptor.handler(result!) as Misskey.entities.Note | null; - } catch (err) { - console.error(err); - } + let result: Misskey.entities.Note | null = deepClone(note); + for (const interruptor of noteViewInterruptors) { + try { + result = await interruptor.handler(result!) as Misskey.entities.Note | null; + } catch (err) { + console.error(err); } - note = result as Misskey.entities.Note; - }); + } + note = result as Misskey.entities.Note; } const isRenote = Misskey.note.isPureRenote(note); diff --git a/packages/frontend/src/components/MkNoteDetailed.vue b/packages/frontend/src/components/MkNoteDetailed.vue index e090901875..7a2090d171 100644 --- a/packages/frontend/src/components/MkNoteDetailed.vue +++ b/packages/frontend/src/components/MkNoteDetailed.vue @@ -289,17 +289,15 @@ let note = deepClone(props.note); // plugin const noteViewInterruptors = getPluginHandlers('note_view_interruptor'); if (noteViewInterruptors.length > 0) { - onMounted(async () => { - let result: Misskey.entities.Note | null = deepClone(note); - for (const interruptor of noteViewInterruptors) { - try { - result = await interruptor.handler(result!) as Misskey.entities.Note | null; - } catch (err) { - console.error(err); - } + let result: Misskey.entities.Note | null = deepClone(note); + for (const interruptor of noteViewInterruptors) { + try { + result = await interruptor.handler(result!) as Misskey.entities.Note | null; + } catch (err) { + console.error(err); } - note = result as Misskey.entities.Note; - }); + } + note = result as Misskey.entities.Note; } const isRenote = Misskey.note.isPureRenote(note); From 8ab574a31acf682b1e8f49fd5d818ffaf0917c48 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Tue, 10 Jun 2025 13:42:09 +0900 Subject: [PATCH 48/76] New Crowdin updates (#16163) * New translations ja-jp.yml (Chinese Simplified) * New translations ja-jp.yml (Korean) * New translations ja-jp.yml (Korean) * New translations ja-jp.yml (Catalan) * New translations ja-jp.yml (Spanish) * New translations ja-jp.yml (Spanish) * New translations ja-jp.yml (English) * New translations ja-jp.yml (Chinese Traditional) * New translations ja-jp.yml (Spanish) * New translations ja-jp.yml (English) * New translations ja-jp.yml (Italian) * New translations ja-jp.yml (Chinese Simplified) * New translations ja-jp.yml (Spanish) * New translations ja-jp.yml (Catalan) * New translations ja-jp.yml (Chinese Simplified) * New translations ja-jp.yml (English) * New translations ja-jp.yml (Chinese Traditional) * New translations ja-jp.yml (Korean) * New translations ja-jp.yml (Chinese Traditional) * New translations ja-jp.yml (Chinese Simplified) * New translations ja-jp.yml (Spanish) * New translations ja-jp.yml (Korean) * New translations ja-jp.yml (Catalan) * New translations ja-jp.yml (German) * New translations ja-jp.yml (German) * New translations ja-jp.yml (German) --- locales/ca-ES.yml | 6 +- locales/de-DE.yml | 122 +++++++++++++++++++++++++ locales/en-US.yml | 42 ++++++++- locales/es-ES.yml | 226 ++++++++++++++++++++++++++++++++++++++++++++++ locales/it-IT.yml | 44 +++++++++ locales/ko-KR.yml | 6 +- locales/zh-CN.yml | 6 +- locales/zh-TW.yml | 4 + 8 files changed, 452 insertions(+), 4 deletions(-) diff --git a/locales/ca-ES.yml b/locales/ca-ES.yml index 1b2f94ff6d..41e3a0684f 100644 --- a/locales/ca-ES.yml +++ b/locales/ca-ES.yml @@ -2465,6 +2465,8 @@ _visibility: disableFederation: "Sense federar" disableFederationDescription: "No enviar a altres servidors" _postForm: + quitInspiteOfThereAreUnuploadedFilesConfirm: "Hi ha arxius que no s'han carregat, vols descartar-los i tancar el formulari?" + uploaderTip: "L'arxiu encara no s'ha carregat. Des del menú arxiu pots canviar el nom, retallar imatges, posar marques d'aigua i comprimir o no l'arxiu. Els arxius es carreguen automàticament quan públiques una nota." replyPlaceholder: "Contestar..." quotePlaceholder: "Citar..." channelPlaceholder: "Publicar a un canal..." @@ -3125,7 +3127,8 @@ defaultPreset: "Per defecte" _watermarkEditor: tip: "A la imatge es pot afegir una marca d'aigua com informació sobre drets." quitWithoutSaveConfirm: "Sortir sense desar?" - driveFileTypeWarn: "Fitxer no suportat " + driveFileTypeWarn: "Aquest arxiu no és compatible" + driveFileTypeWarnDescription: "Selecciona un arxiu d'imatge " title: "Editar la marca d'aigua " cover: "Cobrir-ho tot" repeat: "Repetir" @@ -3157,6 +3160,7 @@ _imageEffector: mirror: "Mirall" invert: "Inversió cromàtica " grayscale: "Monocrom " + colorAdjust: "Correcció de color" colorClamp: "Compressió cromàtica " colorClampAdvanced: "Compressió de cromàtica avançada " distort: "Distorsió " diff --git a/locales/de-DE.yml b/locales/de-DE.yml index 994fee4195..189085e805 100644 --- a/locales/de-DE.yml +++ b/locales/de-DE.yml @@ -298,6 +298,7 @@ uploadFromUrl: "Von einer URL hochladen" uploadFromUrlDescription: "URL der hochzuladenden Datei" uploadFromUrlRequested: "Upload angefordert" uploadFromUrlMayTakeTime: "Es kann eine Weile dauern, bis das Hochladen abgeschlossen ist." +uploadNFiles: "Lade {n} Dateien hoch" explore: "Erkunden" messageRead: "Gelesen" noMoreHistory: "Kein weiterer Verlauf vorhanden" @@ -326,6 +327,7 @@ dark: "Dunkel" lightThemes: "Helle Farbschemata" darkThemes: "Dunkle Farbschemata" syncDeviceDarkMode: "Einstellung deines Geräts übernehmen" +switchDarkModeManuallyWhenSyncEnabledConfirm: "\"{x}\" ist eingeschaltet. Möchtest du die Synchronisation ausschalten und den Modus manuell wechseln?" drive: "Drive" fileName: "Dateiname" selectFile: "Datei auswählen" @@ -575,8 +577,10 @@ showFixedPostForm: "Bereich zum Schreiben neuer Notizen am Anfang der Chronik an showFixedPostFormInChannel: "Bereich zum Schreiben neuer Notizen am Anfang der Chronik anzeigen (Kanäle)" withRepliesByDefaultForNewlyFollowed: "Standardmäßig Antworten von neu gefolgten Benutzern in der Chronik anzeigen" newNoteRecived: "Es gibt neue Notizen" +newNote: "Neue Notiz" sounds: "Töne" sound: "Töne" +notificationSoundSettings: "Benachrichtigungston festlegen" listen: "Anhören" none: "Nichts" showInPage: "In einer Seite anzeigen" @@ -791,6 +795,7 @@ wide: "Breit" narrow: "Schmal" reloadToApplySetting: "Diese Einstellung tritt nach einer Aktualisierung der Seite in Kraft. Jetzt aktualisieren?" needReloadToApply: "Diese Einstellung tritt nach einer Aktualisierung der Seite in Kraft." +needToRestartServerToApply: "Diese Einstellung tritt nach einem Neustart des Servers in Kraft." showTitlebar: "Titelleiste anzeigen" clearCache: "Cache leeren" onlineUsersCount: "{n} Benutzer sind online" @@ -997,6 +1002,7 @@ failedToUpload: "Hochladen fehlgeschlagen" cannotUploadBecauseInappropriate: "Diese Datei kann nicht hochgeladen werden, da Anteile der Datei als möglicherweise unangebracht festgestellt wurden." cannotUploadBecauseNoFreeSpace: "Die Datei konnte nicht hochgeladen werden, da dein Drive-Speicherplatz aufgebraucht ist." cannotUploadBecauseExceedsFileSizeLimit: "Diese Datei kann wegen Überschreitung der Maximalgröße nicht hochgeladen werden." +cannotUploadBecauseUnallowedFileType: "Hochladen nicht möglich wegen unzulässigem Dateityp." beta: "Beta" enableAutoSensitive: "Automarkierung sensibler Medien" enableAutoSensitiveDescription: "Setzt soweit möglich durch Verwendung von Machine Learning automatisch Markierungen für sensible Medien. Auch wenn du diese Option deaktiviert hast, ist sie möglicherweise auf Instanzebene aktiviert." @@ -1324,6 +1330,7 @@ restore: "Wiederherstellen" syncBetweenDevices: "Zwischen Geräten synchronisieren" preferenceSyncConflictTitle: "Der konfigurierte Wert ist auf dem Server bereits vorhanden." preferenceSyncConflictText: "Die Einstellungen mit aktivierter Synchronisierung werden ihre Werte auf dem Server speichern. Es gibt jedoch bereits Werte auf dem Server. Welche Einstellungswerte sollen überschrieben werden?" +preferenceSyncConflictChoiceMerge: "Zusammenführen" preferenceSyncConflictChoiceServer: "Konfigurierte Werte auf dem Server" preferenceSyncConflictChoiceDevice: "Konfigurierte Werte auf dem Gerät" preferenceSyncConflictChoiceCancel: "Einrichten der Synchronisierung abbrechen" @@ -1346,6 +1353,20 @@ goToDeck: "Zurück zum Deck" federationJobs: "Föderation Jobs" driveAboutTip: "In Drive sehen Sie eine Liste der Dateien, die Sie in der Vergangenheit hochgeladen haben.
\nSie können diese Dateien wiederverwenden um sie zu beispiel an Notizen anzuhängen, oder sie können Dateien vorab hochzuladen, um sie später zu versenden!
\nWenn Sie eine Datei löschen, verschwindet sie auch von allen Stellen, an denen Sie sie verwendet haben (Notizen, Seiten, Avatare, Banner usw.).
\nSie können auch Ordner erstellen, um sie zu organisieren." scrollToClose: "Zum Schließen scrollen" +advice: "Tipps" +realtimeMode: "Echtzeit-Modus" +turnItOn: "Einschalten" +turnItOff: "Ausschalten" +emojiMute: "Emoji stummschalten" +emojiUnmute: "Emoji-Stummschaltung aufheben" +muteX: "{x} stummschalten" +unmuteX: "Stummschaltung von {x} aufheben" +abort: "Abbrechen" +tip: "Tipps und Tricks" +redisplayAllTips: "Alle „Tipps und Tricks“ wieder anzeigen" +hideAllTips: "Alle „Tipps und Tricks“ ausblenden" +defaultImageCompressionLevel: "Standard-Bildkomprimierungsstufe" +defaultImageCompressionLevel_description: "Ein niedrigerer Wert erhält die Bildqualität, erhöht aber die Dateigröße.
Höhere Werte reduzieren die Dateigröße, verringern aber die Bildqualität." _chat: noMessagesYet: "Noch keine Nachrichten" newMessage: "Neue Nachricht" @@ -1379,6 +1400,8 @@ _chat: chatNotAvailableInOtherAccount: "Die Chatfunktion wurde vom anderen Benutzer deaktiviert." cannotChatWithTheUser: "Starten eines Chats mit diesem Benutzer nicht möglich" cannotChatWithTheUser_description: "Der Chat ist entweder nicht verfügbar oder die andere Seite hat den Chat nicht aktiviert." + youAreNotAMemberOfThisRoomButInvited: "Du bist kein Teilnehmer in diesem Raum, aber du hast eine Einladung erhalten. Bitte nimm die Einladung an, um beizutreten." + doYouAcceptInvitation: "Nimmst du die Einladung an?" chatWithThisUser: "Mit dem Benutzer chatten" thisUserAllowsChatOnlyFromFollowers: "Dieser Benutzer nimmt nur Chats von Followern an." thisUserAllowsChatOnlyFromFollowing: "Dieser Benutzer nimmt nur Chats von Benutzern an, denen er folgt." @@ -1418,12 +1441,20 @@ _settings: makeEveryTextElementsSelectable: "Alle Textelemente auswählbar machen" makeEveryTextElementsSelectable_description: "Die Aktivierung kann in manchen Situationen die Benutzerfreundlichkeit beeinträchtigen." useStickyIcons: "Icons beim Scrollen folgen lassen" + enableHighQualityImagePlaceholders: "Zeige Platzhalter für Bilder in hoher Qualität an" + uiAnimations: "Animationen der Benutzeroberfläche" showNavbarSubButtons: "Unterschaltflächen in der Navigationsleiste anzeigen" ifOn: "Wenn eingeschaltet" ifOff: "Wenn ausgeschaltet" enableSyncThemesBetweenDevices: "Synchronisierung von installierten Themen auf verschiedenen Endgeräten" enablePullToRefresh: "Ziehen zum Aktualisieren" enablePullToRefresh_description: "Bei Benutzung einer Maus, mit gedrücktem Mausrad ziehen" + realtimeMode_description: "Stellt eine Verbindung mit dem Server her und aktualisiert die Inhalte in Echtzeit. Kann zu mehr Datenverkehr einem höheren Akkuverbrauch führen." + contentsUpdateFrequency: "Häufigkeit des Abrufs von Inhalten" + contentsUpdateFrequency_description: "Je höher der Wert, desto häufiger werden die Inhalte aktualisiert, aber die Leistung sinkt und der Datenverkehr und der Akkuverbrauch steigen." + contentsUpdateFrequency_description2: "Wenn der Echtzeitmodus aktiviert ist, werden die Inhalte unabhängig von dieser Einstellung in Echtzeit aktualisiert." + showUrlPreview: "URL-Vorschau anzeigen" + showAvailableReactionsFirstInNote: "Zeige die verfügbaren Reaktionen im oberen Bereich an." _chat: showSenderName: "Name des Absenders anzeigen" sendOnEnter: "Eingabetaste sendet Nachricht" @@ -1604,6 +1635,20 @@ _serverSettings: thisSettingWillAutomaticallyOffWhenModeratorsInactive: "Wenn über einen bestimmten Zeitraum keine Moderatorenaktivität festgestellt wird, wird diese Einstellung automatisch deaktiviert, um Spam zu verhindern." deliverSuspendedSoftware: "Software, die nicht mehr beliefert wird" deliverSuspendedSoftwareDescription: "Sie können eine Auswahl von Namen und Versionen verschiedener Serversoftware angeben, um die Zustellung zu stoppen, z. B. aufgrund von Sicherheitslücken. Diese Versionsinformationen werden vom Server bereitgestellt und ihre Zuverlässigkeit ist nicht garantiert. Es wird jedoch empfohlen, eine Vorabversion anzugeben, wie z. B. >= 2024.3.1-0, da die Angabe >= 2024.3.1 keine benutzerdefinierten Versionen wie 2024.3.1-custom.0 einschließt." + singleUserMode: "Einzelbenutzermodus" + singleUserMode_description: "Wenn du der einzige Benutzer dieses Servers bist, optimiert die Aktivierung dieses Modus die Leistung des Servers." + signToActivityPubGet: "ActivityPub-GET-Anfragen signieren" + signToActivityPubGet_description: "Normalerweise sollte diese Option aktiviert sein. Die Deaktivierung kann Probleme im Zusammenhang mit der Föderation beheben, aber andererseits könnte sie die Föderation mit einigen anderen Servern deaktivieren." + proxyRemoteFiles: "Proxy für Dateien fremder Instanzen" + proxyRemoteFiles_description: "Wenn diese Einstellung aktiviert ist, werden fremde Dateien über einen Proxyserver übertragen und bereitgestellt. Dies hilft bei der Erstellung von Vorschaubildern und schützt die Privatsphäre der Benutzer." + allowExternalApRedirect: "Weiterleitungen für Anfragen über ActivityPub zulassen" + allowExternalApRedirect_description: "Wenn diese Option aktiviert ist, können andere Server Inhalte von Drittanbietern über diesen Server abfragen, was jedoch zu Content-Spoofing führen kann." + userGeneratedContentsVisibilityForVisitor: "Sichtbarkeit von nutzergenerierten Inhalten für Gäste" + userGeneratedContentsVisibilityForVisitor_description: "Dies ist nützlich, um zu verhindern, dass unangemessene Inhalte, die nicht gut moderiert sind, ungewollt über deinen eigenen Server im Internet veröffentlicht werden." + _userGeneratedContentsVisibilityForVisitor: + all: "Alles ist öffentlich" + localOnly: "Nur lokale Inhalte werden veröffentlicht, fremde Inhalte bleiben privat" + none: "Alles ist privat" _accountMigration: moveFrom: "Von einem anderen Konto zu diesem migrieren" moveFromSub: "Alias für ein anderes Konto erstellen" @@ -1944,6 +1989,9 @@ _role: canImportMuting: "Importieren von Stummgeschalteten zulassen" canImportUserLists: "Importieren von Listen erlauben" chatAvailability: "Chatten erlauben" + uploadableFileTypes: "Hochladbare Dateitypen" + uploadableFileTypes_caption: "Gibt die zulässigen MIME-/Dateitypen an. Mehrere MIME-Typen können durch einen Zeilenumbruch getrennt angegeben werden, und Platzhalter können mit einem Sternchen (*) angegeben werden. (z. B. image/*)" + uploadableFileTypes_caption2: "Bei manchen Dateien ist es nicht möglich, den Typ zu bestimmen. Um solche Dateien zuzulassen, füge {x} der Spezifikation hinzu." _condition: roleAssignedTo: "Manuellen Rollen zugewiesen" isLocal: "Lokaler Benutzer" @@ -2796,6 +2844,8 @@ _dataSaver: _avatar: title: "Animierte Profilbilder deaktivieren" description: "Die Animation von Profilbildern wird angehalten. Da animierte Bilder eine größere Dateigröße haben können als normale Bilder, kann dies den Datenverkehr weiter reduzieren." + _disableUrlPreview: + title: "URL-Vorschau deaktivieren" _code: title: "Code-Hervorhebungen ausblenden" description: "Wenn Code-Hervorhebungen in MFM usw. verwendet werden, werden sie erst geladen, wenn sie angetippt werden. Die Syntaxhervorhebung erfordert das Herunterladen der Definitionsdateien für jede Programmiersprache. Es ist daher zu erwarten, dass die Deaktivierung des automatischen Ladens dieser Dateien die Menge des Datenverkehrs reduziert." @@ -3001,8 +3051,69 @@ _search: pleaseEnterServerHost: "Gib den Server-Host ein" pleaseSelectUser: "Benutzer auswählen" serverHostPlaceholder: "Beispiel: misskey.example.com" +_serverSetupWizard: + installCompleted: "Die Installation von Misskey ist abgeschlossen!" + firstCreateAccount: "Erstelle zunächst ein Administratorkonto." + accountCreated: "Ein Administratorkonto wurde angelegt!" + serverSetting: "Servereinstellungen" + youCanEasilyConfigureOptimalServerSettingsWithThisWizard: "Mit diesem Assistenten lässt sich die optimale Serverkonfiguration leicht einrichten." + settingsYouMakeHereCanBeChangedLater: "Die Einstellungen hier können später geändert werden." + howWillYouUseMisskey: "Wie wirst du Misskey verwenden?" + _use: + single: "Ein-Personen-Server" + single_description: "Verwende den Server alleine als deinen eigenen." + single_youCanCreateMultipleAccounts: "Bei Bedarf können mehrere Konten eingerichtet werden, auch wenn es sich um einen Ein-Personen-Server handelt." + group: "Gruppenserver" + open: "Offener Server" + open_description: "Registrierung für alle öffnen." + howManyUsersDoYouExpect: "Mit wie vielen Benutzern rechnest du?" + _scale: + small: "Weniger als 100 (kleiner Maßstab)" + medium: "Mehr als 100 und weniger als 1000 Benutzer (mittelgroß)" + large: "Mehr als 1000 (großer Maßstab)" + largeScaleServerAdvice: "Für große Server sind unter Umständen fortgeschrittene Kenntnisse erforderlich, z. B. Lastverteilung und Datenbankreplikation." + doYouConnectToFediverse: "Mit dem Fediverse verbinden?" + doYouConnectToFediverse_description1: "Bei Anschluss an ein Netz von verteilten Servern (Fediverse) können Inhalte mit anderen Servern ausgetauscht werden." + doYouConnectToFediverse_description2: "Die Verbindung mit dem Fediverse wird auch als „Föderation“ bezeichnet." + youCanConfigureMoreFederationSettingsLater: "Erweiterte Einstellungen, wie z. B. die Angabe von föderierbaren Servern, können später vorgenommen werden." + adminInfo_mustBeFilled: "Dies ist auf einem offenen Server oder bei aktivierter Föderation erforderlich." + followingSettingsAreRecommended: "Die folgenden Einstellungen werden empfohlen" + applyTheseSettings: "Diese Einstellungen anwenden" + skipSettings: "Konfiguration überspringen" + settingsCompleted: "Einrichtung abgeschlossen!" + settingsCompleted_description: "Vielen Dank für deine Zeit. Jetzt, wo alles fertig ist, kannst du den Server sofort benutzen." + settingsCompleted_description2: "Detaillierte Servereinstellungen können über die „Systemsteuerung“ vorgenommen werden." + donationRequest: "Spendenaufruf" + _donationRequest: + text1: "Misskey ist eine freie Software, die von Freiwilligen entwickelt wird." + text2: "Wir würden uns über deine Unterstützung freuen, damit wir dieses Projekt auch in Zukunft weiterentwickeln können." + text3: "Für Unterstützer gibt es auch besondere Vorteile!" +_uploader: + compressedToX: "Komprimiert zu {x}" + savedXPercent: "{x}% gespart" + abortConfirm: "Einige Dateien wurden nicht hochgeladen. Möchtest du den Vorgang abbrechen?" + doneConfirm: "Einige Dateien wurden nicht hochgeladen. Möchtest du den Vorgang fortsetzen?" + maxFileSizeIsX: "Die maximale Dateigröße, die hochgeladen werden kann, beträgt {x}." + allowedTypes: "Hochladbare Dateitypen" + tip: "Die Datei ist noch nicht hochgeladen worden. In diesem Dialog kannst du die Datei vor dem Hochladen anzeigen, umbenennen, komprimieren und zuschneiden. Wenn du fertig bist, klicke auf „Hochladen“, um den Upload zu starten." +_clientPerformanceIssueTip: + makeSureDisabledAdBlocker: "Deaktiviere deinen Adblocker" + makeSureDisabledAdBlocker_description: "Adblocker können die Leistung beeinträchtigen; vergewissere dich, ob in deinem Betriebssystem, Browser oder deinen Add-ons Adblocker aktiviert sind." + makeSureDisabledCustomCss: "Benutzerdefiniertes CSS deaktivieren" + makeSureDisabledCustomCss_description: "Das Überschreiben von Stilen kann die Leistung beeinträchtigen. Stelle daher sicher, dass du kein benutzerdefiniertes CSS oder Erweiterungen aktiviert hast, die Stile überschreiben." + makeSureDisabledAddons: "Erweiterungen deaktivieren" + makeSureDisabledAddons_description: "Einige Erweiterungen können das Verhalten des Clients stören und die Leistung beeinträchtigen. Deaktiviere die Browser-Erweiterungen und prüfe, ob sich die Situation dadurch verbessert." +_clip: + tip: "Clips sind eine Funktion, mit der du Notizen gruppieren kannst." +_userLists: + tip: "Es können Listen mit beliebigen Benutzern erstellt werden. Die erstellte Liste kann als eigene Chronik angezeigt werden." +watermark: "Wasserzeichen" +defaultPreset: "Standard-Voreinstellungen" _watermarkEditor: + quitWithoutSaveConfirm: "Nicht gespeicherte Änderungen verwerfen?" driveFileTypeWarn: "Diese Datei wird nicht unterstützt" + driveFileTypeWarnDescription: "Bilddatei auswählen" + title: "Wasserzeichen bearbeiten" opacity: "Transparenz" scale: "Größe" text: "Text" @@ -3011,3 +3122,14 @@ _watermarkEditor: image: "Bilder" advanced: "Fortgeschritten" angle: "Winkel" +_imageEffector: + title: "Effekte" + addEffect: "Effekte hinzufügen" + discardChangesConfirm: "Änderungen verwerfen und beenden?" + _fxs: + chromaticAberration: "Chromatische Abweichung" + glitch: "Glitch" + mirror: "Spiegeln" + invert: "Farben umkehren" + grayscale: "Schwarzweiß" + colorAdjust: "Farbkorrektur" diff --git a/locales/en-US.yml b/locales/en-US.yml index ec7d749440..bedc781274 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -1365,6 +1365,8 @@ abort: "Abort" tip: "Tips & Tricks" redisplayAllTips: "Show all “Tips & Tricks” again" hideAllTips: "Hide all \"Tips & Tricks\"" +defaultImageCompressionLevel: "Default image compression level" +defaultImageCompressionLevel_description: "High, reduces the file size but also the image quality.
High, reduces the file size but also the image quality." _chat: noMessagesYet: "No messages yet" newMessage: "New message" @@ -1452,6 +1454,7 @@ _settings: contentsUpdateFrequency_description: "The higher the value the more the content updates but it lowers the performance and increases the traffic and memory consumption." contentsUpdateFrequency_description2: "When real-time mode is on, content is updated in real time regardless of this setting." showUrlPreview: "Show URL preview" + showAvailableReactionsFirstInNote: "Show available reactions at the top." _chat: showSenderName: "Show sender's name" sendOnEnter: "Press Enter to send" @@ -2968,7 +2971,7 @@ _customEmojisManager: markAsDeleteTargetRanges: "Mark rows in the selection as a target to delete" alertUpdateEmojisNothingDescription: "There are no updated Emojis." alertDeleteEmojisNothingDescription: "There are no Emojis to be deleted." - confirmMovePage: "" + confirmMovePage: "Would you like to move pages?" confirmChangeView: "" confirmUpdateEmojisDescription: "Update {count} Emoji(s). Are you sure to continue?" confirmDeleteEmojisDescription: "Delete checked {count} Emoji(s). Are you sure to continue?" @@ -3117,8 +3120,16 @@ _clip: tip: "Clip is a feature that allows you to organize your notes." _userLists: tip: "Lists can contain any user you specify when creating, the created list can then be displayed as a timeline showing only the specified users." +watermark: "Watermark" +defaultPreset: "Default Preset" _watermarkEditor: + tip: "A watermark, such as credit information, can be added to the image." + quitWithoutSaveConfirm: "Discard unsaved changes?" driveFileTypeWarn: "This file is not supported" + driveFileTypeWarnDescription: "Choose an image file" + title: "Edit Watermark" + cover: "Cover everything" + repeat: "spread all over" opacity: "Opacity" scale: "Size" text: "Text" @@ -3126,4 +3137,33 @@ _watermarkEditor: type: "Type" image: "Images" advanced: "Advanced" + stripe: "Stripes" + stripeWidth: "Line width" + stripeFrequency: "Lines count" angle: "Angle" + polkadot: "Polkadot" + checker: "Checker" + polkadotMainDotOpacity: "Opacity of the main dot" + polkadotMainDotRadius: "Size of the main dot" + polkadotSubDotOpacity: "Opacity of the secondary dot" + polkadotSubDotRadius: "Size of the secondary dot" + polkadotSubDotDivisions: "Number of sub-dots." +_imageEffector: + title: "Effects" + addEffect: "Add Effects" + discardChangesConfirm: "Are you sure you want to leave? You have unsaved changes." + _fxs: + chromaticAberration: "Chromatic Aberration" + glitch: "Glitch" + mirror: "Mirror" + invert: "Invert Colors" + grayscale: "white-black" + colorAdjust: "Colour Correction" + colorClamp: "Color Compression" + colorClampAdvanced: "Color Compression (Advanced)" + distort: "Distortion" + threshold: "Binarize" + zoomLines: "Saturated lines" + stripe: "Stripes" + polkadot: "Polkadot" + checker: "Checker" diff --git a/locales/es-ES.yml b/locales/es-ES.yml index f179b95195..9b32b52ac9 100644 --- a/locales/es-ES.yml +++ b/locales/es-ES.yml @@ -1365,6 +1365,8 @@ abort: "Abortar" tip: "Consejos y trucos" redisplayAllTips: "Volver a mostrar todos \"Trucos y consejos\"" hideAllTips: "Ocultar todos los \"Trucos y consejos\"" +defaultImageCompressionLevel: "Nivel de compresión de la imagen por defecto" +defaultImageCompressionLevel_description: "Baja, conserva la calidad de la imagen pero la medida del archivo es más grande.
Alta, reduce la medida del archivo pero también la calidad de la imagen." _chat: noMessagesYet: "Aún no hay mensajes" newMessage: "Mensajes nuevos" @@ -1452,6 +1454,7 @@ _settings: contentsUpdateFrequency_description: "Cuanto mayor sea el valor, más se actualiza el contenido, pero disminuye el rendimiento y aumenta el tráfico y el consumo de memoria." contentsUpdateFrequency_description2: "Cuando el modo en tiempo real está activado, el contenido se actualiza en tiempo real independientemente de esta configuración." showUrlPreview: "Mostrar la vista previa de la URL" + showAvailableReactionsFirstInNote: "Mostrar las reacciones disponibles en la parte superior." _chat: showSenderName: "Mostrar el nombre del remitente" sendOnEnter: "Intro para enviar" @@ -2462,6 +2465,8 @@ _visibility: disableFederation: "No federado" disableFederationDescription: "No enviar a otras instancias" _postForm: + quitInspiteOfThereAreUnuploadedFilesConfirm: "Hay archivos que no se han cargado, ¿deseas descartarlos y cerrar el formulario?" + uploaderTip: "El archivo aún no se ha cargado. Desde el menú Archivo, puedes cambiar el nombre, recortar imágenes, poner marcas de agua y comprimir o no el archivo. Los archivos se cargan automáticamente al publicar una nota." replyPlaceholder: "Responder a esta nota" quotePlaceholder: "Citar esta nota" channelPlaceholder: "Publicar en el canal" @@ -2627,6 +2632,7 @@ _notification: flushNotification: "Limpiar notificaciones" exportOfXCompleted: "La exportación de {x} ha sido completada." login: "Alguien ha iniciado sesión" + createToken: "Token de acceso creado" createTokenDescription: "Si no tienes ni idea, elimina el token de acceso a través de \"{text}\"." _types: all: "Todo" @@ -2724,10 +2730,18 @@ _webhookSettings: _abuseReport: _notificationRecipient: createRecipient: "Añadir destinatario a los informes" + modifyRecipient: "Editar un destinatario en el informe de moderación\n" + recipientType: "Tipo de notificación" _recipientType: mail: "Correo" webhook: "Webhook" + _captions: + mail: "Enviar un correo electrónico a todos los moderadores cuando reciban un informe de moderación" + webhook: "Enviar una notificación al SystemWebhook cuando se reciba o se resuelva un informe de moderación" keywords: "Palabras Clave" + notifiedUser: "Usuarios a notificar" + notifiedWebhook: "Webhook a utilizar" + deleteConfirm: "¿Estás seguro de que deseas borrar el destinatario del informe de moderación?" _moderationLogTypes: createRole: "Rol creado" deleteRole: "Rol eliminado" @@ -2752,9 +2766,12 @@ _moderationLogTypes: resetPassword: "Resetear contraseña" suspendRemoteInstance: "Instancia remota suspendida" unsuspendRemoteInstance: "Suspensión de instancia remota retirada" + updateRemoteInstanceNote: "Nota de moderación de una instancia remota actualizada" markSensitiveDriveFile: "Archivo marcado como sensible" unmarkSensitiveDriveFile: "Archivo marcado como no sensible" resolveAbuseReport: "Reporte resuelto" + forwardAbuseReport: "Informe reenviado" + updateAbuseReportNote: "Nota de moderación de un informe actualizada" createInvitation: "Generar invitación" createAd: "Anuncio creado" deleteAd: "Anuncio eliminado" @@ -2764,6 +2781,18 @@ _moderationLogTypes: deleteAvatarDecoration: "Decoración de avatar eliminada" unsetUserAvatar: "Quitar decoración de avatar de este usuario" unsetUserBanner: "Quitar banner de este usuario" + createSystemWebhook: "Crear un SystemWebhook" + updateSystemWebhook: "Actualizar SystemWebhook " + deleteSystemWebhook: "Borrar SystemWebHook" + createAbuseReportNotificationRecipient: "Crear un destinatario para el informe de moderación" + updateAbuseReportNotificationRecipient: "Destinatario de los informes actualizados" + deleteAbuseReportNotificationRecipient: "Destinatario de los informes borrado" + deleteAccount: "Cuenta Borrada" + deletePage: "Página borrada" + deleteFlash: "Juego borrado" + deleteGalleryPost: "Publicación de la galería, eliminada" + deleteChatRoom: "Borrar sala del chat" + updateProxyAccountDescription: "Actualizar la descripción de la cuenta proxy" _fileViewer: title: "Detalles del archivo" type: "Tipo de archivo" @@ -2818,17 +2847,46 @@ _dataSaver: _avatar: title: "Avatares animados" description: "Desactiva la animación de los avatares. Las imágenes animadas pueden llegar a ser de mayor tamaño que las normales, por lo que al desactivarlas puedes reducir el consumo de datos." + _urlPreviewThumbnail: + title: "Ocultar las miniaturas de las vistas previas de URL" + description: "Las imágenes en miniatura de la vista previa de URL no se pueden cargar " + _disableUrlPreview: + title: "Desactivar la vista previa de las URL" + description: "Desactiva la función de previsualización de la URL. A diferencia de solo las imágenes en miniatura, esta función reduce la carga de la propia información vinculada." _code: title: "Resaltar código" description: "Si se usa resaltado de código en MFM, etc., no se cargará hasta pulsar en ello. El resaltado de sintaxis requiere la descarga de archivos de definición para cada lenguaje de programación. Debido a esto, al deshabilitar la carga automática de estos archivos reducirás el consumo de datos." _hemisphere: N: "Hemisferio norte" S: "Hemisferio sur" + caption: "Usado en algunos clientes para determinar la estación del año" _reversi: reversi: "Reversi" + gameSettings: "Configuración del juego" + chooseBoard: "Elegir tablero" + blackOrWhite: "Negras/Blancas" + blackIs: "{name} juega con negras" rules: "Reglas" + thisGameIsStartedSoon: "El juego comenzará en breve" + waitingForOther: "Esperando el turno del adversario" + waitingForMe: "Esperando tu turno" + waitingBoth: "Prepárate" + ready: "Listo" + cancelReady: "No estoy listo" + opponentTurn: "Turno del oponente" + myTurn: "¡Tu turno!" + turnOf: "Le toca a {name}" + pastTurnOf: "Turno de {name}" + surrender: "Rendirse" + surrendered: "Te has rendido" + timeout: "Se acabó el tiempo" + drawn: "Empate" won: "{name} ha ganado" + black: "Negras" + white: "Blancas" total: "Total" + turnCount: "Turno {count}" + myGames: "Mis rondas" allGames: "Todos los juegos" ended: "Finalizado" playing: "Jugando actualmente" @@ -2894,11 +2952,68 @@ _customEmojisManager: sortOrder: "Ordenar" registrationLogs: "Log de registros " registrationLogsCaption: "Los registros se mostrarán al actualizar o borrar Emojis. Desaparecerán después de actualizarlos o eliminarlos, pasar a una nueva página o recargar." + alertEmojisRegisterFailedDescription: "No se ha podido actualizar o borrar el emoji. Por favor comprueba el log del registro para más detalles." + _logs: + showSuccessLogSwitch: "Mostrar registro de éxito" + failureLogNothing: "No hay log de fallos" + logNothing: "No hay logs" + _remote: + selectionRowDetail: "Detalle de la línea seleccionada" + importSelectionRows: "Importar las líneas seleccionadas" + importSelectionRangesRows: "Importar las filas seleccionadas" + importEmojisButton: "Importar los Emojis marcados" + confirmImportEmojisTitle: "Importar Emojis" + confirmImportEmojisDescription: "Importar {count} Emoji(s) recibidos del servidor remoto. Por favor, presta mucha atención a la licencia del Emoji. ¿Estás seguro de continuar?" + _local: + tabTitleList: "Lista de emojis registrados" + tabTitleRegister: "Registro de Emojis" + _list: + emojisNothing: "No hay Emojis registrados" + markAsDeleteTargetRows: "Marcar las filas seleccionadas como objetivo a eliminar" + markAsDeleteTargetRanges: "Selección de filas para su eliminación" + alertUpdateEmojisNothingDescription: "No hay Emojis actualizados" + alertDeleteEmojisNothingDescription: "No hay Emojis para borrar" + confirmMovePage: "¿Quieres cambiar de página?" + confirmChangeView: "¿De verdad quieres cambiar la vista?" + confirmUpdateEmojisDescription: "Actualizar {count} Emoji(s). ¿Deseas continuar?" + confirmDeleteEmojisDescription: "Borrar {count} Emoji(s) seleccionados. ¿Deseas continuar?" + confirmResetDescription: "Se restablecerán todos los cambios hechos hasta ahora." + confirmMovePageDesciption: "Se han realizado cambios en los Emojis de esta página.\nSi abandonas la página sin guardar, se descartarán todos los cambios realizados en esta página." + dialogSelectRoleTitle: "Buscar Emojis por rol" + _register: + uploadSettingTitle: "Ajustes de carga" + uploadSettingDescription: "En esta pantalla, puedes configurar el comportamiento al cargar Emojis." + directoryToCategoryLabel: "Introduce el nombre del directorio en el campo \"categoría\"" + directoryToCategoryCaption: "Cuando arrastres y sueltes un directorio, introduce el nombre del directorio en el campo \"categoría\"." + confirmRegisterEmojisDescription: "Registra los Emojis de la lista como nuevos Emojis personalizados. ¿Estás seguro de continuar? (Para evitar sobrecargas, sólo {count} Emoji(s) en una sola operación)" + confirmClearEmojisDescription: "Descartar las ediciones y borrar los Emojis de la lista. ¿Estás seguro de continuar?" + confirmUploadEmojisDescription: "Cargar los {count} archivo(s) arrastrado(s) y soltado(s) en la unidad. ¿Estás seguro de continuar?" +_embedCodeGen: + title: "Personalizar el código de incrustación" + header: "Mostrar encabezados" + autoload: "Cargar más automáticamente (no recomendado)" + maxHeight: "Altura máxima" + maxHeightDescription: "0 desactiva el ajuste del valor máximo. Para evitar que el widget siga creciendo verticalmente, especifica algún valor." + maxHeightWarn: "El límite de altura máxima está desactivado (0). Si esto no estaba previsto, establece la altura máxima en algún valor." + previewIsNotActual: "La visualización difiere de la incrustación real porque excede el rango mostrado en la pantalla de vista previa." + rounded: "Bordes Redondeados" + border: "Añadir un borde al marco exterior" + applyToPreview: "Aplicar a la vista previa" + generateCode: "Crear el código para incrustar" + codeGenerated: "El código ha sido generado" + codeGeneratedDescription: "Pegue el código generado en su sitio web para incrustar el contenido." +_selfXssPrevention: + warning: "Advertencia" + title: "\"Pegar algo en esta pantalla\" es un timo." + description1: "Si pegas algo aquí, un usuario malintencionado podría secuestrar tu cuenta o robar tu información personal." + description2: "Si no entiendes que estás pegando exactamente, %cdetente ahora mismo y cierra esta ventana" + description3: "Para más información visita esto {link}" _followRequest: recieved: "Petición de seguimiento recibida" sent: "Petición de seguimiento enviada" _remoteLookupErrors: _federationNotAllowed: + title: "Incapaz de comunicarse con este servidor." description: "Es posible que se haya desactivado la comunicación con este servidor o que haya sido bloqueado.\nPonte en contacto con el administrador del servidor.." _uriInvalid: title: "La URI es inválida" @@ -2927,14 +3042,96 @@ _captcha: text: "Se ha producido un error inesperado." _bootErrors: title: "Fallo al cargar" + serverError: "Si el problema persiste después de esperar un momento y volver a cargar, póngase en contacto con el administrador del servidor con el siguiente ID de error." + solution: "Lo siguiente puede resolver el problema." + solution1: "Actualiza tu navegador web y el sistema operativo a la última versión" + solution2: "Desactiva el AdBlocker" + solution3: "Borra la memoria caché del navegador web " + solution4: "(Navegador Tor) configura dom.webaudio.enabled a true" + otherOption: "Otras opciones" + otherOption1: "Borra la configuración y la memoria caché del cliente" + otherOption2: "Iniciar el cliente simple" + otherOption3: "Iniciar la herramienta de reparación" _search: searchScopeAll: "Todo" searchScopeLocal: "Local" + searchScopeServer: "Especifica el servidor (Instancia)" searchScopeUser: "Especificar usuario" + pleaseEnterServerHost: "Introduce la dirección del servidor/Instancia" + pleaseSelectUser: "Selecciona un usuario, por favor" + serverHostPlaceholder: "Ejemplo: misskey.example.com" +_serverSetupWizard: + installCompleted: "¡La instalación de Misskey se ha completado!" + firstCreateAccount: "Para comenzar, crea una cuenta de administrador" + accountCreated: "¡La cuenta de administrador se ha creado! " + serverSetting: "Configuración del servidor" + youCanEasilyConfigureOptimalServerSettingsWithThisWizard: "Este asistente te facilita una configuración óptima del servidor." + settingsYouMakeHereCanBeChangedLater: "Los ajustes que han sido cambiados a través de este asistente pueden ser modificados más tarde." + howWillYouUseMisskey: "¿Cómo vas a usar Misskey?" + _use: + single: "Servidor para un único usuario." + single_description: "Utilízalo como tu propio servidor dedicado." + single_youCanCreateMultipleAccounts: "Se pueden crear múltiples cuentas según sea necesario, incluso cuando se opera como servidor unipersonal." + group: "Servidor de grupo" + group_description: "Invita otros usuarios de confianza y úsalo con más de una persona.\n" + open: "Servidor público" + open_description: "Permite a cualquiera registrarse" + openServerAdvice: "Aceptar un número no determinado de usuarios comporta algunos riesgos. Se recomienda operar con un sistema de moderación fiable para hacer frente a los problemas." + openServerAntiSpamAdvice: "Para evitar que su servidor se convierta en un trampolín para el spam, también debe prestar mucha atención a la seguridad habilitando funciones anti-bot como reCAPTCHA." + howManyUsersDoYouExpect: "¿Cuántas personas esperas?" + _scale: + small: "Menos de 100 (escala pequeña)" + medium: "Más de 100 y menos de 1000 (escala media)\n" + large: "Más de 1000(escala grande)" + largeScaleServerAdvice: "Los grandes servidores pueden requerir conocimientos avanzados de infraestructura, como equilibrio de carga y replicación de bases de datos." + doYouConnectToFediverse: "¿Quieres conectarte al Fediverso?" + doYouConnectToFediverse_description1: "Cuando se conecta a una red de servidores distribuidos (Fediverso), el contenido puede intercambiarse con otros servidores." + doYouConnectToFediverse_description2: "Conectarse con el Fediverso también se conoce como \"federación\"." + youCanConfigureMoreFederationSettingsLater: "Los ajustes avanzados, como la especificación de servidores federados, pueden configurarse más adelante." + adminInfo: "Información del administrador" + adminInfo_description: "Establece la información del administrador para recibir consultas." + adminInfo_mustBeFilled: "Esta información debe ser introducida en el caso de registros abiertos o la federación esté activada." + followingSettingsAreRecommended: "Se recomienda los siguientes ajustes" + applyTheseSettings: "Aplicar estos ajustes" + skipSettings: "Omitir configuración" + settingsCompleted: "¡Configuración inicial del servidor completada!" + settingsCompleted_description: "Gracias por tu tiempo. Ahora que está todo listo puedes empezar a utilizar el servidor inmediatamente." + settingsCompleted_description2: "La configuración avanzada del servidor pueden realizarse a través del \"Panel de control\"." + donationRequest: "Por favor Dona" + _donationRequest: + text1: "Misskey es un software libre desarrollado por voluntarios." + text2: "Agradeceríamos su apoyo para que podamos seguir desarrollando este software en el futuro." + text3: "También hay beneficios especiales para los donantes" _uploader: + compressedToX: "Comprimir a {x}" + savedXPercent: "Guardando {x}%" + abortConfirm: "Algunos archivos no se han cargado, ¿deseas cancelar?" + doneConfirm: "Algunos archivos no se han cargado, ¿deseas continuar de todos modos?" + maxFileSizeIsX: "El tamaño máximo de archivo que se puede cargar es de {x}" allowedTypes: "Tipos de archivos que se pueden cargar." + tip: "El archivo aún no se ha cargado, por lo que este cuadro de diálogo te permite confirmar, renombrar, comprimir y recortar el archivo antes de cargarlo. Cuando esté listo, puedes iniciar la carga pulsando el botón \"Cargar\"." +_clientPerformanceIssueTip: + title: "Si crees que el consumo de batería es demasiado alto" + makeSureDisabledAdBlocker: "Por favor, desactive el bloqueador de publicidad." + makeSureDisabledAdBlocker_description: "Los bloqueadores de anuncios pueden afectar al rendimiento. Asegúrate de que no están activados en tu sistema o en las funciones/extensiones de tu navegador." + makeSureDisabledCustomCss: "Desactiva el CSS personalizado" + makeSureDisabledCustomCss_description: "Anular estilos puede afectar al rendimiento. Asegúrate de que el CSS personalizado o las extensiones que sobrescriben estilos no están activados." + makeSureDisabledAddons: "Desactiva las extensiones " + makeSureDisabledAddons_description: "Algunas extensiones pueden interferir con el comportamiento del cliente y afectar al rendimiento. Por favor, deshabilita las extensiones de tu navegador y comprueba si esto mejora la situación." +_clip: + tip: "Clip es una función que permite organizar varias notas." +_userLists: + tip: "Las listas pueden contener cualquier usuario que especifiques al crearlas, la lista creada puede mostrarse entonces como una línea de tiempo mostrando solo los usuarios especificados." +watermark: "Marca de Agua" +defaultPreset: "Por defecto" _watermarkEditor: + tip: "Se puede añadir a la imagen una marca de agua, como información crediticia." + quitWithoutSaveConfirm: "¿Descartar cambios no guardados?" driveFileTypeWarn: "Este archivo es incompatible" + driveFileTypeWarnDescription: "Elegir una imagen" + title: "Editar la marca de agua" + cover: "Cubrir todo" + repeat: "Repetir" opacity: "Opacidad" scale: "Tamaño" text: "Texto" @@ -2942,4 +3139,33 @@ _watermarkEditor: type: "Tipo" image: "Imágenes" advanced: "Avanzado" + stripe: "Rayas" + stripeWidth: "Anchura de línea" + stripeFrequency: "Número de líneas." angle: "Ángulo" + polkadot: "Lunares" + checker: "verificador" + polkadotMainDotOpacity: "Opacidad del círculo principal" + polkadotMainDotRadius: "Tamaño del círculo principal." + polkadotSubDotOpacity: "Opacidad del círculo secundario" + polkadotSubDotRadius: "Tamaño del círculo secundario." + polkadotSubDotDivisions: "Número de subpuntos." +_imageEffector: + title: "Efecto" + addEffect: "Añadir Efecto" + discardChangesConfirm: "¿Ignorar cambios y salir?" + _fxs: + chromaticAberration: "Aberración Cromática" + glitch: "Glitch" + mirror: "Espejo" + invert: "Invertir colores" + grayscale: "Blanco y negro" + colorAdjust: "Corrección de Color" + colorClamp: "Compresión cromática" + colorClampAdvanced: "Compresión cromática avanzada" + distort: "Distorsión" + threshold: "umbral" + zoomLines: "Saturación de Líneas" + stripe: "Rayas" + polkadot: "Lunares" + checker: "Corrector" diff --git a/locales/it-IT.yml b/locales/it-IT.yml index ad8123dc58..a953622954 100644 --- a/locales/it-IT.yml +++ b/locales/it-IT.yml @@ -327,6 +327,7 @@ dark: "Scuro" lightThemes: "Tema Chiaro" darkThemes: "Tema Scuro" syncDeviceDarkMode: "Sincronizza il tema scuro con le impostazioni del dispositivo" +switchDarkModeManuallyWhenSyncEnabledConfirm: "({x}) è attiva. Vuoi disattivare la sincronizzazione e passare alla modalità manuale?" drive: "Drive" fileName: "Nome dell'allegato" selectFile: "Scelta allegato" @@ -1329,6 +1330,7 @@ restore: "Ripristina" syncBetweenDevices: "Sincronizzazione tra i dispositivi" preferenceSyncConflictTitle: "Sul server esiste già il valore impostato" preferenceSyncConflictText: "Le impostazione sincronizzata salverà il valore sul server. Però, bada che esiste già un valore sul server. Quale vorresti sovrascrivere?" +preferenceSyncConflictChoiceMerge: "Integra" preferenceSyncConflictChoiceServer: "Valore del server" preferenceSyncConflictChoiceDevice: "Valore del dispositivo" preferenceSyncConflictChoiceCancel: "Annulla la sincronizzazione" @@ -1362,6 +1364,8 @@ abort: "Annulla" tip: "Suggerimento" redisplayAllTips: "Mostra tutti i suggerimenti" hideAllTips: "Nascondi tutti i suggerimenti" +defaultImageCompressionLevel: "Livello predefinito di compressione immagini" +defaultImageCompressionLevel_description: "La compressione diminuisce la qualità dell'immagine, poca compressione mantiene alta qualità delle immagini. Aumentandola, si riducono le dimensioni del file, a discapito della qualità dell'immagine." _chat: noMessagesYet: "Ancora nessun messaggio" newMessage: "Nuovo messaggio" @@ -1449,6 +1453,7 @@ _settings: contentsUpdateFrequency_description: "Se l'impostazione è alta, verranno aggiornati più frequentemente, consumando più dati e più batteria." contentsUpdateFrequency_description2: "Quando la modalità è in tempo reale, arriveranno a prescindere." showUrlPreview: "Mostra anteprima dell'URL" + showAvailableReactionsFirstInNote: "Mostra le reazioni disponibili in alto" _chat: showSenderName: "Mostra il nome del mittente" sendOnEnter: "Invio spedisce" @@ -2902,6 +2907,8 @@ _offlineScreen: _urlPreviewSetting: title: "Impostazioni per l'anteprima delle URL" enable: "Attiva l'anteprima delle URL" + allowRedirect: "Segui i reindirizzamenti per visualizzare le anteprime" + allowRedirectDescription: "Se la URL inserita contiene un reindirizzamento, decidi di seguire il reindirizzamento fino alla destinazione, visualizzandone l'anteprima. Disabilitando questa opzione si risparmiano risorse del server, ma il contenuto effettivo dal reindirizzamento, non verrà visualizzato." timeout: "Timeout dell'anteprima in millisecondi" timeoutDescription: "Impegna al massimo il tempo indicato, altrimenti ignora l'anteprima" maximumContentLength: "Grandezza del contenuto (Content-Length in byte)" @@ -3112,8 +3119,16 @@ _clip: tip: "Le clip sono una funzionalità che consente di raggruppare le Note." _userLists: tip: "Puoi creare un elenco di Note create da qualsiasi profilo. L'elenco è visualizzato come una sequenza temporale." +watermark: "Filigrana" +defaultPreset: "Impostazioni predefinite" _watermarkEditor: + tip: "Puoi aggiungere una filigrana, ad esempio con i crediti alle tue immagini." + quitWithoutSaveConfirm: "Uscire senza salvare?" driveFileTypeWarn: "Formato file non supportato" + driveFileTypeWarnDescription: "Per favore seleziona un file immagine" + title: "Modifica la filigrana" + cover: "Coprire tutto" + repeat: "Disposizione" opacity: "Opacità" scale: "Dimensioni" text: "Testo" @@ -3121,4 +3136,33 @@ _watermarkEditor: type: "Tipo" image: "Immagini" advanced: "Avanzato" + stripe: "Strisce" + stripeWidth: "Larghezza della linea" + stripeFrequency: "Il numero di linee" angle: "Angolo" + polkadot: "A pallini" + checker: "revisore" + polkadotMainDotOpacity: "Opacità del punto principale" + polkadotMainDotRadius: "Dimensione del punto principale" + polkadotSubDotOpacity: "Opacità del punto secondario" + polkadotSubDotRadius: "Dimensione del punto secondario" + polkadotSubDotDivisions: "Quantità di punti secondari" +_imageEffector: + title: "Effetto" + addEffect: "Aggiungi effetto" + discardChangesConfirm: "Scarta le modifiche ed esci?" + _fxs: + chromaticAberration: "Aberrazione cromatica" + glitch: "Glitch" + mirror: "Specchio" + invert: "Inversione colore" + grayscale: "Bianco e nero" + colorAdjust: "Correzione Colore" + colorClamp: "Compressione del colore" + colorClampAdvanced: "Compressione del colore (avanzata)" + distort: "Distorsione" + threshold: "Soglia" + zoomLines: "Linea di saturazione" + stripe: "Strisce" + polkadot: "A pallini" + checker: "revisore" diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml index 17688030ce..7d3ec1296c 100644 --- a/locales/ko-KR.yml +++ b/locales/ko-KR.yml @@ -2465,6 +2465,8 @@ _visibility: disableFederation: "연합에 보내지 않기" disableFederationDescription: "다른 서버로 보내지 않습니다" _postForm: + quitInspiteOfThereAreUnuploadedFilesConfirm: "업로드되지 않은 파일이 있습니다만, 없애고 폼을 닫겠습니까?" + uploaderTip: "파일이 아직 업로드돼있지 않습니다. 파일 메뉴에서 이름 바꾸기나 이미지의 자르기, 워터마크 넣기, 압축의 유무 등을 설정할 수 있습니다. 파일은 노트 게시 시 자동으로 업로드됩니다." replyPlaceholder: "이 노트에 답글..." quotePlaceholder: "이 노트를 인용..." channelPlaceholder: "채널에 게시하기..." @@ -3081,7 +3083,7 @@ _serverSetupWizard: small: "100명 이하(소규모)" medium: "100명 이상 1000명 이하(중간 규모)" large: "1000명 이상(대규모)" - largeScaleServerAdvice: "대규모 서버에서는 부하분산이나 데이터베이스의 레플리케이션 등 높은 인프라스트럭처 지식이 필요할 수 있습니다." + largeScaleServerAdvice: "대규모 서버에서는 부하분산이나 데이터베이스의 복제 등 높은 인프라스트럭처 지식이 필요할 수 있습니다." doYouConnectToFediverse: "Fediverse에 접속하시겠습니까?" doYouConnectToFediverse_description1: "분산형 서버로 구성된 네트워크(Fediverse)에 접속하면 다른 서버와 서로 콘텐츠의 주고받기를 할 수 있습니다." doYouConnectToFediverse_description2: "Fediverse에 접속하는 것을 '연합'이라고도 부릅니다." @@ -3126,6 +3128,7 @@ _watermarkEditor: tip: "이미지에 크레딧 정보 등의 워터마크를 추가할 수 있습니다." quitWithoutSaveConfirm: "보존하지 않고 종료하시겠습니까?" driveFileTypeWarn: "이 파이" + driveFileTypeWarnDescription: "이미지 파일을 선택해주십시오." title: "워터마크 편집" cover: "전체에 붙이기" repeat: "전면에 깔기" @@ -3157,6 +3160,7 @@ _imageEffector: mirror: "미러" invert: "색 반전" grayscale: "흑백" + colorAdjust: "색조 보정" colorClamp: "색 압축" colorClampAdvanced: "색 압축(고급)" distort: "뒤틀림" diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml index e479763e62..73800254ac 100644 --- a/locales/zh-CN.yml +++ b/locales/zh-CN.yml @@ -1644,7 +1644,7 @@ _serverSettings: allowExternalApRedirect: "允许通过 ActivityPub 重定向查询" allowExternalApRedirect_description: "启用时,将允许其它服务器通过此服务器查询第三方内容,但有可能导致内容欺骗。" userGeneratedContentsVisibilityForVisitor: "用户生成内容对非用户的可见性" - userGeneratedContentsVisibilityForVisitor_description: "这对于防止诸如难以审核的不适当的远程内容通过您自己的服务器无意中在互联网上公开等问题很有用。" + userGeneratedContentsVisibilityForVisitor_description: "对于防止难以审核的不适当的远程内容等,通过自己的服务器无意中在互联网上公开等问题很有用。" userGeneratedContentsVisibilityForVisitor_description2: "包含服务器接收到的远程内容在内,无条件将服务器上的所有内容公开在互联网上存在风险。特别是对去中心化的特性不是很了解的访问者有可能将远程服务器上的内容误认为是在此服务器内生成的,需要特别留意。" _userGeneratedContentsVisibilityForVisitor: all: "全部公开" @@ -2465,6 +2465,8 @@ _visibility: disableFederation: "不参与联合" disableFederationDescription: "不发送到其他服务器" _postForm: + quitInspiteOfThereAreUnuploadedFilesConfirm: "还有未上传的文件,要丢弃并关闭窗口吗?" + uploaderTip: "文件还未上传。可以在文件菜单中进行重命名、裁剪、添加水印、设置是否压缩等操作。文件将在发帖时自动上传。" replyPlaceholder: "回复这个帖子..." quotePlaceholder: "引用这个帖子..." channelPlaceholder: "发布到频道…" @@ -3126,6 +3128,7 @@ _watermarkEditor: tip: "可在图像内增加包含作者等信息的水印。" quitWithoutSaveConfirm: "不保存就退出吗?" driveFileTypeWarn: "不支持此文件" + driveFileTypeWarnDescription: "请选择图像文件" title: "编辑水印" cover: "覆盖全体" repeat: "平铺" @@ -3157,6 +3160,7 @@ _imageEffector: mirror: "镜像" invert: "反转颜色" grayscale: "黑白" + colorAdjust: "色彩校正" colorClamp: "颜色限制" colorClampAdvanced: "颜色限制(高级)" distort: "失真" diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml index 54639e2e31..4d276a2e98 100644 --- a/locales/zh-TW.yml +++ b/locales/zh-TW.yml @@ -2465,6 +2465,8 @@ _visibility: disableFederation: "停用聯邦" disableFederationDescription: "不發送到其他伺服器" _postForm: + quitInspiteOfThereAreUnuploadedFilesConfirm: "尚有未上傳的檔案,確定要放棄並關閉表單嗎?" + uploaderTip: "檔案尚未上傳。您可以從檔案選單中設定重新命名、裁切圖片、加上浮水印、是否壓縮等選項。檔案會在發布貼文時自動上傳。\n" replyPlaceholder: "回覆此貼文..." quotePlaceholder: "引用此貼文..." channelPlaceholder: "發佈到頻道" @@ -3126,6 +3128,7 @@ _watermarkEditor: tip: "可以在圖片中以浮水印加上出處等資訊。" quitWithoutSaveConfirm: "不儲存就退出嗎?" driveFileTypeWarn: "不支援此檔案" + driveFileTypeWarnDescription: "請選擇圖片檔案" title: "編輯浮水印" cover: "覆蓋整體" repeat: "佈局" @@ -3157,6 +3160,7 @@ _imageEffector: mirror: "鏡像" invert: "反轉色彩" grayscale: "黑白" + colorAdjust: "色彩校正" colorClamp: "壓縮色彩" colorClampAdvanced: "壓縮色彩(進階)" distort: "變形" From f50abed98d69b67ef858ded8d648c7e2b7998ba4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 10 Jun 2025 04:43:58 +0000 Subject: [PATCH 49/76] Bump version to 2025.6.1-beta.0 --- package.json | 2 +- packages/misskey-js/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index e3117b22c6..d44cc6031d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2025.6.1-alpha.4", + "version": "2025.6.1-beta.0", "codename": "nasubi", "repository": { "type": "git", diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json index b15ce75e98..a231d471d7 100644 --- a/packages/misskey-js/package.json +++ b/packages/misskey-js/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "misskey-js", - "version": "2025.6.1-alpha.4", + "version": "2025.6.1-beta.0", "description": "Misskey SDK for JavaScript", "license": "MIT", "main": "./built/index.js", From 81bc27d80465e4b6fe83c317b7048cd38a04c7c7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 10 Jun 2025 15:53:04 +0900 Subject: [PATCH 50/76] chore(deps): update [tools] update dependencies (#16141) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- scripts/changelog-checker/package-lock.json | 208 ++++++++++++-------- scripts/changelog-checker/package.json | 8 +- 2 files changed, 135 insertions(+), 81 deletions(-) diff --git a/scripts/changelog-checker/package-lock.json b/scripts/changelog-checker/package-lock.json index e9059b4718..4ed26757a6 100644 --- a/scripts/changelog-checker/package-lock.json +++ b/scripts/changelog-checker/package-lock.json @@ -9,16 +9,16 @@ "version": "1.0.0", "devDependencies": { "@types/mdast": "4.0.4", - "@types/node": "22.15.21", - "@vitest/coverage-v8": "3.1.4", + "@types/node": "22.15.31", + "@vitest/coverage-v8": "3.2.3", "mdast-util-to-string": "4.0.0", "remark": "15.0.1", "remark-parse": "11.0.0", "typescript": "5.8.3", "unified": "11.0.5", "vite": "6.3.5", - "vite-node": "3.1.4", - "vitest": "3.1.4" + "vite-node": "3.2.3", + "vitest": "3.2.3" } }, "node_modules/@ampproject/remapping": { @@ -890,6 +890,16 @@ "win32" ] }, + "node_modules/@types/chai": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz", + "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*" + } + }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", @@ -899,6 +909,13 @@ "@types/ms": "*" } }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/estree": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", @@ -923,9 +940,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "22.15.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.21.tgz", - "integrity": "sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==", + "version": "22.15.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.31.tgz", + "integrity": "sha512-jnVe5ULKl6tijxUhvQeNbQG/84fHfg+yMak02cT8QVhBx/F05rAVxCGBYYTh2EKz22D6JF5ktXuNwdx7b9iEGw==", "dev": true, "license": "MIT", "dependencies": { @@ -939,15 +956,16 @@ "dev": true }, "node_modules/@vitest/coverage-v8": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.1.4.tgz", - "integrity": "sha512-G4p6OtioySL+hPV7Y6JHlhpsODbJzt1ndwHAFkyk6vVjpK03PFsKnauZIzcd0PrK4zAbc5lc+jeZ+eNGiMA+iw==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.3.tgz", + "integrity": "sha512-D1QKzngg8PcDoCE8FHSZhREDuEy+zcKmMiMafYse41RZpBE5EDJyKOTdqK3RQfsV2S2nyKor5KCs8PyPRFqKPg==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.3.0", "@bcoe/v8-coverage": "^1.0.2", - "debug": "^4.4.0", + "ast-v8-to-istanbul": "^0.3.3", + "debug": "^4.4.1", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", "istanbul-lib-source-maps": "^5.0.6", @@ -962,8 +980,8 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "3.1.4", - "vitest": "3.1.4" + "@vitest/browser": "3.2.3", + "vitest": "3.2.3" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -972,14 +990,15 @@ } }, "node_modules/@vitest/expect": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.1.4.tgz", - "integrity": "sha512-xkD/ljeliyaClDYqHPNCiJ0plY5YIcM0OlRiZizLhlPmpXWpxnGMyTZXOHFhFeG7w9P5PBeL4IdtJ/HeQwTbQA==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.3.tgz", + "integrity": "sha512-W2RH2TPWVHA1o7UmaFKISPvdicFJH+mjykctJFoAkUw+SPTJTGjUNdKscFBrqM7IPnCVu6zihtKYa7TkZS1dkQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "3.1.4", - "@vitest/utils": "3.1.4", + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.3", + "@vitest/utils": "3.2.3", "chai": "^5.2.0", "tinyrainbow": "^2.0.0" }, @@ -988,13 +1007,13 @@ } }, "node_modules/@vitest/mocker": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.1.4.tgz", - "integrity": "sha512-8IJ3CvwtSw/EFXqWFL8aCMu+YyYXG2WUSrQbViOZkWTKTVicVwZ/YiEZDSqD00kX+v/+W+OnxhNWoeVKorHygA==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.3.tgz", + "integrity": "sha512-cP6fIun+Zx8he4rbWvi+Oya6goKQDZK+Yq4hhlggwQBbrlOQ4qtZ+G4nxB6ZnzI9lyIb+JnvyiJnPC2AGbKSPA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "3.1.4", + "@vitest/spy": "3.2.3", "estree-walker": "^3.0.3", "magic-string": "^0.30.17" }, @@ -1003,7 +1022,7 @@ }, "peerDependencies": { "msw": "^2.4.9", - "vite": "^5.0.0 || ^6.0.0" + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" }, "peerDependenciesMeta": { "msw": { @@ -1015,9 +1034,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.4.tgz", - "integrity": "sha512-cqv9H9GvAEoTaoq+cYqUTCGscUjKqlJZC7PRwY5FMySVj5J+xOm1KQcCiYHJOEzOKRUhLH4R2pTwvFlWCEScsg==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.3.tgz", + "integrity": "sha512-yFglXGkr9hW/yEXngO+IKMhP0jxyFw2/qys/CK4fFUZnSltD+MU7dVYGrH8rvPcK/O6feXQA+EU33gjaBBbAng==", "dev": true, "license": "MIT", "dependencies": { @@ -1028,27 +1047,28 @@ } }, "node_modules/@vitest/runner": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.1.4.tgz", - "integrity": "sha512-djTeF1/vt985I/wpKVFBMWUlk/I7mb5hmD5oP8K9ACRmVXgKTae3TUOtXAEBfslNKPzUQvnKhNd34nnRSYgLNQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.3.tgz", + "integrity": "sha512-83HWYisT3IpMaU9LN+VN+/nLHVBCSIUKJzGxC5RWUOsK1h3USg7ojL+UXQR3b4o4UBIWCYdD2fxuzM7PQQ1u8w==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "3.1.4", - "pathe": "^2.0.3" + "@vitest/utils": "3.2.3", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/snapshot": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.1.4.tgz", - "integrity": "sha512-JPHf68DvuO7vilmvwdPr9TS0SuuIzHvxeaCkxYcCD4jTk67XwL45ZhEHFKIuCm8CYstgI6LZ4XbwD6ANrwMpFg==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.3.tgz", + "integrity": "sha512-9gIVWx2+tysDqUmmM1L0hwadyumqssOL1r8KJipwLx5JVYyxvVRfxvMq7DaWbZZsCqZnu/dZedaZQh4iYTtneA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.1.4", + "@vitest/pretty-format": "3.2.3", "magic-string": "^0.30.17", "pathe": "^2.0.3" }, @@ -1057,26 +1077,26 @@ } }, "node_modules/@vitest/spy": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.1.4.tgz", - "integrity": "sha512-Xg1bXhu+vtPXIodYN369M86K8shGLouNjoVI78g8iAq2rFoHFdajNvJJ5A/9bPMFcfQqdaCpOgWKEoMQg/s0Yg==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.3.tgz", + "integrity": "sha512-JHu9Wl+7bf6FEejTCREy+DmgWe+rQKbK+y32C/k5f4TBIAlijhJbRBIRIOCEpVevgRsCQR2iHRUH2/qKVM/plw==", "dev": true, "license": "MIT", "dependencies": { - "tinyspy": "^3.0.2" + "tinyspy": "^4.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/utils": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.1.4.tgz", - "integrity": "sha512-yriMuO1cfFhmiGc8ataN51+9ooHRuURdfAZfwFd3usWynjzpLslZdYnRegTv32qdgtJTsj15FoeZe2g15fY1gg==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.3.tgz", + "integrity": "sha512-4zFBCU5Pf+4Z6v+rwnZ1HU1yzOKKvDkMXZrymE2PBlbjKJRlrOxbvpfPSvJTGRIwGoahaOGvp+kbCoxifhzJ1Q==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.1.4", + "@vitest/pretty-format": "3.2.3", "loupe": "^3.1.3", "tinyrainbow": "^2.0.0" }, @@ -1120,6 +1140,18 @@ "node": ">=12" } }, + "node_modules/ast-v8-to-istanbul": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.3.tgz", + "integrity": "sha512-MuXMrSLVVoA6sYN/6Hke18vMzrT4TZNbZIj/hvh0fnYFpO+/kFXcLIaiPwXXWaQUPg4yJD8fj+lfJ7/1EBconw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "estree-walker": "^3.0.3", + "js-tokens": "^9.0.1" + } + }, "node_modules/bail": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", @@ -1228,9 +1260,9 @@ } }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1557,6 +1589,13 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -2561,6 +2600,19 @@ "node": ">=8" } }, + "node_modules/strip-literal": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz", + "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2603,9 +2655,9 @@ "license": "MIT" }, "node_modules/tinyglobby": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", - "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2620,9 +2672,9 @@ } }, "node_modules/tinypool": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", - "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.0.tgz", + "integrity": "sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==", "dev": true, "license": "MIT", "engines": { @@ -2640,9 +2692,9 @@ } }, "node_modules/tinyspy": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", - "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz", + "integrity": "sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==", "dev": true, "license": "MIT", "engines": { @@ -2860,17 +2912,17 @@ } }, "node_modules/vite-node": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.1.4.tgz", - "integrity": "sha512-6enNwYnpyDo4hEgytbmc6mYWHXDHYEn0D1/rw4Q+tnHUGtKTJsn8T1YkX6Q18wI5LCrS8CTYlBaiCqxOy2kvUA==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.3.tgz", + "integrity": "sha512-gc8aAifGuDIpZHrPjuHyP4dpQmYXqWw7D1GmDnWeNWP654UEXzVfQ5IHPSK5HaHkwB/+p1atpYpSdw/2kOv8iQ==", "dev": true, "license": "MIT", "dependencies": { "cac": "^6.7.14", - "debug": "^4.4.0", + "debug": "^4.4.1", "es-module-lexer": "^1.7.0", "pathe": "^2.0.3", - "vite": "^5.0.0 || ^6.0.0" + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" }, "bin": { "vite-node": "vite-node.mjs" @@ -2883,32 +2935,34 @@ } }, "node_modules/vitest": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.1.4.tgz", - "integrity": "sha512-Ta56rT7uWxCSJXlBtKgIlApJnT6e6IGmTYxYcmxjJ4ujuZDI59GUQgVDObXXJujOmPDBYXHK1qmaGtneu6TNIQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.3.tgz", + "integrity": "sha512-E6U2ZFXe3N/t4f5BwUaVCKRLHqUpk1CBWeMh78UT4VaTPH/2dyvH6ALl29JTovEPu9dVKr/K/J4PkXgrMbw4Ww==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "3.1.4", - "@vitest/mocker": "3.1.4", - "@vitest/pretty-format": "^3.1.4", - "@vitest/runner": "3.1.4", - "@vitest/snapshot": "3.1.4", - "@vitest/spy": "3.1.4", - "@vitest/utils": "3.1.4", + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.3", + "@vitest/mocker": "3.2.3", + "@vitest/pretty-format": "^3.2.3", + "@vitest/runner": "3.2.3", + "@vitest/snapshot": "3.2.3", + "@vitest/spy": "3.2.3", + "@vitest/utils": "3.2.3", "chai": "^5.2.0", - "debug": "^4.4.0", + "debug": "^4.4.1", "expect-type": "^1.2.1", "magic-string": "^0.30.17", "pathe": "^2.0.3", + "picomatch": "^4.0.2", "std-env": "^3.9.0", "tinybench": "^2.9.0", "tinyexec": "^0.3.2", - "tinyglobby": "^0.2.13", - "tinypool": "^1.0.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.0", "tinyrainbow": "^2.0.0", - "vite": "^5.0.0 || ^6.0.0", - "vite-node": "3.1.4", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.3", "why-is-node-running": "^2.3.0" }, "bin": { @@ -2924,8 +2978,8 @@ "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "@vitest/browser": "3.1.4", - "@vitest/ui": "3.1.4", + "@vitest/browser": "3.2.3", + "@vitest/ui": "3.2.3", "happy-dom": "*", "jsdom": "*" }, diff --git a/scripts/changelog-checker/package.json b/scripts/changelog-checker/package.json index b0f61bb4aa..fa6cf09ea1 100644 --- a/scripts/changelog-checker/package.json +++ b/scripts/changelog-checker/package.json @@ -10,15 +10,15 @@ }, "devDependencies": { "@types/mdast": "4.0.4", - "@types/node": "22.15.21", - "@vitest/coverage-v8": "3.1.4", + "@types/node": "22.15.31", + "@vitest/coverage-v8": "3.2.3", "mdast-util-to-string": "4.0.0", "remark": "15.0.1", "remark-parse": "11.0.0", "typescript": "5.8.3", "unified": "11.0.5", "vite": "6.3.5", - "vite-node": "3.1.4", - "vitest": "3.1.4" + "vite-node": "3.2.3", + "vitest": "3.2.3" } } From 0ffd9e267a57f1a42fb4cf68b1e3e5a55196a539 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 10 Jun 2025 16:07:34 +0900 Subject: [PATCH 51/76] fix(deps): update [frontend] update dependencies (#16144) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/frontend-embed/package.json | 26 +- packages/frontend-shared/package.json | 8 +- packages/frontend/package.json | 34 +- packages/icons-subsetter/package.json | 8 +- packages/misskey-bubble-game/package.json | 6 +- packages/misskey-reversi/package.json | 6 +- packages/sw/package.json | 2 +- pnpm-lock.yaml | 1166 ++++++++++++--------- 8 files changed, 727 insertions(+), 529 deletions(-) diff --git a/packages/frontend-embed/package.json b/packages/frontend-embed/package.json index f2489f1b80..5e73c26daf 100644 --- a/packages/frontend-embed/package.json +++ b/packages/frontend-embed/package.json @@ -26,9 +26,9 @@ "mfm-js": "0.24.0", "misskey-js": "workspace:*", "punycode.js": "2.3.1", - "rollup": "4.41.1", - "sass": "1.89.0", - "shiki": "3.4.2", + "rollup": "4.42.0", + "sass": "1.89.2", + "shiki": "3.6.0", "tinycolor2": "1.6.0", "tsc-alias": "1.8.16", "tsconfig-paths": "4.2.0", @@ -39,27 +39,27 @@ }, "devDependencies": { "@misskey-dev/summaly": "5.2.1", - "@tabler/icons-webfont": "3.33.0", + "@tabler/icons-webfont": "3.34.0", "@testing-library/vue": "8.1.0", - "@types/estree": "1.0.7", + "@types/estree": "1.0.8", "@types/micromatch": "4.0.9", - "@types/node": "22.15.28", + "@types/node": "22.15.31", "@types/punycode.js": "npm:@types/punycode@2.1.4", "@types/tinycolor2": "1.4.6", "@types/ws": "8.18.1", - "@typescript-eslint/eslint-plugin": "8.33.0", - "@typescript-eslint/parser": "8.33.0", - "@vitest/coverage-v8": "3.1.4", + "@typescript-eslint/eslint-plugin": "8.34.0", + "@typescript-eslint/parser": "8.34.0", + "@vitest/coverage-v8": "3.2.3", "@vue/runtime-core": "3.5.16", - "acorn": "8.14.1", + "acorn": "8.15.0", "cross-env": "7.0.3", "eslint-plugin-import": "2.31.0", - "eslint-plugin-vue": "10.1.0", + "eslint-plugin-vue": "10.2.0", "fast-glob": "3.3.3", - "happy-dom": "17.5.6", + "happy-dom": "17.6.3", "intersection-observer": "0.12.2", "micromatch": "4.0.8", - "msw": "2.8.6", + "msw": "2.10.2", "nodemon": "3.1.10", "prettier": "3.5.3", "start-server-and-test": "2.0.12", diff --git a/packages/frontend-shared/package.json b/packages/frontend-shared/package.json index 63aef63beb..bd9bbbe7b6 100644 --- a/packages/frontend-shared/package.json +++ b/packages/frontend-shared/package.json @@ -21,11 +21,11 @@ "lint": "pnpm typecheck && pnpm eslint" }, "devDependencies": { - "@types/node": "22.15.28", - "@typescript-eslint/eslint-plugin": "8.33.0", - "@typescript-eslint/parser": "8.33.0", + "@types/node": "22.15.31", + "@typescript-eslint/eslint-plugin": "8.34.0", + "@typescript-eslint/parser": "8.34.0", "esbuild": "0.25.5", - "eslint-plugin-vue": "10.1.0", + "eslint-plugin-vue": "10.2.0", "nodemon": "3.1.10", "typescript": "5.8.3", "vue-eslint-parser": "10.1.3" diff --git a/packages/frontend/package.json b/packages/frontend/package.json index a22d158756..0dbd94362b 100644 --- a/packages/frontend/package.json +++ b/packages/frontend/package.json @@ -24,7 +24,7 @@ "@rollup/plugin-json": "6.1.0", "@rollup/plugin-replace": "6.0.2", "@rollup/pluginutils": "5.1.4", - "@sentry/vue": "9.24.0", + "@sentry/vue": "9.27.0", "@syuilo/aiscript": "0.19.0", "@twemoji/parser": "15.1.1", "@vitejs/plugin-vue": "5.2.4", @@ -60,10 +60,10 @@ "misskey-reversi": "workspace:*", "photoswipe": "5.4.4", "punycode.js": "2.3.1", - "rollup": "4.41.1", + "rollup": "4.42.0", "sanitize-html": "2.17.0", - "sass": "1.89.0", - "shiki": "3.4.2", + "sass": "1.89.2", + "shiki": "3.6.0", "strict-event-emitter-types": "2.0.0", "textarea-caret": "3.1.0", "three": "0.177.0", @@ -98,36 +98,36 @@ "@storybook/types": "8.6.14", "@storybook/vue3": "8.6.14", "@storybook/vue3-vite": "8.6.14", - "@tabler/icons-webfont": "3.33.0", + "@tabler/icons-webfont": "3.34.0", "@testing-library/vue": "8.1.0", "@types/canvas-confetti": "1.9.0", - "@types/estree": "1.0.7", + "@types/estree": "1.0.8", "@types/matter-js": "0.19.8", "@types/micromatch": "4.0.9", - "@types/node": "22.15.28", + "@types/node": "22.15.31", "@types/punycode.js": "npm:@types/punycode@2.1.4", "@types/sanitize-html": "2.16.0", "@types/seedrandom": "3.0.8", "@types/throttle-debounce": "5.0.2", "@types/tinycolor2": "1.4.6", "@types/ws": "8.18.1", - "@typescript-eslint/eslint-plugin": "8.33.0", - "@typescript-eslint/parser": "8.33.0", - "@vitest/coverage-v8": "3.1.4", + "@typescript-eslint/eslint-plugin": "8.34.0", + "@typescript-eslint/parser": "8.34.0", + "@vitest/coverage-v8": "3.2.3", "@vue/compiler-core": "3.5.16", "@vue/runtime-core": "3.5.16", - "acorn": "8.14.1", + "acorn": "8.15.0", "cross-env": "7.0.3", - "cypress": "14.4.0", + "cypress": "14.4.1", "eslint-plugin-import": "2.31.0", - "eslint-plugin-vue": "10.1.0", + "eslint-plugin-vue": "10.2.0", "fast-glob": "3.3.3", - "happy-dom": "17.5.6", + "happy-dom": "17.6.3", "intersection-observer": "0.12.2", "micromatch": "4.0.8", "minimatch": "10.0.1", - "msw": "2.8.6", - "msw-storybook-addon": "2.0.4", + "msw": "2.10.2", + "msw-storybook-addon": "2.0.5", "nodemon": "3.1.10", "prettier": "3.5.3", "react": "19.1.0", @@ -137,7 +137,7 @@ "storybook": "8.6.14", "storybook-addon-misskey-theme": "github:misskey-dev/storybook-addon-misskey-theme", "vite-plugin-turbosnap": "1.0.3", - "vitest": "3.1.4", + "vitest": "3.2.3", "vitest-fetch-mock": "0.4.5", "vue-component-type-helpers": "2.2.10", "vue-eslint-parser": "10.1.3", diff --git a/packages/icons-subsetter/package.json b/packages/icons-subsetter/package.json index 0a28f9e038..9581ad4206 100644 --- a/packages/icons-subsetter/package.json +++ b/packages/icons-subsetter/package.json @@ -11,13 +11,13 @@ "lint": "pnpm typecheck && pnpm eslint" }, "devDependencies": { - "@types/node": "22.15.21", + "@types/node": "22.15.31", "@types/wawoff2": "1.0.2", - "@typescript-eslint/eslint-plugin": "8.32.1", - "@typescript-eslint/parser": "8.32.1" + "@typescript-eslint/eslint-plugin": "8.34.0", + "@typescript-eslint/parser": "8.34.0" }, "dependencies": { - "@tabler/icons-webfont": "3.33.0", + "@tabler/icons-webfont": "3.34.0", "harfbuzzjs": "0.4.7", "tiny-glob": "0.2.9", "tsx": "4.19.4", diff --git a/packages/misskey-bubble-game/package.json b/packages/misskey-bubble-game/package.json index a46e338e7b..7593a33bc1 100644 --- a/packages/misskey-bubble-game/package.json +++ b/packages/misskey-bubble-game/package.json @@ -24,9 +24,9 @@ "devDependencies": { "@types/matter-js": "0.19.8", "@types/seedrandom": "3.0.8", - "@types/node": "22.15.28", - "@typescript-eslint/eslint-plugin": "8.33.0", - "@typescript-eslint/parser": "8.33.0", + "@types/node": "22.15.31", + "@typescript-eslint/eslint-plugin": "8.34.0", + "@typescript-eslint/parser": "8.34.0", "nodemon": "3.1.10", "execa": "9.6.0", "typescript": "5.8.3", diff --git a/packages/misskey-reversi/package.json b/packages/misskey-reversi/package.json index ef0d936c37..c4a4b8bc75 100644 --- a/packages/misskey-reversi/package.json +++ b/packages/misskey-reversi/package.json @@ -22,9 +22,9 @@ "lint": "pnpm typecheck && pnpm eslint" }, "devDependencies": { - "@types/node": "22.15.28", - "@typescript-eslint/eslint-plugin": "8.33.0", - "@typescript-eslint/parser": "8.33.0", + "@types/node": "22.15.31", + "@typescript-eslint/eslint-plugin": "8.34.0", + "@typescript-eslint/parser": "8.34.0", "execa": "9.6.0", "nodemon": "3.1.10", "typescript": "5.8.3", diff --git a/packages/sw/package.json b/packages/sw/package.json index 698e2ec009..8981242acc 100644 --- a/packages/sw/package.json +++ b/packages/sw/package.json @@ -14,7 +14,7 @@ "misskey-js": "workspace:*" }, "devDependencies": { - "@typescript-eslint/parser": "8.33.0", + "@typescript-eslint/parser": "8.34.0", "@typescript/lib-webworker": "npm:@types/serviceworker@0.0.74", "eslint-plugin-import": "2.31.0", "nodemon": "3.1.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ceb05d01e3..760caa072e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -715,16 +715,16 @@ importers: version: 2024.1.0 '@rollup/plugin-json': specifier: 6.1.0 - version: 6.1.0(rollup@4.41.1) + version: 6.1.0(rollup@4.42.0) '@rollup/plugin-replace': specifier: 6.0.2 - version: 6.0.2(rollup@4.41.1) + version: 6.0.2(rollup@4.42.0) '@rollup/pluginutils': specifier: 5.1.4 - version: 5.1.4(rollup@4.41.1) + version: 5.1.4(rollup@4.42.0) '@sentry/vue': - specifier: 9.24.0 - version: 9.24.0(vue@3.5.16(typescript@5.8.3)) + specifier: 9.27.0 + version: 9.27.0(vue@3.5.16(typescript@5.8.3)) '@syuilo/aiscript': specifier: 0.19.0 version: 0.19.0 @@ -733,7 +733,7 @@ importers: version: 15.1.1 '@vitejs/plugin-vue': specifier: 5.2.4 - version: 5.2.4(vite@6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3)) + version: 5.2.4(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3)) '@vue/compiler-sfc': specifier: 3.5.16 version: 3.5.16 @@ -831,17 +831,17 @@ importers: specifier: 2.3.1 version: 2.3.1 rollup: - specifier: 4.41.1 - version: 4.41.1 + specifier: 4.42.0 + version: 4.42.0 sanitize-html: specifier: 2.17.0 version: 2.17.0 sass: - specifier: 1.89.0 - version: 1.89.0 + specifier: 1.89.2 + version: 1.89.2 shiki: - specifier: 3.4.2 - version: 3.4.2 + specifier: 3.6.0 + version: 3.6.0 strict-event-emitter-types: specifier: 2.0.0 version: 2.0.0 @@ -871,7 +871,7 @@ importers: version: 1.13.1(vue@3.5.16(typescript@5.8.3)) vite: specifier: 6.3.5 - version: 6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4) + version: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) vue: specifier: 3.5.16 version: 3.5.16(typescript@5.8.3) @@ -923,7 +923,7 @@ importers: version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.3) '@storybook/react-vite': specifier: 8.6.14 - version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.41.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4)) + version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.42.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)) '@storybook/test': specifier: 8.6.14 version: 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)) @@ -938,10 +938,10 @@ importers: version: 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vue@3.5.16(typescript@5.8.3)) '@storybook/vue3-vite': specifier: 8.6.14 - version: 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3)) + version: 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3)) '@tabler/icons-webfont': - specifier: 3.33.0 - version: 3.33.0 + specifier: 3.34.0 + version: 3.34.0 '@testing-library/vue': specifier: 8.1.0 version: 8.1.0(@vue/compiler-sfc@3.5.16)(@vue/server-renderer@3.5.16(vue@3.5.16(typescript@5.8.3)))(vue@3.5.16(typescript@5.8.3)) @@ -949,8 +949,8 @@ importers: specifier: 1.9.0 version: 1.9.0 '@types/estree': - specifier: 1.0.7 - version: 1.0.7 + specifier: 1.0.8 + version: 1.0.8 '@types/matter-js': specifier: 0.19.8 version: 0.19.8 @@ -958,8 +958,8 @@ importers: specifier: 4.0.9 version: 4.0.9 '@types/node': - specifier: 22.15.28 - version: 22.15.28 + specifier: 22.15.31 + version: 22.15.31 '@types/punycode.js': specifier: npm:@types/punycode@2.1.4 version: '@types/punycode@2.1.4' @@ -979,14 +979,14 @@ importers: specifier: 8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: 8.33.0 - version: 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) '@typescript-eslint/parser': - specifier: 8.33.0 - version: 8.33.0(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) '@vitest/coverage-v8': - specifier: 3.1.4 - version: 3.1.4(vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.28)(happy-dom@17.5.6)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.8.6(@types/node@22.15.28)(typescript@5.8.3))(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4)) + specifier: 3.2.3 + version: 3.2.3(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)) '@vue/compiler-core': specifier: 3.5.16 version: 3.5.16 @@ -994,26 +994,26 @@ importers: specifier: 3.5.16 version: 3.5.16 acorn: - specifier: 8.14.1 - version: 8.14.1 + specifier: 8.15.0 + version: 8.15.0 cross-env: specifier: 7.0.3 version: 7.0.3 cypress: - specifier: 14.4.0 - version: 14.4.0 + specifier: 14.4.1 + version: 14.4.1 eslint-plugin-import: specifier: 2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0) + version: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0) eslint-plugin-vue: - specifier: 10.1.0 - version: 10.1.0(eslint@9.27.0)(vue-eslint-parser@10.1.3(eslint@9.27.0)) + specifier: 10.2.0 + version: 10.2.0(eslint@9.27.0)(vue-eslint-parser@10.1.3(eslint@9.27.0)) fast-glob: specifier: 3.3.3 version: 3.3.3 happy-dom: - specifier: 17.5.6 - version: 17.5.6 + specifier: 17.6.3 + version: 17.6.3 intersection-observer: specifier: 0.12.2 version: 0.12.2 @@ -1024,11 +1024,11 @@ importers: specifier: 10.0.1 version: 10.0.1 msw: - specifier: 2.8.6 - version: 2.8.6(@types/node@22.15.28)(typescript@5.8.3) + specifier: 2.10.2 + version: 2.10.2(@types/node@22.15.31)(typescript@5.8.3) msw-storybook-addon: - specifier: 2.0.4 - version: 2.0.4(msw@2.8.6(@types/node@22.15.28)(typescript@5.8.3)) + specifier: 2.0.5 + version: 2.0.5(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3)) nodemon: specifier: 3.1.10 version: 3.1.10 @@ -1057,11 +1057,11 @@ importers: specifier: 1.0.3 version: 1.0.3 vitest: - specifier: 3.1.4 - version: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.28)(happy-dom@17.5.6)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.8.6(@types/node@22.15.28)(typescript@5.8.3))(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4) + specifier: 3.2.3 + version: 3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) vitest-fetch-mock: specifier: 0.4.5 - version: 0.4.5(vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.28)(happy-dom@17.5.6)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.8.6(@types/node@22.15.28)(typescript@5.8.3))(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4)) + version: 0.4.5(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)) vue-component-type-helpers: specifier: 2.2.10 version: 2.2.10 @@ -1079,19 +1079,19 @@ importers: version: 15.1.0 '@rollup/plugin-json': specifier: 6.1.0 - version: 6.1.0(rollup@4.41.1) + version: 6.1.0(rollup@4.42.0) '@rollup/plugin-replace': specifier: 6.0.2 - version: 6.0.2(rollup@4.41.1) + version: 6.0.2(rollup@4.42.0) '@rollup/pluginutils': specifier: 5.1.4 - version: 5.1.4(rollup@4.41.1) + version: 5.1.4(rollup@4.42.0) '@twemoji/parser': specifier: 15.1.1 version: 15.1.1 '@vitejs/plugin-vue': specifier: 5.2.4 - version: 5.2.4(vite@6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3)) + version: 5.2.4(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3)) '@vue/compiler-sfc': specifier: 3.5.16 version: 3.5.16 @@ -1123,14 +1123,14 @@ importers: specifier: 2.3.1 version: 2.3.1 rollup: - specifier: 4.41.1 - version: 4.41.1 + specifier: 4.42.0 + version: 4.42.0 sass: - specifier: 1.89.0 - version: 1.89.0 + specifier: 1.89.2 + version: 1.89.2 shiki: - specifier: 3.4.2 - version: 3.4.2 + specifier: 3.6.0 + version: 3.6.0 tinycolor2: specifier: 1.6.0 version: 1.6.0 @@ -1148,7 +1148,7 @@ importers: version: 11.1.0 vite: specifier: 6.3.5 - version: 6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4) + version: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) vue: specifier: 3.5.16 version: 3.5.16(typescript@5.8.3) @@ -1157,20 +1157,20 @@ importers: specifier: 5.2.1 version: 5.2.1 '@tabler/icons-webfont': - specifier: 3.33.0 - version: 3.33.0 + specifier: 3.34.0 + version: 3.34.0 '@testing-library/vue': specifier: 8.1.0 version: 8.1.0(@vue/compiler-sfc@3.5.16)(@vue/server-renderer@3.5.16(vue@3.5.16(typescript@5.8.3)))(vue@3.5.16(typescript@5.8.3)) '@types/estree': - specifier: 1.0.7 - version: 1.0.7 + specifier: 1.0.8 + version: 1.0.8 '@types/micromatch': specifier: 4.0.9 version: 4.0.9 '@types/node': - specifier: 22.15.28 - version: 22.15.28 + specifier: 22.15.31 + version: 22.15.31 '@types/punycode.js': specifier: npm:@types/punycode@2.1.4 version: '@types/punycode@2.1.4' @@ -1181,35 +1181,35 @@ importers: specifier: 8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: 8.33.0 - version: 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) '@typescript-eslint/parser': - specifier: 8.33.0 - version: 8.33.0(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) '@vitest/coverage-v8': - specifier: 3.1.4 - version: 3.1.4(vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.28)(happy-dom@17.5.6)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.8.6(@types/node@22.15.28)(typescript@5.8.3))(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4)) + specifier: 3.2.3 + version: 3.2.3(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)) '@vue/runtime-core': specifier: 3.5.16 version: 3.5.16 acorn: - specifier: 8.14.1 - version: 8.14.1 + specifier: 8.15.0 + version: 8.15.0 cross-env: specifier: 7.0.3 version: 7.0.3 eslint-plugin-import: specifier: 2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0) + version: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0) eslint-plugin-vue: - specifier: 10.1.0 - version: 10.1.0(eslint@9.27.0)(vue-eslint-parser@10.1.3(eslint@9.27.0)) + specifier: 10.2.0 + version: 10.2.0(eslint@9.27.0)(vue-eslint-parser@10.1.3(eslint@9.27.0)) fast-glob: specifier: 3.3.3 version: 3.3.3 happy-dom: - specifier: 17.5.6 - version: 17.5.6 + specifier: 17.6.3 + version: 17.6.3 intersection-observer: specifier: 0.12.2 version: 0.12.2 @@ -1217,8 +1217,8 @@ importers: specifier: 4.0.8 version: 4.0.8 msw: - specifier: 2.8.6 - version: 2.8.6(@types/node@22.15.28)(typescript@5.8.3) + specifier: 2.10.2 + version: 2.10.2(@types/node@22.15.31)(typescript@5.8.3) nodemon: specifier: 3.1.10 version: 3.1.10 @@ -1251,20 +1251,20 @@ importers: version: 3.5.16(typescript@5.8.3) devDependencies: '@types/node': - specifier: 22.15.28 - version: 22.15.28 + specifier: 22.15.31 + version: 22.15.31 '@typescript-eslint/eslint-plugin': - specifier: 8.33.0 - version: 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) '@typescript-eslint/parser': - specifier: 8.33.0 - version: 8.33.0(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) esbuild: specifier: 0.25.5 version: 0.25.5 eslint-plugin-vue: - specifier: 10.1.0 - version: 10.1.0(eslint@9.27.0)(vue-eslint-parser@10.1.3(eslint@9.27.0)) + specifier: 10.2.0 + version: 10.2.0(eslint@9.27.0)(vue-eslint-parser@10.1.3(eslint@9.27.0)) nodemon: specifier: 3.1.10 version: 3.1.10 @@ -1278,8 +1278,8 @@ importers: packages/icons-subsetter: dependencies: '@tabler/icons-webfont': - specifier: 3.33.0 - version: 3.33.0 + specifier: 3.34.0 + version: 3.34.0 harfbuzzjs: specifier: 0.4.7 version: 0.4.7 @@ -1297,17 +1297,17 @@ importers: version: 2.0.1 devDependencies: '@types/node': - specifier: 22.15.21 - version: 22.15.21 + specifier: 22.15.31 + version: 22.15.31 '@types/wawoff2': specifier: 1.0.2 version: 1.0.2 '@typescript-eslint/eslint-plugin': - specifier: 8.32.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) '@typescript-eslint/parser': - specifier: 8.32.1 - version: 8.32.1(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) packages/misskey-bubble-game: dependencies: @@ -1325,17 +1325,17 @@ importers: specifier: 0.19.8 version: 0.19.8 '@types/node': - specifier: 22.15.28 - version: 22.15.28 + specifier: 22.15.31 + version: 22.15.31 '@types/seedrandom': specifier: 3.0.8 version: 3.0.8 '@typescript-eslint/eslint-plugin': - specifier: 8.33.0 - version: 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) '@typescript-eslint/parser': - specifier: 8.33.0 - version: 8.33.0(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) esbuild: specifier: 0.25.5 version: 0.25.5 @@ -1453,14 +1453,14 @@ importers: version: 1.2.2 devDependencies: '@types/node': - specifier: 22.15.28 - version: 22.15.28 + specifier: 22.15.31 + version: 22.15.31 '@typescript-eslint/eslint-plugin': - specifier: 8.33.0 - version: 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) '@typescript-eslint/parser': - specifier: 8.33.0 - version: 8.33.0(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) esbuild: specifier: 0.25.5 version: 0.25.5 @@ -1490,14 +1490,14 @@ importers: version: link:../misskey-js devDependencies: '@typescript-eslint/parser': - specifier: 8.33.0 - version: 8.33.0(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) '@typescript/lib-webworker': specifier: npm:@types/serviceworker@0.0.74 version: '@types/serviceworker@0.0.74' eslint-plugin-import: specifier: 2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0) + version: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0) nodemon: specifier: 3.1.10 version: 3.1.10 @@ -2901,8 +2901,8 @@ packages: cpu: [x64] os: [win32] - '@mswjs/interceptors@0.38.7': - resolution: {integrity: sha512-Jkb27iSn7JPdkqlTqKfhncFfnEZsIJVYxsFbUSWEkxdIPdsyngrhoDBk0/BGD2FQcRH99vlRrkHpNTyKqI+0/w==} + '@mswjs/interceptors@0.39.2': + resolution: {integrity: sha512-RuzCup9Ct91Y7V79xwCb146RaBRHZ7NBbrIUySumd1rpKqHL5OonaqrGIbug5hNwP/fRyxFMA6ISgw4FTtYFYg==} engines: {node: '>=18'} '@napi-rs/canvas-android-arm64@0.1.70': @@ -3448,103 +3448,103 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.41.1': - resolution: {integrity: sha512-NELNvyEWZ6R9QMkiytB4/L4zSEaBC03KIXEghptLGLZWJ6VPrL63ooZQCOnlx36aQPGhzuOMwDerC1Eb2VmrLw==} + '@rollup/rollup-android-arm-eabi@4.42.0': + resolution: {integrity: sha512-gldmAyS9hpj+H6LpRNlcjQWbuKUtb94lodB9uCz71Jm+7BxK1VIOo7y62tZZwxhA7j1ylv/yQz080L5WkS+LoQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.41.1': - resolution: {integrity: sha512-DXdQe1BJ6TK47ukAoZLehRHhfKnKg9BjnQYUu9gzhI8Mwa1d2fzxA1aw2JixHVl403bwp1+/o/NhhHtxWJBgEA==} + '@rollup/rollup-android-arm64@4.42.0': + resolution: {integrity: sha512-bpRipfTgmGFdCZDFLRvIkSNO1/3RGS74aWkJJTFJBH7h3MRV4UijkaEUeOMbi9wxtxYmtAbVcnMtHTPBhLEkaw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.41.1': - resolution: {integrity: sha512-5afxvwszzdulsU2w8JKWwY8/sJOLPzf0e1bFuvcW5h9zsEg+RQAojdW0ux2zyYAz7R8HvvzKCjLNJhVq965U7w==} + '@rollup/rollup-darwin-arm64@4.42.0': + resolution: {integrity: sha512-JxHtA081izPBVCHLKnl6GEA0w3920mlJPLh89NojpU2GsBSB6ypu4erFg/Wx1qbpUbepn0jY4dVWMGZM8gplgA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.41.1': - resolution: {integrity: sha512-egpJACny8QOdHNNMZKf8xY0Is6gIMz+tuqXlusxquWu3F833DcMwmGM7WlvCO9sB3OsPjdC4U0wHw5FabzCGZg==} + '@rollup/rollup-darwin-x64@4.42.0': + resolution: {integrity: sha512-rv5UZaWVIJTDMyQ3dCEK+m0SAn6G7H3PRc2AZmExvbDvtaDc+qXkei0knQWcI3+c9tEs7iL/4I4pTQoPbNL2SA==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.41.1': - resolution: {integrity: sha512-DBVMZH5vbjgRk3r0OzgjS38z+atlupJ7xfKIDJdZZL6sM6wjfDNo64aowcLPKIx7LMQi8vybB56uh1Ftck/Atg==} + '@rollup/rollup-freebsd-arm64@4.42.0': + resolution: {integrity: sha512-fJcN4uSGPWdpVmvLuMtALUFwCHgb2XiQjuECkHT3lWLZhSQ3MBQ9pq+WoWeJq2PrNxr9rPM1Qx+IjyGj8/c6zQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.41.1': - resolution: {integrity: sha512-3FkydeohozEskBxNWEIbPfOE0aqQgB6ttTkJ159uWOFn42VLyfAiyD9UK5mhu+ItWzft60DycIN1Xdgiy8o/SA==} + '@rollup/rollup-freebsd-x64@4.42.0': + resolution: {integrity: sha512-CziHfyzpp8hJpCVE/ZdTizw58gr+m7Y2Xq5VOuCSrZR++th2xWAz4Nqk52MoIIrV3JHtVBhbBsJcAxs6NammOQ==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.41.1': - resolution: {integrity: sha512-wC53ZNDgt0pqx5xCAgNunkTzFE8GTgdZ9EwYGVcg+jEjJdZGtq9xPjDnFgfFozQI/Xm1mh+D9YlYtl+ueswNEg==} + '@rollup/rollup-linux-arm-gnueabihf@4.42.0': + resolution: {integrity: sha512-UsQD5fyLWm2Fe5CDM7VPYAo+UC7+2Px4Y+N3AcPh/LdZu23YcuGPegQly++XEVaC8XUTFVPscl5y5Cl1twEI4A==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.41.1': - resolution: {integrity: sha512-jwKCca1gbZkZLhLRtsrka5N8sFAaxrGz/7wRJ8Wwvq3jug7toO21vWlViihG85ei7uJTpzbXZRcORotE+xyrLA==} + '@rollup/rollup-linux-arm-musleabihf@4.42.0': + resolution: {integrity: sha512-/i8NIrlgc/+4n1lnoWl1zgH7Uo0XK5xK3EDqVTf38KvyYgCU/Rm04+o1VvvzJZnVS5/cWSd07owkzcVasgfIkQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.41.1': - resolution: {integrity: sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA==} + '@rollup/rollup-linux-arm64-gnu@4.42.0': + resolution: {integrity: sha512-eoujJFOvoIBjZEi9hJnXAbWg+Vo1Ov8n/0IKZZcPZ7JhBzxh2A+2NFyeMZIRkY9iwBvSjloKgcvnjTbGKHE44Q==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.41.1': - resolution: {integrity: sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg==} + '@rollup/rollup-linux-arm64-musl@4.42.0': + resolution: {integrity: sha512-/3NrcOWFSR7RQUQIuZQChLND36aTU9IYE4j+TB40VU78S+RA0IiqHR30oSh6P1S9f9/wVOenHQnacs/Byb824g==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.41.1': - resolution: {integrity: sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw==} + '@rollup/rollup-linux-loongarch64-gnu@4.42.0': + resolution: {integrity: sha512-O8AplvIeavK5ABmZlKBq9/STdZlnQo7Sle0LLhVA7QT+CiGpNVe197/t8Aph9bhJqbDVGCHpY2i7QyfEDDStDg==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.41.1': - resolution: {integrity: sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A==} + '@rollup/rollup-linux-powerpc64le-gnu@4.42.0': + resolution: {integrity: sha512-6Qb66tbKVN7VyQrekhEzbHRxXXFFD8QKiFAwX5v9Xt6FiJ3BnCVBuyBxa2fkFGqxOCSGGYNejxd8ht+q5SnmtA==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.41.1': - resolution: {integrity: sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw==} + '@rollup/rollup-linux-riscv64-gnu@4.42.0': + resolution: {integrity: sha512-KQETDSEBamQFvg/d8jajtRwLNBlGc3aKpaGiP/LvEbnmVUKlFta1vqJqTrvPtsYsfbE/DLg5CC9zyXRX3fnBiA==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.41.1': - resolution: {integrity: sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw==} + '@rollup/rollup-linux-riscv64-musl@4.42.0': + resolution: {integrity: sha512-qMvnyjcU37sCo/tuC+JqeDKSuukGAd+pVlRl/oyDbkvPJ3awk6G6ua7tyum02O3lI+fio+eM5wsVd66X0jQtxw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.41.1': - resolution: {integrity: sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g==} + '@rollup/rollup-linux-s390x-gnu@4.42.0': + resolution: {integrity: sha512-I2Y1ZUgTgU2RLddUHXTIgyrdOwljjkmcZ/VilvaEumtS3Fkuhbw4p4hgHc39Ypwvo2o7sBFNl2MquNvGCa55Iw==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.41.1': - resolution: {integrity: sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A==} + '@rollup/rollup-linux-x64-gnu@4.42.0': + resolution: {integrity: sha512-Gfm6cV6mj3hCUY8TqWa63DB8Mx3NADoFwiJrMpoZ1uESbK8FQV3LXkhfry+8bOniq9pqY1OdsjFWNsSbfjPugw==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.41.1': - resolution: {integrity: sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ==} + '@rollup/rollup-linux-x64-musl@4.42.0': + resolution: {integrity: sha512-g86PF8YZ9GRqkdi0VoGlcDUb4rYtQKyTD1IVtxxN4Hpe7YqLBShA7oHMKU6oKTCi3uxwW4VkIGnOaH/El8de3w==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.41.1': - resolution: {integrity: sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ==} + '@rollup/rollup-win32-arm64-msvc@4.42.0': + resolution: {integrity: sha512-+axkdyDGSp6hjyzQ5m1pgcvQScfHnMCcsXkx8pTgy/6qBmWVhtRVlgxjWwDp67wEXXUr0x+vD6tp5W4x6V7u1A==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.41.1': - resolution: {integrity: sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg==} + '@rollup/rollup-win32-ia32-msvc@4.42.0': + resolution: {integrity: sha512-F+5J9pelstXKwRSDq92J0TEBXn2nfUrQGg+HK1+Tk7VOL09e0gBqUHugZv7SW4MGrYj41oNCUe3IKCDGVlis2g==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.41.1': - resolution: {integrity: sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw==} + '@rollup/rollup-win32-x64-msvc@4.42.0': + resolution: {integrity: sha512-LpHiJRwkaVz/LqjHjK8LCi8osq7elmpwujwbXKNW88bM8eeGxavJIKKjkjpMHAh/2xfnrt1ZSnhTv41WYUHYmA==} cpu: [x64] os: [win32] @@ -3580,40 +3580,40 @@ packages: resolution: {integrity: sha512-Ou1tBnVxFAIn8i9gvrWzRotNJQYiu3awNXpsFCw6qFwmiKAVPa6b13vCdolhXnrIiuR77jY1LQnKh9hXpoRzsg==} engines: {node: '>=18'} - '@sentry-internal/browser-utils@9.24.0': - resolution: {integrity: sha512-fWIrHyui8KKufnbqhGyDvvr+u9wiOEEzxXEjs/CKp+6fa+jej6Mk8K+su1f/mz7R3HVzhxvht/gZ+y193uK4qw==} + '@sentry-internal/browser-utils@9.27.0': + resolution: {integrity: sha512-SJa7f6Ct1BzP8rWEomnshSGN1CmT+axNKvT+StrbFPD6AyHnYfFLJpKgc2iToIJHB/pmeuOI9dUwqtzVx+5nSw==} engines: {node: '>=18'} '@sentry-internal/feedback@9.22.0': resolution: {integrity: sha512-zgMVkoC61fgi41zLcSZA59vOtKxcLrKBo1ECYhPD1hxEaneNqY5fhXDwlQBw96P5l2yqkgfX6YZtSdU4ejI9yA==} engines: {node: '>=18'} - '@sentry-internal/feedback@9.24.0': - resolution: {integrity: sha512-Z9jQqKzRppwAEqiytLWNV8JOo52vlxcSGz52FjKx3KXG75PXwk0M3sBXh762WoGLisUIRLTp8LOk6304L/O8dg==} + '@sentry-internal/feedback@9.27.0': + resolution: {integrity: sha512-e7L8eG0y63RulN352lmafoCCfQGg4jLVT8YLx6096eWu/YKLkgmVpgi8livsT5WREnH+HB+iFSrejOwK7cRkhw==} engines: {node: '>=18'} '@sentry-internal/replay-canvas@9.22.0': resolution: {integrity: sha512-EcG9IMSEalFe49kowBTJObWjof/iHteDwpyuAszsFDdQUYATrVUtwpwN7o52vDYWJud4arhjrQnMamIGxa79eQ==} engines: {node: '>=18'} - '@sentry-internal/replay-canvas@9.24.0': - resolution: {integrity: sha512-506RdDF6iE8hMyzpzp9Vc0GM7kELxxs7UCoi/6KpvXFftcydWI3S2bru8dEZsxVoKh2hdle6SpbNgl+iPI0DSQ==} + '@sentry-internal/replay-canvas@9.27.0': + resolution: {integrity: sha512-44rVSt3LCH6qePYRQrl4WUBwnkOk9dzinmnKmuwRksEdDOkVq5KBRhi/IDr7omwSpX8C+KrX5alfKhOx1cP0gQ==} engines: {node: '>=18'} '@sentry-internal/replay@9.22.0': resolution: {integrity: sha512-9GOycoKbrclcRXfcbNV8svbmAsOS5R4wXBQmKF4pFLkmFA/lJv9kdZSNYkRvkrxdNfbMIJXP+DV9EqTZcryXig==} engines: {node: '>=18'} - '@sentry-internal/replay@9.24.0': - resolution: {integrity: sha512-312wMPeQI8K2vO/lA/CF6Uv5UReoZC7RarsNUJEoOKa9Bq1BXWUq929oTHzu/2NDv194H2u3eqSGsSp6xiuKTw==} + '@sentry-internal/replay@9.27.0': + resolution: {integrity: sha512-n2kO1wOfCG7GxkMAqbYYkpgTqJM5tuVLdp0JuNCqTOLTXWvw6svWGaYKlYpKUgsK9X/GDzJYSXZmfe+Dbg+FJQ==} engines: {node: '>=18'} '@sentry/browser@9.22.0': resolution: {integrity: sha512-3TeRm74dvX0JdjX0AgkQa+22iUHwHnY+Q6M05NZ+tDeCNHGK/mEBTeqquS1oQX67jWyuvYmG3VV6RJUxtG9Paw==} engines: {node: '>=18'} - '@sentry/browser@9.24.0': - resolution: {integrity: sha512-RP+27/owvIqD4J0TibIHK1UcA7iObxLOXBEilDKjaJOZMLhv3JkpU8A+UI9pFzEYqeIGVDDaBzYgbCHrLWcoCA==} + '@sentry/browser@9.27.0': + resolution: {integrity: sha512-geR3lhRJOmUQqi1WgovLSYcD/f66zYnctdnDEa7j1BW2XIB1nlTJn0mpYyAHghXKkUN/pBpp1Z+Jk0XlVwFYVg==} engines: {node: '>=18'} '@sentry/core@8.55.0': @@ -3624,8 +3624,8 @@ packages: resolution: {integrity: sha512-ixvtKmPF42Y6ckGUbFlB54OWI75H2gO5UYHojO6eXFpS7xO3ZGgV/QH6wb40mWK+0w5XZ0233FuU9VpsuE6mKA==} engines: {node: '>=18'} - '@sentry/core@9.24.0': - resolution: {integrity: sha512-uRWrB4Y49ZOWcDLCXqdjd2Fs6Onill0GQI+JgXMw7wa+i03+QRiQvUAUyde8O62jR4dvP3GDo9PDWnDNhi3z5A==} + '@sentry/core@9.27.0': + resolution: {integrity: sha512-Zb2SSAdWXQjTem+sVWrrAq9L6YYfxyoTwtapaE6C6qZBR5C8Uak0wcYww8StaCFH7dDA/PSW+VxOwjNXocrQHQ==} engines: {node: '>=18'} '@sentry/node@8.55.0': @@ -3658,8 +3658,8 @@ packages: pinia: optional: true - '@sentry/vue@9.24.0': - resolution: {integrity: sha512-FreIN5w9257U41imU8f2j+ix67s8MmZld9xhbA4nqCZDuW6m/fQtha+IdUNpcNYm6z+JsstGnPKdcPBJtDvTiA==} + '@sentry/vue@9.27.0': + resolution: {integrity: sha512-LeoxSCDtynAA89tcUD3r1JblCwFjzByID9O0y1JkMU1UlVL08vbV9fNSfEhJ66WdvBo5KPTRn5ScHLUOoae/WA==} engines: {node: '>=18'} peerDependencies: pinia: 2.x || 3.x @@ -3668,23 +3668,23 @@ packages: pinia: optional: true - '@shikijs/core@3.4.2': - resolution: {integrity: sha512-AG8vnSi1W2pbgR2B911EfGqtLE9c4hQBYkv/x7Z+Kt0VxhgQKcW7UNDVYsu9YxwV6u+OJrvdJrMq6DNWoBjihQ==} + '@shikijs/core@3.6.0': + resolution: {integrity: sha512-9By7Xb3olEX0o6UeJyPLI1PE1scC4d3wcVepvtv2xbuN9/IThYN4Wcwh24rcFeASzPam11MCq8yQpwwzCgSBRw==} - '@shikijs/engine-javascript@3.4.2': - resolution: {integrity: sha512-1/adJbSMBOkpScCE/SB6XkjJU17ANln3Wky7lOmrnpl+zBdQ1qXUJg2GXTYVHRq+2j3hd1DesmElTXYDgtfSOQ==} + '@shikijs/engine-javascript@3.6.0': + resolution: {integrity: sha512-7YnLhZG/TU05IHMG14QaLvTW/9WiK8SEYafceccHUSXs2Qr5vJibUwsDfXDLmRi0zHdzsxrGKpSX6hnqe0k8nA==} - '@shikijs/engine-oniguruma@3.4.2': - resolution: {integrity: sha512-zcZKMnNndgRa3ORja6Iemsr3DrLtkX3cAF7lTJkdMB6v9alhlBsX9uNiCpqofNrXOvpA3h6lHcLJxgCIhVOU5Q==} + '@shikijs/engine-oniguruma@3.6.0': + resolution: {integrity: sha512-nmOhIZ9yT3Grd+2plmW/d8+vZ2pcQmo/UnVwXMUXAKTXdi+LK0S08Ancrz5tQQPkxvjBalpMW2aKvwXfelauvA==} - '@shikijs/langs@3.4.2': - resolution: {integrity: sha512-H6azIAM+OXD98yztIfs/KH5H4PU39t+SREhmM8LaNXyUrqj2mx+zVkr8MWYqjceSjDw9I1jawm1WdFqU806rMA==} + '@shikijs/langs@3.6.0': + resolution: {integrity: sha512-IdZkQJaLBu1LCYCwkr30hNuSDfllOT8RWYVZK1tD2J03DkiagYKRxj/pDSl8Didml3xxuyzUjgtioInwEQM/TA==} - '@shikijs/themes@3.4.2': - resolution: {integrity: sha512-qAEuAQh+brd8Jyej2UDDf+b4V2g1Rm8aBIdvt32XhDPrHvDkEnpb7Kzc9hSuHUxz0Iuflmq7elaDuQAP9bHIhg==} + '@shikijs/themes@3.6.0': + resolution: {integrity: sha512-Fq2j4nWr1DF4drvmhqKq8x5vVQ27VncF8XZMBuHuQMZvUSS3NBgpqfwz/FoGe36+W6PvniZ1yDlg2d4kmYDU6w==} - '@shikijs/types@3.4.2': - resolution: {integrity: sha512-zHC1l7L+eQlDXLnxvM9R91Efh2V4+rN3oMVS2swCBssbj2U/FBwybD1eeLaq8yl/iwT+zih8iUbTBCgGZOYlVg==} + '@shikijs/types@3.6.0': + resolution: {integrity: sha512-cLWFiToxYu0aAzJqhXTQsFiJRTFDAGl93IrMSBNaGSzs7ixkLfdG6pH11HipuWFGW5vyx4X47W8HDQ7eSrmBUg==} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -4312,11 +4312,11 @@ packages: resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} - '@tabler/icons-webfont@3.33.0': - resolution: {integrity: sha512-mM9ol+UpGpYMfZDv7o9mN4dZnqfv2G13JZ5QrfHGlAWD0hHQvQYDzmQ2ste9JTbw7373yK4HFDGlPl8ixJY+Aw==} + '@tabler/icons-webfont@3.34.0': + resolution: {integrity: sha512-ft2oePnW2YTXZtHWdgnlNtFqRbhwnizPdaE1393qXfb1xS+d2K79cN7//IkGbnpttA3p5EJG6C6F3Ar60L1bhw==} - '@tabler/icons@3.33.0': - resolution: {integrity: sha512-NZeFfzcYe7xcBHR3zKoCSrw/cFWvfj6LjenPQ48yVMTGdX854HH9nH44ZfMH8rrDzHBllfjwl4CIX6Vh2tyN0Q==} + '@tabler/icons@3.34.0': + resolution: {integrity: sha512-jtVqv0JC1WU2TTEBN32D9+R6mc1iEBuPwLnBsWaR02SIEciu9aq5806AWkCHuObhQ4ERhhXErLEK7Fs+tEZxiA==} '@tensorflow/tfjs-backend-cpu@4.22.0': resolution: {integrity: sha512-1u0FmuLGuRAi8D2c3cocHTASGXOmHc/4OvoVDENJayjYkS119fcTcQf4iHrtLthWyDIPy3JiPhRrZQC9EwnhLw==} @@ -4446,6 +4446,9 @@ packages: '@types/canvas-confetti@1.9.0': resolution: {integrity: sha512-aBGj/dULrimR1XDZLtG9JwxX1b4HPRF6CX9Yfwh3NvstZEm1ZL7RBnel4keCPSqs1ANRu1u2Aoz9R+VmtjYuTg==} + '@types/chai@5.2.2': + resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} + '@types/color-convert@2.0.4': resolution: {integrity: sha512-Ub1MmDdyZ7mX//g25uBAoH/mWGd9swVbt8BseymnaE18SU4po/PjmCrHxqIIRjBo3hV/vh1KGr0eMxUhp+t+dQ==} @@ -4467,6 +4470,9 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + '@types/disposable-email-domains@1.0.2': resolution: {integrity: sha512-SDKwyYTjk3y5aZBxxc38yRecpJPjsqn57STz1bNxYYlv4k11bBe7QB8w4llXDTmQXKT1mFvgGmJv+8Zdu3YmJw==} @@ -4482,6 +4488,9 @@ packages: '@types/estree@1.0.7': resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/express-serve-static-core@4.17.33': resolution: {integrity: sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==} @@ -4578,8 +4587,8 @@ packages: '@types/node@22.15.21': resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} - '@types/node@22.15.28': - resolution: {integrity: sha512-I0okKVDmyKR281I0UIFV7EWAWRnR0gkuSKob5wVcByyyhr7Px/slhkQapcYX4u00ekzNWaS1gznKZnuzxwo4pw==} + '@types/node@22.15.31': + resolution: {integrity: sha512-jnVe5ULKl6tijxUhvQeNbQG/84fHfg+yMak02cT8QVhBx/F05rAVxCGBYYTh2EKz22D6JF5ktXuNwdx7b9iEGw==} '@types/nodemailer@6.4.17': resolution: {integrity: sha512-I9CCaIp6DTldEg7vyUTZi8+9Vo0hi1/T8gv3C89yk1rSAAzoKQ8H8ki/jBYJSFoH/BisgLP8tkZMlQ91CIquww==} @@ -4751,11 +4760,11 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/eslint-plugin@8.33.0': - resolution: {integrity: sha512-CACyQuqSHt7ma3Ns601xykeBK/rDeZa3w6IS6UtMQbixO5DWy+8TilKkviGDH6jtWCo8FGRKEK5cLLkPvEammQ==} + '@typescript-eslint/eslint-plugin@8.34.0': + resolution: {integrity: sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.33.0 + '@typescript-eslint/parser': ^8.34.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' @@ -4766,8 +4775,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.33.0': - resolution: {integrity: sha512-JaehZvf6m0yqYp34+RVnihBAChkqeH+tqqhS0GuX1qgPpwLvmTPheKEs6OeCK6hVJgXZHJ2vbjnC9j119auStQ==} + '@typescript-eslint/parser@8.34.0': + resolution: {integrity: sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -4777,6 +4786,12 @@ packages: resolution: {integrity: sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/project-service@8.34.0': + resolution: {integrity: sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/scope-manager@8.32.1': resolution: {integrity: sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4785,12 +4800,22 @@ packages: resolution: {integrity: sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.34.0': + resolution: {integrity: sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/tsconfig-utils@8.33.0': resolution: {integrity: sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/tsconfig-utils@8.34.0': + resolution: {integrity: sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/type-utils@8.32.1': resolution: {integrity: sha512-mv9YpQGA8iIsl5KyUPi+FGLm7+bA4fgXaeRcFKRDRwDMu4iwrSHeDPipwueNXhdIIZltwCJv+NkxftECbIZWfA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4798,8 +4823,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.33.0': - resolution: {integrity: sha512-lScnHNCBqL1QayuSrWeqAL5GmqNdVUQAAMTaCwdYEdWfIrSrOGzyLGRCHXcCixa5NK6i5l0AfSO2oBSjCjf4XQ==} + '@typescript-eslint/type-utils@8.34.0': + resolution: {integrity: sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -4813,6 +4838,10 @@ packages: resolution: {integrity: sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.34.0': + resolution: {integrity: sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.32.1': resolution: {integrity: sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4825,6 +4854,12 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/typescript-estree@8.34.0': + resolution: {integrity: sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/utils@8.32.1': resolution: {integrity: sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4839,6 +4874,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/utils@8.34.0': + resolution: {integrity: sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/visitor-keys@8.32.1': resolution: {integrity: sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4847,6 +4889,10 @@ packages: resolution: {integrity: sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.34.0': + resolution: {integrity: sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} @@ -4857,11 +4903,11 @@ packages: vite: ^5.0.0 || ^6.0.0 vue: ^3.2.25 - '@vitest/coverage-v8@3.1.4': - resolution: {integrity: sha512-G4p6OtioySL+hPV7Y6JHlhpsODbJzt1ndwHAFkyk6vVjpK03PFsKnauZIzcd0PrK4zAbc5lc+jeZ+eNGiMA+iw==} + '@vitest/coverage-v8@3.2.3': + resolution: {integrity: sha512-D1QKzngg8PcDoCE8FHSZhREDuEy+zcKmMiMafYse41RZpBE5EDJyKOTdqK3RQfsV2S2nyKor5KCs8PyPRFqKPg==} peerDependencies: - '@vitest/browser': 3.1.4 - vitest: 3.1.4 + '@vitest/browser': 3.2.3 + vitest: 3.2.3 peerDependenciesMeta: '@vitest/browser': optional: true @@ -4869,14 +4915,14 @@ packages: '@vitest/expect@2.0.5': resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} - '@vitest/expect@3.1.4': - resolution: {integrity: sha512-xkD/ljeliyaClDYqHPNCiJ0plY5YIcM0OlRiZizLhlPmpXWpxnGMyTZXOHFhFeG7w9P5PBeL4IdtJ/HeQwTbQA==} + '@vitest/expect@3.2.3': + resolution: {integrity: sha512-W2RH2TPWVHA1o7UmaFKISPvdicFJH+mjykctJFoAkUw+SPTJTGjUNdKscFBrqM7IPnCVu6zihtKYa7TkZS1dkQ==} - '@vitest/mocker@3.1.4': - resolution: {integrity: sha512-8IJ3CvwtSw/EFXqWFL8aCMu+YyYXG2WUSrQbViOZkWTKTVicVwZ/YiEZDSqD00kX+v/+W+OnxhNWoeVKorHygA==} + '@vitest/mocker@3.2.3': + resolution: {integrity: sha512-cP6fIun+Zx8he4rbWvi+Oya6goKQDZK+Yq4hhlggwQBbrlOQ4qtZ+G4nxB6ZnzI9lyIb+JnvyiJnPC2AGbKSPA==} peerDependencies: msw: ^2.4.9 - vite: ^5.0.0 || ^6.0.0 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 peerDependenciesMeta: msw: optional: true @@ -4889,20 +4935,20 @@ packages: '@vitest/pretty-format@2.1.1': resolution: {integrity: sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==} - '@vitest/pretty-format@3.1.4': - resolution: {integrity: sha512-cqv9H9GvAEoTaoq+cYqUTCGscUjKqlJZC7PRwY5FMySVj5J+xOm1KQcCiYHJOEzOKRUhLH4R2pTwvFlWCEScsg==} + '@vitest/pretty-format@3.2.3': + resolution: {integrity: sha512-yFglXGkr9hW/yEXngO+IKMhP0jxyFw2/qys/CK4fFUZnSltD+MU7dVYGrH8rvPcK/O6feXQA+EU33gjaBBbAng==} - '@vitest/runner@3.1.4': - resolution: {integrity: sha512-djTeF1/vt985I/wpKVFBMWUlk/I7mb5hmD5oP8K9ACRmVXgKTae3TUOtXAEBfslNKPzUQvnKhNd34nnRSYgLNQ==} + '@vitest/runner@3.2.3': + resolution: {integrity: sha512-83HWYisT3IpMaU9LN+VN+/nLHVBCSIUKJzGxC5RWUOsK1h3USg7ojL+UXQR3b4o4UBIWCYdD2fxuzM7PQQ1u8w==} - '@vitest/snapshot@3.1.4': - resolution: {integrity: sha512-JPHf68DvuO7vilmvwdPr9TS0SuuIzHvxeaCkxYcCD4jTk67XwL45ZhEHFKIuCm8CYstgI6LZ4XbwD6ANrwMpFg==} + '@vitest/snapshot@3.2.3': + resolution: {integrity: sha512-9gIVWx2+tysDqUmmM1L0hwadyumqssOL1r8KJipwLx5JVYyxvVRfxvMq7DaWbZZsCqZnu/dZedaZQh4iYTtneA==} '@vitest/spy@2.0.5': resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} - '@vitest/spy@3.1.4': - resolution: {integrity: sha512-Xg1bXhu+vtPXIodYN369M86K8shGLouNjoVI78g8iAq2rFoHFdajNvJJ5A/9bPMFcfQqdaCpOgWKEoMQg/s0Yg==} + '@vitest/spy@3.2.3': + resolution: {integrity: sha512-JHu9Wl+7bf6FEejTCREy+DmgWe+rQKbK+y32C/k5f4TBIAlijhJbRBIRIOCEpVevgRsCQR2iHRUH2/qKVM/plw==} '@vitest/utils@2.0.5': resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} @@ -4910,8 +4956,8 @@ packages: '@vitest/utils@2.1.1': resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==} - '@vitest/utils@3.1.4': - resolution: {integrity: sha512-yriMuO1cfFhmiGc8ataN51+9ooHRuURdfAZfwFd3usWynjzpLslZdYnRegTv32qdgtJTsj15FoeZe2g15fY1gg==} + '@vitest/utils@3.2.3': + resolution: {integrity: sha512-4zFBCU5Pf+4Z6v+rwnZ1HU1yzOKKvDkMXZrymE2PBlbjKJRlrOxbvpfPSvJTGRIwGoahaOGvp+kbCoxifhzJ1Q==} '@volar/language-core@2.2.0': resolution: {integrity: sha512-a8WG9+4OdeNDW4ywABZIM6S6UN7em8uIlM/BZ2pWQUYrVmX+m8sj/X+QadvO+Li/t/LjAqbWJQtVgxdpEWLALQ==} @@ -5073,8 +5119,8 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.14.1: - resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} hasBin: true @@ -5296,6 +5342,9 @@ packages: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} + ast-v8-to-istanbul@0.3.3: + resolution: {integrity: sha512-MuXMrSLVVoA6sYN/6Hke18vMzrT4TZNbZIj/hvh0fnYFpO+/kFXcLIaiPwXXWaQUPg4yJD8fj+lfJ7/1EBconw==} + astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} @@ -5999,6 +6048,11 @@ packages: engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true + cypress@14.4.1: + resolution: {integrity: sha512-YSGvVXtTqSGRTyHbaxHI5dHU/9xc5ymaTIM4BU85GKhj980y6XgA3fShSpj5DatS8knXMsAvYItQxVQFHGpUtw==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + dashdash@1.14.1: resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} engines: {node: '>=0.10'} @@ -6454,8 +6508,8 @@ packages: '@typescript-eslint/parser': optional: true - eslint-plugin-vue@10.1.0: - resolution: {integrity: sha512-/VTiJ1eSfNLw6lvG9ENySbGmcVvz6wZ9nA7ZqXlLBY2RkaF15iViYKxglWiIch12KiLAj0j1iXPYU6W4wTROFA==} + eslint-plugin-vue@10.2.0: + resolution: {integrity: sha512-tl9s+KN3z0hN2b8fV2xSs5ytGl7Esk1oSCxULLwFcdaElhZ8btYYZFrWxvh4En+czrSDtuLCeCOGa8HhEZuBdQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7016,9 +7070,9 @@ packages: resolution: {integrity: sha512-n0QrmT9lD81rbpKsyhnlz3DgnMZlaOkJPpgi746doA+HvaMC79bdWkwjrNnGJRvDrWTI8iOcJiVTJ5CdT/AZRw==} engines: {node: '>=18.0.0'} - happy-dom@17.5.6: - resolution: {integrity: sha512-B4U6jKuiizwCJ2WP0YreQmRdeBrHKOXhpz7YUbbwdSAKfWEhdG4UfWZOZTZ5Oejs/9yJtk7xmbfp8YdVL9LVFA==} - engines: {node: '>=18.0.0'} + happy-dom@17.6.3: + resolution: {integrity: sha512-UVIHeVhxmxedbWPCfgS55Jg2rDfwf2BCKeylcPSqazLz5w3Kri7Q4xdBJubsr/+VUzFLh0VjIvh13RaDA2/Xug==} + engines: {node: '>=20.0.0'} hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} @@ -7692,6 +7746,9 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -8336,13 +8393,13 @@ packages: msgpackr@1.11.2: resolution: {integrity: sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==} - msw-storybook-addon@2.0.4: - resolution: {integrity: sha512-rstO8+r01sRMg6PPP7OxM8LG5/6r4+wmp2uapHeHvm9TQQRHvpPXOU/Y9/Somysz8Oi4Ea1aummXH3JlnP2LIA==} + msw-storybook-addon@2.0.5: + resolution: {integrity: sha512-uum2gtprDBoUb8GV/rPMwPytHmB8+AUr25BQUY0MpjYey5/ujaew2Edt+4oHiXpLTd0ThyMqmEvGy/sRpDV4lg==} peerDependencies: msw: ^2.0.0 - msw@2.8.6: - resolution: {integrity: sha512-fpwS5PnENnf7q7VF2ev00yfzmNXW78McKNgyaHaXQgz7p9pV8b2qQx1FoI0QA4BOxaVGBB6zBQUV4QWaK3G40g==} + msw@2.10.2: + resolution: {integrity: sha512-RCKM6IZseZQCWcSWlutdf590M8nVfRHG1ImwzOtwz8IYxgT4zhUO0rfTcTvDGiaFE0Rhcc+h43lcF3Jc9gFtwQ==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -9586,8 +9643,8 @@ packages: resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true - rollup@4.41.1: - resolution: {integrity: sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw==} + rollup@4.42.0: + resolution: {integrity: sha512-LW+Vse3BJPyGJGAJt1j8pWDKPd73QM8cRXYK1IxOBgL2AGLu7Xd2YOW0M2sLUBCkF5MshXXtMApyEAEzMVMsnw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -9630,8 +9687,8 @@ packages: sanitize-html@2.17.0: resolution: {integrity: sha512-dLAADUSS8rBwhaevT12yCezvioCA+bmUTPH/u57xKPT8d++voeYE6HeluA/bPbQ15TwDBG2ii+QZIEmYx8VdxA==} - sass@1.89.0: - resolution: {integrity: sha512-ld+kQU8YTdGNjOLfRWBzewJpU5cwEv/h5yyqlSeJcj6Yh8U4TDA9UA5FPicqDz/xgRPWRSYIQNiFks21TbA9KQ==} + sass@1.89.2: + resolution: {integrity: sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==} engines: {node: '>=14.0.0'} hasBin: true @@ -9735,8 +9792,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@3.4.2: - resolution: {integrity: sha512-wuxzZzQG8kvZndD7nustrNFIKYJ1jJoWIPaBpVe2+KHSvtzMi4SBjOxrigs8qeqce/l3U0cwiC+VAkLKSunHQQ==} + shiki@3.6.0: + resolution: {integrity: sha512-tKn/Y0MGBTffQoklaATXmTqDU02zx8NYBGQ+F6gy87/YjKbizcLd+Cybh/0ZtOBX9r1NEnAy/GTRDKtOsc1L9w==} shimmer@1.2.1: resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} @@ -10132,6 +10189,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-literal@3.0.0: + resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} + strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} @@ -10275,8 +10335,12 @@ packages: resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} engines: {node: '>=12.0.0'} - tinypool@1.0.2: - resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + engines: {node: '>=12.0.0'} + + tinypool@1.1.0: + resolution: {integrity: sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==} engines: {node: ^18.0.0 || >=20.0.0} tinyrainbow@1.2.0: @@ -10291,6 +10355,10 @@ packages: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} + tinyspy@4.0.3: + resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==} + engines: {node: '>=14.0.0'} + tldts-core@6.1.61: resolution: {integrity: sha512-In7VffkDWUPgwa+c9picLUxvb0RltVwTkSgMNFgvlGSWveCzGBemBqTsgJCL4EDFWZ6WH0fKTsot6yNhzy3ZzQ==} @@ -10705,8 +10773,8 @@ packages: vfile@6.0.1: resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} - vite-node@3.1.4: - resolution: {integrity: sha512-6enNwYnpyDo4hEgytbmc6mYWHXDHYEn0D1/rw4Q+tnHUGtKTJsn8T1YkX6Q18wI5LCrS8CTYlBaiCqxOy2kvUA==} + vite-node@3.2.3: + resolution: {integrity: sha512-gc8aAifGuDIpZHrPjuHyP4dpQmYXqWw7D1GmDnWeNWP654UEXzVfQ5IHPSK5HaHkwB/+p1atpYpSdw/2kOv8iQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true @@ -10759,16 +10827,16 @@ packages: peerDependencies: vitest: '>=2.0.0' - vitest@3.1.4: - resolution: {integrity: sha512-Ta56rT7uWxCSJXlBtKgIlApJnT6e6IGmTYxYcmxjJ4ujuZDI59GUQgVDObXXJujOmPDBYXHK1qmaGtneu6TNIQ==} + vitest@3.2.3: + resolution: {integrity: sha512-E6U2ZFXe3N/t4f5BwUaVCKRLHqUpk1CBWeMh78UT4VaTPH/2dyvH6ALl29JTovEPu9dVKr/K/J4PkXgrMbw4Ww==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/debug': ^4.1.12 '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.1.4 - '@vitest/ui': 3.1.4 + '@vitest/browser': 3.2.3 + '@vitest/ui': 3.2.3 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -11664,10 +11732,10 @@ snapshots: '@babel/helper-compilation-targets': 7.24.7 '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) '@babel/helpers': 7.24.7 - '@babel/parser': 7.25.6 + '@babel/parser': 7.27.2 '@babel/template': 7.24.7 '@babel/traverse': 7.24.7 - '@babel/types': 7.25.6 + '@babel/types': 7.27.1 convert-source-map: 2.0.0 debug: 4.4.1(supports-color@10.0.0) gensync: 1.0.0-beta.2 @@ -11678,7 +11746,7 @@ snapshots: '@babel/generator@7.24.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.27.1 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 @@ -11693,21 +11761,21 @@ snapshots: '@babel/helper-environment-visitor@7.24.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.27.1 '@babel/helper-function-name@7.24.7': dependencies: '@babel/template': 7.24.7 - '@babel/types': 7.25.6 + '@babel/types': 7.27.1 '@babel/helper-hoist-variables@7.24.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.27.1 '@babel/helper-module-imports@7.24.7': dependencies: '@babel/traverse': 7.24.7 - '@babel/types': 7.25.6 + '@babel/types': 7.27.1 transitivePeerDependencies: - supports-color @@ -11718,7 +11786,7 @@ snapshots: '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-validator-identifier': 7.27.1 transitivePeerDependencies: - supports-color @@ -11727,13 +11795,13 @@ snapshots: '@babel/helper-simple-access@7.24.7': dependencies: '@babel/traverse': 7.24.7 - '@babel/types': 7.25.6 + '@babel/types': 7.27.1 transitivePeerDependencies: - supports-color '@babel/helper-split-export-declaration@7.24.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.27.1 '@babel/helper-string-parser@7.24.8': {} @@ -11748,7 +11816,7 @@ snapshots: '@babel/helpers@7.24.7': dependencies: '@babel/template': 7.24.7 - '@babel/types': 7.25.6 + '@babel/types': 7.27.1 '@babel/highlight@7.24.7': dependencies: @@ -11759,7 +11827,7 @@ snapshots: '@babel/parser@7.25.6': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.27.1 '@babel/parser@7.27.2': dependencies: @@ -11842,8 +11910,8 @@ snapshots: '@babel/template@7.24.7': dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.27.2 + '@babel/types': 7.27.1 '@babel/traverse@7.24.7': dependencies: @@ -11853,8 +11921,8 @@ snapshots: '@babel/helper-function-name': 7.24.7 '@babel/helper-hoist-variables': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.27.2 + '@babel/types': 7.27.1 debug: 4.4.1(supports-color@10.0.0) globals: 11.12.0 transitivePeerDependencies: @@ -12525,16 +12593,16 @@ snapshots: '@img/sharp-win32-x64@0.34.2': optional: true - '@inquirer/confirm@5.0.2(@types/node@22.15.28)': + '@inquirer/confirm@5.0.2(@types/node@22.15.31)': dependencies: - '@inquirer/core': 10.1.0(@types/node@22.15.28) - '@inquirer/type': 3.0.1(@types/node@22.15.28) - '@types/node': 22.15.28 + '@inquirer/core': 10.1.0(@types/node@22.15.31) + '@inquirer/type': 3.0.1(@types/node@22.15.31) + '@types/node': 22.15.31 - '@inquirer/core@10.1.0(@types/node@22.15.28)': + '@inquirer/core@10.1.0(@types/node@22.15.31)': dependencies: '@inquirer/figures': 1.0.8 - '@inquirer/type': 3.0.1(@types/node@22.15.28) + '@inquirer/type': 3.0.1(@types/node@22.15.31) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -12547,9 +12615,9 @@ snapshots: '@inquirer/figures@1.0.8': {} - '@inquirer/type@3.0.1(@types/node@22.15.28)': + '@inquirer/type@3.0.1(@types/node@22.15.31)': dependencies: - '@types/node': 22.15.28 + '@types/node': 22.15.31 '@ioredis/commands@1.2.0': {} @@ -12579,7 +12647,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.28 + '@types/node': 22.15.31 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -12592,14 +12660,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.28 + '@types/node': 22.15.31 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.7.0 - jest-config: 29.7.0(@types/node@22.15.28) + jest-config: 29.7.0(@types/node@22.15.31) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -12628,7 +12696,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.28 + '@types/node': 22.15.31 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -12646,7 +12714,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.15.28 + '@types/node': 22.15.31 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -12668,7 +12736,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.15.28 + '@types/node': 22.15.31 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -12738,16 +12806,16 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 22.15.28 + '@types/node': 22.15.31 '@types/yargs': 17.0.19 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))': dependencies: glob: 10.4.5 magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.8.3) - vite: 6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) optionalDependencies: typescript: 5.8.3 @@ -12892,7 +12960,7 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.2': optional: true - '@mswjs/interceptors@0.38.7': + '@mswjs/interceptors@0.39.2': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -13494,85 +13562,85 @@ snapshots: transitivePeerDependencies: - supports-color - '@rollup/plugin-json@6.1.0(rollup@4.41.1)': + '@rollup/plugin-json@6.1.0(rollup@4.42.0)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.41.1) + '@rollup/pluginutils': 5.1.4(rollup@4.42.0) optionalDependencies: - rollup: 4.41.1 + rollup: 4.42.0 - '@rollup/plugin-replace@6.0.2(rollup@4.41.1)': + '@rollup/plugin-replace@6.0.2(rollup@4.42.0)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.41.1) + '@rollup/pluginutils': 5.1.4(rollup@4.42.0) magic-string: 0.30.17 optionalDependencies: - rollup: 4.41.1 + rollup: 4.42.0 - '@rollup/pluginutils@5.1.4(rollup@4.41.1)': + '@rollup/pluginutils@5.1.4(rollup@4.42.0)': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.41.1 + rollup: 4.42.0 - '@rollup/rollup-android-arm-eabi@4.41.1': + '@rollup/rollup-android-arm-eabi@4.42.0': optional: true - '@rollup/rollup-android-arm64@4.41.1': + '@rollup/rollup-android-arm64@4.42.0': optional: true - '@rollup/rollup-darwin-arm64@4.41.1': + '@rollup/rollup-darwin-arm64@4.42.0': optional: true - '@rollup/rollup-darwin-x64@4.41.1': + '@rollup/rollup-darwin-x64@4.42.0': optional: true - '@rollup/rollup-freebsd-arm64@4.41.1': + '@rollup/rollup-freebsd-arm64@4.42.0': optional: true - '@rollup/rollup-freebsd-x64@4.41.1': + '@rollup/rollup-freebsd-x64@4.42.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.41.1': + '@rollup/rollup-linux-arm-gnueabihf@4.42.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.41.1': + '@rollup/rollup-linux-arm-musleabihf@4.42.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.41.1': + '@rollup/rollup-linux-arm64-gnu@4.42.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.41.1': + '@rollup/rollup-linux-arm64-musl@4.42.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.41.1': + '@rollup/rollup-linux-loongarch64-gnu@4.42.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.41.1': + '@rollup/rollup-linux-powerpc64le-gnu@4.42.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.41.1': + '@rollup/rollup-linux-riscv64-gnu@4.42.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.41.1': + '@rollup/rollup-linux-riscv64-musl@4.42.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.41.1': + '@rollup/rollup-linux-s390x-gnu@4.42.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.41.1': + '@rollup/rollup-linux-x64-gnu@4.42.0': optional: true - '@rollup/rollup-linux-x64-musl@4.41.1': + '@rollup/rollup-linux-x64-musl@4.42.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.41.1': + '@rollup/rollup-win32-arm64-msvc@4.42.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.41.1': + '@rollup/rollup-win32-ia32-msvc@4.42.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.41.1': + '@rollup/rollup-win32-x64-msvc@4.42.0': optional: true '@rtsao/scc@1.1.0': {} @@ -13617,37 +13685,37 @@ snapshots: dependencies: '@sentry/core': 9.22.0 - '@sentry-internal/browser-utils@9.24.0': + '@sentry-internal/browser-utils@9.27.0': dependencies: - '@sentry/core': 9.24.0 + '@sentry/core': 9.27.0 '@sentry-internal/feedback@9.22.0': dependencies: '@sentry/core': 9.22.0 - '@sentry-internal/feedback@9.24.0': + '@sentry-internal/feedback@9.27.0': dependencies: - '@sentry/core': 9.24.0 + '@sentry/core': 9.27.0 '@sentry-internal/replay-canvas@9.22.0': dependencies: '@sentry-internal/replay': 9.22.0 '@sentry/core': 9.22.0 - '@sentry-internal/replay-canvas@9.24.0': + '@sentry-internal/replay-canvas@9.27.0': dependencies: - '@sentry-internal/replay': 9.24.0 - '@sentry/core': 9.24.0 + '@sentry-internal/replay': 9.27.0 + '@sentry/core': 9.27.0 '@sentry-internal/replay@9.22.0': dependencies: '@sentry-internal/browser-utils': 9.22.0 '@sentry/core': 9.22.0 - '@sentry-internal/replay@9.24.0': + '@sentry-internal/replay@9.27.0': dependencies: - '@sentry-internal/browser-utils': 9.24.0 - '@sentry/core': 9.24.0 + '@sentry-internal/browser-utils': 9.27.0 + '@sentry/core': 9.27.0 '@sentry/browser@9.22.0': dependencies: @@ -13657,19 +13725,19 @@ snapshots: '@sentry-internal/replay-canvas': 9.22.0 '@sentry/core': 9.22.0 - '@sentry/browser@9.24.0': + '@sentry/browser@9.27.0': dependencies: - '@sentry-internal/browser-utils': 9.24.0 - '@sentry-internal/feedback': 9.24.0 - '@sentry-internal/replay': 9.24.0 - '@sentry-internal/replay-canvas': 9.24.0 - '@sentry/core': 9.24.0 + '@sentry-internal/browser-utils': 9.27.0 + '@sentry-internal/feedback': 9.27.0 + '@sentry-internal/replay': 9.27.0 + '@sentry-internal/replay-canvas': 9.27.0 + '@sentry/core': 9.27.0 '@sentry/core@8.55.0': {} '@sentry/core@9.22.0': {} - '@sentry/core@9.24.0': {} + '@sentry/core@9.27.0': {} '@sentry/node@8.55.0': dependencies: @@ -13736,39 +13804,39 @@ snapshots: '@sentry/core': 9.22.0 vue: 3.5.16(typescript@5.8.3) - '@sentry/vue@9.24.0(vue@3.5.16(typescript@5.8.3))': + '@sentry/vue@9.27.0(vue@3.5.16(typescript@5.8.3))': dependencies: - '@sentry/browser': 9.24.0 - '@sentry/core': 9.24.0 + '@sentry/browser': 9.27.0 + '@sentry/core': 9.27.0 vue: 3.5.16(typescript@5.8.3) - '@shikijs/core@3.4.2': + '@shikijs/core@3.6.0': dependencies: - '@shikijs/types': 3.4.2 + '@shikijs/types': 3.6.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@3.4.2': + '@shikijs/engine-javascript@3.6.0': dependencies: - '@shikijs/types': 3.4.2 + '@shikijs/types': 3.6.0 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.3 - '@shikijs/engine-oniguruma@3.4.2': + '@shikijs/engine-oniguruma@3.6.0': dependencies: - '@shikijs/types': 3.4.2 + '@shikijs/types': 3.6.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.4.2': + '@shikijs/langs@3.6.0': dependencies: - '@shikijs/types': 3.4.2 + '@shikijs/types': 3.6.0 - '@shikijs/themes@3.4.2': + '@shikijs/themes@3.6.0': dependencies: - '@shikijs/types': 3.4.2 + '@shikijs/types': 3.6.0 - '@shikijs/types@3.4.2': + '@shikijs/types@3.6.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -14324,13 +14392,13 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@storybook/builder-vite@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4))': + '@storybook/builder-vite@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))': dependencies: '@storybook/csf-plugin': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)) browser-assert: 1.2.1 storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5) ts-dedent: 2.2.0 - vite: 6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) '@storybook/components@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))': dependencies: @@ -14393,11 +14461,11 @@ snapshots: react-dom: 19.1.0(react@19.1.0) storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5) - '@storybook/react-vite@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.41.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4))': + '@storybook/react-vite@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.42.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4)) - '@rollup/pluginutils': 5.1.4(rollup@4.41.1) - '@storybook/builder-vite': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)) + '@rollup/pluginutils': 5.1.4(rollup@4.42.0) + '@storybook/builder-vite': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)) '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.3) find-up: 5.0.0 magic-string: 0.30.17 @@ -14407,7 +14475,7 @@ snapshots: resolve: 1.22.8 storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5) tsconfig-paths: 4.2.0 - vite: 6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) optionalDependencies: '@storybook/test': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)) transitivePeerDependencies: @@ -14456,15 +14524,15 @@ snapshots: dependencies: storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5) - '@storybook/vue3-vite@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3))': + '@storybook/vue3-vite@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3))': dependencies: - '@storybook/builder-vite': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4)) + '@storybook/builder-vite': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)) '@storybook/vue3': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vue@3.5.16(typescript@5.8.3)) find-package-json: 1.2.0 magic-string: 0.30.17 storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5) typescript: 5.8.3 - vite: 6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) vue-component-meta: 2.0.16(typescript@5.8.3) vue-docgen-api: 4.75.1(vue@3.5.16(typescript@5.8.3)) transitivePeerDependencies: @@ -14486,7 +14554,7 @@ snapshots: '@stylistic/eslint-plugin@2.13.0(eslint@9.27.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.0(eslint@9.27.0)(typescript@5.8.3) eslint: 9.27.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 @@ -14593,12 +14661,12 @@ snapshots: dependencies: defer-to-connect: 2.0.1 - '@tabler/icons-webfont@3.33.0': + '@tabler/icons-webfont@3.34.0': dependencies: - '@tabler/icons': 3.33.0 + '@tabler/icons': 3.34.0 sharp: 0.34.2 - '@tabler/icons@3.33.0': {} + '@tabler/icons@3.34.0': {} '@tensorflow/tfjs-backend-cpu@4.22.0(@tensorflow/tfjs-core@4.22.0(encoding@0.1.13))': dependencies: @@ -14758,24 +14826,24 @@ snapshots: '@types/babel__core@7.20.0': dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.27.2 + '@babel/types': 7.27.1 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.20.0 '@types/babel__generator@7.6.4': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.27.1 '@types/babel__template@7.4.1': dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.27.2 + '@babel/types': 7.27.1 '@types/babel__traverse@7.20.0': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.27.1 '@types/bcryptjs@2.4.6': {} @@ -14788,6 +14856,10 @@ snapshots: '@types/canvas-confetti@1.9.0': {} + '@types/chai@5.2.2': + dependencies: + '@types/deep-eql': 4.0.2 + '@types/color-convert@2.0.4': dependencies: '@types/color-name': 1.1.1 @@ -14796,7 +14868,7 @@ snapshots: '@types/connect@3.4.36': dependencies: - '@types/node': 22.15.28 + '@types/node': 22.15.31 '@types/content-disposition@0.5.8': {} @@ -14808,6 +14880,8 @@ snapshots: dependencies: '@types/ms': 0.7.34 + '@types/deep-eql@4.0.2': {} + '@types/disposable-email-domains@1.0.2': {} '@types/dlv@1.1.5': {} @@ -14816,14 +14890,16 @@ snapshots: '@types/eslint@7.29.0': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 '@types/estree@1.0.7': {} + '@types/estree@1.0.8': {} + '@types/express-serve-static-core@4.17.33': dependencies: - '@types/node': 22.15.28 + '@types/node': 22.15.31 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 @@ -14840,7 +14916,7 @@ snapshots: '@types/graceful-fs@4.1.6': dependencies: - '@types/node': 22.15.28 + '@types/node': 22.15.31 '@types/hammerjs@2.0.46': {} @@ -14913,18 +14989,18 @@ snapshots: '@types/mysql@2.15.26': dependencies: - '@types/node': 22.15.28 + '@types/node': 22.15.31 '@types/node-fetch@2.6.11': dependencies: - '@types/node': 22.15.28 + '@types/node': 22.15.31 form-data: 4.0.2 '@types/node@22.15.21': dependencies: undici-types: 6.21.0 - '@types/node@22.15.28': + '@types/node@22.15.31': dependencies: undici-types: 6.21.0 @@ -14963,7 +15039,7 @@ snapshots: '@types/pg@8.6.1': dependencies: - '@types/node': 22.15.28 + '@types/node': 22.15.31 pg-protocol: 1.10.0 pg-types: 2.2.0 @@ -14993,7 +15069,7 @@ snapshots: '@types/readdir-glob@1.1.1': dependencies: - '@types/node': 22.15.28 + '@types/node': 22.15.31 '@types/redis-info@3.0.3': {} @@ -15016,7 +15092,7 @@ snapshots: '@types/serve-static@1.15.1': dependencies: '@types/mime': 3.0.1 - '@types/node': 22.15.28 + '@types/node': 22.15.31 '@types/serviceworker@0.0.74': {} @@ -15042,7 +15118,7 @@ snapshots: dependencies: '@types/cookiejar': 2.1.5 '@types/methods': 1.1.4 - '@types/node': 22.15.28 + '@types/node': 22.15.31 form-data: 4.0.2 '@types/supertest@6.0.3': @@ -15052,7 +15128,7 @@ snapshots: '@types/tedious@4.0.14': dependencies: - '@types/node': 22.15.28 + '@types/node': 22.15.31 '@types/throttle-debounce@5.0.2': {} @@ -15072,7 +15148,7 @@ snapshots: '@types/wawoff2@1.0.2': dependencies: - '@types/node': 22.15.28 + '@types/node': 22.15.31 '@types/web-push@3.6.4': dependencies: @@ -15090,7 +15166,7 @@ snapshots: '@types/yauzl@2.10.0': dependencies: - '@types/node': 22.15.28 + '@types/node': 22.15.31 optional: true '@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3)': @@ -15110,14 +15186,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.33.0(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.33.0 - '@typescript-eslint/type-utils': 8.33.0(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.0(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.33.0 + '@typescript-eslint/parser': 8.34.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/type-utils': 8.34.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 eslint: 9.27.0 graphemer: 1.4.0 ignore: 7.0.4 @@ -15139,12 +15215,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3)': + '@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.33.0 - '@typescript-eslint/types': 8.33.0 - '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.33.0 + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 debug: 4.4.1(supports-color@10.0.0) eslint: 9.27.0 typescript: 5.8.3 @@ -15160,6 +15236,15 @@ snapshots: - supports-color - typescript + '@typescript-eslint/project-service@8.34.0(typescript@5.8.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) + '@typescript-eslint/types': 8.34.0 + debug: 4.4.1(supports-color@10.0.0) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/scope-manager@8.32.1': dependencies: '@typescript-eslint/types': 8.32.1 @@ -15170,10 +15255,19 @@ snapshots: '@typescript-eslint/types': 8.33.0 '@typescript-eslint/visitor-keys': 8.33.0 + '@typescript-eslint/scope-manager@8.34.0': + dependencies: + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/visitor-keys': 8.34.0 + '@typescript-eslint/tsconfig-utils@8.33.0(typescript@5.8.3)': dependencies: typescript: 5.8.3 + '@typescript-eslint/tsconfig-utils@8.34.0(typescript@5.8.3)': + dependencies: + typescript: 5.8.3 + '@typescript-eslint/type-utils@8.32.1(eslint@9.27.0)(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) @@ -15185,10 +15279,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.33.0(eslint@9.27.0)(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.34.0(eslint@9.27.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.27.0)(typescript@5.8.3) debug: 4.4.1(supports-color@10.0.0) eslint: 9.27.0 ts-api-utils: 2.1.0(typescript@5.8.3) @@ -15200,6 +15294,8 @@ snapshots: '@typescript-eslint/types@8.33.0': {} + '@typescript-eslint/types@8.34.0': {} + '@typescript-eslint/typescript-estree@8.32.1(typescript@5.8.3)': dependencies: '@typescript-eslint/types': 8.32.1 @@ -15230,6 +15326,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.34.0(typescript@5.8.3)': + dependencies: + '@typescript-eslint/project-service': 8.34.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/visitor-keys': 8.34.0 + debug: 4.4.1(supports-color@10.0.0) + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.2 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@8.32.1(eslint@9.27.0)(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) @@ -15252,6 +15364,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.34.0(eslint@9.27.0)(typescript@5.8.3)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + eslint: 9.27.0 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@8.32.1': dependencies: '@typescript-eslint/types': 8.32.1 @@ -15262,17 +15385,23 @@ snapshots: '@typescript-eslint/types': 8.33.0 eslint-visitor-keys: 4.2.0 + '@typescript-eslint/visitor-keys@8.34.0': + dependencies: + '@typescript-eslint/types': 8.34.0 + eslint-visitor-keys: 4.2.0 + '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3))': dependencies: - vite: 6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) vue: 3.5.16(typescript@5.8.3) - '@vitest/coverage-v8@3.1.4(vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.28)(happy-dom@17.5.6)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.8.6(@types/node@22.15.28)(typescript@5.8.3))(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4))': + '@vitest/coverage-v8@3.2.3(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 + ast-v8-to-istanbul: 0.3.3 debug: 4.4.1(supports-color@10.0.0) istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 @@ -15283,7 +15412,7 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.28)(happy-dom@17.5.6)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.8.6(@types/node@22.15.28)(typescript@5.8.3))(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4) + vitest: 3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) transitivePeerDependencies: - supports-color @@ -15294,21 +15423,22 @@ snapshots: chai: 5.2.0 tinyrainbow: 1.2.0 - '@vitest/expect@3.1.4': + '@vitest/expect@3.2.3': dependencies: - '@vitest/spy': 3.1.4 - '@vitest/utils': 3.1.4 + '@types/chai': 5.2.2 + '@vitest/spy': 3.2.3 + '@vitest/utils': 3.2.3 chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.4(msw@2.8.6(@types/node@22.15.28)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4))': + '@vitest/mocker@3.2.3(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))': dependencies: - '@vitest/spy': 3.1.4 + '@vitest/spy': 3.2.3 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - msw: 2.8.6(@types/node@22.15.28)(typescript@5.8.3) - vite: 6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4) + msw: 2.10.2(@types/node@22.15.31)(typescript@5.8.3) + vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) '@vitest/pretty-format@2.0.5': dependencies: @@ -15318,18 +15448,19 @@ snapshots: dependencies: tinyrainbow: 1.2.0 - '@vitest/pretty-format@3.1.4': + '@vitest/pretty-format@3.2.3': dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@3.1.4': + '@vitest/runner@3.2.3': dependencies: - '@vitest/utils': 3.1.4 + '@vitest/utils': 3.2.3 pathe: 2.0.3 + strip-literal: 3.0.0 - '@vitest/snapshot@3.1.4': + '@vitest/snapshot@3.2.3': dependencies: - '@vitest/pretty-format': 3.1.4 + '@vitest/pretty-format': 3.2.3 magic-string: 0.30.17 pathe: 2.0.3 @@ -15337,9 +15468,9 @@ snapshots: dependencies: tinyspy: 3.0.2 - '@vitest/spy@3.1.4': + '@vitest/spy@3.2.3': dependencies: - tinyspy: 3.0.2 + tinyspy: 4.0.3 '@vitest/utils@2.0.5': dependencies: @@ -15354,9 +15485,9 @@ snapshots: loupe: 3.1.3 tinyrainbow: 1.2.0 - '@vitest/utils@3.1.4': + '@vitest/utils@3.2.3': dependencies: - '@vitest/pretty-format': 3.1.4 + '@vitest/pretty-format': 3.2.3 loupe: 3.1.3 tinyrainbow: 2.0.0 @@ -15577,17 +15708,17 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-attributes@1.9.5(acorn@8.14.1): + acorn-import-attributes@1.9.5(acorn@8.15.0): dependencies: - acorn: 8.14.1 + acorn: 8.15.0 - acorn-jsx@5.3.2(acorn@8.14.1): + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: - acorn: 8.14.1 + acorn: 8.15.0 acorn@7.4.1: {} - acorn@8.14.1: {} + acorn@8.15.0: {} adm-zip@0.5.10: optional: true @@ -15846,6 +15977,12 @@ snapshots: dependencies: tslib: 2.8.1 + ast-v8-to-istanbul@0.3.3: + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + estree-walker: 3.0.3 + js-tokens: 9.0.1 + astral-regex@2.0.0: {} astring@1.9.0: {} @@ -15925,7 +16062,7 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: '@babel/template': 7.24.7 - '@babel/types': 7.25.6 + '@babel/types': 7.27.1 '@types/babel__core': 7.20.0 '@types/babel__traverse': 7.20.0 @@ -15953,7 +16090,7 @@ snapshots: babel-walk@3.0.0-canary-5: dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.27.1 bail@2.0.2: {} @@ -16676,6 +16813,52 @@ snapshots: untildify: 4.0.0 yauzl: 2.10.0 + cypress@14.4.1: + dependencies: + '@cypress/request': 3.0.8 + '@cypress/xvfb': 1.2.4(supports-color@8.1.1) + '@types/sinonjs__fake-timers': 8.1.1 + '@types/sizzle': 2.3.3 + arch: 2.2.0 + blob-util: 2.0.2 + bluebird: 3.7.2 + buffer: 5.7.1 + cachedir: 2.3.0 + chalk: 4.1.2 + check-more-types: 2.24.0 + ci-info: 4.1.0 + cli-cursor: 3.1.0 + cli-table3: 0.6.1 + commander: 6.2.1 + common-tags: 1.8.2 + dayjs: 1.11.13 + debug: 4.4.1(supports-color@8.1.1) + enquirer: 2.3.6 + eventemitter2: 6.4.7 + execa: 4.1.0 + executable: 4.1.1 + extract-zip: 2.0.1(supports-color@8.1.1) + figures: 3.2.0 + fs-extra: 9.1.0 + getos: 3.2.1 + is-installed-globally: 0.4.0 + lazy-ass: 1.6.0 + listr2: 3.14.0(enquirer@2.3.6) + lodash: 4.17.21 + log-symbols: 4.1.0 + minimist: 1.2.8 + ospath: 1.2.2 + pretty-bytes: 5.6.0 + process: 0.11.10 + proxy-from-env: 1.0.0 + request-progress: 3.0.0 + semver: 7.7.2 + supports-color: 8.1.1 + tmp: 0.2.3 + tree-kill: 1.2.2 + untildify: 4.0.0 + yauzl: 2.10.0 + dashdash@1.14.1: dependencies: assert-plus: 1.0.0 @@ -17206,11 +17389,11 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.27.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.27.0): dependencies: debug: 3.2.7(supports-color@8.1.1) optionalDependencies: - '@typescript-eslint/parser': 8.33.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.0(eslint@9.27.0)(typescript@5.8.3) eslint: 9.27.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: @@ -17245,7 +17428,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -17256,7 +17439,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.27.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.27.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.27.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -17268,13 +17451,13 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.33.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.0(eslint@9.27.0)(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-vue@10.1.0(eslint@9.27.0)(vue-eslint-parser@10.1.3(eslint@9.27.0)): + eslint-plugin-vue@10.2.0(eslint@9.27.0)(vue-eslint-parser@10.1.3(eslint@9.27.0)): dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) eslint: 9.27.0 @@ -17309,7 +17492,7 @@ snapshots: '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.2 - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 @@ -17338,8 +17521,8 @@ snapshots: espree@10.3.0: dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2(acorn@8.14.1) + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 4.2.0 esprima@4.0.1: {} @@ -17358,7 +17541,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 esutils@2.0.3: {} @@ -18022,7 +18205,7 @@ snapshots: webidl-conversions: 7.0.0 whatwg-mimetype: 3.0.0 - happy-dom@17.5.6: + happy-dom@17.6.3: dependencies: webidl-conversions: 7.0.0 whatwg-mimetype: 3.0.0 @@ -18223,8 +18406,8 @@ snapshots: import-in-the-middle@1.11.2: dependencies: - acorn: 8.14.1 - acorn-import-attributes: 1.9.5(acorn@8.14.1) + acorn: 8.15.0 + acorn-import-attributes: 1.9.5(acorn@8.15.0) cjs-module-lexer: 1.2.2 module-details-from-path: 1.0.3 @@ -18529,7 +18712,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.28 + '@types/node': 22.15.31 chalk: 4.1.2 co: 4.6.0 dedent: 1.6.0 @@ -18598,7 +18781,7 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.15.28): + jest-config@29.7.0(@types/node@22.15.31): dependencies: '@babel/core': 7.24.7 '@jest/test-sequencer': 29.7.0 @@ -18623,7 +18806,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.15.28 + '@types/node': 22.15.31 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -18652,7 +18835,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.28 + '@types/node': 22.15.31 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -18669,7 +18852,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.6 - '@types/node': 22.15.28 + '@types/node': 22.15.31 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -18743,7 +18926,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.28 + '@types/node': 22.15.31 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -18771,7 +18954,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.28 + '@types/node': 22.15.31 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 @@ -18817,7 +19000,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.28 + '@types/node': 22.15.31 chalk: 4.1.2 ci-info: 3.7.1 graceful-fs: 4.2.11 @@ -18836,7 +19019,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.28 + '@types/node': 22.15.31 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -18850,7 +19033,7 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.15.28 + '@types/node': 22.15.31 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -18890,6 +19073,8 @@ snapshots: js-tokens@4.0.0: {} + js-tokens@9.0.1: {} + js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -19162,8 +19347,8 @@ snapshots: magicast@0.3.5: dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.27.2 + '@babel/types': 7.27.1 source-map-js: 1.2.1 mailcheck@1.1.1: {} @@ -19711,18 +19896,18 @@ snapshots: optionalDependencies: msgpackr-extract: 3.0.2 - msw-storybook-addon@2.0.4(msw@2.8.6(@types/node@22.15.28)(typescript@5.8.3)): + msw-storybook-addon@2.0.5(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3)): dependencies: is-node-process: 1.2.0 - msw: 2.8.6(@types/node@22.15.28)(typescript@5.8.3) + msw: 2.10.2(@types/node@22.15.31)(typescript@5.8.3) - msw@2.8.6(@types/node@22.15.28)(typescript@5.8.3): + msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.0.2(@types/node@22.15.28) - '@mswjs/interceptors': 0.38.7 + '@inquirer/confirm': 5.0.2(@types/node@22.15.31) + '@mswjs/interceptors': 0.39.2 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 @@ -21000,30 +21185,30 @@ snapshots: dependencies: glob: 10.4.5 - rollup@4.41.1: + rollup@4.42.0: dependencies: '@types/estree': 1.0.7 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.41.1 - '@rollup/rollup-android-arm64': 4.41.1 - '@rollup/rollup-darwin-arm64': 4.41.1 - '@rollup/rollup-darwin-x64': 4.41.1 - '@rollup/rollup-freebsd-arm64': 4.41.1 - '@rollup/rollup-freebsd-x64': 4.41.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.41.1 - '@rollup/rollup-linux-arm-musleabihf': 4.41.1 - '@rollup/rollup-linux-arm64-gnu': 4.41.1 - '@rollup/rollup-linux-arm64-musl': 4.41.1 - '@rollup/rollup-linux-loongarch64-gnu': 4.41.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.41.1 - '@rollup/rollup-linux-riscv64-gnu': 4.41.1 - '@rollup/rollup-linux-riscv64-musl': 4.41.1 - '@rollup/rollup-linux-s390x-gnu': 4.41.1 - '@rollup/rollup-linux-x64-gnu': 4.41.1 - '@rollup/rollup-linux-x64-musl': 4.41.1 - '@rollup/rollup-win32-arm64-msvc': 4.41.1 - '@rollup/rollup-win32-ia32-msvc': 4.41.1 - '@rollup/rollup-win32-x64-msvc': 4.41.1 + '@rollup/rollup-android-arm-eabi': 4.42.0 + '@rollup/rollup-android-arm64': 4.42.0 + '@rollup/rollup-darwin-arm64': 4.42.0 + '@rollup/rollup-darwin-x64': 4.42.0 + '@rollup/rollup-freebsd-arm64': 4.42.0 + '@rollup/rollup-freebsd-x64': 4.42.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.42.0 + '@rollup/rollup-linux-arm-musleabihf': 4.42.0 + '@rollup/rollup-linux-arm64-gnu': 4.42.0 + '@rollup/rollup-linux-arm64-musl': 4.42.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.42.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.42.0 + '@rollup/rollup-linux-riscv64-gnu': 4.42.0 + '@rollup/rollup-linux-riscv64-musl': 4.42.0 + '@rollup/rollup-linux-s390x-gnu': 4.42.0 + '@rollup/rollup-linux-x64-gnu': 4.42.0 + '@rollup/rollup-linux-x64-musl': 4.42.0 + '@rollup/rollup-win32-arm64-msvc': 4.42.0 + '@rollup/rollup-win32-ia32-msvc': 4.42.0 + '@rollup/rollup-win32-x64-msvc': 4.42.0 fsevents: 2.3.3 rrweb-cssom@0.8.0: {} @@ -21075,7 +21260,7 @@ snapshots: parse-srcset: 1.0.2 postcss: 8.5.3 - sass@1.89.0: + sass@1.89.2: dependencies: chokidar: 4.0.3 immutable: 5.0.3 @@ -21235,14 +21420,14 @@ snapshots: shebang-regex@3.0.0: {} - shiki@3.4.2: + shiki@3.6.0: dependencies: - '@shikijs/core': 3.4.2 - '@shikijs/engine-javascript': 3.4.2 - '@shikijs/engine-oniguruma': 3.4.2 - '@shikijs/langs': 3.4.2 - '@shikijs/themes': 3.4.2 - '@shikijs/types': 3.4.2 + '@shikijs/core': 3.6.0 + '@shikijs/engine-javascript': 3.6.0 + '@shikijs/engine-oniguruma': 3.6.0 + '@shikijs/langs': 3.6.0 + '@shikijs/themes': 3.6.0 + '@shikijs/types': 3.6.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -21649,6 +21834,10 @@ snapshots: strip-json-comments@3.1.1: {} + strip-literal@3.0.0: + dependencies: + js-tokens: 9.0.1 + strnum@1.0.5: {} strtok3@10.2.2: @@ -21772,7 +21961,7 @@ snapshots: terser@5.39.2: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.14.1 + acorn: 8.15.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -21828,7 +22017,12 @@ snapshots: fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 - tinypool@1.0.2: {} + tinyglobby@0.2.14: + dependencies: + fdir: 6.4.4(picomatch@4.0.2) + picomatch: 4.0.2 + + tinypool@1.1.0: {} tinyrainbow@1.2.0: {} @@ -21836,6 +22030,8 @@ snapshots: tinyspy@3.0.2: {} + tinyspy@4.0.3: {} + tldts-core@6.1.61: {} tldts@6.1.61: @@ -22126,7 +22322,7 @@ snapshots: unplugin@1.4.0: dependencies: - acorn: 8.14.1 + acorn: 8.15.0 chokidar: 4.0.3 webpack-sources: 3.2.3 webpack-virtual-modules: 0.5.0 @@ -22213,13 +22409,13 @@ snapshots: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite-node@3.1.4(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4): + vite-node@3.2.3(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4): dependencies: cac: 6.7.14 debug: 4.4.1(supports-color@10.0.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) transitivePeerDependencies: - '@types/node' - jiti @@ -22236,52 +22432,54 @@ snapshots: vite-plugin-turbosnap@1.0.3: {} - vite@6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4): + vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4): dependencies: esbuild: 0.25.4 fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 postcss: 8.5.3 - rollup: 4.41.1 + rollup: 4.42.0 tinyglobby: 0.2.13 optionalDependencies: - '@types/node': 22.15.28 + '@types/node': 22.15.31 fsevents: 2.3.3 - sass: 1.89.0 + sass: 1.89.2 terser: 5.39.2 tsx: 4.19.4 - vitest-fetch-mock@0.4.5(vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.28)(happy-dom@17.5.6)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.8.6(@types/node@22.15.28)(typescript@5.8.3))(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4)): + vitest-fetch-mock@0.4.5(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)): dependencies: - vitest: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.28)(happy-dom@17.5.6)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.8.6(@types/node@22.15.28)(typescript@5.8.3))(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4) + vitest: 3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) - vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.28)(happy-dom@17.5.6)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.8.6(@types/node@22.15.28)(typescript@5.8.3))(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4): + vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4): dependencies: - '@vitest/expect': 3.1.4 - '@vitest/mocker': 3.1.4(msw@2.8.6(@types/node@22.15.28)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4)) - '@vitest/pretty-format': 3.1.4 - '@vitest/runner': 3.1.4 - '@vitest/snapshot': 3.1.4 - '@vitest/spy': 3.1.4 - '@vitest/utils': 3.1.4 + '@types/chai': 5.2.2 + '@vitest/expect': 3.2.3 + '@vitest/mocker': 3.2.3(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)) + '@vitest/pretty-format': 3.2.3 + '@vitest/runner': 3.2.3 + '@vitest/snapshot': 3.2.3 + '@vitest/spy': 3.2.3 + '@vitest/utils': 3.2.3 chai: 5.2.0 debug: 4.4.1(supports-color@10.0.0) expect-type: 1.2.1 magic-string: 0.30.17 pathe: 2.0.3 + picomatch: 4.0.2 std-env: 3.9.0 tinybench: 2.9.0 tinyexec: 0.3.2 - tinyglobby: 0.2.13 - tinypool: 1.0.2 + tinyglobby: 0.2.14 + tinypool: 1.1.0 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4) - vite-node: 3.1.4(@types/node@22.15.28)(sass@1.89.0)(terser@5.39.2)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) + vite-node: 3.2.3(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.15.28 - happy-dom: 17.5.6 + '@types/node': 22.15.31 + happy-dom: 17.6.3 jsdom: 26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5) transitivePeerDependencies: - jiti From bc5a33d87f67f6825567c40c98e21b4d4673f41b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 10 Jun 2025 16:08:04 +0900 Subject: [PATCH 52/76] chore(deps): update [misskey-js] update dependencies (#16140) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/misskey-js/generator/package.json | 6 +- packages/misskey-js/package.json | 8 +- pnpm-lock.yaml | 175 +++++++++++++++++---- 3 files changed, 152 insertions(+), 37 deletions(-) diff --git a/packages/misskey-js/generator/package.json b/packages/misskey-js/generator/package.json index 5b4014c968..cc8083094d 100644 --- a/packages/misskey-js/generator/package.json +++ b/packages/misskey-js/generator/package.json @@ -8,9 +8,9 @@ }, "devDependencies": { "@readme/openapi-parser": "2.7.0", - "@types/node": "22.15.21", - "@typescript-eslint/eslint-plugin": "8.32.1", - "@typescript-eslint/parser": "8.32.1", + "@types/node": "22.15.31", + "@typescript-eslint/eslint-plugin": "8.34.0", + "@typescript-eslint/parser": "8.34.0", "openapi-types": "12.1.3", "openapi-typescript": "7.8.0", "ts-case-convert": "2.1.0", diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json index a231d471d7..491009795d 100644 --- a/packages/misskey-js/package.json +++ b/packages/misskey-js/package.json @@ -38,9 +38,9 @@ "@microsoft/api-extractor": "7.52.8", "@swc/jest": "0.2.38", "@types/jest": "29.5.14", - "@types/node": "22.15.21", - "@typescript-eslint/eslint-plugin": "8.32.1", - "@typescript-eslint/parser": "8.32.1", + "@types/node": "22.15.31", + "@typescript-eslint/eslint-plugin": "8.34.0", + "@typescript-eslint/parser": "8.34.0", "jest": "29.7.0", "jest-fetch-mock": "3.0.3", "jest-websocket-mock": "2.5.0", @@ -50,7 +50,7 @@ "execa": "8.0.1", "tsd": "0.32.0", "typescript": "5.8.3", - "esbuild": "0.25.4", + "esbuild": "0.25.5", "glob": "11.0.2" }, "files": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 760caa072e..086bff99b4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1366,7 +1366,7 @@ importers: devDependencies: '@microsoft/api-extractor': specifier: 7.52.8 - version: 7.52.8(@types/node@22.15.21) + version: 7.52.8(@types/node@22.15.31) '@swc/jest': specifier: 0.2.38 version: 0.2.38(@swc/core@1.11.29) @@ -1374,17 +1374,17 @@ importers: specifier: 29.5.14 version: 29.5.14 '@types/node': - specifier: 22.15.21 - version: 22.15.21 + specifier: 22.15.31 + version: 22.15.31 '@typescript-eslint/eslint-plugin': - specifier: 8.32.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) '@typescript-eslint/parser': - specifier: 8.32.1 - version: 8.32.1(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) esbuild: - specifier: 0.25.4 - version: 0.25.4 + specifier: 0.25.5 + version: 0.25.5 execa: specifier: 8.0.1 version: 8.0.1 @@ -1393,7 +1393,7 @@ importers: version: 11.0.2 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@22.15.21) + version: 29.7.0(@types/node@22.15.31) jest-fetch-mock: specifier: 3.0.3 version: 3.0.3(encoding@0.1.13) @@ -1422,14 +1422,14 @@ importers: specifier: 2.7.0 version: 2.7.0(openapi-types@12.1.3) '@types/node': - specifier: 22.15.21 - version: 22.15.21 + specifier: 22.15.31 + version: 22.15.31 '@typescript-eslint/eslint-plugin': - specifier: 8.32.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) '@typescript-eslint/parser': - specifier: 8.32.1 - version: 8.32.1(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) openapi-types: specifier: 12.1.3 version: 12.1.3 @@ -4590,6 +4590,9 @@ packages: '@types/node@22.15.31': resolution: {integrity: sha512-jnVe5ULKl6tijxUhvQeNbQG/84fHfg+yMak02cT8QVhBx/F05rAVxCGBYYTh2EKz22D6JF5ktXuNwdx7b9iEGw==} + '@types/node@22.15.31': + resolution: {integrity: sha512-jnVe5ULKl6tijxUhvQeNbQG/84fHfg+yMak02cT8QVhBx/F05rAVxCGBYYTh2EKz22D6JF5ktXuNwdx7b9iEGw==} + '@types/nodemailer@6.4.17': resolution: {integrity: sha512-I9CCaIp6DTldEg7vyUTZi8+9Vo0hi1/T8gv3C89yk1rSAAzoKQ8H8ki/jBYJSFoH/BisgLP8tkZMlQ91CIquww==} @@ -4768,6 +4771,14 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/eslint-plugin@8.34.0': + resolution: {integrity: sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.34.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/parser@8.32.1': resolution: {integrity: sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4782,6 +4793,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/parser@8.34.0': + resolution: {integrity: sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/project-service@8.33.0': resolution: {integrity: sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4830,6 +4848,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/type-utils@8.34.0': + resolution: {integrity: sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/types@8.32.1': resolution: {integrity: sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -12879,23 +12904,23 @@ snapshots: '@types/react': 18.0.28 react: 19.1.0 - '@microsoft/api-extractor-model@7.30.6(@types/node@22.15.21)': + '@microsoft/api-extractor-model@7.30.6(@types/node@22.15.31)': dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.13.1(@types/node@22.15.21) + '@rushstack/node-core-library': 5.13.1(@types/node@22.15.31) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.52.8(@types/node@22.15.21)': + '@microsoft/api-extractor@7.52.8(@types/node@22.15.31)': dependencies: - '@microsoft/api-extractor-model': 7.30.6(@types/node@22.15.21) + '@microsoft/api-extractor-model': 7.30.6(@types/node@22.15.31) '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.13.1(@types/node@22.15.21) + '@rushstack/node-core-library': 5.13.1(@types/node@22.15.31) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.15.3(@types/node@22.15.21) - '@rushstack/ts-command-line': 5.0.1(@types/node@22.15.21) + '@rushstack/terminal': 0.15.3(@types/node@22.15.31) + '@rushstack/ts-command-line': 5.0.1(@types/node@22.15.31) lodash: 4.17.21 minimatch: 3.0.8 resolve: 1.22.8 @@ -13645,7 +13670,7 @@ snapshots: '@rtsao/scc@1.1.0': {} - '@rushstack/node-core-library@5.13.1(@types/node@22.15.21)': + '@rushstack/node-core-library@5.13.1(@types/node@22.15.31)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -13656,23 +13681,23 @@ snapshots: resolve: 1.22.8 semver: 7.5.4 optionalDependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.31 '@rushstack/rig-package@0.5.3': dependencies: resolve: 1.22.8 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.15.3(@types/node@22.15.21)': + '@rushstack/terminal@0.15.3(@types/node@22.15.31)': dependencies: - '@rushstack/node-core-library': 5.13.1(@types/node@22.15.21) + '@rushstack/node-core-library': 5.13.1(@types/node@22.15.31) supports-color: 8.1.1 optionalDependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.31 - '@rushstack/ts-command-line@5.0.1(@types/node@22.15.21)': + '@rushstack/ts-command-line@5.0.1(@types/node@22.15.31)': dependencies: - '@rushstack/terminal': 0.15.3(@types/node@22.15.21) + '@rushstack/terminal': 0.15.3(@types/node@22.15.31) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.1 @@ -15004,6 +15029,10 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/node@22.15.31': + dependencies: + undici-types: 6.21.0 + '@types/nodemailer@6.4.17': dependencies: '@types/node': 22.15.21 @@ -15203,6 +15232,23 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.34.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/type-utils': 8.34.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 + eslint: 9.27.0 + graphemer: 1.4.0 + ignore: 7.0.4 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 8.32.1 @@ -15227,6 +15273,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 + debug: 4.4.1(supports-color@10.0.0) + eslint: 9.27.0 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/project-service@8.33.0(typescript@5.8.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) @@ -15290,6 +15348,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@8.34.0(eslint@9.27.0)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.27.0)(typescript@5.8.3) + debug: 4.4.1(supports-color@10.0.0) + eslint: 9.27.0 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/types@8.32.1': {} '@typescript-eslint/types@8.33.0': {} @@ -16653,6 +16722,21 @@ snapshots: - supports-color - ts-node + create-jest@29.7.0(@types/node@22.15.31): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@22.15.31) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + cron-parser@4.9.0: dependencies: luxon: 3.3.0 @@ -18751,6 +18835,25 @@ snapshots: - supports-color - ts-node + jest-cli@29.7.0(@types/node@22.15.31): + dependencies: + '@jest/core': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@22.15.31) + exit: 0.1.2 + import-local: 3.1.0 + jest-config: 29.7.0(@types/node@22.15.31) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + jest-config@29.7.0(@types/node@22.15.21): dependencies: '@babel/core': 7.24.7 @@ -19050,6 +19153,18 @@ snapshots: - supports-color - ts-node + jest@29.7.0(@types/node@22.15.31): + dependencies: + '@jest/core': 29.7.0 + '@jest/types': 29.6.3 + import-local: 3.1.0 + jest-cli: 29.7.0(@types/node@22.15.31) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + jju@1.4.0: {} joi@17.13.3: From 090262f3c623684132de5e9025764a2d6094ea18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8A=E3=81=95=E3=82=80=E3=81=AE=E3=81=B2=E3=81=A8?= <46447427+samunohito@users.noreply.github.com> Date: Wed, 11 Jun 2025 08:57:42 +0900 Subject: [PATCH 53/76] =?UTF-8?q?fix:=20pnpm-lock.yaml=E3=81=AE=E5=86=8D?= =?UTF-8?q?=E7=94=9F=E6=88=90=20(#16182)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pnpm-lock.yaml | 216 ++++++++++--------------------------------------- 1 file changed, 42 insertions(+), 174 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 086bff99b4..8ca73e14da 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4590,9 +4590,6 @@ packages: '@types/node@22.15.31': resolution: {integrity: sha512-jnVe5ULKl6tijxUhvQeNbQG/84fHfg+yMak02cT8QVhBx/F05rAVxCGBYYTh2EKz22D6JF5ktXuNwdx7b9iEGw==} - '@types/node@22.15.31': - resolution: {integrity: sha512-jnVe5ULKl6tijxUhvQeNbQG/84fHfg+yMak02cT8QVhBx/F05rAVxCGBYYTh2EKz22D6JF5ktXuNwdx7b9iEGw==} - '@types/nodemailer@6.4.17': resolution: {integrity: sha512-I9CCaIp6DTldEg7vyUTZi8+9Vo0hi1/T8gv3C89yk1rSAAzoKQ8H8ki/jBYJSFoH/BisgLP8tkZMlQ91CIquww==} @@ -4771,14 +4768,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/eslint-plugin@8.34.0': - resolution: {integrity: sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.34.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.32.1': resolution: {integrity: sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4793,17 +4782,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.34.0': - resolution: {integrity: sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/project-service@8.33.0': - resolution: {integrity: sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/project-service@8.34.0': resolution: {integrity: sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4814,20 +4792,10 @@ packages: resolution: {integrity: sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.33.0': - resolution: {integrity: sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.34.0': resolution: {integrity: sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.33.0': - resolution: {integrity: sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/tsconfig-utils@8.34.0': resolution: {integrity: sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4848,21 +4816,10 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.34.0': - resolution: {integrity: sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.32.1': resolution: {integrity: sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.33.0': - resolution: {integrity: sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.34.0': resolution: {integrity: sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4873,12 +4830,6 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/typescript-estree@8.33.0': - resolution: {integrity: sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/typescript-estree@8.34.0': resolution: {integrity: sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4892,13 +4843,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.33.0': - resolution: {integrity: sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.34.0': resolution: {integrity: sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4910,10 +4854,6 @@ packages: resolution: {integrity: sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.33.0': - resolution: {integrity: sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.34.0': resolution: {integrity: sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5005,12 +4945,18 @@ packages: '@vue/compiler-core@3.5.13': resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + '@vue/compiler-core@3.5.14': + resolution: {integrity: sha512-k7qMHMbKvoCXIxPhquKQVw3Twid3Kg4s7+oYURxLGRd56LiuHJVrvFKI4fm2AM3c8apqODPfVJGoh8nePbXMRA==} + '@vue/compiler-core@3.5.16': resolution: {integrity: sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==} '@vue/compiler-dom@3.5.13': resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + '@vue/compiler-dom@3.5.14': + resolution: {integrity: sha512-1aOCSqxGOea5I80U2hQJvXYpPm/aXo95xL/m/mMhgyPUsKe9jhjwWpziNAw7tYRnbz1I61rd9Mld4W9KmmRoug==} + '@vue/compiler-dom@3.5.16': resolution: {integrity: sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==} @@ -5056,6 +5002,9 @@ packages: '@vue/shared@3.5.13': resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + '@vue/shared@3.5.14': + resolution: {integrity: sha512-oXTwNxVfc9EtP1zzXAlSlgARLXNC84frFYkS0HHz0h3E4WZSP9sywqjqzGCP9Y34M8ipNmd380pVgmMuwELDyQ==} + '@vue/shared@3.5.16': resolution: {integrity: sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==} @@ -11757,10 +11706,10 @@ snapshots: '@babel/helper-compilation-targets': 7.24.7 '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) '@babel/helpers': 7.24.7 - '@babel/parser': 7.27.2 + '@babel/parser': 7.25.6 '@babel/template': 7.24.7 '@babel/traverse': 7.24.7 - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 convert-source-map: 2.0.0 debug: 4.4.1(supports-color@10.0.0) gensync: 1.0.0-beta.2 @@ -11771,7 +11720,7 @@ snapshots: '@babel/generator@7.24.7': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 @@ -11811,7 +11760,7 @@ snapshots: '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.24.7 transitivePeerDependencies: - supports-color @@ -11852,7 +11801,7 @@ snapshots: '@babel/parser@7.25.6': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 '@babel/parser@7.27.2': dependencies: @@ -11946,8 +11895,8 @@ snapshots: '@babel/helper-function-name': 7.24.7 '@babel/helper-hoist-variables': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.27.2 - '@babel/types': 7.27.1 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 debug: 4.4.1(supports-color@10.0.0) globals: 11.12.0 transitivePeerDependencies: @@ -14579,7 +14528,7 @@ snapshots: '@stylistic/eslint-plugin@2.13.0(eslint@9.27.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/utils': 8.33.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) eslint: 9.27.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 @@ -14851,24 +14800,24 @@ snapshots: '@types/babel__core@7.20.0': dependencies: - '@babel/parser': 7.27.2 - '@babel/types': 7.27.1 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.20.0 '@types/babel__generator@7.6.4': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 '@types/babel__template@7.4.1': dependencies: - '@babel/parser': 7.27.2 - '@babel/types': 7.27.1 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 '@types/babel__traverse@7.20.0': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 '@types/bcryptjs@2.4.6': {} @@ -15029,10 +14978,6 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@22.15.31': - dependencies: - undici-types: 6.21.0 - '@types/nodemailer@6.4.17': dependencies: '@types/node': 22.15.21 @@ -15232,23 +15177,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.34.0(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/type-utils': 8.34.0(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.34.0 - eslint: 9.27.0 - graphemer: 1.4.0 - ignore: 7.0.4 - natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 8.32.1 @@ -15273,27 +15201,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.34.0 - debug: 4.4.1(supports-color@10.0.0) - eslint: 9.27.0 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.33.0(typescript@5.8.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) - '@typescript-eslint/types': 8.33.0 - debug: 4.4.1(supports-color@10.0.0) - transitivePeerDependencies: - - supports-color - - typescript - '@typescript-eslint/project-service@8.34.0(typescript@5.8.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) @@ -15308,20 +15215,11 @@ snapshots: '@typescript-eslint/types': 8.32.1 '@typescript-eslint/visitor-keys': 8.32.1 - '@typescript-eslint/scope-manager@8.33.0': - dependencies: - '@typescript-eslint/types': 8.33.0 - '@typescript-eslint/visitor-keys': 8.33.0 - '@typescript-eslint/scope-manager@8.34.0': dependencies: '@typescript-eslint/types': 8.34.0 '@typescript-eslint/visitor-keys': 8.34.0 - '@typescript-eslint/tsconfig-utils@8.33.0(typescript@5.8.3)': - dependencies: - typescript: 5.8.3 - '@typescript-eslint/tsconfig-utils@8.34.0(typescript@5.8.3)': dependencies: typescript: 5.8.3 @@ -15348,21 +15246,8 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.34.0(eslint@9.27.0)(typescript@5.8.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.27.0)(typescript@5.8.3) - debug: 4.4.1(supports-color@10.0.0) - eslint: 9.27.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/types@8.32.1': {} - '@typescript-eslint/types@8.33.0': {} - '@typescript-eslint/types@8.34.0': {} '@typescript-eslint/typescript-estree@8.32.1(typescript@5.8.3)': @@ -15379,22 +15264,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.33.0(typescript@5.8.3)': - dependencies: - '@typescript-eslint/project-service': 8.33.0(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) - '@typescript-eslint/types': 8.33.0 - '@typescript-eslint/visitor-keys': 8.33.0 - debug: 4.4.1(supports-color@10.0.0) - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.34.0(typescript@5.8.3)': dependencies: '@typescript-eslint/project-service': 8.34.0(typescript@5.8.3) @@ -15422,17 +15291,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.33.0(eslint@9.27.0)(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) - '@typescript-eslint/scope-manager': 8.33.0 - '@typescript-eslint/types': 8.33.0 - '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) - eslint: 9.27.0 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/utils@8.34.0(eslint@9.27.0)(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) @@ -15449,11 +15307,6 @@ snapshots: '@typescript-eslint/types': 8.32.1 eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.33.0': - dependencies: - '@typescript-eslint/types': 8.33.0 - eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.34.0': dependencies: '@typescript-eslint/types': 8.34.0 @@ -15593,6 +15446,14 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 + '@vue/compiler-core@3.5.14': + dependencies: + '@babel/parser': 7.27.2 + '@vue/shared': 3.5.14 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + '@vue/compiler-core@3.5.16': dependencies: '@babel/parser': 7.27.2 @@ -15606,6 +15467,11 @@ snapshots: '@vue/compiler-core': 3.5.13 '@vue/shared': 3.5.13 + '@vue/compiler-dom@3.5.14': + dependencies: + '@vue/compiler-core': 3.5.14 + '@vue/shared': 3.5.14 + '@vue/compiler-dom@3.5.16': dependencies: '@vue/compiler-core': 3.5.16 @@ -15636,8 +15502,8 @@ snapshots: '@vue/language-core@2.0.16(typescript@5.8.3)': dependencies: '@volar/language-core': 2.2.0 - '@vue/compiler-dom': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/compiler-dom': 3.5.14 + '@vue/shared': 3.5.14 computeds: 0.0.1 minimatch: 9.0.5 path-browserify: 1.0.1 @@ -15682,6 +15548,8 @@ snapshots: '@vue/shared@3.5.13': {} + '@vue/shared@3.5.14': {} + '@vue/shared@3.5.16': {} '@vue/test-utils@2.4.1(@vue/server-renderer@3.5.16(vue@3.5.16(typescript@5.8.3)))(vue@3.5.16(typescript@5.8.3))': @@ -16159,7 +16027,7 @@ snapshots: babel-walk@3.0.0-canary-5: dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.25.6 bail@2.0.2: {} @@ -20034,7 +19902,7 @@ snapshots: path-to-regexp: 6.3.0 picocolors: 1.1.1 strict-event-emitter: 0.5.1 - type-fest: 4.41.0 + type-fest: 4.26.1 yargs: 17.7.2 optionalDependencies: typescript: 5.8.3 From b16a05b9a795682a130a1799ab36f25430c9edb8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 11 Jun 2025 09:56:29 +0900 Subject: [PATCH 54/76] fix(deps): update [backend] update dependencies (#16143) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/backend/package.json | 58 +- pnpm-lock.yaml | 1788 +++++++++++++++------------------ 2 files changed, 860 insertions(+), 986 deletions(-) diff --git a/packages/backend/package.json b/packages/backend/package.json index 157b6ca6f3..2173ce71a5 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -37,17 +37,17 @@ }, "optionalDependencies": { "@swc/core-android-arm64": "1.3.11", - "@swc/core-darwin-arm64": "1.11.29", - "@swc/core-darwin-x64": "1.11.29", + "@swc/core-darwin-arm64": "1.12.0", + "@swc/core-darwin-x64": "1.12.0", "@swc/core-freebsd-x64": "1.3.11", - "@swc/core-linux-arm-gnueabihf": "1.11.29", - "@swc/core-linux-arm64-gnu": "1.11.29", - "@swc/core-linux-arm64-musl": "1.11.29", - "@swc/core-linux-x64-gnu": "1.11.29", - "@swc/core-linux-x64-musl": "1.11.29", - "@swc/core-win32-arm64-msvc": "1.11.29", - "@swc/core-win32-ia32-msvc": "1.11.29", - "@swc/core-win32-x64-msvc": "1.11.29", + "@swc/core-linux-arm-gnueabihf": "1.12.0", + "@swc/core-linux-arm64-gnu": "1.12.0", + "@swc/core-linux-arm64-musl": "1.12.0", + "@swc/core-linux-x64-gnu": "1.12.0", + "@swc/core-linux-x64-musl": "1.12.0", + "@swc/core-win32-arm64-msvc": "1.12.0", + "@swc/core-win32-ia32-msvc": "1.12.0", + "@swc/core-win32-x64-msvc": "1.12.0", "@tensorflow/tfjs": "4.22.0", "@tensorflow/tfjs-node": "4.22.0", "bufferutil": "4.0.9", @@ -67,8 +67,8 @@ "utf-8-validate": "6.0.5" }, "dependencies": { - "@aws-sdk/client-s3": "3.817.0", - "@aws-sdk/lib-storage": "3.817.0", + "@aws-sdk/client-s3": "3.826.0", + "@aws-sdk/lib-storage": "3.826.0", "@discordapp/twemoji": "15.1.0", "@fastify/accepts": "5.0.2", "@fastify/cookie": "11.0.2", @@ -80,10 +80,10 @@ "@fastify/view": "10.0.2", "@misskey-dev/sharp-read-bmp": "1.2.0", "@misskey-dev/summaly": "5.2.1", - "@napi-rs/canvas": "0.1.70", - "@nestjs/common": "11.1.2", - "@nestjs/core": "11.1.2", - "@nestjs/testing": "11.1.2", + "@napi-rs/canvas": "0.1.71", + "@nestjs/common": "11.1.3", + "@nestjs/core": "11.1.3", + "@nestjs/testing": "11.1.3", "@peertube/http-signature": "1.7.0", "@sentry/node": "8.55.0", "@sentry/profiling-node": "8.55.0", @@ -91,7 +91,7 @@ "@sinonjs/fake-timers": "11.3.1", "@smithy/node-http-handler": "2.5.0", "@swc/cli": "0.7.7", - "@swc/core": "1.11.29", + "@swc/core": "1.12.0", "@twemoji/parser": "15.1.1", "@types/redis-info": "3.0.3", "accepts": "1.3.8", @@ -101,7 +101,7 @@ "bcryptjs": "2.4.3", "blurhash": "2.0.5", "body-parser": "1.20.3", - "bullmq": "5.53.0", + "bullmq": "5.53.2", "cacheable-lookup": "7.0.0", "cbor": "9.0.2", "chalk": "5.4.1", @@ -117,7 +117,7 @@ "feed": "4.2.2", "file-type": "19.6.0", "fluent-ffmpeg": "2.1.3", - "form-data": "4.0.2", + "form-data": "4.0.3", "got": "14.4.7", "happy-dom": "16.8.1", "hpagent": "1.2.0", @@ -133,9 +133,9 @@ "jsonld": "8.3.3", "jsrsasign": "11.1.0", "juice": "11.0.1", - "meilisearch": "0.50.0", + "meilisearch": "0.51.0", "mfm-js": "0.24.0", - "microformats-parser": "2.0.2", + "microformats-parser": "2.0.3", "mime-types": "2.1.35", "misskey-js": "workspace:*", "misskey-reversi": "workspace:*", @@ -188,16 +188,16 @@ }, "devDependencies": { "@jest/globals": "29.7.0", - "@nestjs/platform-express": "10.4.18", - "@sentry/vue": "9.22.0", + "@nestjs/platform-express": "10.4.19", + "@sentry/vue": "9.28.0", "@simplewebauthn/types": "12.0.0", "@swc/jest": "0.2.38", "@types/accepts": "1.3.7", "@types/archiver": "6.0.3", "@types/bcryptjs": "2.4.6", - "@types/body-parser": "1.19.5", + "@types/body-parser": "1.19.6", "@types/color-convert": "2.0.4", - "@types/content-disposition": "0.5.8", + "@types/content-disposition": "0.5.9", "@types/fluent-ffmpeg": "2.1.27", "@types/htmlescape": "1.1.3", "@types/http-link-header": "1.0.7", @@ -208,12 +208,12 @@ "@types/jsrsasign": "10.5.15", "@types/mime-types": "2.1.4", "@types/ms": "0.7.34", - "@types/node": "22.15.21", + "@types/node": "22.15.31", "@types/nodemailer": "6.4.17", "@types/oauth": "0.9.6", "@types/oauth2orize": "1.11.5", "@types/oauth2orize-pkce": "0.1.2", - "@types/pg": "8.15.2", + "@types/pg": "8.15.4", "@types/pug": "2.0.10", "@types/qrcode": "1.5.5", "@types/random-seed": "0.3.5", @@ -229,8 +229,8 @@ "@types/vary": "1.1.3", "@types/web-push": "3.6.4", "@types/ws": "8.18.1", - "@typescript-eslint/eslint-plugin": "8.32.1", - "@typescript-eslint/parser": "8.32.1", + "@typescript-eslint/eslint-plugin": "8.34.0", + "@typescript-eslint/parser": "8.34.0", "aws-sdk-client-mock": "4.1.0", "cross-env": "7.0.3", "eslint-plugin-import": "2.31.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8ca73e14da..d153c18f43 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -88,11 +88,11 @@ importers: packages/backend: dependencies: '@aws-sdk/client-s3': - specifier: 3.817.0 - version: 3.817.0 + specifier: 3.826.0 + version: 3.826.0 '@aws-sdk/lib-storage': - specifier: 3.817.0 - version: 3.817.0(@aws-sdk/client-s3@3.817.0) + specifier: 3.826.0 + version: 3.826.0(@aws-sdk/client-s3@3.826.0) '@discordapp/twemoji': specifier: 15.1.0 version: 15.1.0 @@ -127,17 +127,17 @@ importers: specifier: 5.2.1 version: 5.2.1 '@napi-rs/canvas': - specifier: 0.1.70 - version: 0.1.70 + specifier: 0.1.71 + version: 0.1.71 '@nestjs/common': - specifier: 11.1.2 - version: 11.1.2(reflect-metadata@0.2.2)(rxjs@7.8.2) + specifier: 11.1.3 + version: 11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2) '@nestjs/core': - specifier: 11.1.2 - version: 11.1.2(@nestjs/common@11.1.2(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@10.4.18)(reflect-metadata@0.2.2)(rxjs@7.8.2) + specifier: 11.1.3 + version: 11.1.3(@nestjs/common@11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@10.4.19)(reflect-metadata@0.2.2)(rxjs@7.8.2) '@nestjs/testing': - specifier: 11.1.2 - version: 11.1.2(@nestjs/common@11.1.2(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.2)(@nestjs/platform-express@10.4.18) + specifier: 11.1.3 + version: 11.1.3(@nestjs/common@11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(@nestjs/platform-express@10.4.19) '@peertube/http-signature': specifier: 1.7.0 version: 1.7.0 @@ -158,10 +158,10 @@ importers: version: 2.5.0 '@swc/cli': specifier: 0.7.7 - version: 0.7.7(@swc/core@1.11.29)(chokidar@4.0.3) + version: 0.7.7(@swc/core@1.12.0)(chokidar@4.0.3) '@swc/core': - specifier: 1.11.29 - version: 1.11.29 + specifier: 1.12.0 + version: 1.12.0 '@twemoji/parser': specifier: 15.1.1 version: 15.1.1 @@ -190,8 +190,8 @@ importers: specifier: 1.20.3 version: 1.20.3 bullmq: - specifier: 5.53.0 - version: 5.53.0 + specifier: 5.53.2 + version: 5.53.2 cacheable-lookup: specifier: 7.0.0 version: 7.0.0 @@ -238,8 +238,8 @@ importers: specifier: 2.1.3 version: 2.1.3 form-data: - specifier: 4.0.2 - version: 4.0.2 + specifier: 4.0.3 + version: 4.0.3 got: specifier: 14.4.7 version: 14.4.7 @@ -286,14 +286,14 @@ importers: specifier: 11.0.1 version: 11.0.1 meilisearch: - specifier: 0.50.0 - version: 0.50.0 + specifier: 0.51.0 + version: 0.51.0 mfm-js: specifier: 0.24.0 version: 0.24.0 microformats-parser: - specifier: 2.0.2 - version: 2.0.2 + specifier: 2.0.3 + version: 2.0.3 mime-types: specifier: 2.1.35 version: 2.1.35 @@ -446,17 +446,17 @@ importers: specifier: 29.7.0 version: 29.7.0 '@nestjs/platform-express': - specifier: 10.4.18 - version: 10.4.18(@nestjs/common@11.1.2(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.2) + specifier: 10.4.19 + version: 10.4.19(@nestjs/common@11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3) '@sentry/vue': - specifier: 9.22.0 - version: 9.22.0(vue@3.5.16(typescript@5.8.3)) + specifier: 9.28.0 + version: 9.28.0(vue@3.5.16(typescript@5.8.3)) '@simplewebauthn/types': specifier: 12.0.0 version: 12.0.0 '@swc/jest': specifier: 0.2.38 - version: 0.2.38(@swc/core@1.11.29) + version: 0.2.38(@swc/core@1.12.0) '@types/accepts': specifier: 1.3.7 version: 1.3.7 @@ -467,14 +467,14 @@ importers: specifier: 2.4.6 version: 2.4.6 '@types/body-parser': - specifier: 1.19.5 - version: 1.19.5 + specifier: 1.19.6 + version: 1.19.6 '@types/color-convert': specifier: 2.0.4 version: 2.0.4 '@types/content-disposition': - specifier: 0.5.8 - version: 0.5.8 + specifier: 0.5.9 + version: 0.5.9 '@types/fluent-ffmpeg': specifier: 2.1.27 version: 2.1.27 @@ -506,8 +506,8 @@ importers: specifier: 0.7.34 version: 0.7.34 '@types/node': - specifier: 22.15.21 - version: 22.15.21 + specifier: 22.15.31 + version: 22.15.31 '@types/nodemailer': specifier: 6.4.17 version: 6.4.17 @@ -521,8 +521,8 @@ importers: specifier: 0.1.2 version: 0.1.2 '@types/pg': - specifier: 8.15.2 - version: 8.15.2 + specifier: 8.15.4 + version: 8.15.4 '@types/pug': specifier: 2.0.10 version: 2.0.10 @@ -569,11 +569,11 @@ importers: specifier: 8.18.1 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: 8.32.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) '@typescript-eslint/parser': - specifier: 8.32.1 - version: 8.32.1(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) aws-sdk-client-mock: specifier: 4.1.0 version: 4.1.0 @@ -582,7 +582,7 @@ importers: version: 7.0.3 eslint-plugin-import: specifier: 2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0) + version: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0) execa: specifier: 8.0.1 version: 8.0.1 @@ -591,7 +591,7 @@ importers: version: 9.0.0 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@22.15.21) + version: 29.7.0(@types/node@22.15.31) jest-mock: specifier: 29.7.0 version: 29.7.0 @@ -612,38 +612,38 @@ importers: specifier: 1.3.11 version: 1.3.11 '@swc/core-darwin-arm64': - specifier: 1.11.29 - version: 1.11.29 + specifier: 1.12.0 + version: 1.12.0 '@swc/core-darwin-x64': - specifier: 1.11.29 - version: 1.11.29 + specifier: 1.12.0 + version: 1.12.0 '@swc/core-freebsd-x64': specifier: 1.3.11 version: 1.3.11 '@swc/core-linux-arm-gnueabihf': - specifier: 1.11.29 - version: 1.11.29 + specifier: 1.12.0 + version: 1.12.0 '@swc/core-linux-arm64-gnu': - specifier: 1.11.29 - version: 1.11.29 + specifier: 1.12.0 + version: 1.12.0 '@swc/core-linux-arm64-musl': - specifier: 1.11.29 - version: 1.11.29 + specifier: 1.12.0 + version: 1.12.0 '@swc/core-linux-x64-gnu': - specifier: 1.11.29 - version: 1.11.29 + specifier: 1.12.0 + version: 1.12.0 '@swc/core-linux-x64-musl': - specifier: 1.11.29 - version: 1.11.29 + specifier: 1.12.0 + version: 1.12.0 '@swc/core-win32-arm64-msvc': - specifier: 1.11.29 - version: 1.11.29 + specifier: 1.12.0 + version: 1.12.0 '@swc/core-win32-ia32-msvc': - specifier: 1.11.29 - version: 1.11.29 + specifier: 1.12.0 + version: 1.12.0 '@swc/core-win32-x64-msvc': - specifier: 1.11.29 - version: 1.11.29 + specifier: 1.12.0 + version: 1.12.0 '@tensorflow/tfjs': specifier: 4.22.0 version: 4.22.0(encoding@0.1.13)(seedrandom@3.0.5) @@ -1369,7 +1369,7 @@ importers: version: 7.52.8(@types/node@22.15.31) '@swc/jest': specifier: 0.2.38 - version: 0.2.38(@swc/core@1.11.29) + version: 0.2.38(@swc/core@1.12.0) '@types/jest': specifier: 29.5.14 version: 29.5.14 @@ -1567,129 +1567,129 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-s3@3.817.0': - resolution: {integrity: sha512-nZyjhlLMEXDs0ofWbpikI8tKoeKuuSgYcIb6eEZJk90Nt5HkkXn6nkWOs/kp2FdhpoGJyTILOVsDgdm7eutnLA==} + '@aws-sdk/client-s3@3.826.0': + resolution: {integrity: sha512-odX3C3CEbcBoxB06vgBjJ9jQheFsIFwHmvCIMXn8duuVyIL/klgp14+ICzbEwIgPv7xVjSlycaiURcKS876QHA==} engines: {node: '>=18.0.0'} - '@aws-sdk/client-sso@3.817.0': - resolution: {integrity: sha512-fCh5rUHmWmWDvw70NNoWpE5+BRdtNi45kDnIoeoszqVg7UKF79SlG+qYooUT52HKCgDNHqgbWaXxMOSqd2I/OQ==} + '@aws-sdk/client-sso@3.826.0': + resolution: {integrity: sha512-/FEKnUC3xPkLL4RuRydwzx+y4b55HIX6qLPbGnyIs+sNmCUyc/62ijtV1Ml+b++YzEF6jWNBsJOxeyZdgrJ3Ig==} engines: {node: '>=18.0.0'} - '@aws-sdk/core@3.816.0': - resolution: {integrity: sha512-Lx50wjtyarzKpMFV6V+gjbSZDgsA/71iyifbClGUSiNPoIQ4OCV0KVOmAAj7mQRVvGJqUMWKVM+WzK79CjbjWA==} + '@aws-sdk/core@3.826.0': + resolution: {integrity: sha512-BGbQYzWj3ps+dblq33FY5tz/SsgJCcXX0zjQlSC07tYvU1jHTUvsefphyig+fY38xZ4wdKjbTop+KUmXUYrOXw==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-env@3.816.0': - resolution: {integrity: sha512-wUJZwRLe+SxPxRV9AENYBLrJZRrNIo+fva7ZzejsC83iz7hdfq6Rv6B/aHEdPwG/nQC4+q7UUvcRPlomyrpsBA==} + '@aws-sdk/credential-provider-env@3.826.0': + resolution: {integrity: sha512-DK3pQY8+iKK3MGDdC3uOZQ2psU01obaKlTYhEwNu4VWzgwQL4Vi3sWj4xSWGEK41vqZxiRLq6fOq7ysRI+qEZA==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-http@3.816.0': - resolution: {integrity: sha512-gcWGzMQ7yRIF+ljTkR8Vzp7727UY6cmeaPrFQrvcFB8PhOqWpf7g0JsgOf5BSaP8CkkSQcTQHc0C5ZYAzUFwPg==} + '@aws-sdk/credential-provider-http@3.826.0': + resolution: {integrity: sha512-N+IVZBh+yx/9GbMZTKO/gErBi/FYZQtcFRItoLbY+6WU+0cSWyZYfkoeOxHmQV3iX9k65oljERIWUmL9x6OSQg==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-ini@3.817.0': - resolution: {integrity: sha512-kyEwbQyuXE+phWVzloMdkFv6qM6NOon+asMXY5W0fhDKwBz9zQLObDRWBrvQX9lmqq8BbDL1sCfZjOh82Y+RFw==} + '@aws-sdk/credential-provider-ini@3.826.0': + resolution: {integrity: sha512-g7n+qSklq/Lzjxe2Ke5QFNCgYn26a3ydZnbFIk8QqYin4pzG+qiunaqJjpV3c/EeHMlfK8bBc7MXAylKzGRccQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-node@3.817.0': - resolution: {integrity: sha512-b5mz7av0Lhavs1Bz3Zb+jrs0Pki93+8XNctnVO0drBW98x1fM4AR38cWvGbM/w9F9Q0/WEH3TinkmrMPrP4T/w==} + '@aws-sdk/credential-provider-node@3.826.0': + resolution: {integrity: sha512-UfIJXxHjmSxH6bea00HBPLkjNI2D04enQA/xNLZvB+4xtzt1/gYdCis1P4/73f5aGVVVB4/zQMobBbnjkrmbQw==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-process@3.816.0': - resolution: {integrity: sha512-9Tm+AxMoV2Izvl5b9tyMQRbBwaex8JP06HN7ZeCXgC5sAsSN+o8dsThnEhf8jKN+uBpT6CLWKN1TXuUMrAmW1A==} + '@aws-sdk/credential-provider-process@3.826.0': + resolution: {integrity: sha512-kURrc4amu3NLtw1yZw7EoLNEVhmOMRUTs+chaNcmS+ERm3yK0nKjaJzmKahmwlTQTSl3wJ8jjK7x962VPo+zWw==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-sso@3.817.0': - resolution: {integrity: sha512-gFUAW3VmGvdnueK1bh6TOcRX+j99Xm0men1+gz3cA4RE+rZGNy1Qjj8YHlv0hPwI9OnTPZquvPzA5fkviGREWg==} + '@aws-sdk/credential-provider-sso@3.826.0': + resolution: {integrity: sha512-F19J3zcfoom6OnQ0MyAtvduVKQXPgkz9i5ExSO01J2CzjbyMhCDA99qAjHYe+LwhW+W7P/jzBPd0+uOQ2Nhh9Q==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-web-identity@3.817.0': - resolution: {integrity: sha512-A2kgkS9g6NY0OMT2f2EdXHpL17Ym81NhbGnQ8bRXPqESIi7TFypFD2U6osB2VnsFv+MhwM+Ke4PKXSmLun22/A==} + '@aws-sdk/credential-provider-web-identity@3.826.0': + resolution: {integrity: sha512-o27GZ6Hy7qhuvMFVUL2eFEpBzf33Jaa/x3u3SHwU0nL7ko7jmbpeF0x4+wmagpI9X2IvVlUxIs0VaQ3YayPLEA==} engines: {node: '>=18.0.0'} - '@aws-sdk/lib-storage@3.817.0': - resolution: {integrity: sha512-2zOO8+2EmiS049PjLSNdqmmZMQj7fzE1hZJ70A94vO+KNaVhVZYuMOOiOmwMw6ePkTCcFwK40vZIIXwEQQ1v1g==} + '@aws-sdk/lib-storage@3.826.0': + resolution: {integrity: sha512-NmZJVnP09ZGTVVz8ZCD8sQeVMfvyX5c2/NEJHSdavmWi2sJHuln09i/YQg90LFGL4eCFslzME/mP3pMtLQEeKQ==} engines: {node: '>=18.0.0'} peerDependencies: - '@aws-sdk/client-s3': ^3.817.0 + '@aws-sdk/client-s3': ^3.826.0 - '@aws-sdk/middleware-bucket-endpoint@3.808.0': - resolution: {integrity: sha512-wEPlNcs8dir9lXbuviEGtSzYSxG/NRKQrJk5ybOc7OpPGHovsN+QhDOdY3lcjOFdwMTiMIG9foUkPz3zBpLB1A==} + '@aws-sdk/middleware-bucket-endpoint@3.821.0': + resolution: {integrity: sha512-cebgeytKlWOgGczLo3BPvNY9XlzAzGZQANSysgJ2/8PSldmUpXRIF+GKPXDVhXeInWYHIfB8zZi3RqrPoXcNYQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-expect-continue@3.804.0': - resolution: {integrity: sha512-YW1hySBolALMII6C8y7Z0CRG2UX1dGJjLEBNFeefhO/xP7ZuE1dvnmfJGaEuBMnvc3wkRS63VZ3aqX6sevM1CA==} + '@aws-sdk/middleware-expect-continue@3.821.0': + resolution: {integrity: sha512-zAOoSZKe1njOrtynvK6ZORU57YGv5I7KP4+rwOvUN3ZhJbQ7QPf8gKtFUCYAPRMegaXCKF/ADPtDZBAmM+zZ9g==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.816.0': - resolution: {integrity: sha512-kftcwDxB/VoCBsUiRgkm5CIuKbTfCN1WLPbis9LRwX3kQhKgGVxG2gG78SHk4TBB0qviWVAd/t+i/KaUgwiAcA==} + '@aws-sdk/middleware-flexible-checksums@3.826.0': + resolution: {integrity: sha512-Fz9w8CFYPfSlHEB6feSsi06hdS+s+FB8k5pO4L7IV0tUa78mlhxF/VNlAJaVWYyOkZXl4HPH2K48aapACSQOXw==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-host-header@3.804.0': - resolution: {integrity: sha512-bum1hLVBrn2lJCi423Z2fMUYtsbkGI2s4N+2RI2WSjvbaVyMSv/WcejIrjkqiiMR+2Y7m5exgoKeg4/TODLDPQ==} + '@aws-sdk/middleware-host-header@3.821.0': + resolution: {integrity: sha512-xSMR+sopSeWGx5/4pAGhhfMvGBHioVBbqGvDs6pG64xfNwM5vq5s5v6D04e2i+uSTj4qGa71dLUs5I0UzAK3sw==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-location-constraint@3.804.0': - resolution: {integrity: sha512-AMtKnllIWKgoo7hiJfphLYotEwTERfjVMO2+cKAncz9w1g+bnYhHxiVhJJoR94y047c06X4PU5MsTxvdQ73Znw==} + '@aws-sdk/middleware-location-constraint@3.821.0': + resolution: {integrity: sha512-sKrm80k0t3R0on8aA/WhWFoMaAl4yvdk+riotmMElLUpcMcRXAd1+600uFVrxJqZdbrKQ0mjX0PjT68DlkYXLg==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-logger@3.804.0': - resolution: {integrity: sha512-w/qLwL3iq0KOPQNat0Kb7sKndl9BtceigINwBU7SpkYWX9L/Lem6f8NPEKrC9Tl4wDBht3Yztub4oRTy/horJA==} + '@aws-sdk/middleware-logger@3.821.0': + resolution: {integrity: sha512-0cvI0ipf2tGx7fXYEEN5fBeZDz2RnHyb9xftSgUsEq7NBxjV0yTZfLJw6Za5rjE6snC80dRN8+bTNR1tuG89zA==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-recursion-detection@3.804.0': - resolution: {integrity: sha512-zqHOrvLRdsUdN/ehYfZ9Tf8svhbiLLz5VaWUz22YndFv6m9qaAcijkpAOlKexsv3nLBMJdSdJ6GUTAeIy3BZzw==} + '@aws-sdk/middleware-recursion-detection@3.821.0': + resolution: {integrity: sha512-efmaifbhBoqKG3bAoEfDdcM8hn1psF+4qa7ykWuYmfmah59JBeqHLfz5W9m9JoTwoKPkFcVLWZxnyZzAnVBOIg==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-sdk-s3@3.816.0': - resolution: {integrity: sha512-jJ+EAXM7gnOwiCM6rrl4AUNY5urmtIsX7roTkxtb4DevJxcS+wFYRRg3/j33fQbuxQZrvk21HqxyZYx5UH70PA==} + '@aws-sdk/middleware-sdk-s3@3.826.0': + resolution: {integrity: sha512-8F0qWaYKfvD/de1AKccXuigM+gb/IZSncCqxdnFWqd+TFzo9qI9Hh+TpUhWOMYSgxsMsYQ8ipmLzlD/lDhjrmA==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-ssec@3.804.0': - resolution: {integrity: sha512-Tk8jK0gOIUBvEPTz/wwSlP1V70zVQ3QYqsLPAjQRMO6zfOK9ax31dln3MgKvFDJxBydS2tS3wsn53v+brxDxTA==} + '@aws-sdk/middleware-ssec@3.821.0': + resolution: {integrity: sha512-YYi1Hhr2AYiU/24cQc8HIB+SWbQo6FBkMYojVuz/zgrtkFmALxENGF/21OPg7f/QWd+eadZJRxCjmRwh5F2Cxg==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-user-agent@3.816.0': - resolution: {integrity: sha512-bHRSlWZ0xDsFR8E2FwDb//0Ff6wMkVx4O+UKsfyNlAbtqCiiHRt5ANNfKPafr95cN2CCxLxiPvFTFVblQM5TsQ==} + '@aws-sdk/middleware-user-agent@3.826.0': + resolution: {integrity: sha512-j404+EcfBbtTlAhyObjXbdKwwDXO1pCxHvR5Fw8FXNvp/H330j6YnXgs3SJ6d3bZUwUJ/ztPx2S5AlBbLVLDFw==} engines: {node: '>=18.0.0'} - '@aws-sdk/nested-clients@3.817.0': - resolution: {integrity: sha512-vQ2E06A48STJFssueJQgxYD8lh1iGJoLJnHdshRDWOQb8gy1wVQR+a7MkPGhGR6lGoS0SCnF/Qp6CZhnwLsqsQ==} + '@aws-sdk/nested-clients@3.826.0': + resolution: {integrity: sha512-p7olPq0uTtHqGuXI1GSc/gzKDvV55PMbLtnmupEDfnY9SoRu+QatbWQ6da9sI1lhOcNmRMgiNQBXFzaUFrG+SQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/region-config-resolver@3.808.0': - resolution: {integrity: sha512-9x2QWfphkARZY5OGkl9dJxZlSlYM2l5inFeo2bKntGuwg4A4YUe5h7d5yJ6sZbam9h43eBrkOdumx03DAkQF9A==} + '@aws-sdk/region-config-resolver@3.821.0': + resolution: {integrity: sha512-t8og+lRCIIy5nlId0bScNpCkif8sc0LhmtaKsbm0ZPm3sCa/WhCbSZibjbZ28FNjVCV+p0D9RYZx0VDDbtWyjw==} engines: {node: '>=18.0.0'} - '@aws-sdk/signature-v4-multi-region@3.816.0': - resolution: {integrity: sha512-idcr9NW86sSIXASSej3423Selu6fxlhhJJtMgpAqoCH/HJh1eQrONJwNKuI9huiruPE8+02pwxuePvLW46X2mw==} + '@aws-sdk/signature-v4-multi-region@3.826.0': + resolution: {integrity: sha512-3fEi/zy6tpMzomYosksGtu7jZqGFcdBXoL7YRsG7OEeQzBbOW9B+fVaQZ4jnsViSjzA/yKydLahMrfPnt+iaxg==} engines: {node: '>=18.0.0'} - '@aws-sdk/token-providers@3.817.0': - resolution: {integrity: sha512-CYN4/UO0VaqyHf46ogZzNrVX7jI3/CfiuktwKlwtpKA6hjf2+ivfgHSKzPpgPBcSEfiibA/26EeLuMnB6cpSrQ==} + '@aws-sdk/token-providers@3.826.0': + resolution: {integrity: sha512-iCOcVAqGPSHtQL8ZBXifZMEcHyUl9wJ8HvLZ5l1ohA/3ZNP+dqEPGi7jfhR5jZKs+xyp2jxByFqfil9PjI9c5A==} engines: {node: '>=18.0.0'} - '@aws-sdk/types@3.804.0': - resolution: {integrity: sha512-A9qnsy9zQ8G89vrPPlNG9d1d8QcKRGqJKqwyGgS0dclJpwy6d1EWgQLIolKPl6vcFpLoe6avLOLxr+h8ur5wpg==} + '@aws-sdk/types@3.821.0': + resolution: {integrity: sha512-Znroqdai1a90TlxGaJ+FK1lwC0fHpo97Xjsp5UKGR5JODYm7f9+/fF17ebO1KdoBr/Rm0UIFiF5VmI8ts9F1eA==} engines: {node: '>=18.0.0'} '@aws-sdk/util-arn-parser@3.804.0': resolution: {integrity: sha512-wmBJqn1DRXnZu3b4EkE6CWnoWMo1ZMvlfkqU5zPz67xx1GMaXlDCchFvKAXMjk4jn/L1O3tKnoFDNsoLV1kgNQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/util-endpoints@3.808.0': - resolution: {integrity: sha512-N6Lic98uc4ADB7fLWlzx+1uVnq04VgVjngZvwHoujcRg9YDhIg9dUDiTzD5VZv13g1BrPYmvYP1HhsildpGV6w==} + '@aws-sdk/util-endpoints@3.821.0': + resolution: {integrity: sha512-Uknt/zUZnLE76zaAAPEayOeF5/4IZ2puTFXvcSCWHsi9m3tqbb9UozlnlVqvCZLCRWfQryZQoG2W4XSS3qgk5A==} engines: {node: '>=18.0.0'} '@aws-sdk/util-locate-window@3.208.0': resolution: {integrity: sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==} engines: {node: '>=14.0.0'} - '@aws-sdk/util-user-agent-browser@3.804.0': - resolution: {integrity: sha512-KfW6T6nQHHM/vZBBdGn6fMyG/MgX5lq82TDdX4HRQRRuHKLgBWGpKXqqvBwqIaCdXwWHgDrg2VQups6GqOWW2A==} + '@aws-sdk/util-user-agent-browser@3.821.0': + resolution: {integrity: sha512-irWZHyM0Jr1xhC+38OuZ7JB6OXMLPZlj48thElpsO1ZSLRkLZx5+I7VV6k3sp2yZ7BYbKz/G2ojSv4wdm7XTLw==} - '@aws-sdk/util-user-agent-node@3.816.0': - resolution: {integrity: sha512-Q6dxmuj4hL7pudhrneWEQ7yVHIQRBFr0wqKLF1opwOi1cIePuoEbPyJ2jkel6PDEv1YMfvsAKaRshp6eNA8VHg==} + '@aws-sdk/util-user-agent-node@3.826.0': + resolution: {integrity: sha512-wHw6bZQWIMcFF/8r03aY9Itp6JLBYY4absGGhCDK1dc3tPEfi8NVSdb05a/Oz+g4TVaDdxLo0OQ/OKMS1DFRHQ==} engines: {node: '>=18.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -1697,8 +1697,8 @@ packages: aws-crt: optional: true - '@aws-sdk/xml-builder@3.804.0': - resolution: {integrity: sha512-JbGWp36IG9dgxtvC6+YXwt5WDZYfuamWFtVfK6fQpnmL96dx+GUPOXPKRWdw67WLKf2comHY28iX2d3z35I53Q==} + '@aws-sdk/xml-builder@3.821.0': + resolution: {integrity: sha512-DIIotRnefVL6DiaHtO6/21DhJ4JZnnIwdNbpwiAhdt/AVbttcE4yw925gsjur0OGv5BTYXQXU3YnANBYnZjuQA==} engines: {node: '>=18.0.0'} '@babel/code-frame@7.24.7': @@ -2905,72 +2905,72 @@ packages: resolution: {integrity: sha512-RuzCup9Ct91Y7V79xwCb146RaBRHZ7NBbrIUySumd1rpKqHL5OonaqrGIbug5hNwP/fRyxFMA6ISgw4FTtYFYg==} engines: {node: '>=18'} - '@napi-rs/canvas-android-arm64@0.1.70': - resolution: {integrity: sha512-I/YOuQ0wbkVYxVaYtCgN42WKTYxNqFA0gTcTrHIGG1jfpDSyZWII/uHcjOo4nzd19io6Y4+/BqP8E5hJgf9OmQ==} + '@napi-rs/canvas-android-arm64@0.1.71': + resolution: {integrity: sha512-cxi3VCotIOS9kNFQI7dcysbVJi106pxryVY1Hi85pX+ZeqahRyeqc/NsLaZ998Ae99+F3HI5X/39G1Y/Byrf0A==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@napi-rs/canvas-darwin-arm64@0.1.70': - resolution: {integrity: sha512-4pPGyXetHIHkw2TOJHujt3mkCP8LdDu8+CT15ld9Id39c752RcI0amDHSuMLMQfAjvusA9B5kKxazwjMGjEJpQ==} + '@napi-rs/canvas-darwin-arm64@0.1.71': + resolution: {integrity: sha512-7Y4D/6vIuMLYsVNtRM/w2j0+fB1GyqeOxc7I0BTx8eLP1S6BZE2Rj6zJfdG+zmLEOW0IlHa+VQq1q2MUAjW84w==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@napi-rs/canvas-darwin-x64@0.1.70': - resolution: {integrity: sha512-+2N6Os9LbkmDMHL+raknrUcLQhsXzc5CSXRbXws9C3pv/mjHRVszQ9dhFUUe9FjfPhCJznO6USVdwOtu7pOrzQ==} + '@napi-rs/canvas-darwin-x64@0.1.71': + resolution: {integrity: sha512-Z0IUqxclrYdfVt/SK9nKCzUHTOXKTWiygtO71YCzs0OtxKdNI7GJRJdYG48wXZEDQ/pqTF4F7Ifgtidfc2tYpg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@napi-rs/canvas-linux-arm-gnueabihf@0.1.70': - resolution: {integrity: sha512-QjscX9OaKq/990sVhSMj581xuqLgiaPVMjjYvWaCmAJRkNQ004QfoSMEm3FoTqM4DRoquP8jvuEXScVJsc1rqQ==} + '@napi-rs/canvas-linux-arm-gnueabihf@0.1.71': + resolution: {integrity: sha512-KlpqqCASak5ruY+UIolJgmhMZ9Pa2o1QyaNu648L8sz4WNBbNa+aOT60XCLCL1VIKLv11B3MlNgiOHoYNmDhXQ==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@napi-rs/canvas-linux-arm64-gnu@0.1.70': - resolution: {integrity: sha512-LNakMOwwqwiHIwMpnMAbFRczQMQ7TkkMyATqFCOtUJNlE6LPP/QiUj/mlFrNbUn/hctqShJ60gWEb52ZTALbVw==} + '@napi-rs/canvas-linux-arm64-gnu@0.1.71': + resolution: {integrity: sha512-bdGZCGu8YQNAiu3nkIVVUp6nIn6fPd36IuZsLXTG027E52KyIuZ3obCxehSwjDIUNkFWvmff5D6JYfWwAoioEw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@napi-rs/canvas-linux-arm64-musl@0.1.70': - resolution: {integrity: sha512-wBTOllEYNfJCHOdZj9v8gLzZ4oY3oyPX8MSRvaxPm/s7RfEXxCyZ8OhJ5xAyicsDdbE5YBZqdmaaeP5+xKxvtg==} + '@napi-rs/canvas-linux-arm64-musl@0.1.71': + resolution: {integrity: sha512-1R5sMWe9ur8uM+hAeylBwG0b6UHDR+iWQNgzXmF9vbBYRooQvmDWqpcgytKLJAC0vnWhIkKwqd7yExn7cwczmg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@napi-rs/canvas-linux-riscv64-gnu@0.1.70': - resolution: {integrity: sha512-GVUUPC8TuuFqHip0rxHkUqArQnlzmlXmTEBuXAWdgCv85zTCFH8nOHk/YCF5yo0Z2eOm8nOi90aWs0leJ4OE5Q==} + '@napi-rs/canvas-linux-riscv64-gnu@0.1.71': + resolution: {integrity: sha512-xjjKsipueuG+LdKIk6/uAlqdo+rzGcmNpTZPXdakIT1sHX4NNSnQTzjRaj9Gh96Czjd9G89UWR0KIlE7fwOgFA==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] - '@napi-rs/canvas-linux-x64-gnu@0.1.70': - resolution: {integrity: sha512-/kvUa2lZRwGNyfznSn5t1ShWJnr/m5acSlhTV3eXECafObjl0VBuA1HJw0QrilLpb4Fe0VLywkpD1NsMoVDROQ==} + '@napi-rs/canvas-linux-x64-gnu@0.1.71': + resolution: {integrity: sha512-3s6YpklXDB4OeeULG1XTRyKrKAOo7c3HHEqM9A6N4STSjMaJtzmpp7tB/JTvAFeOeFte6gWN8IwC+7AjGJ6MpQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@napi-rs/canvas-linux-x64-musl@0.1.70': - resolution: {integrity: sha512-aqlv8MLpycoMKRmds7JWCfVwNf1fiZxaU7JwJs9/ExjTD8lX2KjsO7CTeAj5Cl4aEuzxUWbJPUUE2Qu9cZ1vfg==} + '@napi-rs/canvas-linux-x64-musl@0.1.71': + resolution: {integrity: sha512-5v9aCLzCXw7u10ray5juQMdl7TykZSn1X5AIGYwBvTAcKSgrqaR9QkRxp1Lqk3njQmFekOW1SFN9bZ/i/6y6kA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@napi-rs/canvas-win32-x64-msvc@0.1.70': - resolution: {integrity: sha512-Q9QU3WIpwBTVHk4cPfBjGHGU4U0llQYRXgJtFtYqqGNEOKVN4OT6PQ+ve63xwIPODMpZ0HHyj/KLGc9CWc3EtQ==} + '@napi-rs/canvas-win32-x64-msvc@0.1.71': + resolution: {integrity: sha512-oJughk6xjsRIr0Rd9EqjmZmhIMkvcPuXgr3MNn2QexTqn+YFOizrwHS5ha0BDfFl7TEGRvwaDUXBQtu8JKXb8A==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@napi-rs/canvas@0.1.70': - resolution: {integrity: sha512-nD6NGa4JbNYSZYsTnLGrqe9Kn/lCkA4ybXt8sx5ojDqZjr2i0TWAHxx/vhgfjX+i3hCdKWufxYwi7CfXqtITSA==} + '@napi-rs/canvas@0.1.71': + resolution: {integrity: sha512-92ybDocKl6JM48ZpYbj+A7Qt45IaTABDk0y3sDecEQfgdhfNzJtEityqNHoCZ4Vty2dldPkJhxgvOnbrQMXTTA==} engines: {node: '>= 10'} - '@nestjs/common@11.1.2': - resolution: {integrity: sha512-cHh4OPH44PjaHM93D1jgE1HO/B7XTZVRDxy/cPuGgyMEA4p2zXO+qqcOgTMC5FYcp7dX9jLeCjXAU0ToFAnODw==} + '@nestjs/common@11.1.3': + resolution: {integrity: sha512-ogEK+GriWodIwCw6buQ1rpcH4Kx+G7YQ9EwuPySI3rS05pSdtQ++UhucjusSI9apNidv+QURBztJkRecwwJQXg==} peerDependencies: class-transformer: '>=0.4.1' class-validator: '>=0.13.2' @@ -2982,8 +2982,8 @@ packages: class-validator: optional: true - '@nestjs/core@11.1.2': - resolution: {integrity: sha512-QRuyxwu0BjNfmmmunsw1ylX7RSyfDQHt+xD+tKncdtgiMOOzAu+LA1gB4WoZnw4frQkk+qZbhEbM61cIjOxD3w==} + '@nestjs/core@11.1.3': + resolution: {integrity: sha512-5lTni0TCh8x7bXETRD57pQFnKnEg1T6M+VLE7wAmyQRIecKQU+2inRGZD+A4v2DC1I04eA0WffP0GKLxjOKlzw==} engines: {node: '>= 20'} peerDependencies: '@nestjs/common': ^11.0.0 @@ -3000,14 +3000,14 @@ packages: '@nestjs/websockets': optional: true - '@nestjs/platform-express@10.4.18': - resolution: {integrity: sha512-v+W+Pu5NOVK/bSG5A5mOnXyoVwN5mJUe4o0j0UJ9Ig9JMmjVxg+Zw2ydTfpOQ+R82lRYWJUjjv3dvqKaFW2z7w==} + '@nestjs/platform-express@10.4.19': + resolution: {integrity: sha512-IeQkBZUtPeJoO4E0QqSLwkB+60KcThw8/s4gGvAwIRJ5ViuXoxnwU59eBDy84PUuVbNe4VdKjfAF9fuQOEh11Q==} peerDependencies: '@nestjs/common': ^10.0.0 '@nestjs/core': ^10.0.0 - '@nestjs/testing@11.1.2': - resolution: {integrity: sha512-BQxVKUVW6gzEbbHAvmg5RgcP3s++pRgTCmsgaDF/DtcLRUeKi8SjAdqzLm14xbkMeibxOf3fNqM2iwqUKj8ffw==} + '@nestjs/testing@11.1.3': + resolution: {integrity: sha512-CeXG6/eEqgFIkPkmU00y18Dd3DLOIDFhPItzJK1SWckKo6IhcnfoRJzGx75bmuvUMjb51j6An96S/+MJ2ty9jA==} peerDependencies: '@nestjs/common': ^11.0.0 '@nestjs/core': ^11.0.0 @@ -3576,58 +3576,58 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - '@sentry-internal/browser-utils@9.22.0': - resolution: {integrity: sha512-Ou1tBnVxFAIn8i9gvrWzRotNJQYiu3awNXpsFCw6qFwmiKAVPa6b13vCdolhXnrIiuR77jY1LQnKh9hXpoRzsg==} - engines: {node: '>=18'} - '@sentry-internal/browser-utils@9.27.0': resolution: {integrity: sha512-SJa7f6Ct1BzP8rWEomnshSGN1CmT+axNKvT+StrbFPD6AyHnYfFLJpKgc2iToIJHB/pmeuOI9dUwqtzVx+5nSw==} engines: {node: '>=18'} - '@sentry-internal/feedback@9.22.0': - resolution: {integrity: sha512-zgMVkoC61fgi41zLcSZA59vOtKxcLrKBo1ECYhPD1hxEaneNqY5fhXDwlQBw96P5l2yqkgfX6YZtSdU4ejI9yA==} + '@sentry-internal/browser-utils@9.28.0': + resolution: {integrity: sha512-SqntPnIXudP3FoKj4mQ1BVPC1RNzo4CGtAxJnLpbIUpdT/khJVM6Q59zrGl2MgZ7URZCI986L5jXihQeferf6g==} engines: {node: '>=18'} '@sentry-internal/feedback@9.27.0': resolution: {integrity: sha512-e7L8eG0y63RulN352lmafoCCfQGg4jLVT8YLx6096eWu/YKLkgmVpgi8livsT5WREnH+HB+iFSrejOwK7cRkhw==} engines: {node: '>=18'} - '@sentry-internal/replay-canvas@9.22.0': - resolution: {integrity: sha512-EcG9IMSEalFe49kowBTJObWjof/iHteDwpyuAszsFDdQUYATrVUtwpwN7o52vDYWJud4arhjrQnMamIGxa79eQ==} + '@sentry-internal/feedback@9.28.0': + resolution: {integrity: sha512-z2jShmVENsesmDnShEOv841Saw0zXe1tX6GHNgkK9f6NrUMbL970JvGKByBFTffhQH6uQ0WeNPnXJ5L/YKnfDg==} engines: {node: '>=18'} '@sentry-internal/replay-canvas@9.27.0': resolution: {integrity: sha512-44rVSt3LCH6qePYRQrl4WUBwnkOk9dzinmnKmuwRksEdDOkVq5KBRhi/IDr7omwSpX8C+KrX5alfKhOx1cP0gQ==} engines: {node: '>=18'} - '@sentry-internal/replay@9.22.0': - resolution: {integrity: sha512-9GOycoKbrclcRXfcbNV8svbmAsOS5R4wXBQmKF4pFLkmFA/lJv9kdZSNYkRvkrxdNfbMIJXP+DV9EqTZcryXig==} + '@sentry-internal/replay-canvas@9.28.0': + resolution: {integrity: sha512-Bv4mbtUrRV3p6PpFQPseLv3+Uaen+3AlfX02Z6QHY1sMa4lpt+U8OHfRGLprnzb6Rarw6fK2LNVL5rnV9LNMwA==} engines: {node: '>=18'} '@sentry-internal/replay@9.27.0': resolution: {integrity: sha512-n2kO1wOfCG7GxkMAqbYYkpgTqJM5tuVLdp0JuNCqTOLTXWvw6svWGaYKlYpKUgsK9X/GDzJYSXZmfe+Dbg+FJQ==} engines: {node: '>=18'} - '@sentry/browser@9.22.0': - resolution: {integrity: sha512-3TeRm74dvX0JdjX0AgkQa+22iUHwHnY+Q6M05NZ+tDeCNHGK/mEBTeqquS1oQX67jWyuvYmG3VV6RJUxtG9Paw==} + '@sentry-internal/replay@9.28.0': + resolution: {integrity: sha512-BVGVBlmcpJdT55d/vywjfK1u6zMC5ycjJBxU1wUCNgCU3cSKRDBnvmYgk/+Ay23bFryT28Q4hM1p5qBBAOfxjQ==} engines: {node: '>=18'} '@sentry/browser@9.27.0': resolution: {integrity: sha512-geR3lhRJOmUQqi1WgovLSYcD/f66zYnctdnDEa7j1BW2XIB1nlTJn0mpYyAHghXKkUN/pBpp1Z+Jk0XlVwFYVg==} engines: {node: '>=18'} + '@sentry/browser@9.28.0': + resolution: {integrity: sha512-ttqiv3D9sIB43nZnJTTln1nXw1p4C5BDSh+sHmGUOiqdCH6ND3HByDITYMYIOz1lACSISTT4V+MEpqx0V25Tlw==} + engines: {node: '>=18'} + '@sentry/core@8.55.0': resolution: {integrity: sha512-6g7jpbefjHYs821Z+EBJ8r4Z7LT5h80YSWRJaylGS4nW5W5Z2KXzpdnyFarv37O7QjauzVC2E+PABmpkw5/JGA==} engines: {node: '>=14.18'} - '@sentry/core@9.22.0': - resolution: {integrity: sha512-ixvtKmPF42Y6ckGUbFlB54OWI75H2gO5UYHojO6eXFpS7xO3ZGgV/QH6wb40mWK+0w5XZ0233FuU9VpsuE6mKA==} - engines: {node: '>=18'} - '@sentry/core@9.27.0': resolution: {integrity: sha512-Zb2SSAdWXQjTem+sVWrrAq9L6YYfxyoTwtapaE6C6qZBR5C8Uak0wcYww8StaCFH7dDA/PSW+VxOwjNXocrQHQ==} engines: {node: '>=18'} + '@sentry/core@9.28.0': + resolution: {integrity: sha512-vzD9xhg9S864jxfCpq77feCE4y7iP2cZYsNMoTupl1vTUlmXlhp7XgF832fEMjEZq4vrPhaqCNsde7Sc3PAbaQ==} + engines: {node: '>=18'} + '@sentry/node@8.55.0': resolution: {integrity: sha512-h10LJLDTRAzYgay60Oy7moMookqqSZSviCWkkmHZyaDn+4WURnPp5SKhhfrzPRQcXKrweiOwDSHBgn1tweDssg==} engines: {node: '>=14.18'} @@ -3648,8 +3648,8 @@ packages: engines: {node: '>=14.18'} hasBin: true - '@sentry/vue@9.22.0': - resolution: {integrity: sha512-VmLoJEwSagoU2LA/MbFO6PvK7UeE9I9mVzSYR/aarPcran+/eG/clzGjD13lk6RoifaXZ18LWdO4/eO9eJqjbw==} + '@sentry/vue@9.27.0': + resolution: {integrity: sha512-LeoxSCDtynAA89tcUD3r1JblCwFjzByID9O0y1JkMU1UlVL08vbV9fNSfEhJ66WdvBo5KPTRn5ScHLUOoae/WA==} engines: {node: '>=18'} peerDependencies: pinia: 2.x || 3.x @@ -3658,8 +3658,8 @@ packages: pinia: optional: true - '@sentry/vue@9.27.0': - resolution: {integrity: sha512-LeoxSCDtynAA89tcUD3r1JblCwFjzByID9O0y1JkMU1UlVL08vbV9fNSfEhJ66WdvBo5KPTRn5ScHLUOoae/WA==} + '@sentry/vue@9.28.0': + resolution: {integrity: sha512-k3TG9yuta5pbmX5If5BhaL+GCs1hKrepYf0XdDW+XSMB5gXJ7BzeCNrAGbGWfRlr+pioiRz4V9nxTTBY1yX5mQ==} engines: {node: '>=18'} peerDependencies: pinia: 2.x || 3.x @@ -3748,8 +3748,8 @@ packages: resolution: {integrity: sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==} engines: {node: '>=14.0.0'} - '@smithy/abort-controller@4.0.3': - resolution: {integrity: sha512-AqXFf6DXnuRBXy4SoK/n1mfgHaKaq36bmkphmD1KO0nHq6xK/g9KHSW4HEsPQUBCGdIEfuJifGHwxFXPIFay9Q==} + '@smithy/abort-controller@4.0.4': + resolution: {integrity: sha512-gJnEjZMvigPDQWHrW3oPrFhQtkrgqBkyjj3pCIdF3A5M6vsZODG93KNlfJprv6bp4245bdT32fsHK4kkH3KYDA==} engines: {node: '>=18.0.0'} '@smithy/chunked-blob-reader-native@4.0.0': @@ -3760,56 +3760,56 @@ packages: resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==} engines: {node: '>=18.0.0'} - '@smithy/config-resolver@4.1.3': - resolution: {integrity: sha512-N5e7ofiyYDmHxnPnqF8L4KtsbSDwyxFRfDK9bp1d9OyPO4ytRLd0/XxCqi5xVaaqB65v4woW8uey6jND6zxzxQ==} + '@smithy/config-resolver@4.1.4': + resolution: {integrity: sha512-prmU+rDddxHOH0oNcwemL+SwnzcG65sBF2yXRO7aeXIn/xTlq2pX7JLVbkBnVLowHLg4/OL4+jBmv9hVrVGS+w==} engines: {node: '>=18.0.0'} - '@smithy/core@3.4.0': - resolution: {integrity: sha512-dDYISQo7k0Ml/rXlFIjkTmTcQze/LxhtIRAEmZ6HJ/EI0inVxVEVnrUXJ7jPx6ZP0GHUhFm40iQcCgS5apXIXA==} + '@smithy/core@3.5.3': + resolution: {integrity: sha512-xa5byV9fEguZNofCclv6v9ra0FYh5FATQW/da7FQUVTic94DfrN/NvmKZjrMyzbpqfot9ZjBaO8U1UeTbmSLuA==} engines: {node: '>=18.0.0'} - '@smithy/credential-provider-imds@4.0.5': - resolution: {integrity: sha512-saEAGwrIlkb9XxX/m5S5hOtzjoJPEK6Qw2f9pYTbIsMPOFyGSXBBTw95WbOyru8A1vIS2jVCCU1Qhz50QWG3IA==} + '@smithy/credential-provider-imds@4.0.6': + resolution: {integrity: sha512-hKMWcANhUiNbCJouYkZ9V3+/Qf9pteR1dnwgdyzR09R4ODEYx8BbUysHwRSyex4rZ9zapddZhLFTnT4ZijR4pw==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-codec@4.0.2': - resolution: {integrity: sha512-p+f2kLSK7ZrXVfskU/f5dzksKTewZk8pJLPvER3aFHPt76C2MxD9vNatSfLzzQSQB4FNO96RK4PSXfhD1TTeMQ==} + '@smithy/eventstream-codec@4.0.4': + resolution: {integrity: sha512-7XoWfZqWb/QoR/rAU4VSi0mWnO2vu9/ltS6JZ5ZSZv0eovLVfDfu0/AX4ub33RsJTOth3TiFWSHS5YdztvFnig==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-browser@4.0.2': - resolution: {integrity: sha512-CepZCDs2xgVUtH7ZZ7oDdZFH8e6Y2zOv8iiX6RhndH69nlojCALSKK+OXwZUgOtUZEUaZ5e1hULVCHYbCn7pug==} + '@smithy/eventstream-serde-browser@4.0.4': + resolution: {integrity: sha512-3fb/9SYaYqbpy/z/H3yIi0bYKyAa89y6xPmIqwr2vQiUT2St+avRt8UKwsWt9fEdEasc5d/V+QjrviRaX1JRFA==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-config-resolver@4.1.0': - resolution: {integrity: sha512-1PI+WPZ5TWXrfj3CIoKyUycYynYJgZjuQo8U+sphneOtjsgrttYybdqESFReQrdWJ+LKt6NEdbYzmmfDBmjX2A==} + '@smithy/eventstream-serde-config-resolver@4.1.2': + resolution: {integrity: sha512-JGtambizrWP50xHgbzZI04IWU7LdI0nh/wGbqH3sJesYToMi2j/DcoElqyOcqEIG/D4tNyxgRuaqBXWE3zOFhQ==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-node@4.0.2': - resolution: {integrity: sha512-C5bJ/C6x9ENPMx2cFOirspnF9ZsBVnBMtP6BdPl/qYSuUawdGQ34Lq0dMcf42QTjUZgWGbUIZnz6+zLxJlb9aw==} + '@smithy/eventstream-serde-node@4.0.4': + resolution: {integrity: sha512-RD6UwNZ5zISpOWPuhVgRz60GkSIp0dy1fuZmj4RYmqLVRtejFqQ16WmfYDdoSoAjlp1LX+FnZo+/hkdmyyGZ1w==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-universal@4.0.2': - resolution: {integrity: sha512-St8h9JqzvnbB52FtckiHPN4U/cnXcarMniXRXTKn0r4b4XesZOGiAyUdj1aXbqqn1icSqBlzzUsCl6nPB018ng==} + '@smithy/eventstream-serde-universal@4.0.4': + resolution: {integrity: sha512-UeJpOmLGhq1SLox79QWw/0n2PFX+oPRE1ZyRMxPIaFEfCqWaqpB7BU9C8kpPOGEhLF7AwEqfFbtwNxGy4ReENA==} engines: {node: '>=18.0.0'} - '@smithy/fetch-http-handler@5.0.3': - resolution: {integrity: sha512-yBZwavI31roqTndNI7ONHqesfH01JmjJK6L3uUpZAhyAmr86LN5QiPzfyZGIxQmed8VEK2NRSQT3/JX5V1njfQ==} + '@smithy/fetch-http-handler@5.0.4': + resolution: {integrity: sha512-AMtBR5pHppYMVD7z7G+OlHHAcgAN7v0kVKEpHuTO4Gb199Gowh0taYi9oDStFeUhetkeP55JLSVlTW1n9rFtUw==} engines: {node: '>=18.0.0'} - '@smithy/hash-blob-browser@4.0.2': - resolution: {integrity: sha512-3g188Z3DyhtzfBRxpZjU8R9PpOQuYsbNnyStc/ZVS+9nVX1f6XeNOa9IrAh35HwwIZg+XWk8bFVtNINVscBP+g==} + '@smithy/hash-blob-browser@4.0.4': + resolution: {integrity: sha512-WszRiACJiQV3QG6XMV44i5YWlkrlsM5Yxgz4jvsksuu7LDXA6wAtypfPajtNTadzpJy3KyJPoWehYpmZGKUFIQ==} engines: {node: '>=18.0.0'} - '@smithy/hash-node@4.0.2': - resolution: {integrity: sha512-VnTpYPnRUE7yVhWozFdlxcYknv9UN7CeOqSrMH+V877v4oqtVYuoqhIhtSjmGPvYrYnAkaM61sLMKHvxL138yg==} + '@smithy/hash-node@4.0.4': + resolution: {integrity: sha512-qnbTPUhCVnCgBp4z4BUJUhOEkVwxiEi1cyFM+Zj6o+aY8OFGxUQleKWq8ltgp3dujuhXojIvJWdoqpm6dVO3lQ==} engines: {node: '>=18.0.0'} - '@smithy/hash-stream-node@4.0.2': - resolution: {integrity: sha512-POWDuTznzbIwlEXEvvXoPMS10y0WKXK790soe57tFRfvf4zBHyzE529HpZMqmDdwG9MfFflnyzndUQ8j78ZdSg==} + '@smithy/hash-stream-node@4.0.4': + resolution: {integrity: sha512-wHo0d8GXyVmpmMh/qOR0R7Y46/G1y6OR8U+bSTB4ppEzRxd1xVAQ9xOE9hOc0bSjhz0ujCPAbfNLkLrpa6cevg==} engines: {node: '>=18.0.0'} - '@smithy/invalid-dependency@4.0.2': - resolution: {integrity: sha512-GatB4+2DTpgWPday+mnUkoumP54u/MDM/5u44KF9hIu8jF0uafZtQLcdfIKkIcUNuF/fBojpLEHZS/56JqPeXQ==} + '@smithy/invalid-dependency@4.0.4': + resolution: {integrity: sha512-bNYMi7WKTJHu0gn26wg8OscncTt1t2b8KcsZxvOv56XA6cyXtOAAAaNP7+m45xfppXfOatXF3Sb1MNsLUgVLTw==} engines: {node: '>=18.0.0'} '@smithy/is-array-buffer@2.0.0': @@ -3820,92 +3820,92 @@ packages: resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} engines: {node: '>=18.0.0'} - '@smithy/md5-js@4.0.2': - resolution: {integrity: sha512-Hc0R8EiuVunUewCse2syVgA2AfSRco3LyAv07B/zCOMa+jpXI9ll+Q21Nc6FAlYPcpNcAXqBzMhNs1CD/pP2bA==} + '@smithy/md5-js@4.0.4': + resolution: {integrity: sha512-uGLBVqcOwrLvGh/v/jw423yWHq/ofUGK1W31M2TNspLQbUV1Va0F5kTxtirkoHawODAZcjXTSGi7JwbnPcDPJg==} engines: {node: '>=18.0.0'} - '@smithy/middleware-content-length@4.0.2': - resolution: {integrity: sha512-hAfEXm1zU+ELvucxqQ7I8SszwQ4znWMbNv6PLMndN83JJN41EPuS93AIyh2N+gJ6x8QFhzSO6b7q2e6oClDI8A==} + '@smithy/middleware-content-length@4.0.4': + resolution: {integrity: sha512-F7gDyfI2BB1Kc+4M6rpuOLne5LOcEknH1n6UQB69qv+HucXBR1rkzXBnQTB2q46sFy1PM/zuSJOB532yc8bg3w==} engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@4.1.7': - resolution: {integrity: sha512-KDzM7Iajo6K7eIWNNtukykRT4eWwlHjCEsULZUaSfi/SRSBK8BPRqG5FsVfp58lUxcvre8GT8AIPIqndA0ERKw==} + '@smithy/middleware-endpoint@4.1.11': + resolution: {integrity: sha512-zDogwtRLzKl58lVS8wPcARevFZNBOOqnmzWWxVe9XiaXU2CADFjvJ9XfNibgkOWs08sxLuSr81NrpY4mgp9OwQ==} engines: {node: '>=18.0.0'} - '@smithy/middleware-retry@4.1.8': - resolution: {integrity: sha512-e2OtQgFzzlSG0uCjcJmi02QuFSRTrpT11Eh2EcqqDFy7DYriteHZJkkf+4AsxsrGDugAtPFcWBz1aq06sSX5fQ==} + '@smithy/middleware-retry@4.1.12': + resolution: {integrity: sha512-wvIH70c4e91NtRxdaLZF+mbLZ/HcC6yg7ySKUiufL6ESp6zJUSnJucZ309AvG9nqCFHSRB5I6T3Ez1Q9wCh0Ww==} engines: {node: '>=18.0.0'} - '@smithy/middleware-serde@4.0.6': - resolution: {integrity: sha512-YECyl7uNII+jCr/9qEmCu8xYL79cU0fqjo0qxpcVIU18dAPHam/iYwcknAu4Jiyw1uN+sAx7/SMf/Kmef/Jjsg==} + '@smithy/middleware-serde@4.0.8': + resolution: {integrity: sha512-iSSl7HJoJaGyMIoNn2B7czghOVwJ9nD7TMvLhMWeSB5vt0TnEYyRRqPJu/TqW76WScaNvYYB8nRoiBHR9S1Ddw==} engines: {node: '>=18.0.0'} - '@smithy/middleware-stack@4.0.3': - resolution: {integrity: sha512-baeV7t4jQfQtFxBADFmnhmqBmqR38dNU5cvEgHcMK/Kp3D3bEI0CouoX2Sr/rGuntR+Eg0IjXdxnGGTc6SbIkw==} + '@smithy/middleware-stack@4.0.4': + resolution: {integrity: sha512-kagK5ggDrBUCCzI93ft6DjteNSfY8Ulr83UtySog/h09lTIOAJ/xUSObutanlPT0nhoHAkpmW9V5K8oPyLh+QA==} engines: {node: '>=18.0.0'} - '@smithy/node-config-provider@4.1.2': - resolution: {integrity: sha512-SUvNup8iU1v7fmM8XPk+27m36udmGCfSz+VZP5Gb0aJ3Ne0X28K/25gnsrg3X1rWlhcnhzNUUysKW/Ied46ivQ==} + '@smithy/node-config-provider@4.1.3': + resolution: {integrity: sha512-HGHQr2s59qaU1lrVH6MbLlmOBxadtzTsoO4c+bF5asdgVik3I8o7JIOzoeqWc5MjVa+vD36/LWE0iXKpNqooRw==} engines: {node: '>=18.0.0'} '@smithy/node-http-handler@2.5.0': resolution: {integrity: sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==} engines: {node: '>=14.0.0'} - '@smithy/node-http-handler@4.0.5': - resolution: {integrity: sha512-T7QglZC1vS7SPT44/1qSIAQEx5bFKb3LfO6zw/o4Xzt1eC5HNoH1TkS4lMYA9cWFbacUhx4hRl/blLun4EOCkg==} + '@smithy/node-http-handler@4.0.6': + resolution: {integrity: sha512-NqbmSz7AW2rvw4kXhKGrYTiJVDHnMsFnX4i+/FzcZAfbOBauPYs2ekuECkSbtqaxETLLTu9Rl/ex6+I2BKErPA==} engines: {node: '>=18.0.0'} - '@smithy/property-provider@4.0.3': - resolution: {integrity: sha512-Wcn17QNdawJZcZZPBuMuzyBENVi1AXl4TdE0jvzo4vWX2x5df/oMlmr/9M5XAAC6+yae4kWZlOYIsNsgDrMU9A==} + '@smithy/property-provider@4.0.4': + resolution: {integrity: sha512-qHJ2sSgu4FqF4U/5UUp4DhXNmdTrgmoAai6oQiM+c5RZ/sbDwJ12qxB1M6FnP+Tn/ggkPZf9ccn4jqKSINaquw==} engines: {node: '>=18.0.0'} '@smithy/protocol-http@3.3.0': resolution: {integrity: sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==} engines: {node: '>=14.0.0'} - '@smithy/protocol-http@5.1.1': - resolution: {integrity: sha512-Vsay2mzq05DwNi9jK01yCFtfvu9HimmgC7a4HTs7lhX12Sx8aWsH0mfz6q/02yspSp+lOB+Q2HJwi4IV2GKz7A==} + '@smithy/protocol-http@5.1.2': + resolution: {integrity: sha512-rOG5cNLBXovxIrICSBm95dLqzfvxjEmuZx4KK3hWwPFHGdW3lxY0fZNXfv2zebfRO7sJZ5pKJYHScsqopeIWtQ==} engines: {node: '>=18.0.0'} '@smithy/querystring-builder@2.2.0': resolution: {integrity: sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==} engines: {node: '>=14.0.0'} - '@smithy/querystring-builder@4.0.3': - resolution: {integrity: sha512-UUzIWMVfPmDZcOutk2/r1vURZqavvQW0OHvgsyNV0cKupChvqg+/NKPRMaMEe+i8tP96IthMFeZOZWpV+E4RAw==} + '@smithy/querystring-builder@4.0.4': + resolution: {integrity: sha512-SwREZcDnEYoh9tLNgMbpop+UTGq44Hl9tdj3rf+yeLcfH7+J8OXEBaMc2kDxtyRHu8BhSg9ADEx0gFHvpJgU8w==} engines: {node: '>=18.0.0'} - '@smithy/querystring-parser@4.0.3': - resolution: {integrity: sha512-K5M4ZJQpFCblOJ5Oyw7diICpFg1qhhR47m2/5Ef1PhGE19RaIZf50tjYFrxa6usqcuXyTiFPGo4d1geZdH4YcQ==} + '@smithy/querystring-parser@4.0.4': + resolution: {integrity: sha512-6yZf53i/qB8gRHH/l2ZwUG5xgkPgQF15/KxH0DdXMDHjesA9MeZje/853ifkSY0x4m5S+dfDZ+c4x439PF0M2w==} engines: {node: '>=18.0.0'} - '@smithy/service-error-classification@4.0.4': - resolution: {integrity: sha512-W5ScbQ1bTzgH91kNEE2CvOzM4gXlDOqdow4m8vMFSIXCel2scbHwjflpVNnC60Y3F1m5i7w2gQg9lSnR+JsJAA==} + '@smithy/service-error-classification@4.0.5': + resolution: {integrity: sha512-LvcfhrnCBvCmTee81pRlh1F39yTS/+kYleVeLCwNtkY8wtGg8V/ca9rbZZvYIl8OjlMtL6KIjaiL/lgVqHD2nA==} engines: {node: '>=18.0.0'} - '@smithy/shared-ini-file-loader@4.0.3': - resolution: {integrity: sha512-vHwlrqhZGIoLwaH8vvIjpHnloShqdJ7SUPNM2EQtEox+yEDFTVQ7E+DLZ+6OhnYEgFUwPByJyz6UZaOu2tny6A==} + '@smithy/shared-ini-file-loader@4.0.4': + resolution: {integrity: sha512-63X0260LoFBjrHifPDs+nM9tV0VMkOTl4JRMYNuKh/f5PauSjowTfvF3LogfkWdcPoxsA9UjqEOgjeYIbhb7Nw==} engines: {node: '>=18.0.0'} - '@smithy/signature-v4@5.1.0': - resolution: {integrity: sha512-4t5WX60sL3zGJF/CtZsUQTs3UrZEDO2P7pEaElrekbLqkWPYkgqNW1oeiNYC6xXifBnT9dVBOnNQRvOE9riU9w==} + '@smithy/signature-v4@5.1.2': + resolution: {integrity: sha512-d3+U/VpX7a60seHziWnVZOHuEgJlclufjkS6zhXvxcJgkJq4UWdH5eOBLzHRMx6gXjsdT9h6lfpmLzbrdupHgQ==} engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.3.0': - resolution: {integrity: sha512-DNsRA38pN6tYHUjebmwD9e4KcgqTLldYQb2gC6K+oxXYdCTxPn6wV9+FvOa6wrU2FQEnGJoi+3GULzOTKck/tg==} + '@smithy/smithy-client@4.4.3': + resolution: {integrity: sha512-xxzNYgA0HD6ETCe5QJubsxP0hQH3QK3kbpJz3QrosBCuIWyEXLR/CO5hFb2OeawEKUxMNhz3a1nuJNN2np2RMA==} engines: {node: '>=18.0.0'} '@smithy/types@2.12.0': resolution: {integrity: sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==} engines: {node: '>=14.0.0'} - '@smithy/types@4.3.0': - resolution: {integrity: sha512-+1iaIQHthDh9yaLhRzaoQxRk+l9xlk+JjMFxGRhNLz+m9vKOkjNeU8QuB4w3xvzHyVR/BVlp/4AXDHjoRIkfgQ==} + '@smithy/types@4.3.1': + resolution: {integrity: sha512-UqKOQBL2x6+HWl3P+3QqFD4ncKq0I8Nuz9QItGv5WuKuMHuuwlhvqcZCoXGfc+P1QmfJE7VieykoYYmrOoFJxA==} engines: {node: '>=18.0.0'} - '@smithy/url-parser@4.0.3': - resolution: {integrity: sha512-n5/DnosDu/tweOqUUNtUbu7eRIR4J/Wz9nL7V5kFYQQVb8VYdj7a4G5NJHCw6o21ul7CvZoJkOpdTnsQDLT0tQ==} + '@smithy/url-parser@4.0.4': + resolution: {integrity: sha512-eMkc144MuN7B0TDA4U2fKs+BqczVbk3W+qIvcoCY6D1JY3hnAdCuhCZODC+GAeaxj0p6Jroz4+XMUn3PCxQQeQ==} engines: {node: '>=18.0.0'} '@smithy/util-base64@4.0.0': @@ -3932,32 +3932,32 @@ packages: resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-browser@4.0.15': - resolution: {integrity: sha512-bJJ/B8owQbHAflatSq92f9OcV8858DJBQF1Y3GRjB8psLyUjbISywszYPFw16beREHO/C3I3taW4VGH+tOuwrQ==} + '@smithy/util-defaults-mode-browser@4.0.19': + resolution: {integrity: sha512-mvLMh87xSmQrV5XqnUYEPoiFFeEGYeAKIDDKdhE2ahqitm8OHM3aSvhqL6rrK6wm1brIk90JhxDf5lf2hbrLbQ==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-node@4.0.15': - resolution: {integrity: sha512-8CUrEW2Ni5q+NmYkj8wsgkfqoP7l4ZquptFbq92yQE66xevc4SxqP2zH6tMtN158kgBqBDsZ+qlrRwXWOjCR8A==} + '@smithy/util-defaults-mode-node@4.0.19': + resolution: {integrity: sha512-8tYnx+LUfj6m+zkUUIrIQJxPM1xVxfRBvoGHua7R/i6qAxOMjqR6CpEpDwKoIs1o0+hOjGvkKE23CafKL0vJ9w==} engines: {node: '>=18.0.0'} - '@smithy/util-endpoints@3.0.5': - resolution: {integrity: sha512-PjDpqLk24/vAl340tmtCA++Q01GRRNH9cwL9qh46NspAX9S+IQVcK+GOzPt0GLJ6KYGyn8uOgo2kvJhiThclJw==} + '@smithy/util-endpoints@3.0.6': + resolution: {integrity: sha512-YARl3tFL3WgPuLzljRUnrS2ngLiUtkwhQtj8PAL13XZSyUiNLQxwG3fBBq3QXFqGFUXepIN73pINp3y8c2nBmA==} engines: {node: '>=18.0.0'} '@smithy/util-hex-encoding@4.0.0': resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} engines: {node: '>=18.0.0'} - '@smithy/util-middleware@4.0.3': - resolution: {integrity: sha512-iIsC6qZXxkD7V3BzTw3b1uK8RVC1M8WvwNxK1PKrH9FnxntCd30CSunXjL/8iJBE8Z0J14r2P69njwIpRG4FBQ==} + '@smithy/util-middleware@4.0.4': + resolution: {integrity: sha512-9MLKmkBmf4PRb0ONJikCbCwORACcil6gUWojwARCClT7RmLzF04hUR4WdRprIXal7XVyrddadYNfp2eF3nrvtQ==} engines: {node: '>=18.0.0'} - '@smithy/util-retry@4.0.4': - resolution: {integrity: sha512-Aoqr9W2jDYGrI6OxljN8VmLDQIGO4VdMAUKMf9RGqLG8hn6or+K41NEy1Y5dtum9q8F7e0obYAuKl2mt/GnpZg==} + '@smithy/util-retry@4.0.5': + resolution: {integrity: sha512-V7MSjVDTlEt/plmOFBn1762Dyu5uqMrV2Pl2X0dYk4XvWfdWJNe9Bs5Bzb56wkCuiWjSfClVMGcsuKrGj7S/yg==} engines: {node: '>=18.0.0'} - '@smithy/util-stream@4.2.1': - resolution: {integrity: sha512-W3IR0x5DY6iVtjj5p902oNhD+Bz7vs5S+p6tppbPa509rV9BdeXZjGuRSCtVEad9FA0Mba+tNUtUmtnSI1nwUw==} + '@smithy/util-stream@4.2.2': + resolution: {integrity: sha512-aI+GLi7MJoVxg24/3J1ipwLoYzgkB4kUfogZfnslcYlynj3xsQ0e7vk4TnTro9hhsS5PvX1mwmkRqqHQjwcU7w==} engines: {node: '>=18.0.0'} '@smithy/util-uri-escape@2.2.0': @@ -3976,8 +3976,8 @@ packages: resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} engines: {node: '>=18.0.0'} - '@smithy/util-waiter@4.0.3': - resolution: {integrity: sha512-JtaY3FxmD+te+KSI2FJuEcfNC9T/DGGVf551babM7fAaXhjJUt7oSYurH1Devxd2+BOSUACCgt3buinx4UnmEA==} + '@smithy/util-waiter@4.0.5': + resolution: {integrity: sha512-4QvC49HTteI1gfemu0I1syWovJgPvGn7CVUoN9ZFkdvr/cCFkrEL7qNCdx/2eICqDWEGnnr68oMdSIPCLAriSQ==} engines: {node: '>=18.0.0'} '@sqltools/formatter@1.2.5': @@ -4215,14 +4215,14 @@ packages: cpu: [arm64] os: [android] - '@swc/core-darwin-arm64@1.11.29': - resolution: {integrity: sha512-whsCX7URzbuS5aET58c75Dloby3Gtj/ITk2vc4WW6pSDQKSPDuONsIcZ7B2ng8oz0K6ttbi4p3H/PNPQLJ4maQ==} + '@swc/core-darwin-arm64@1.12.0': + resolution: {integrity: sha512-usLr8kC80GDv3pwH2zoEaS279kxtWY0MY3blbMFw7zA8fAjqxa8IDxm3WcgyNLNWckWn4asFfguEwz/Weem3nA==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.11.29': - resolution: {integrity: sha512-S3eTo/KYFk+76cWJRgX30hylN5XkSmjYtCBnM4jPLYn7L6zWYEPajsFLmruQEiTEDUg0gBEWLMNyUeghtswouw==} + '@swc/core-darwin-x64@1.12.0': + resolution: {integrity: sha512-Cvv4sqDcTY7QF2Dh1vn2Xbt/1ENYQcpmrGHzITJrXzxA2aBopsz/n4yQDiyRxTR0t802m4xu0CzMoZIHvVruWQ==} engines: {node: '>=10'} cpu: [x64] os: [darwin] @@ -4233,56 +4233,56 @@ packages: cpu: [x64] os: [freebsd] - '@swc/core-linux-arm-gnueabihf@1.11.29': - resolution: {integrity: sha512-o9gdshbzkUMG6azldHdmKklcfrcMx+a23d/2qHQHPDLUPAN+Trd+sDQUYArK5Fcm7TlpG4sczz95ghN0DMkM7g==} + '@swc/core-linux-arm-gnueabihf@1.12.0': + resolution: {integrity: sha512-seM4/XMJMOupkzfLfHl8sRa3NdhsVZp+XgwA/vVeYZYJE4wuWUxVzhCYzwmNftVY32eF2IiRaWnhG6ho6jusnQ==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.11.29': - resolution: {integrity: sha512-sLoaciOgUKQF1KX9T6hPGzvhOQaJn+3DHy4LOHeXhQqvBgr+7QcZ+hl4uixPKTzxk6hy6Hb0QOvQEdBAAR1gXw==} + '@swc/core-linux-arm64-gnu@1.12.0': + resolution: {integrity: sha512-Al0x33gUVxNY5tutEYpSyv7mze6qQS1ONa0HEwoRxcK9WXsX0NHLTiOSGZoCUS1SsXM37ONlbA6/Bsp1MQyP+g==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.11.29': - resolution: {integrity: sha512-PwjB10BC0N+Ce7RU/L23eYch6lXFHz7r3NFavIcwDNa/AAqywfxyxh13OeRy+P0cg7NDpWEETWspXeI4Ek8otw==} + '@swc/core-linux-arm64-musl@1.12.0': + resolution: {integrity: sha512-OeFHz/5Hl9v75J9TYA5jQxNIYAZMqaiPpd9dYSTK2Xyqa/ZGgTtNyPhIwVfxx+9mHBf6+9c1mTlXUtACMtHmaQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.11.29': - resolution: {integrity: sha512-i62vBVoPaVe9A3mc6gJG07n0/e7FVeAvdD9uzZTtGLiuIfVfIBta8EMquzvf+POLycSk79Z6lRhGPZPJPYiQaA==} + '@swc/core-linux-x64-gnu@1.12.0': + resolution: {integrity: sha512-ltIvqNi7H0c5pRawyqjeYSKEIfZP4vv/datT3mwT6BW7muJtd1+KIDCPFLMIQ4wm/h76YQwPocsin3fzmnFdNA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.11.29': - resolution: {integrity: sha512-YER0XU1xqFdK0hKkfSVX1YIyCvMDI7K07GIpefPvcfyNGs38AXKhb2byySDjbVxkdl4dycaxxhRyhQ2gKSlsFQ==} + '@swc/core-linux-x64-musl@1.12.0': + resolution: {integrity: sha512-Z/DhpjehaTK0uf+MhNB7mV9SuewpGs3P/q9/8+UsJeYoFr7yuOoPbAvrD6AqZkf6Bh7MRZ5OtG+KQgG5L+goiA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.11.29': - resolution: {integrity: sha512-po+WHw+k9g6FAg5IJ+sMwtA/fIUL3zPQ4m/uJgONBATCVnDDkyW6dBA49uHNVtSEvjvhuD8DVWdFP847YTcITw==} + '@swc/core-win32-arm64-msvc@1.12.0': + resolution: {integrity: sha512-wHnvbfHIh2gfSbvuFT7qP97YCMUDh+fuiso+pcC6ug8IsMxuViNapHET4o0ZdFNWHhXJ7/s0e6w7mkOalsqQiQ==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.11.29': - resolution: {integrity: sha512-h+NjOrbqdRBYr5ItmStmQt6x3tnhqgwbj9YxdGPepbTDamFv7vFnhZR0YfB3jz3UKJ8H3uGJ65Zw1VsC+xpFkg==} + '@swc/core-win32-ia32-msvc@1.12.0': + resolution: {integrity: sha512-88umlXwK+7J2p4DjfWHXQpmlZgCf1ayt6Ssj+PYlAfMCR0aBiJoAMwHWrvDXEozyOrsyP1j2X6WxbmA861vL5Q==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.11.29': - resolution: {integrity: sha512-Q8cs2BDV9wqDvqobkXOYdC+pLUSEpX/KvI0Dgfun1F+LzuLotRFuDhrvkU9ETJA6OnD2+Fn/ieHgloiKA/Mn/g==} + '@swc/core-win32-x64-msvc@1.12.0': + resolution: {integrity: sha512-KR9TSRp+FEVOhbgTU6c94p/AYpsyBk7dIvlKQiDp8oKScUoyHG5yjmMBFN/BqUyTq4kj6zlgsY2rFE4R8/yqWg==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.11.29': - resolution: {integrity: sha512-g4mThMIpWbNhV8G2rWp5a5/Igv8/2UFRJx2yImrLGMgrDDYZIopqZ/z0jZxDgqNA1QDx93rpwNF7jGsxVWcMlA==} + '@swc/core@1.12.0': + resolution: {integrity: sha512-/C0kiMHPY/HnLfqXYGMGxGck3A5Y3mqwxfv+EwHTPHGjAVRfHpWAEEBTSTF5C88vVY6CvwBEkhR2TX7t8Mahcw==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -4299,8 +4299,8 @@ packages: peerDependencies: '@swc/core': '*' - '@swc/types@0.1.21': - resolution: {integrity: sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ==} + '@swc/types@0.1.22': + resolution: {integrity: sha512-D13mY/ZA4PPEFSy6acki9eBT/3WgjMoRqNcdpIvjaYLQ44Xk5BdaL7UkDxAh6Z9UOe7tCCp67BVmZCojYp9owg==} '@swc/wasm@1.2.130': resolution: {integrity: sha512-rNcJsBxS70+pv8YUWwf5fRlWX6JoY/HJc25HD/F8m6Kv7XhJdqPPMhyX6TKkUBPAG7TWlZYoxa+rHAjPy4Cj3Q==} @@ -4437,8 +4437,8 @@ packages: '@types/bcryptjs@2.4.6': resolution: {integrity: sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==} - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + '@types/body-parser@1.19.6': + resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} '@types/braces@3.0.1': resolution: {integrity: sha512-+euflG6ygo4bn0JHtn4pYqcXwRtLvElQ7/nnjDu7iYG56H0+OhCd7d6Ug0IE3WcFpZozBKW2+80FUbv5QGk5AQ==} @@ -4458,8 +4458,8 @@ packages: '@types/connect@3.4.36': resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} - '@types/content-disposition@0.5.8': - resolution: {integrity: sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==} + '@types/content-disposition@0.5.9': + resolution: {integrity: sha512-8uYXI3Gw35MhiVYhG3s295oihrxRyytcRHjSjqnqZVDDy/xcGBRny7+Xj1Wgfhv5QzRtN2hB2dVRBUX9XW3UcQ==} '@types/cookie@0.6.0': resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} @@ -4614,8 +4614,8 @@ packages: '@types/pg-pool@2.0.6': resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} - '@types/pg@8.15.2': - resolution: {integrity: sha512-+BKxo5mM6+/A1soSHBI7ufUglqYXntChLDyTbvcAn1Lawi9J7J9Ok3jt6w7I0+T/UDJ4CyhHk66+GZbwmkYxSg==} + '@types/pg@8.15.4': + resolution: {integrity: sha512-I6UNVBAoYbvuWkkU3oosC8yxqH21f4/Jc4DK71JLG3dT2mdlGe1z+ep/LQGXaKaOgcvUrsQoPRqfgtMcvZiJhg==} '@types/pg@8.6.1': resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==} @@ -5503,8 +5503,8 @@ packages: resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==} engines: {node: '>=6.14.2'} - bullmq@5.53.0: - resolution: {integrity: sha512-AbzcwR+9GdgrenolOC9kApF+TkUKZpUCMiFbXgRYw9ivWhOfLCqKeajIptM7NdwhY7cpXgv+QpbweUuQZUxkyA==} + bullmq@5.53.2: + resolution: {integrity: sha512-xHgxrP/yNJHD7VCw1h+eRBh+2TCPBCM39uC9gCyksYc6ufcJP+HTZ/A2lzB2x7qMFWrvsX7tM40AT2BmdkYL/Q==} buraha@0.0.1: resolution: {integrity: sha512-G563A0mTbzknm2jDaNxfZuNKIdeArs8T+XQN6t+KbmgnOoevXSXhKDkyf8Md/36Jrx99ikwbCag37VGe3myExQ==} @@ -5860,9 +5860,9 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - concat-stream@1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} - engines: {'0': node >= 0.8} + concat-stream@2.0.0: + resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} + engines: {'0': node >= 6.0} config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -6828,8 +6828,8 @@ packages: resolution: {integrity: sha512-KQVhvhK8ZkWzxKxOr56CPulAhH3dobtuQ4+hNQ+HekH/Wp5gSOafqRAeTphQUJAIk0GBvHZgJ2ZGRWd5kphMuw==} engines: {node: '>= 18'} - form-data@4.0.2: - resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} + form-data@4.0.3: + resolution: {integrity: sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==} engines: {node: '>= 6'} formdata-polyfill@4.0.10: @@ -8082,8 +8082,8 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} - meilisearch@0.50.0: - resolution: {integrity: sha512-9IzIkobvnuS18Eg4dq/eJB9W+eXqeLZjNRgq/kKMswSmVYYSQsXqGgSuCA0JkF+o5RwJlwIsieQee6rh313VhA==} + meilisearch@0.51.0: + resolution: {integrity: sha512-IuNsYyT8r/QLhU33XDZdXWUT6cA/nACCHHZc+NHkNuaU55LELRxff1uBJhpJcwjYaAPEEmeWrzBhYl2XlhJdAg==} memoizerific@1.11.3: resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} @@ -8112,8 +8112,8 @@ packages: mfm-js@0.24.0: resolution: {integrity: sha512-6m8N0ElH9/4CA1izhVqmxTfLj5Z9RspdqM/lMew4xU/UTgm4Pf//VpDunpasxbRFjeJSVW+zoVwL4ZPfPtfiQg==} - microformats-parser@2.0.2: - resolution: {integrity: sha512-tUf9DmN4Jq/tGyp1YH2V6D/Cud+9Uc0WhjjUFirqVeHTRkkfLDacv6BQFT7h7HFsD0Z8wja5eKkRgzZU8bv0Fw==} + microformats-parser@2.0.3: + resolution: {integrity: sha512-MhZoQXkvWrvI3iu1IJ7Zk2VglphPt5P482E5rXvHalvtxhuS/QioMB8gEr8omt7Fd0K/qQEAbTmabvNpCbi3EQ==} engines: {node: '>=18'} micromark-core-commonmark@2.0.0: @@ -8385,8 +8385,8 @@ packages: muggle-string@0.4.1: resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} - multer@2.0.0: - resolution: {integrity: sha512-bS8rPZurbAuHGAnApbM9d4h1wSoYqrOqkE+6a64KLMK9yWU7gJXBDDVklKQ3TPi9DRb85cRs6yXaC0+cjxRtRg==} + multer@2.0.1: + resolution: {integrity: sha512-Ug8bXeTIUlxurg8xLTEskKShvcKDZALo1THEX5E41pYCD2sCVub5/kIRIGqWNoqV6szyLyQKV6mD4QUrWE5GCQ==} engines: {node: '>= 10.16.0'} mute-stream@2.0.0: @@ -8637,9 +8637,6 @@ packages: resolution: {integrity: sha512-szyd0ou0T8nsAqHtprRcP3WidfsN1TnAR5yWXf2mFCEr5ek3LEOkT6EZ/92Xfs74HIdyhG5WkGxIssMU0jBaeg==} engines: {node: '>=16'} - obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - on-exit-leak-free@2.1.0: resolution: {integrity: sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==} @@ -8863,10 +8860,6 @@ packages: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} engines: {node: '>=4.0.0'} - pg-numeric@1.0.2: - resolution: {integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==} - engines: {node: '>=4'} - pg-pool@3.10.0: resolution: {integrity: sha512-DzZ26On4sQ0KmqnO34muPcmKbhrjmyiO4lCCR0VwEd7MjmiKf5NTg/6+apUEu0NF7ESa37CGzFxH513CoUmWnA==} peerDependencies: @@ -8879,10 +8872,6 @@ packages: resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} engines: {node: '>=4'} - pg-types@4.0.1: - resolution: {integrity: sha512-hRCSDuLII9/LE3smys1hRHcu5QGcLs9ggT7I/TCs0IE+2Eesxi9+9RWAAwZ0yaGjxoWICF/YHLOEjydGujoJ+g==} - engines: {node: '>=10'} - pg@8.16.0: resolution: {integrity: sha512-7SKfdvP8CTNXjMUzfcVTaI+TDzBEeaUnVwiVGZQD1Hh33Kpev7liQba9uLd4CfN8r9mCVsD0JIpq03+Unpz+kg==} engines: {node: '>= 8.0.0'} @@ -9152,37 +9141,18 @@ packages: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} - postgres-array@3.0.2: - resolution: {integrity: sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==} - engines: {node: '>=12'} - postgres-bytea@1.0.0: resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} engines: {node: '>=0.10.0'} - postgres-bytea@3.0.0: - resolution: {integrity: sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==} - engines: {node: '>= 6'} - postgres-date@1.0.7: resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} engines: {node: '>=0.10.0'} - postgres-date@2.0.1: - resolution: {integrity: sha512-YtMKdsDt5Ojv1wQRvUhnyDJNSr2dGIC96mQVKz7xufp07nfuFONzdaowrMHjlAzY6GDLd4f+LUHHAAM1h4MdUw==} - engines: {node: '>=12'} - postgres-interval@1.2.0: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} - postgres-interval@3.0.0: - resolution: {integrity: sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==} - engines: {node: '>=12'} - - postgres-range@1.1.3: - resolution: {integrity: sha512-VdlZoocy5lCP0c/t66xAfclglEapXPCIVhqqJRncYpvbCgImF0w67aPKfbqUMr72tO2k5q0TdTZwCLjPTI6C9g==} - prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} @@ -11218,20 +11188,20 @@ snapshots: '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.804.0 + '@aws-sdk/types': 3.821.0 tslib: 2.8.1 '@aws-crypto/crc32c@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.804.0 + '@aws-sdk/types': 3.821.0 tslib: 2.8.1 '@aws-crypto/sha1-browser@5.2.0': dependencies: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.804.0 + '@aws-sdk/types': 3.821.0 '@aws-sdk/util-locate-window': 3.208.0 '@smithy/util-utf8': 2.0.0 tslib: 2.8.1 @@ -11241,7 +11211,7 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.804.0 + '@aws-sdk/types': 3.821.0 '@aws-sdk/util-locate-window': 3.208.0 '@smithy/util-utf8': 2.0.0 tslib: 2.8.1 @@ -11249,7 +11219,7 @@ snapshots: '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.804.0 + '@aws-sdk/types': 3.821.0 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -11258,431 +11228,435 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.804.0 + '@aws-sdk/types': 3.821.0 '@smithy/util-utf8': 2.0.0 tslib: 2.8.1 - '@aws-sdk/client-s3@3.817.0': + '@aws-sdk/client-s3@3.826.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.816.0 - '@aws-sdk/credential-provider-node': 3.817.0 - '@aws-sdk/middleware-bucket-endpoint': 3.808.0 - '@aws-sdk/middleware-expect-continue': 3.804.0 - '@aws-sdk/middleware-flexible-checksums': 3.816.0 - '@aws-sdk/middleware-host-header': 3.804.0 - '@aws-sdk/middleware-location-constraint': 3.804.0 - '@aws-sdk/middleware-logger': 3.804.0 - '@aws-sdk/middleware-recursion-detection': 3.804.0 - '@aws-sdk/middleware-sdk-s3': 3.816.0 - '@aws-sdk/middleware-ssec': 3.804.0 - '@aws-sdk/middleware-user-agent': 3.816.0 - '@aws-sdk/region-config-resolver': 3.808.0 - '@aws-sdk/signature-v4-multi-region': 3.816.0 - '@aws-sdk/types': 3.804.0 - '@aws-sdk/util-endpoints': 3.808.0 - '@aws-sdk/util-user-agent-browser': 3.804.0 - '@aws-sdk/util-user-agent-node': 3.816.0 - '@aws-sdk/xml-builder': 3.804.0 - '@smithy/config-resolver': 4.1.3 - '@smithy/core': 3.4.0 - '@smithy/eventstream-serde-browser': 4.0.2 - '@smithy/eventstream-serde-config-resolver': 4.1.0 - '@smithy/eventstream-serde-node': 4.0.2 - '@smithy/fetch-http-handler': 5.0.3 - '@smithy/hash-blob-browser': 4.0.2 - '@smithy/hash-node': 4.0.2 - '@smithy/hash-stream-node': 4.0.2 - '@smithy/invalid-dependency': 4.0.2 - '@smithy/md5-js': 4.0.2 - '@smithy/middleware-content-length': 4.0.2 - '@smithy/middleware-endpoint': 4.1.7 - '@smithy/middleware-retry': 4.1.8 - '@smithy/middleware-serde': 4.0.6 - '@smithy/middleware-stack': 4.0.3 - '@smithy/node-config-provider': 4.1.2 - '@smithy/node-http-handler': 4.0.5 - '@smithy/protocol-http': 5.1.1 - '@smithy/smithy-client': 4.3.0 - '@smithy/types': 4.3.0 - '@smithy/url-parser': 4.0.3 + '@aws-sdk/core': 3.826.0 + '@aws-sdk/credential-provider-node': 3.826.0 + '@aws-sdk/middleware-bucket-endpoint': 3.821.0 + '@aws-sdk/middleware-expect-continue': 3.821.0 + '@aws-sdk/middleware-flexible-checksums': 3.826.0 + '@aws-sdk/middleware-host-header': 3.821.0 + '@aws-sdk/middleware-location-constraint': 3.821.0 + '@aws-sdk/middleware-logger': 3.821.0 + '@aws-sdk/middleware-recursion-detection': 3.821.0 + '@aws-sdk/middleware-sdk-s3': 3.826.0 + '@aws-sdk/middleware-ssec': 3.821.0 + '@aws-sdk/middleware-user-agent': 3.826.0 + '@aws-sdk/region-config-resolver': 3.821.0 + '@aws-sdk/signature-v4-multi-region': 3.826.0 + '@aws-sdk/types': 3.821.0 + '@aws-sdk/util-endpoints': 3.821.0 + '@aws-sdk/util-user-agent-browser': 3.821.0 + '@aws-sdk/util-user-agent-node': 3.826.0 + '@aws-sdk/xml-builder': 3.821.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.5.3 + '@smithy/eventstream-serde-browser': 4.0.4 + '@smithy/eventstream-serde-config-resolver': 4.1.2 + '@smithy/eventstream-serde-node': 4.0.4 + '@smithy/fetch-http-handler': 5.0.4 + '@smithy/hash-blob-browser': 4.0.4 + '@smithy/hash-node': 4.0.4 + '@smithy/hash-stream-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/md5-js': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.11 + '@smithy/middleware-retry': 4.1.12 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.0.6 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.3 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.15 - '@smithy/util-defaults-mode-node': 4.0.15 - '@smithy/util-endpoints': 3.0.5 - '@smithy/util-middleware': 4.0.3 - '@smithy/util-retry': 4.0.4 - '@smithy/util-stream': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.0.19 + '@smithy/util-defaults-mode-node': 4.0.19 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.5 + '@smithy/util-stream': 4.2.2 '@smithy/util-utf8': 4.0.0 - '@smithy/util-waiter': 4.0.3 + '@smithy/util-waiter': 4.0.5 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.817.0': + '@aws-sdk/client-sso@3.826.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.816.0 - '@aws-sdk/middleware-host-header': 3.804.0 - '@aws-sdk/middleware-logger': 3.804.0 - '@aws-sdk/middleware-recursion-detection': 3.804.0 - '@aws-sdk/middleware-user-agent': 3.816.0 - '@aws-sdk/region-config-resolver': 3.808.0 - '@aws-sdk/types': 3.804.0 - '@aws-sdk/util-endpoints': 3.808.0 - '@aws-sdk/util-user-agent-browser': 3.804.0 - '@aws-sdk/util-user-agent-node': 3.816.0 - '@smithy/config-resolver': 4.1.3 - '@smithy/core': 3.4.0 - '@smithy/fetch-http-handler': 5.0.3 - '@smithy/hash-node': 4.0.2 - '@smithy/invalid-dependency': 4.0.2 - '@smithy/middleware-content-length': 4.0.2 - '@smithy/middleware-endpoint': 4.1.7 - '@smithy/middleware-retry': 4.1.8 - '@smithy/middleware-serde': 4.0.6 - '@smithy/middleware-stack': 4.0.3 - '@smithy/node-config-provider': 4.1.2 - '@smithy/node-http-handler': 4.0.5 - '@smithy/protocol-http': 5.1.1 - '@smithy/smithy-client': 4.3.0 - '@smithy/types': 4.3.0 - '@smithy/url-parser': 4.0.3 + '@aws-sdk/core': 3.826.0 + '@aws-sdk/middleware-host-header': 3.821.0 + '@aws-sdk/middleware-logger': 3.821.0 + '@aws-sdk/middleware-recursion-detection': 3.821.0 + '@aws-sdk/middleware-user-agent': 3.826.0 + '@aws-sdk/region-config-resolver': 3.821.0 + '@aws-sdk/types': 3.821.0 + '@aws-sdk/util-endpoints': 3.821.0 + '@aws-sdk/util-user-agent-browser': 3.821.0 + '@aws-sdk/util-user-agent-node': 3.826.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.5.3 + '@smithy/fetch-http-handler': 5.0.4 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.11 + '@smithy/middleware-retry': 4.1.12 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.0.6 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.3 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.15 - '@smithy/util-defaults-mode-node': 4.0.15 - '@smithy/util-endpoints': 3.0.5 - '@smithy/util-middleware': 4.0.3 - '@smithy/util-retry': 4.0.4 + '@smithy/util-defaults-mode-browser': 4.0.19 + '@smithy/util-defaults-mode-node': 4.0.19 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.5 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.816.0': + '@aws-sdk/core@3.826.0': dependencies: - '@aws-sdk/types': 3.804.0 - '@smithy/core': 3.4.0 - '@smithy/node-config-provider': 4.1.2 - '@smithy/property-provider': 4.0.3 - '@smithy/protocol-http': 5.1.1 - '@smithy/signature-v4': 5.1.0 - '@smithy/smithy-client': 4.3.0 - '@smithy/types': 4.3.0 - '@smithy/util-middleware': 4.0.3 + '@aws-sdk/types': 3.821.0 + '@aws-sdk/xml-builder': 3.821.0 + '@smithy/core': 3.5.3 + '@smithy/node-config-provider': 4.1.3 + '@smithy/property-provider': 4.0.4 + '@smithy/protocol-http': 5.1.2 + '@smithy/signature-v4': 5.1.2 + '@smithy/smithy-client': 4.4.3 + '@smithy/types': 4.3.1 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-utf8': 4.0.0 fast-xml-parser: 4.4.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.816.0': + '@aws-sdk/credential-provider-env@3.826.0': dependencies: - '@aws-sdk/core': 3.816.0 - '@aws-sdk/types': 3.804.0 - '@smithy/property-provider': 4.0.3 - '@smithy/types': 4.3.0 + '@aws-sdk/core': 3.826.0 + '@aws-sdk/types': 3.821.0 + '@smithy/property-provider': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.816.0': + '@aws-sdk/credential-provider-http@3.826.0': dependencies: - '@aws-sdk/core': 3.816.0 - '@aws-sdk/types': 3.804.0 - '@smithy/fetch-http-handler': 5.0.3 - '@smithy/node-http-handler': 4.0.5 - '@smithy/property-provider': 4.0.3 - '@smithy/protocol-http': 5.1.1 - '@smithy/smithy-client': 4.3.0 - '@smithy/types': 4.3.0 - '@smithy/util-stream': 4.2.1 + '@aws-sdk/core': 3.826.0 + '@aws-sdk/types': 3.821.0 + '@smithy/fetch-http-handler': 5.0.4 + '@smithy/node-http-handler': 4.0.6 + '@smithy/property-provider': 4.0.4 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.3 + '@smithy/types': 4.3.1 + '@smithy/util-stream': 4.2.2 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.817.0': + '@aws-sdk/credential-provider-ini@3.826.0': dependencies: - '@aws-sdk/core': 3.816.0 - '@aws-sdk/credential-provider-env': 3.816.0 - '@aws-sdk/credential-provider-http': 3.816.0 - '@aws-sdk/credential-provider-process': 3.816.0 - '@aws-sdk/credential-provider-sso': 3.817.0 - '@aws-sdk/credential-provider-web-identity': 3.817.0 - '@aws-sdk/nested-clients': 3.817.0 - '@aws-sdk/types': 3.804.0 - '@smithy/credential-provider-imds': 4.0.5 - '@smithy/property-provider': 4.0.3 - '@smithy/shared-ini-file-loader': 4.0.3 - '@smithy/types': 4.3.0 + '@aws-sdk/core': 3.826.0 + '@aws-sdk/credential-provider-env': 3.826.0 + '@aws-sdk/credential-provider-http': 3.826.0 + '@aws-sdk/credential-provider-process': 3.826.0 + '@aws-sdk/credential-provider-sso': 3.826.0 + '@aws-sdk/credential-provider-web-identity': 3.826.0 + '@aws-sdk/nested-clients': 3.826.0 + '@aws-sdk/types': 3.821.0 + '@smithy/credential-provider-imds': 4.0.6 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-node@3.817.0': + '@aws-sdk/credential-provider-node@3.826.0': dependencies: - '@aws-sdk/credential-provider-env': 3.816.0 - '@aws-sdk/credential-provider-http': 3.816.0 - '@aws-sdk/credential-provider-ini': 3.817.0 - '@aws-sdk/credential-provider-process': 3.816.0 - '@aws-sdk/credential-provider-sso': 3.817.0 - '@aws-sdk/credential-provider-web-identity': 3.817.0 - '@aws-sdk/types': 3.804.0 - '@smithy/credential-provider-imds': 4.0.5 - '@smithy/property-provider': 4.0.3 - '@smithy/shared-ini-file-loader': 4.0.3 - '@smithy/types': 4.3.0 + '@aws-sdk/credential-provider-env': 3.826.0 + '@aws-sdk/credential-provider-http': 3.826.0 + '@aws-sdk/credential-provider-ini': 3.826.0 + '@aws-sdk/credential-provider-process': 3.826.0 + '@aws-sdk/credential-provider-sso': 3.826.0 + '@aws-sdk/credential-provider-web-identity': 3.826.0 + '@aws-sdk/types': 3.821.0 + '@smithy/credential-provider-imds': 4.0.6 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-process@3.816.0': + '@aws-sdk/credential-provider-process@3.826.0': dependencies: - '@aws-sdk/core': 3.816.0 - '@aws-sdk/types': 3.804.0 - '@smithy/property-provider': 4.0.3 - '@smithy/shared-ini-file-loader': 4.0.3 - '@smithy/types': 4.3.0 + '@aws-sdk/core': 3.826.0 + '@aws-sdk/types': 3.821.0 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.817.0': + '@aws-sdk/credential-provider-sso@3.826.0': dependencies: - '@aws-sdk/client-sso': 3.817.0 - '@aws-sdk/core': 3.816.0 - '@aws-sdk/token-providers': 3.817.0 - '@aws-sdk/types': 3.804.0 - '@smithy/property-provider': 4.0.3 - '@smithy/shared-ini-file-loader': 4.0.3 - '@smithy/types': 4.3.0 + '@aws-sdk/client-sso': 3.826.0 + '@aws-sdk/core': 3.826.0 + '@aws-sdk/token-providers': 3.826.0 + '@aws-sdk/types': 3.821.0 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-web-identity@3.817.0': + '@aws-sdk/credential-provider-web-identity@3.826.0': dependencies: - '@aws-sdk/core': 3.816.0 - '@aws-sdk/nested-clients': 3.817.0 - '@aws-sdk/types': 3.804.0 - '@smithy/property-provider': 4.0.3 - '@smithy/types': 4.3.0 + '@aws-sdk/core': 3.826.0 + '@aws-sdk/nested-clients': 3.826.0 + '@aws-sdk/types': 3.821.0 + '@smithy/property-provider': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/lib-storage@3.817.0(@aws-sdk/client-s3@3.817.0)': + '@aws-sdk/lib-storage@3.826.0(@aws-sdk/client-s3@3.826.0)': dependencies: - '@aws-sdk/client-s3': 3.817.0 - '@smithy/abort-controller': 4.0.3 - '@smithy/middleware-endpoint': 4.1.7 - '@smithy/smithy-client': 4.3.0 + '@aws-sdk/client-s3': 3.826.0 + '@smithy/abort-controller': 4.0.4 + '@smithy/middleware-endpoint': 4.1.11 + '@smithy/smithy-client': 4.4.3 buffer: 5.6.0 events: 3.3.0 stream-browserify: 3.0.0 tslib: 2.8.1 - '@aws-sdk/middleware-bucket-endpoint@3.808.0': + '@aws-sdk/middleware-bucket-endpoint@3.821.0': dependencies: - '@aws-sdk/types': 3.804.0 + '@aws-sdk/types': 3.821.0 '@aws-sdk/util-arn-parser': 3.804.0 - '@smithy/node-config-provider': 4.1.2 - '@smithy/protocol-http': 5.1.1 - '@smithy/types': 4.3.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 '@smithy/util-config-provider': 4.0.0 tslib: 2.8.1 - '@aws-sdk/middleware-expect-continue@3.804.0': + '@aws-sdk/middleware-expect-continue@3.821.0': dependencies: - '@aws-sdk/types': 3.804.0 - '@smithy/protocol-http': 5.1.1 - '@smithy/types': 4.3.0 + '@aws-sdk/types': 3.821.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/middleware-flexible-checksums@3.816.0': + '@aws-sdk/middleware-flexible-checksums@3.826.0': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.816.0 - '@aws-sdk/types': 3.804.0 + '@aws-sdk/core': 3.826.0 + '@aws-sdk/types': 3.821.0 '@smithy/is-array-buffer': 4.0.0 - '@smithy/node-config-provider': 4.1.2 - '@smithy/protocol-http': 5.1.1 - '@smithy/types': 4.3.0 - '@smithy/util-middleware': 4.0.3 - '@smithy/util-stream': 4.2.1 + '@smithy/node-config-provider': 4.1.3 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-stream': 4.2.2 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.804.0': + '@aws-sdk/middleware-host-header@3.821.0': dependencies: - '@aws-sdk/types': 3.804.0 - '@smithy/protocol-http': 5.1.1 - '@smithy/types': 4.3.0 + '@aws-sdk/types': 3.821.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/middleware-location-constraint@3.804.0': + '@aws-sdk/middleware-location-constraint@3.821.0': dependencies: - '@aws-sdk/types': 3.804.0 - '@smithy/types': 4.3.0 + '@aws-sdk/types': 3.821.0 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.804.0': + '@aws-sdk/middleware-logger@3.821.0': dependencies: - '@aws-sdk/types': 3.804.0 - '@smithy/types': 4.3.0 + '@aws-sdk/types': 3.821.0 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.804.0': + '@aws-sdk/middleware-recursion-detection@3.821.0': dependencies: - '@aws-sdk/types': 3.804.0 - '@smithy/protocol-http': 5.1.1 - '@smithy/types': 4.3.0 + '@aws-sdk/types': 3.821.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.816.0': + '@aws-sdk/middleware-sdk-s3@3.826.0': dependencies: - '@aws-sdk/core': 3.816.0 - '@aws-sdk/types': 3.804.0 + '@aws-sdk/core': 3.826.0 + '@aws-sdk/types': 3.821.0 '@aws-sdk/util-arn-parser': 3.804.0 - '@smithy/core': 3.4.0 - '@smithy/node-config-provider': 4.1.2 - '@smithy/protocol-http': 5.1.1 - '@smithy/signature-v4': 5.1.0 - '@smithy/smithy-client': 4.3.0 - '@smithy/types': 4.3.0 + '@smithy/core': 3.5.3 + '@smithy/node-config-provider': 4.1.3 + '@smithy/protocol-http': 5.1.2 + '@smithy/signature-v4': 5.1.2 + '@smithy/smithy-client': 4.4.3 + '@smithy/types': 4.3.1 '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.3 - '@smithy/util-stream': 4.2.1 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-stream': 4.2.2 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@aws-sdk/middleware-ssec@3.804.0': + '@aws-sdk/middleware-ssec@3.821.0': dependencies: - '@aws-sdk/types': 3.804.0 - '@smithy/types': 4.3.0 + '@aws-sdk/types': 3.821.0 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.816.0': + '@aws-sdk/middleware-user-agent@3.826.0': dependencies: - '@aws-sdk/core': 3.816.0 - '@aws-sdk/types': 3.804.0 - '@aws-sdk/util-endpoints': 3.808.0 - '@smithy/core': 3.4.0 - '@smithy/protocol-http': 5.1.1 - '@smithy/types': 4.3.0 + '@aws-sdk/core': 3.826.0 + '@aws-sdk/types': 3.821.0 + '@aws-sdk/util-endpoints': 3.821.0 + '@smithy/core': 3.5.3 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.817.0': + '@aws-sdk/nested-clients@3.826.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.816.0 - '@aws-sdk/middleware-host-header': 3.804.0 - '@aws-sdk/middleware-logger': 3.804.0 - '@aws-sdk/middleware-recursion-detection': 3.804.0 - '@aws-sdk/middleware-user-agent': 3.816.0 - '@aws-sdk/region-config-resolver': 3.808.0 - '@aws-sdk/types': 3.804.0 - '@aws-sdk/util-endpoints': 3.808.0 - '@aws-sdk/util-user-agent-browser': 3.804.0 - '@aws-sdk/util-user-agent-node': 3.816.0 - '@smithy/config-resolver': 4.1.3 - '@smithy/core': 3.4.0 - '@smithy/fetch-http-handler': 5.0.3 - '@smithy/hash-node': 4.0.2 - '@smithy/invalid-dependency': 4.0.2 - '@smithy/middleware-content-length': 4.0.2 - '@smithy/middleware-endpoint': 4.1.7 - '@smithy/middleware-retry': 4.1.8 - '@smithy/middleware-serde': 4.0.6 - '@smithy/middleware-stack': 4.0.3 - '@smithy/node-config-provider': 4.1.2 - '@smithy/node-http-handler': 4.0.5 - '@smithy/protocol-http': 5.1.1 - '@smithy/smithy-client': 4.3.0 - '@smithy/types': 4.3.0 - '@smithy/url-parser': 4.0.3 + '@aws-sdk/core': 3.826.0 + '@aws-sdk/middleware-host-header': 3.821.0 + '@aws-sdk/middleware-logger': 3.821.0 + '@aws-sdk/middleware-recursion-detection': 3.821.0 + '@aws-sdk/middleware-user-agent': 3.826.0 + '@aws-sdk/region-config-resolver': 3.821.0 + '@aws-sdk/types': 3.821.0 + '@aws-sdk/util-endpoints': 3.821.0 + '@aws-sdk/util-user-agent-browser': 3.821.0 + '@aws-sdk/util-user-agent-node': 3.826.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/core': 3.5.3 + '@smithy/fetch-http-handler': 5.0.4 + '@smithy/hash-node': 4.0.4 + '@smithy/invalid-dependency': 4.0.4 + '@smithy/middleware-content-length': 4.0.4 + '@smithy/middleware-endpoint': 4.1.11 + '@smithy/middleware-retry': 4.1.12 + '@smithy/middleware-serde': 4.0.8 + '@smithy/middleware-stack': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/node-http-handler': 4.0.6 + '@smithy/protocol-http': 5.1.2 + '@smithy/smithy-client': 4.4.3 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.15 - '@smithy/util-defaults-mode-node': 4.0.15 - '@smithy/util-endpoints': 3.0.5 - '@smithy/util-middleware': 4.0.3 - '@smithy/util-retry': 4.0.4 + '@smithy/util-defaults-mode-browser': 4.0.19 + '@smithy/util-defaults-mode-node': 4.0.19 + '@smithy/util-endpoints': 3.0.6 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.5 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/region-config-resolver@3.808.0': + '@aws-sdk/region-config-resolver@3.821.0': dependencies: - '@aws-sdk/types': 3.804.0 - '@smithy/node-config-provider': 4.1.2 - '@smithy/types': 4.3.0 + '@aws-sdk/types': 3.821.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.3 + '@smithy/util-middleware': 4.0.4 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.816.0': + '@aws-sdk/signature-v4-multi-region@3.826.0': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.816.0 - '@aws-sdk/types': 3.804.0 - '@smithy/protocol-http': 5.1.1 - '@smithy/signature-v4': 5.1.0 - '@smithy/types': 4.3.0 + '@aws-sdk/middleware-sdk-s3': 3.826.0 + '@aws-sdk/types': 3.821.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/signature-v4': 5.1.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/token-providers@3.817.0': + '@aws-sdk/token-providers@3.826.0': dependencies: - '@aws-sdk/core': 3.816.0 - '@aws-sdk/nested-clients': 3.817.0 - '@aws-sdk/types': 3.804.0 - '@smithy/property-provider': 4.0.3 - '@smithy/shared-ini-file-loader': 4.0.3 - '@smithy/types': 4.3.0 + '@aws-sdk/core': 3.826.0 + '@aws-sdk/nested-clients': 3.826.0 + '@aws-sdk/types': 3.821.0 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/types@3.804.0': + '@aws-sdk/types@3.821.0': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 tslib: 2.8.1 '@aws-sdk/util-arn-parser@3.804.0': dependencies: tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.808.0': + '@aws-sdk/util-endpoints@3.821.0': dependencies: - '@aws-sdk/types': 3.804.0 - '@smithy/types': 4.3.0 - '@smithy/util-endpoints': 3.0.5 + '@aws-sdk/types': 3.821.0 + '@smithy/types': 4.3.1 + '@smithy/util-endpoints': 3.0.6 tslib: 2.8.1 '@aws-sdk/util-locate-window@3.208.0': dependencies: tslib: 2.8.1 - '@aws-sdk/util-user-agent-browser@3.804.0': + '@aws-sdk/util-user-agent-browser@3.821.0': dependencies: - '@aws-sdk/types': 3.804.0 - '@smithy/types': 4.3.0 + '@aws-sdk/types': 3.821.0 + '@smithy/types': 4.3.1 bowser: 2.11.0 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.816.0': + '@aws-sdk/util-user-agent-node@3.826.0': dependencies: - '@aws-sdk/middleware-user-agent': 3.816.0 - '@aws-sdk/types': 3.804.0 - '@smithy/node-config-provider': 4.1.2 - '@smithy/types': 4.3.0 + '@aws-sdk/middleware-user-agent': 3.826.0 + '@aws-sdk/types': 3.821.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@aws-sdk/xml-builder@3.804.0': + '@aws-sdk/xml-builder@3.821.0': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 tslib: 2.8.1 '@babel/code-frame@7.24.7': @@ -12028,7 +12002,7 @@ snapshots: combined-stream: 1.0.8 extend: 3.0.2 forever-agent: 0.6.1 - form-data: 4.0.2 + form-data: 4.0.3 http-signature: 1.4.0 is-typedarray: 1.0.0 isstream: 0.1.2 @@ -12943,50 +12917,50 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 - '@napi-rs/canvas-android-arm64@0.1.70': + '@napi-rs/canvas-android-arm64@0.1.71': optional: true - '@napi-rs/canvas-darwin-arm64@0.1.70': + '@napi-rs/canvas-darwin-arm64@0.1.71': optional: true - '@napi-rs/canvas-darwin-x64@0.1.70': + '@napi-rs/canvas-darwin-x64@0.1.71': optional: true - '@napi-rs/canvas-linux-arm-gnueabihf@0.1.70': + '@napi-rs/canvas-linux-arm-gnueabihf@0.1.71': optional: true - '@napi-rs/canvas-linux-arm64-gnu@0.1.70': + '@napi-rs/canvas-linux-arm64-gnu@0.1.71': optional: true - '@napi-rs/canvas-linux-arm64-musl@0.1.70': + '@napi-rs/canvas-linux-arm64-musl@0.1.71': optional: true - '@napi-rs/canvas-linux-riscv64-gnu@0.1.70': + '@napi-rs/canvas-linux-riscv64-gnu@0.1.71': optional: true - '@napi-rs/canvas-linux-x64-gnu@0.1.70': + '@napi-rs/canvas-linux-x64-gnu@0.1.71': optional: true - '@napi-rs/canvas-linux-x64-musl@0.1.70': + '@napi-rs/canvas-linux-x64-musl@0.1.71': optional: true - '@napi-rs/canvas-win32-x64-msvc@0.1.70': + '@napi-rs/canvas-win32-x64-msvc@0.1.71': optional: true - '@napi-rs/canvas@0.1.70': + '@napi-rs/canvas@0.1.71': optionalDependencies: - '@napi-rs/canvas-android-arm64': 0.1.70 - '@napi-rs/canvas-darwin-arm64': 0.1.70 - '@napi-rs/canvas-darwin-x64': 0.1.70 - '@napi-rs/canvas-linux-arm-gnueabihf': 0.1.70 - '@napi-rs/canvas-linux-arm64-gnu': 0.1.70 - '@napi-rs/canvas-linux-arm64-musl': 0.1.70 - '@napi-rs/canvas-linux-riscv64-gnu': 0.1.70 - '@napi-rs/canvas-linux-x64-gnu': 0.1.70 - '@napi-rs/canvas-linux-x64-musl': 0.1.70 - '@napi-rs/canvas-win32-x64-msvc': 0.1.70 + '@napi-rs/canvas-android-arm64': 0.1.71 + '@napi-rs/canvas-darwin-arm64': 0.1.71 + '@napi-rs/canvas-darwin-x64': 0.1.71 + '@napi-rs/canvas-linux-arm-gnueabihf': 0.1.71 + '@napi-rs/canvas-linux-arm64-gnu': 0.1.71 + '@napi-rs/canvas-linux-arm64-musl': 0.1.71 + '@napi-rs/canvas-linux-riscv64-gnu': 0.1.71 + '@napi-rs/canvas-linux-x64-gnu': 0.1.71 + '@napi-rs/canvas-linux-x64-musl': 0.1.71 + '@napi-rs/canvas-win32-x64-msvc': 0.1.71 - '@nestjs/common@11.1.2(reflect-metadata@0.2.2)(rxjs@7.8.2)': + '@nestjs/common@11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2)': dependencies: file-type: 21.0.0 iterare: 1.2.1 @@ -12998,9 +12972,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@nestjs/core@11.1.2(@nestjs/common@11.1.2(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@10.4.18)(reflect-metadata@0.2.2)(rxjs@7.8.2)': + '@nestjs/core@11.1.3(@nestjs/common@11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@10.4.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)': dependencies: - '@nestjs/common': 11.1.2(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2) '@nuxt/opencollective': 0.4.1 fast-safe-stringify: 2.1.1 iterare: 1.2.1 @@ -13010,27 +12984,27 @@ snapshots: tslib: 2.8.1 uid: 2.0.2 optionalDependencies: - '@nestjs/platform-express': 10.4.18(@nestjs/common@11.1.2(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.2) + '@nestjs/platform-express': 10.4.19(@nestjs/common@11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3) - '@nestjs/platform-express@10.4.18(@nestjs/common@11.1.2(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.2)': + '@nestjs/platform-express@10.4.19(@nestjs/common@11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)': dependencies: - '@nestjs/common': 11.1.2(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/core': 11.1.2(@nestjs/common@11.1.2(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@10.4.18)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.3(@nestjs/common@11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@10.4.19)(reflect-metadata@0.2.2)(rxjs@7.8.2) body-parser: 1.20.3 cors: 2.8.5 express: 4.21.2 - multer: 2.0.0 + multer: 2.0.1 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@nestjs/testing@11.1.2(@nestjs/common@11.1.2(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.2)(@nestjs/platform-express@10.4.18)': + '@nestjs/testing@11.1.3(@nestjs/common@11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(@nestjs/platform-express@10.4.19)': dependencies: - '@nestjs/common': 11.1.2(reflect-metadata@0.2.2)(rxjs@7.8.2) - '@nestjs/core': 11.1.2(@nestjs/common@11.1.2(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@10.4.18)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.3(@nestjs/common@11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/platform-express@10.4.19)(reflect-metadata@0.2.2)(rxjs@7.8.2) tslib: 2.8.1 optionalDependencies: - '@nestjs/platform-express': 10.4.18(@nestjs/common@11.1.2(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.2) + '@nestjs/platform-express': 10.4.19(@nestjs/common@11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3) '@noble/hashes@1.7.1': {} @@ -13655,49 +13629,41 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@sentry-internal/browser-utils@9.22.0': - dependencies: - '@sentry/core': 9.22.0 - '@sentry-internal/browser-utils@9.27.0': dependencies: '@sentry/core': 9.27.0 - '@sentry-internal/feedback@9.22.0': + '@sentry-internal/browser-utils@9.28.0': dependencies: - '@sentry/core': 9.22.0 + '@sentry/core': 9.28.0 '@sentry-internal/feedback@9.27.0': dependencies: '@sentry/core': 9.27.0 - '@sentry-internal/replay-canvas@9.22.0': + '@sentry-internal/feedback@9.28.0': dependencies: - '@sentry-internal/replay': 9.22.0 - '@sentry/core': 9.22.0 + '@sentry/core': 9.28.0 '@sentry-internal/replay-canvas@9.27.0': dependencies: '@sentry-internal/replay': 9.27.0 '@sentry/core': 9.27.0 - '@sentry-internal/replay@9.22.0': + '@sentry-internal/replay-canvas@9.28.0': dependencies: - '@sentry-internal/browser-utils': 9.22.0 - '@sentry/core': 9.22.0 + '@sentry-internal/replay': 9.28.0 + '@sentry/core': 9.28.0 '@sentry-internal/replay@9.27.0': dependencies: '@sentry-internal/browser-utils': 9.27.0 '@sentry/core': 9.27.0 - '@sentry/browser@9.22.0': + '@sentry-internal/replay@9.28.0': dependencies: - '@sentry-internal/browser-utils': 9.22.0 - '@sentry-internal/feedback': 9.22.0 - '@sentry-internal/replay': 9.22.0 - '@sentry-internal/replay-canvas': 9.22.0 - '@sentry/core': 9.22.0 + '@sentry-internal/browser-utils': 9.28.0 + '@sentry/core': 9.28.0 '@sentry/browser@9.27.0': dependencies: @@ -13707,12 +13673,20 @@ snapshots: '@sentry-internal/replay-canvas': 9.27.0 '@sentry/core': 9.27.0 + '@sentry/browser@9.28.0': + dependencies: + '@sentry-internal/browser-utils': 9.28.0 + '@sentry-internal/feedback': 9.28.0 + '@sentry-internal/replay': 9.28.0 + '@sentry-internal/replay-canvas': 9.28.0 + '@sentry/core': 9.28.0 + '@sentry/core@8.55.0': {} - '@sentry/core@9.22.0': {} - '@sentry/core@9.27.0': {} + '@sentry/core@9.28.0': {} + '@sentry/node@8.55.0': dependencies: '@opentelemetry/api': 1.9.0 @@ -13772,18 +13746,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@sentry/vue@9.22.0(vue@3.5.16(typescript@5.8.3))': - dependencies: - '@sentry/browser': 9.22.0 - '@sentry/core': 9.22.0 - vue: 3.5.16(typescript@5.8.3) - '@sentry/vue@9.27.0(vue@3.5.16(typescript@5.8.3))': dependencies: '@sentry/browser': 9.27.0 '@sentry/core': 9.27.0 vue: 3.5.16(typescript@5.8.3) + '@sentry/vue@9.28.0(vue@3.5.16(typescript@5.8.3))': + dependencies: + '@sentry/browser': 9.28.0 + '@sentry/core': 9.28.0 + vue: 3.5.16(typescript@5.8.3) + '@shikijs/core@3.6.0': dependencies: '@shikijs/types': 3.6.0 @@ -13886,9 +13860,9 @@ snapshots: '@smithy/types': 2.12.0 tslib: 2.8.1 - '@smithy/abort-controller@4.0.3': + '@smithy/abort-controller@4.0.4': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 tslib: 2.8.1 '@smithy/chunked-blob-reader-native@4.0.0': @@ -13900,94 +13874,95 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/config-resolver@4.1.3': + '@smithy/config-resolver@4.1.4': dependencies: - '@smithy/node-config-provider': 4.1.2 - '@smithy/types': 4.3.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.3 + '@smithy/util-middleware': 4.0.4 tslib: 2.8.1 - '@smithy/core@3.4.0': + '@smithy/core@3.5.3': dependencies: - '@smithy/middleware-serde': 4.0.6 - '@smithy/protocol-http': 5.1.1 - '@smithy/types': 4.3.0 + '@smithy/middleware-serde': 4.0.8 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-middleware': 4.0.3 - '@smithy/util-stream': 4.2.1 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-stream': 4.2.2 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/credential-provider-imds@4.0.5': + '@smithy/credential-provider-imds@4.0.6': dependencies: - '@smithy/node-config-provider': 4.1.2 - '@smithy/property-provider': 4.0.3 - '@smithy/types': 4.3.0 - '@smithy/url-parser': 4.0.3 + '@smithy/node-config-provider': 4.1.3 + '@smithy/property-provider': 4.0.4 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 tslib: 2.8.1 - '@smithy/eventstream-codec@4.0.2': + '@smithy/eventstream-codec@4.0.4': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 '@smithy/util-hex-encoding': 4.0.0 tslib: 2.8.1 - '@smithy/eventstream-serde-browser@4.0.2': + '@smithy/eventstream-serde-browser@4.0.4': dependencies: - '@smithy/eventstream-serde-universal': 4.0.2 - '@smithy/types': 4.3.0 + '@smithy/eventstream-serde-universal': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/eventstream-serde-config-resolver@4.1.0': + '@smithy/eventstream-serde-config-resolver@4.1.2': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/eventstream-serde-node@4.0.2': + '@smithy/eventstream-serde-node@4.0.4': dependencies: - '@smithy/eventstream-serde-universal': 4.0.2 - '@smithy/types': 4.3.0 + '@smithy/eventstream-serde-universal': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/eventstream-serde-universal@4.0.2': + '@smithy/eventstream-serde-universal@4.0.4': dependencies: - '@smithy/eventstream-codec': 4.0.2 - '@smithy/types': 4.3.0 + '@smithy/eventstream-codec': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/fetch-http-handler@5.0.3': + '@smithy/fetch-http-handler@5.0.4': dependencies: - '@smithy/protocol-http': 5.1.1 - '@smithy/querystring-builder': 4.0.3 - '@smithy/types': 4.3.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/querystring-builder': 4.0.4 + '@smithy/types': 4.3.1 '@smithy/util-base64': 4.0.0 tslib: 2.8.1 - '@smithy/hash-blob-browser@4.0.2': + '@smithy/hash-blob-browser@4.0.4': dependencies: '@smithy/chunked-blob-reader': 5.0.0 '@smithy/chunked-blob-reader-native': 4.0.0 - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/hash-node@4.0.2': + '@smithy/hash-node@4.0.4': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 '@smithy/util-buffer-from': 4.0.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/hash-stream-node@4.0.2': + '@smithy/hash-stream-node@4.0.4': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/invalid-dependency@4.0.2': + '@smithy/invalid-dependency@4.0.4': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 tslib: 2.8.1 '@smithy/is-array-buffer@2.0.0': @@ -13998,57 +13973,57 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/md5-js@4.0.2': + '@smithy/md5-js@4.0.4': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/middleware-content-length@4.0.2': + '@smithy/middleware-content-length@4.0.4': dependencies: - '@smithy/protocol-http': 5.1.1 - '@smithy/types': 4.3.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/middleware-endpoint@4.1.7': + '@smithy/middleware-endpoint@4.1.11': dependencies: - '@smithy/core': 3.4.0 - '@smithy/middleware-serde': 4.0.6 - '@smithy/node-config-provider': 4.1.2 - '@smithy/shared-ini-file-loader': 4.0.3 - '@smithy/types': 4.3.0 - '@smithy/url-parser': 4.0.3 - '@smithy/util-middleware': 4.0.3 + '@smithy/core': 3.5.3 + '@smithy/middleware-serde': 4.0.8 + '@smithy/node-config-provider': 4.1.3 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 + '@smithy/url-parser': 4.0.4 + '@smithy/util-middleware': 4.0.4 tslib: 2.8.1 - '@smithy/middleware-retry@4.1.8': + '@smithy/middleware-retry@4.1.12': dependencies: - '@smithy/node-config-provider': 4.1.2 - '@smithy/protocol-http': 5.1.1 - '@smithy/service-error-classification': 4.0.4 - '@smithy/smithy-client': 4.3.0 - '@smithy/types': 4.3.0 - '@smithy/util-middleware': 4.0.3 - '@smithy/util-retry': 4.0.4 + '@smithy/node-config-provider': 4.1.3 + '@smithy/protocol-http': 5.1.2 + '@smithy/service-error-classification': 4.0.5 + '@smithy/smithy-client': 4.4.3 + '@smithy/types': 4.3.1 + '@smithy/util-middleware': 4.0.4 + '@smithy/util-retry': 4.0.5 tslib: 2.8.1 uuid: 9.0.1 - '@smithy/middleware-serde@4.0.6': + '@smithy/middleware-serde@4.0.8': dependencies: - '@smithy/protocol-http': 5.1.1 - '@smithy/types': 4.3.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/middleware-stack@4.0.3': + '@smithy/middleware-stack@4.0.4': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/node-config-provider@4.1.2': + '@smithy/node-config-provider@4.1.3': dependencies: - '@smithy/property-provider': 4.0.3 - '@smithy/shared-ini-file-loader': 4.0.3 - '@smithy/types': 4.3.0 + '@smithy/property-provider': 4.0.4 + '@smithy/shared-ini-file-loader': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 '@smithy/node-http-handler@2.5.0': @@ -14059,17 +14034,17 @@ snapshots: '@smithy/types': 2.12.0 tslib: 2.8.1 - '@smithy/node-http-handler@4.0.5': + '@smithy/node-http-handler@4.0.6': dependencies: - '@smithy/abort-controller': 4.0.3 - '@smithy/protocol-http': 5.1.1 - '@smithy/querystring-builder': 4.0.3 - '@smithy/types': 4.3.0 + '@smithy/abort-controller': 4.0.4 + '@smithy/protocol-http': 5.1.2 + '@smithy/querystring-builder': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/property-provider@4.0.3': + '@smithy/property-provider@4.0.4': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 tslib: 2.8.1 '@smithy/protocol-http@3.3.0': @@ -14077,9 +14052,9 @@ snapshots: '@smithy/types': 2.12.0 tslib: 2.8.1 - '@smithy/protocol-http@5.1.1': + '@smithy/protocol-http@5.1.2': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 tslib: 2.8.1 '@smithy/querystring-builder@2.2.0': @@ -14088,59 +14063,59 @@ snapshots: '@smithy/util-uri-escape': 2.2.0 tslib: 2.8.1 - '@smithy/querystring-builder@4.0.3': + '@smithy/querystring-builder@4.0.4': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 '@smithy/util-uri-escape': 4.0.0 tslib: 2.8.1 - '@smithy/querystring-parser@4.0.3': + '@smithy/querystring-parser@4.0.4': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/service-error-classification@4.0.4': + '@smithy/service-error-classification@4.0.5': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 - '@smithy/shared-ini-file-loader@4.0.3': + '@smithy/shared-ini-file-loader@4.0.4': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/signature-v4@5.1.0': + '@smithy/signature-v4@5.1.2': dependencies: '@smithy/is-array-buffer': 4.0.0 - '@smithy/protocol-http': 5.1.1 - '@smithy/types': 4.3.0 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 '@smithy/util-hex-encoding': 4.0.0 - '@smithy/util-middleware': 4.0.3 + '@smithy/util-middleware': 4.0.4 '@smithy/util-uri-escape': 4.0.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/smithy-client@4.3.0': + '@smithy/smithy-client@4.4.3': dependencies: - '@smithy/core': 3.4.0 - '@smithy/middleware-endpoint': 4.1.7 - '@smithy/middleware-stack': 4.0.3 - '@smithy/protocol-http': 5.1.1 - '@smithy/types': 4.3.0 - '@smithy/util-stream': 4.2.1 + '@smithy/core': 3.5.3 + '@smithy/middleware-endpoint': 4.1.11 + '@smithy/middleware-stack': 4.0.4 + '@smithy/protocol-http': 5.1.2 + '@smithy/types': 4.3.1 + '@smithy/util-stream': 4.2.2 tslib: 2.8.1 '@smithy/types@2.12.0': dependencies: tslib: 2.8.1 - '@smithy/types@4.3.0': + '@smithy/types@4.3.1': dependencies: tslib: 2.8.1 - '@smithy/url-parser@4.0.3': + '@smithy/url-parser@4.0.4': dependencies: - '@smithy/querystring-parser': 4.0.3 - '@smithy/types': 4.3.0 + '@smithy/querystring-parser': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 '@smithy/util-base64@4.0.0': @@ -14171,50 +14146,50 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@4.0.15': + '@smithy/util-defaults-mode-browser@4.0.19': dependencies: - '@smithy/property-provider': 4.0.3 - '@smithy/smithy-client': 4.3.0 - '@smithy/types': 4.3.0 + '@smithy/property-provider': 4.0.4 + '@smithy/smithy-client': 4.4.3 + '@smithy/types': 4.3.1 bowser: 2.11.0 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@4.0.15': + '@smithy/util-defaults-mode-node@4.0.19': dependencies: - '@smithy/config-resolver': 4.1.3 - '@smithy/credential-provider-imds': 4.0.5 - '@smithy/node-config-provider': 4.1.2 - '@smithy/property-provider': 4.0.3 - '@smithy/smithy-client': 4.3.0 - '@smithy/types': 4.3.0 + '@smithy/config-resolver': 4.1.4 + '@smithy/credential-provider-imds': 4.0.6 + '@smithy/node-config-provider': 4.1.3 + '@smithy/property-provider': 4.0.4 + '@smithy/smithy-client': 4.4.3 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/util-endpoints@3.0.5': + '@smithy/util-endpoints@3.0.6': dependencies: - '@smithy/node-config-provider': 4.1.2 - '@smithy/types': 4.3.0 + '@smithy/node-config-provider': 4.1.3 + '@smithy/types': 4.3.1 tslib: 2.8.1 '@smithy/util-hex-encoding@4.0.0': dependencies: tslib: 2.8.1 - '@smithy/util-middleware@4.0.3': + '@smithy/util-middleware@4.0.4': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/util-retry@4.0.4': + '@smithy/util-retry@4.0.5': dependencies: - '@smithy/service-error-classification': 4.0.4 - '@smithy/types': 4.3.0 + '@smithy/service-error-classification': 4.0.5 + '@smithy/types': 4.3.1 tslib: 2.8.1 - '@smithy/util-stream@4.2.1': + '@smithy/util-stream@4.2.2': dependencies: - '@smithy/fetch-http-handler': 5.0.3 - '@smithy/node-http-handler': 4.0.5 - '@smithy/types': 4.3.0 + '@smithy/fetch-http-handler': 5.0.4 + '@smithy/node-http-handler': 4.0.6 + '@smithy/types': 4.3.1 '@smithy/util-base64': 4.0.0 '@smithy/util-buffer-from': 4.0.0 '@smithy/util-hex-encoding': 4.0.0 @@ -14239,10 +14214,10 @@ snapshots: '@smithy/util-buffer-from': 4.0.0 tslib: 2.8.1 - '@smithy/util-waiter@4.0.3': + '@smithy/util-waiter@4.0.5': dependencies: - '@smithy/abort-controller': 4.0.3 - '@smithy/types': 4.3.0 + '@smithy/abort-controller': 4.0.4 + '@smithy/types': 4.3.1 tslib: 2.8.1 '@sqltools/formatter@1.2.5': {} @@ -14528,7 +14503,7 @@ snapshots: '@stylistic/eslint-plugin@2.13.0(eslint@9.27.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.27.0)(typescript@5.8.3) eslint: 9.27.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 @@ -14538,9 +14513,9 @@ snapshots: - supports-color - typescript - '@swc/cli@0.7.7(@swc/core@1.11.29)(chokidar@4.0.3)': + '@swc/cli@0.7.7(@swc/core@1.12.0)(chokidar@4.0.3)': dependencies: - '@swc/core': 1.11.29 + '@swc/core': 1.12.0 '@swc/counter': 0.1.3 '@xhmikosr/bin-wrapper': 13.0.5 commander: 8.3.0 @@ -14558,10 +14533,10 @@ snapshots: '@swc/wasm': 1.2.130 optional: true - '@swc/core-darwin-arm64@1.11.29': + '@swc/core-darwin-arm64@1.12.0': optional: true - '@swc/core-darwin-x64@1.11.29': + '@swc/core-darwin-x64@1.12.0': optional: true '@swc/core-freebsd-x64@1.3.11': @@ -14569,56 +14544,56 @@ snapshots: '@swc/wasm': 1.2.130 optional: true - '@swc/core-linux-arm-gnueabihf@1.11.29': + '@swc/core-linux-arm-gnueabihf@1.12.0': optional: true - '@swc/core-linux-arm64-gnu@1.11.29': + '@swc/core-linux-arm64-gnu@1.12.0': optional: true - '@swc/core-linux-arm64-musl@1.11.29': + '@swc/core-linux-arm64-musl@1.12.0': optional: true - '@swc/core-linux-x64-gnu@1.11.29': + '@swc/core-linux-x64-gnu@1.12.0': optional: true - '@swc/core-linux-x64-musl@1.11.29': + '@swc/core-linux-x64-musl@1.12.0': optional: true - '@swc/core-win32-arm64-msvc@1.11.29': + '@swc/core-win32-arm64-msvc@1.12.0': optional: true - '@swc/core-win32-ia32-msvc@1.11.29': + '@swc/core-win32-ia32-msvc@1.12.0': optional: true - '@swc/core-win32-x64-msvc@1.11.29': + '@swc/core-win32-x64-msvc@1.12.0': optional: true - '@swc/core@1.11.29': + '@swc/core@1.12.0': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.21 + '@swc/types': 0.1.22 optionalDependencies: - '@swc/core-darwin-arm64': 1.11.29 - '@swc/core-darwin-x64': 1.11.29 - '@swc/core-linux-arm-gnueabihf': 1.11.29 - '@swc/core-linux-arm64-gnu': 1.11.29 - '@swc/core-linux-arm64-musl': 1.11.29 - '@swc/core-linux-x64-gnu': 1.11.29 - '@swc/core-linux-x64-musl': 1.11.29 - '@swc/core-win32-arm64-msvc': 1.11.29 - '@swc/core-win32-ia32-msvc': 1.11.29 - '@swc/core-win32-x64-msvc': 1.11.29 + '@swc/core-darwin-arm64': 1.12.0 + '@swc/core-darwin-x64': 1.12.0 + '@swc/core-linux-arm-gnueabihf': 1.12.0 + '@swc/core-linux-arm64-gnu': 1.12.0 + '@swc/core-linux-arm64-musl': 1.12.0 + '@swc/core-linux-x64-gnu': 1.12.0 + '@swc/core-linux-x64-musl': 1.12.0 + '@swc/core-win32-arm64-msvc': 1.12.0 + '@swc/core-win32-ia32-msvc': 1.12.0 + '@swc/core-win32-x64-msvc': 1.12.0 '@swc/counter@0.1.3': {} - '@swc/jest@0.2.38(@swc/core@1.11.29)': + '@swc/jest@0.2.38(@swc/core@1.12.0)': dependencies: '@jest/create-cache-key-function': 29.7.0 - '@swc/core': 1.11.29 + '@swc/core': 1.12.0 '@swc/counter': 0.1.3 jsonc-parser: 3.2.0 - '@swc/types@0.1.21': + '@swc/types@0.1.22': dependencies: '@swc/counter': 0.1.3 @@ -14788,7 +14763,7 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.31 '@types/archiver@6.0.3': dependencies: @@ -14821,10 +14796,10 @@ snapshots: '@types/bcryptjs@2.4.6': {} - '@types/body-parser@1.19.5': + '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.36 - '@types/node': 22.15.21 + '@types/node': 22.15.31 '@types/braces@3.0.1': {} @@ -14844,7 +14819,7 @@ snapshots: dependencies: '@types/node': 22.15.31 - '@types/content-disposition@0.5.8': {} + '@types/content-disposition@0.5.9': {} '@types/cookie@0.6.0': {} @@ -14879,14 +14854,14 @@ snapshots: '@types/express@4.17.17': dependencies: - '@types/body-parser': 1.19.5 + '@types/body-parser': 1.19.6 '@types/express-serve-static-core': 4.17.33 '@types/qs': 6.9.7 '@types/serve-static': 1.15.1 '@types/fluent-ffmpeg@2.1.27': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.31 '@types/graceful-fs@4.1.6': dependencies: @@ -14904,7 +14879,7 @@ snapshots: '@types/http-link-header@1.0.7': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.31 '@types/istanbul-lib-coverage@2.0.4': {} @@ -14925,7 +14900,7 @@ snapshots: '@types/jsdom@21.1.7': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.31 '@types/tough-cookie': 4.0.5 parse5: 7.3.0 @@ -14968,7 +14943,7 @@ snapshots: '@types/node-fetch@2.6.11': dependencies: '@types/node': 22.15.31 - form-data: 4.0.2 + form-data: 4.0.3 '@types/node@22.15.21': dependencies: @@ -14980,7 +14955,7 @@ snapshots: '@types/nodemailer@6.4.17': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.31 '@types/normalize-package-data@2.4.1': {} @@ -14991,11 +14966,11 @@ snapshots: '@types/oauth2orize@1.11.5': dependencies: '@types/express': 4.17.17 - '@types/node': 22.15.21 + '@types/node': 22.15.31 '@types/oauth@0.9.6': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.31 '@types/offscreencanvas@2019.3.0': {} @@ -15003,13 +14978,13 @@ snapshots: '@types/pg-pool@2.0.6': dependencies: - '@types/pg': 8.15.2 + '@types/pg': 8.15.4 - '@types/pg@8.15.2': + '@types/pg@8.15.4': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.31 pg-protocol: 1.10.0 - pg-types: 4.0.1 + pg-types: 2.2.0 '@types/pg@8.6.1': dependencies: @@ -15025,7 +15000,7 @@ snapshots: '@types/qrcode@1.5.5': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.31 '@types/qs@6.9.7': {} @@ -15093,7 +15068,7 @@ snapshots: '@types/cookiejar': 2.1.5 '@types/methods': 1.1.4 '@types/node': 22.15.31 - form-data: 4.0.2 + form-data: 4.0.3 '@types/supertest@6.0.3': dependencies: @@ -15118,7 +15093,7 @@ snapshots: '@types/vary@1.1.3': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.31 '@types/wawoff2@1.0.2': dependencies: @@ -15126,11 +15101,11 @@ snapshots: '@types/web-push@3.6.4': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.31 '@types/ws@8.18.1': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.31 '@types/yargs-parser@21.0.0': {} @@ -15966,7 +15941,7 @@ snapshots: axios@1.8.4(debug@4.4.1): dependencies: follow-redirects: 1.15.9(debug@4.4.1) - form-data: 4.0.2 + form-data: 4.0.3 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug @@ -16153,7 +16128,7 @@ snapshots: node-gyp-build: 4.6.0 optional: true - bullmq@5.53.0: + bullmq@5.53.2: dependencies: cron-parser: 4.9.0 ioredis: 5.6.1 @@ -16515,11 +16490,11 @@ snapshots: concat-map@0.0.1: {} - concat-stream@1.6.2: + concat-stream@2.0.0: dependencies: buffer-from: 1.1.2 inherits: 2.0.4 - readable-stream: 2.3.7 + readable-stream: 3.6.2 typedarray: 0.0.6 config-chain@1.1.13: @@ -16575,21 +16550,6 @@ snapshots: crc-32: 1.2.2 readable-stream: 4.3.0 - create-jest@29.7.0(@types/node@22.15.21): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.15.21) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - create-jest@29.7.0(@types/node@22.15.31): dependencies: '@jest/types': 29.6.3 @@ -17894,11 +17854,12 @@ snapshots: form-data-encoder@4.0.2: {} - form-data@4.0.2: + form-data@4.0.3: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 + hasown: 2.0.2 mime-types: 2.1.35 formdata-polyfill@4.0.10: @@ -18684,25 +18645,6 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.15.21): - dependencies: - '@jest/core': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.15.21) - exit: 0.1.2 - import-local: 3.1.0 - jest-config: 29.7.0(@types/node@22.15.21) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - jest-cli@29.7.0(@types/node@22.15.31): dependencies: '@jest/core': 29.7.0 @@ -18722,36 +18664,6 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.15.21): - dependencies: - '@babel/core': 7.24.7 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.24.7) - 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.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 22.15.21 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - jest-config@29.7.0(@types/node@22.15.31): dependencies: '@babel/core': 7.24.7 @@ -18862,7 +18774,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.21 + '@types/node': 22.15.31 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -19009,18 +18921,6 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.15.21): - dependencies: - '@jest/core': 29.7.0 - '@jest/types': 29.6.3 - import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@22.15.21) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - jest@29.7.0(@types/node@22.15.31): dependencies: '@jest/core': 29.7.0 @@ -19498,7 +19398,7 @@ snapshots: media-typer@0.3.0: {} - meilisearch@0.50.0: {} + meilisearch@0.51.0: {} memoizerific@1.11.3: dependencies: @@ -19533,7 +19433,7 @@ snapshots: dependencies: '@twemoji/parser': 15.0.0 - microformats-parser@2.0.2: + microformats-parser@2.0.3: dependencies: parse5: 7.3.0 @@ -19911,11 +19811,11 @@ snapshots: muggle-string@0.4.1: {} - multer@2.0.0: + multer@2.0.1: dependencies: append-field: 1.0.0 busboy: 1.6.0 - concat-stream: 1.6.2 + concat-stream: 2.0.0 mkdirp: 0.5.6 object-assign: 4.1.1 type-is: 1.6.18 @@ -20173,8 +20073,6 @@ snapshots: oblivious-set@1.4.0: {} - obuf@1.1.2: {} - on-exit-leak-free@2.1.0: {} on-finished@2.4.1: @@ -20376,8 +20274,6 @@ snapshots: pg-int8@1.0.1: {} - pg-numeric@1.0.2: {} - pg-pool@3.10.0(pg@8.16.0): dependencies: pg: 8.16.0 @@ -20392,16 +20288,6 @@ snapshots: postgres-date: 1.0.7 postgres-interval: 1.2.0 - pg-types@4.0.1: - dependencies: - pg-int8: 1.0.1 - pg-numeric: 1.0.2 - postgres-array: 3.0.2 - postgres-bytea: 3.0.0 - postgres-date: 2.0.1 - postgres-interval: 3.0.0 - postgres-range: 1.1.3 - pg@8.16.0: dependencies: pg-connection-string: 2.9.0 @@ -20652,26 +20538,14 @@ snapshots: postgres-array@2.0.0: {} - postgres-array@3.0.2: {} - postgres-bytea@1.0.0: {} - postgres-bytea@3.0.0: - dependencies: - obuf: 1.1.2 - postgres-date@1.0.7: {} - postgres-date@2.0.1: {} - postgres-interval@1.2.0: dependencies: xtend: 4.0.2 - postgres-interval@3.0.0: {} - - postgres-range@1.1.3: {} - prebuild-install@7.1.3: dependencies: detect-libc: 2.0.4 @@ -21845,7 +21719,7 @@ snapshots: cookiejar: 2.1.4 debug: 4.4.1(supports-color@10.0.0) fast-safe-stringify: 2.1.1 - form-data: 4.0.2 + form-data: 4.0.3 formidable: 3.5.4 methods: 1.1.2 mime: 2.6.0 From 63e8935c860c621ec25c944269f52683949ef182 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Wed, 11 Jun 2025 12:42:49 +0900 Subject: [PATCH 55/76] fix(frontend): disable note_view_interruptor temporary to prevent rendering glitch --- CHANGELOG.md | 3 ++ packages/frontend/src/components/MkNote.vue | 28 ++++++++++--------- .../src/components/MkNoteDetailed.vue | 27 +++++++++--------- 3 files changed, 32 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd2534adeb..86d1a71293 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ ## 2025.6.1 +### Note +- Misskey Webプラグインのnote_view_interruptorは不具合の影響により現在一時的に無効化されています。 + ### General - diff --git a/packages/frontend/src/components/MkNote.vue b/packages/frontend/src/components/MkNote.vue index 040c2acdc2..3ca7455f0d 100644 --- a/packages/frontend/src/components/MkNote.vue +++ b/packages/frontend/src/components/MkNote.vue @@ -265,19 +265,21 @@ const currentClip = inject | null>('currentClip', nul let note = deepClone(props.note); -// plugin -const noteViewInterruptors = getPluginHandlers('note_view_interruptor'); -if (noteViewInterruptors.length > 0) { - let result: Misskey.entities.Note | null = deepClone(note); - for (const interruptor of noteViewInterruptors) { - try { - result = await interruptor.handler(result!) as Misskey.entities.Note | null; - } catch (err) { - console.error(err); - } - } - note = result as Misskey.entities.Note; -} +// コンポーネント初期化に非同期的な処理を行うとTransitionのレンダリングがバグるため同期的に実行できるメソッドが実装されるのを待つ必要がある +// https://github.com/aiscript-dev/aiscript/issues/937 +//// plugin +//const noteViewInterruptors = getPluginHandlers('note_view_interruptor'); +//if (noteViewInterruptors.length > 0) { +// let result: Misskey.entities.Note | null = deepClone(note); +// for (const interruptor of noteViewInterruptors) { +// try { +// result = await interruptor.handler(result!) as Misskey.entities.Note | null; +// } catch (err) { +// console.error(err); +// } +// } +// note = result as Misskey.entities.Note; +//} const isRenote = Misskey.note.isPureRenote(note); const appearNote = getAppearNote(note); diff --git a/packages/frontend/src/components/MkNoteDetailed.vue b/packages/frontend/src/components/MkNoteDetailed.vue index 7a2090d171..cc26b0d0dc 100644 --- a/packages/frontend/src/components/MkNoteDetailed.vue +++ b/packages/frontend/src/components/MkNoteDetailed.vue @@ -286,19 +286,20 @@ const inChannel = inject('inChannel', null); let note = deepClone(props.note); -// plugin -const noteViewInterruptors = getPluginHandlers('note_view_interruptor'); -if (noteViewInterruptors.length > 0) { - let result: Misskey.entities.Note | null = deepClone(note); - for (const interruptor of noteViewInterruptors) { - try { - result = await interruptor.handler(result!) as Misskey.entities.Note | null; - } catch (err) { - console.error(err); - } - } - note = result as Misskey.entities.Note; -} +// コンポーネント初期化に非同期的な処理を行うとTransitionのレンダリングがバグるため同期的に実行できるメソッドが実装されるのを待つ必要がある +//// plugin +//const noteViewInterruptors = getPluginHandlers('note_view_interruptor'); +//if (noteViewInterruptors.length > 0) { +// let result: Misskey.entities.Note | null = deepClone(note); +// for (const interruptor of noteViewInterruptors) { +// try { +// result = await interruptor.handler(result!) as Misskey.entities.Note | null; +// } catch (err) { +// console.error(err); +// } +// } +// note = result as Misskey.entities.Note; +//} const isRenote = Misskey.note.isPureRenote(note); const appearNote = getAppearNote(note); From 8f66ffc14d9fd5425727a0efe2384d5abf1d32d1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 11 Jun 2025 03:45:02 +0000 Subject: [PATCH 56/76] Bump version to 2025.6.1-beta.1 --- package.json | 2 +- packages/misskey-js/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d44cc6031d..091d494389 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2025.6.1-beta.0", + "version": "2025.6.1-beta.1", "codename": "nasubi", "repository": { "type": "git", diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json index 491009795d..c94aa5f62b 100644 --- a/packages/misskey-js/package.json +++ b/packages/misskey-js/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "misskey-js", - "version": "2025.6.1-beta.0", + "version": "2025.6.1-beta.1", "description": "Misskey SDK for JavaScript", "license": "MIT", "main": "./built/index.js", From 568021498fc8300d72bfd6c327baeded9d428042 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 11 Jun 2025 14:39:49 +0900 Subject: [PATCH 57/76] fix(deps): update [root] update dependencies (#16142) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 24 +- pnpm-lock.yaml | 751 +++++++++++++++++-------------------------------- 2 files changed, 273 insertions(+), 502 deletions(-) diff --git a/package.json b/package.json index 091d494389..116e036891 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "type": "git", "url": "https://github.com/misskey-dev/misskey.git" }, - "packageManager": "pnpm@10.11.0", + "packageManager": "pnpm@10.12.1", "workspaces": [ "packages/frontend-shared", "packages/frontend", @@ -53,28 +53,28 @@ }, "dependencies": { "cssnano": "7.0.7", - "esbuild": "0.25.4", - "execa": "9.5.3", + "esbuild": "0.25.5", + "execa": "9.6.0", "fast-glob": "3.3.3", "glob": "11.0.2", "ignore-walk": "7.0.0", "js-yaml": "4.1.0", - "postcss": "8.5.3", + "postcss": "8.5.4", "tar": "7.4.3", - "terser": "5.39.2", + "terser": "5.42.0", "typescript": "5.8.3" }, "devDependencies": { "@misskey-dev/eslint-plugin": "2.1.0", - "@types/node": "22.15.21", - "@typescript-eslint/eslint-plugin": "8.32.1", - "@typescript-eslint/parser": "8.32.1", + "@types/node": "22.15.31", + "@typescript-eslint/eslint-plugin": "8.34.0", + "@typescript-eslint/parser": "8.34.0", "cross-env": "7.0.3", - "cypress": "14.4.0", - "eslint": "9.27.0", - "globals": "16.1.0", + "cypress": "14.4.1", + "eslint": "9.28.0", + "globals": "16.2.0", "ncp": "2.0.0", - "pnpm": "10.11.0", + "pnpm": "10.12.1", "start-server-and-test": "2.0.12" }, "optionalDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d153c18f43..2bb00d45cd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,13 +15,13 @@ importers: dependencies: cssnano: specifier: 7.0.7 - version: 7.0.7(postcss@8.5.3) + version: 7.0.7(postcss@8.5.4) esbuild: - specifier: 0.25.4 - version: 0.25.4 + specifier: 0.25.5 + version: 0.25.5 execa: - specifier: 9.5.3 - version: 9.5.3 + specifier: 9.6.0 + version: 9.6.0 fast-glob: specifier: 3.3.3 version: 3.3.3 @@ -35,48 +35,48 @@ importers: specifier: 4.1.0 version: 4.1.0 postcss: - specifier: 8.5.3 - version: 8.5.3 + specifier: 8.5.4 + version: 8.5.4 tar: specifier: 7.4.3 version: 7.4.3 terser: - specifier: 5.39.2 - version: 5.39.2 + specifier: 5.42.0 + version: 5.42.0 typescript: specifier: 5.8.3 version: 5.8.3 devDependencies: '@misskey-dev/eslint-plugin': specifier: 2.1.0 - version: 2.1.0(@eslint/compat@1.1.1)(@stylistic/eslint-plugin@2.13.0(eslint@9.27.0)(typescript@5.8.3))(@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3))(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0))(eslint@9.27.0)(globals@16.1.0) + version: 2.1.0(@eslint/compat@1.1.1)(@stylistic/eslint-plugin@2.13.0(eslint@9.28.0)(typescript@5.8.3))(@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3))(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0))(eslint@9.28.0)(globals@16.2.0) '@types/node': - specifier: 22.15.21 - version: 22.15.21 + specifier: 22.15.31 + version: 22.15.31 '@typescript-eslint/eslint-plugin': - specifier: 8.32.1 - version: 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3) '@typescript-eslint/parser': - specifier: 8.32.1 - version: 8.32.1(eslint@9.27.0)(typescript@5.8.3) + specifier: 8.34.0 + version: 8.34.0(eslint@9.28.0)(typescript@5.8.3) cross-env: specifier: 7.0.3 version: 7.0.3 cypress: - specifier: 14.4.0 - version: 14.4.0 + specifier: 14.4.1 + version: 14.4.1 eslint: - specifier: 9.27.0 - version: 9.27.0 + specifier: 9.28.0 + version: 9.28.0 globals: - specifier: 16.1.0 - version: 16.1.0 + specifier: 16.2.0 + version: 16.2.0 ncp: specifier: 2.0.0 version: 2.0.0 pnpm: - specifier: 10.11.0 - version: 10.11.0 + specifier: 10.12.1 + version: 10.12.1 start-server-and-test: specifier: 2.0.12 version: 2.0.12 @@ -570,10 +570,10 @@ importers: version: 8.18.1 '@typescript-eslint/eslint-plugin': specifier: 8.34.0 - version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: 8.34.0 - version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(eslint@9.28.0)(typescript@5.8.3) aws-sdk-client-mock: specifier: 4.1.0 version: 4.1.0 @@ -582,7 +582,7 @@ importers: version: 7.0.3 eslint-plugin-import: specifier: 2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0) + version: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0) execa: specifier: 8.0.1 version: 8.0.1 @@ -733,7 +733,7 @@ importers: version: 15.1.1 '@vitejs/plugin-vue': specifier: 5.2.4 - version: 5.2.4(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3)) + version: 5.2.4(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3)) '@vue/compiler-sfc': specifier: 3.5.16 version: 3.5.16 @@ -871,7 +871,7 @@ importers: version: 1.13.1(vue@3.5.16(typescript@5.8.3)) vite: specifier: 6.3.5 - version: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) + version: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4) vue: specifier: 3.5.16 version: 3.5.16(typescript@5.8.3) @@ -923,7 +923,7 @@ importers: version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.3) '@storybook/react-vite': specifier: 8.6.14 - version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.42.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)) + version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.42.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4)) '@storybook/test': specifier: 8.6.14 version: 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)) @@ -938,7 +938,7 @@ importers: version: 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vue@3.5.16(typescript@5.8.3)) '@storybook/vue3-vite': specifier: 8.6.14 - version: 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3)) + version: 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3)) '@tabler/icons-webfont': specifier: 3.34.0 version: 3.34.0 @@ -980,13 +980,13 @@ importers: version: 8.18.1 '@typescript-eslint/eslint-plugin': specifier: 8.34.0 - version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: 8.34.0 - version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(eslint@9.28.0)(typescript@5.8.3) '@vitest/coverage-v8': specifier: 3.2.3 - version: 3.2.3(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)) + version: 3.2.3(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4)) '@vue/compiler-core': specifier: 3.5.16 version: 3.5.16 @@ -1004,10 +1004,10 @@ importers: version: 14.4.1 eslint-plugin-import: specifier: 2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0) + version: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0) eslint-plugin-vue: specifier: 10.2.0 - version: 10.2.0(eslint@9.27.0)(vue-eslint-parser@10.1.3(eslint@9.27.0)) + version: 10.2.0(eslint@9.28.0)(vue-eslint-parser@10.1.3(eslint@9.28.0)) fast-glob: specifier: 3.3.3 version: 3.3.3 @@ -1058,16 +1058,16 @@ importers: version: 1.0.3 vitest: specifier: 3.2.3 - version: 3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) + version: 3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4) vitest-fetch-mock: specifier: 0.4.5 - version: 0.4.5(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)) + version: 0.4.5(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4)) vue-component-type-helpers: specifier: 2.2.10 version: 2.2.10 vue-eslint-parser: specifier: 10.1.3 - version: 10.1.3(eslint@9.27.0) + version: 10.1.3(eslint@9.28.0) vue-tsc: specifier: 2.2.10 version: 2.2.10(typescript@5.8.3) @@ -1091,7 +1091,7 @@ importers: version: 15.1.1 '@vitejs/plugin-vue': specifier: 5.2.4 - version: 5.2.4(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3)) + version: 5.2.4(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3)) '@vue/compiler-sfc': specifier: 3.5.16 version: 3.5.16 @@ -1148,7 +1148,7 @@ importers: version: 11.1.0 vite: specifier: 6.3.5 - version: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) + version: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4) vue: specifier: 3.5.16 version: 3.5.16(typescript@5.8.3) @@ -1182,13 +1182,13 @@ importers: version: 8.18.1 '@typescript-eslint/eslint-plugin': specifier: 8.34.0 - version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: 8.34.0 - version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(eslint@9.28.0)(typescript@5.8.3) '@vitest/coverage-v8': specifier: 3.2.3 - version: 3.2.3(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)) + version: 3.2.3(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4)) '@vue/runtime-core': specifier: 3.5.16 version: 3.5.16 @@ -1200,10 +1200,10 @@ importers: version: 7.0.3 eslint-plugin-import: specifier: 2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0) + version: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0) eslint-plugin-vue: specifier: 10.2.0 - version: 10.2.0(eslint@9.27.0)(vue-eslint-parser@10.1.3(eslint@9.27.0)) + version: 10.2.0(eslint@9.28.0)(vue-eslint-parser@10.1.3(eslint@9.28.0)) fast-glob: specifier: 3.3.3 version: 3.3.3 @@ -1236,7 +1236,7 @@ importers: version: 2.2.10 vue-eslint-parser: specifier: 10.1.3 - version: 10.1.3(eslint@9.27.0) + version: 10.1.3(eslint@9.28.0) vue-tsc: specifier: 2.2.10 version: 2.2.10(typescript@5.8.3) @@ -1255,16 +1255,16 @@ importers: version: 22.15.31 '@typescript-eslint/eslint-plugin': specifier: 8.34.0 - version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: 8.34.0 - version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(eslint@9.28.0)(typescript@5.8.3) esbuild: specifier: 0.25.5 version: 0.25.5 eslint-plugin-vue: specifier: 10.2.0 - version: 10.2.0(eslint@9.27.0)(vue-eslint-parser@10.1.3(eslint@9.27.0)) + version: 10.2.0(eslint@9.28.0)(vue-eslint-parser@10.1.3(eslint@9.28.0)) nodemon: specifier: 3.1.10 version: 3.1.10 @@ -1273,7 +1273,7 @@ importers: version: 5.8.3 vue-eslint-parser: specifier: 10.1.3 - version: 10.1.3(eslint@9.27.0) + version: 10.1.3(eslint@9.28.0) packages/icons-subsetter: dependencies: @@ -1304,10 +1304,10 @@ importers: version: 1.0.2 '@typescript-eslint/eslint-plugin': specifier: 8.34.0 - version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: 8.34.0 - version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(eslint@9.28.0)(typescript@5.8.3) packages/misskey-bubble-game: dependencies: @@ -1332,10 +1332,10 @@ importers: version: 3.0.8 '@typescript-eslint/eslint-plugin': specifier: 8.34.0 - version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: 8.34.0 - version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(eslint@9.28.0)(typescript@5.8.3) esbuild: specifier: 0.25.5 version: 0.25.5 @@ -1378,10 +1378,10 @@ importers: version: 22.15.31 '@typescript-eslint/eslint-plugin': specifier: 8.34.0 - version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: 8.34.0 - version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(eslint@9.28.0)(typescript@5.8.3) esbuild: specifier: 0.25.5 version: 0.25.5 @@ -1426,10 +1426,10 @@ importers: version: 22.15.31 '@typescript-eslint/eslint-plugin': specifier: 8.34.0 - version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: 8.34.0 - version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(eslint@9.28.0)(typescript@5.8.3) openapi-types: specifier: 12.1.3 version: 12.1.3 @@ -1457,10 +1457,10 @@ importers: version: 22.15.31 '@typescript-eslint/eslint-plugin': specifier: 8.34.0 - version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3) '@typescript-eslint/parser': specifier: 8.34.0 - version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(eslint@9.28.0)(typescript@5.8.3) esbuild: specifier: 0.25.5 version: 0.25.5 @@ -1491,13 +1491,13 @@ importers: devDependencies: '@typescript-eslint/parser': specifier: 8.34.0 - version: 8.34.0(eslint@9.27.0)(typescript@5.8.3) + version: 8.34.0(eslint@9.28.0)(typescript@5.8.3) '@typescript/lib-webworker': specifier: npm:@types/serviceworker@0.0.74 version: '@types/serviceworker@0.0.74' eslint-plugin-import: specifier: 2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0) + version: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0) nodemon: specifier: 3.1.10 version: 3.1.10 @@ -2323,8 +2323,8 @@ packages: resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.27.0': - resolution: {integrity: sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==} + '@eslint/js@9.28.0': + resolution: {integrity: sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': @@ -4584,9 +4584,6 @@ packages: '@types/node-fetch@2.6.11': resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} - '@types/node@22.15.21': - resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} - '@types/node@22.15.31': resolution: {integrity: sha512-jnVe5ULKl6tijxUhvQeNbQG/84fHfg+yMak02cT8QVhBx/F05rAVxCGBYYTh2EKz22D6JF5ktXuNwdx7b9iEGw==} @@ -4752,14 +4749,6 @@ packages: '@types/yauzl@2.10.0': resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} - '@typescript-eslint/eslint-plugin@8.32.1': - resolution: {integrity: sha512-6u6Plg9nP/J1GRpe/vcjjabo6Uc5YQPAMxsgQyGC/I0RuukiG1wIe3+Vtg3IrSCVJDmqK3j8adrtzXSENRtFgg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/eslint-plugin@8.34.0': resolution: {integrity: sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4768,13 +4757,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.32.1': - resolution: {integrity: sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.34.0': resolution: {integrity: sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4788,10 +4770,6 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.32.1': - resolution: {integrity: sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.34.0': resolution: {integrity: sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4802,13 +4780,6 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.32.1': - resolution: {integrity: sha512-mv9YpQGA8iIsl5KyUPi+FGLm7+bA4fgXaeRcFKRDRwDMu4iwrSHeDPipwueNXhdIIZltwCJv+NkxftECbIZWfA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.34.0': resolution: {integrity: sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4816,33 +4787,16 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.32.1': - resolution: {integrity: sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.34.0': resolution: {integrity: sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.32.1': - resolution: {integrity: sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/typescript-estree@8.34.0': resolution: {integrity: sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.32.1': - resolution: {integrity: sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.34.0': resolution: {integrity: sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4850,10 +4804,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.32.1': - resolution: {integrity: sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.34.0': resolution: {integrity: sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6017,11 +5967,6 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - cypress@14.4.0: - resolution: {integrity: sha512-/I59Fqxo7fqdiDi3IM2QKA65gZ7+PVejXg404/I8ZSq+NOnrmw+2pnMUJzpoNyg7KABcEBmgpkfAqhV98p7wJA==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - cypress@14.4.1: resolution: {integrity: sha512-YSGvVXtTqSGRTyHbaxHI5dHU/9xc5ymaTIM4BU85GKhj980y6XgA3fShSpj5DatS8knXMsAvYItQxVQFHGpUtw==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -6504,8 +6449,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.27.0: - resolution: {integrity: sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==} + eslint@9.28.0: + resolution: {integrity: sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -6585,10 +6530,6 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - execa@9.5.3: - resolution: {integrity: sha512-QFNnTvU3UjgWFy8Ef9iDHvIdcgZ344ebkwYx4/KLbR+CKQA4xBaHzv+iRpp86QfMHP8faFQLh8iOc57215y4Rg==} - engines: {node: ^18.19.0 || >=20.5.0} - execa@9.6.0: resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==} engines: {node: ^18.19.0 || >=20.5.0} @@ -6993,8 +6934,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@16.1.0: - resolution: {integrity: sha512-aibexHNbb/jiUSObBgpHLj+sIuUmJnYcgXBlrfsiDZ9rt4aF2TFRbyLgZ2iFQuVZ1K5Mx3FVkbKRSgKrbK3K2g==} + globals@16.2.0: + resolution: {integrity: sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==} engines: {node: '>=18'} globalthis@1.0.3: @@ -7203,10 +7144,6 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - human-signals@8.0.0: - resolution: {integrity: sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==} - engines: {node: '>=18.18.0'} - human-signals@8.0.1: resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} engines: {node: '>=18.18.0'} @@ -8403,6 +8340,11 @@ packages: nan@2.22.2: resolution: {integrity: sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + nanoid@3.3.8: resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -8947,8 +8889,8 @@ packages: resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} engines: {node: '>=10.13.0'} - pnpm@10.11.0: - resolution: {integrity: sha512-ZUBYP0HMX2KOs9l3Ps7oAvT575kjzEW2mJD7R5kdSwkpZGlOw6T3OKQgyRijMwYsi5JdMS9C5PDCY+tgNVH5dw==} + pnpm@10.12.1: + resolution: {integrity: sha512-8N2oWA8O6UgcXHmh2Se5Fk8sR46QmSrSaLuyRlpzaYQ5HWMz0sMnkTV4soBK8zR0ylVLopwEqLEwYKcXZ1rjrA==} engines: {node: '>=18.12'} hasBin: true @@ -9137,6 +9079,10 @@ packages: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.4: + resolution: {integrity: sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==} + engines: {node: ^10 || ^12 || >=14} + postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} @@ -10221,8 +10167,8 @@ packages: resolution: {integrity: sha512-+HRtZ40Vc+6YfCDWCeAsixwxJgMbPY4HHuTgzPYH3JXvqHWUlsCfy+ylXlAKhFNcuLp4xVeWeFBUhDk+7KYUvQ==} engines: {node: '>=14.16'} - terser@5.39.2: - resolution: {integrity: sha512-yEPUmWve+VA78bI71BW70Dh0TuV4HHd+I5SHOAfS1+QBOmvmCiiffgjR8ryyEd3KIfvPGFqoADt8LdQ6XpXIvg==} + terser@5.42.0: + resolution: {integrity: sha512-UYCvU9YQW2f/Vwl+P0GfhxJxbUGLwd+5QrrGgLajzWAtC/23AX0vcise32kkP7Eu0Wu9VlzzHAXkLObgjQfFlQ==} engines: {node: '>=10'} hasBin: true @@ -12197,9 +12143,9 @@ snapshots: '@esbuild/win32-x64@0.25.5': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.27.0)': + '@eslint-community/eslint-utils@4.7.0(eslint@9.28.0)': dependencies: - eslint: 9.27.0 + eslint: 9.28.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -12234,7 +12180,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.27.0': {} + '@eslint/js@9.28.0': {} '@eslint/object-schema@2.1.6': {} @@ -12758,12 +12704,12 @@ snapshots: '@types/yargs': 17.0.19 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4))': dependencies: glob: 10.4.5 magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.8.3) - vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4) optionalDependencies: typescript: 5.8.3 @@ -12864,15 +12810,15 @@ snapshots: '@misskey-dev/browser-image-resizer@2024.1.0': {} - '@misskey-dev/eslint-plugin@2.1.0(@eslint/compat@1.1.1)(@stylistic/eslint-plugin@2.13.0(eslint@9.27.0)(typescript@5.8.3))(@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3))(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0))(eslint@9.27.0)(globals@16.1.0)': + '@misskey-dev/eslint-plugin@2.1.0(@eslint/compat@1.1.1)(@stylistic/eslint-plugin@2.13.0(eslint@9.28.0)(typescript@5.8.3))(@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3))(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0))(eslint@9.28.0)(globals@16.2.0)': dependencies: '@eslint/compat': 1.1.1 - '@stylistic/eslint-plugin': 2.13.0(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/eslint-plugin': 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/parser': 8.32.1(eslint@9.27.0)(typescript@5.8.3) - eslint: 9.27.0 - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0) - globals: 16.1.0 + '@stylistic/eslint-plugin': 2.13.0(eslint@9.28.0)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.0(eslint@9.28.0)(typescript@5.8.3) + eslint: 9.28.0 + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0) + globals: 16.2.0 '@misskey-dev/sharp-read-bmp@1.2.0': dependencies: @@ -14341,13 +14287,13 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@storybook/builder-vite@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))': + '@storybook/builder-vite@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4))': dependencies: '@storybook/csf-plugin': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)) browser-assert: 1.2.1 storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5) ts-dedent: 2.2.0 - vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4) '@storybook/components@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))': dependencies: @@ -14410,11 +14356,11 @@ snapshots: react-dom: 19.1.0(react@19.1.0) storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5) - '@storybook/react-vite@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.42.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))': + '@storybook/react-vite@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.42.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4)) '@rollup/pluginutils': 5.1.4(rollup@4.42.0) - '@storybook/builder-vite': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)) + '@storybook/builder-vite': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4)) '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(typescript@5.8.3) find-up: 5.0.0 magic-string: 0.30.17 @@ -14424,7 +14370,7 @@ snapshots: resolve: 1.22.8 storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5) tsconfig-paths: 4.2.0 - vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4) optionalDependencies: '@storybook/test': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5)) transitivePeerDependencies: @@ -14473,15 +14419,15 @@ snapshots: dependencies: storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5) - '@storybook/vue3-vite@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3))': + '@storybook/vue3-vite@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3))': dependencies: - '@storybook/builder-vite': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)) + '@storybook/builder-vite': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4)) '@storybook/vue3': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5))(vue@3.5.16(typescript@5.8.3)) find-package-json: 1.2.0 magic-string: 0.30.17 storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@6.0.5) typescript: 5.8.3 - vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4) vue-component-meta: 2.0.16(typescript@5.8.3) vue-docgen-api: 4.75.1(vue@3.5.16(typescript@5.8.3)) transitivePeerDependencies: @@ -14501,10 +14447,10 @@ snapshots: vue: 3.5.16(typescript@5.8.3) vue-component-type-helpers: 2.2.10 - '@stylistic/eslint-plugin@2.13.0(eslint@9.27.0)(typescript@5.8.3)': + '@stylistic/eslint-plugin@2.13.0(eslint@9.28.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/utils': 8.34.0(eslint@9.27.0)(typescript@5.8.3) - eslint: 9.27.0 + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0)(typescript@5.8.3) + eslint: 9.28.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 estraverse: 5.3.0 @@ -14945,10 +14891,6 @@ snapshots: '@types/node': 22.15.31 form-data: 4.0.3 - '@types/node@22.15.21': - dependencies: - undici-types: 6.21.0 - '@types/node@22.15.31': dependencies: undici-types: 6.21.0 @@ -15118,32 +15060,15 @@ snapshots: '@types/node': 22.15.31 optional: true - '@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.32.1(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.32.1 - '@typescript-eslint/type-utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.32.1 - eslint: 9.27.0 - graphemer: 1.4.0 - ignore: 7.0.4 - natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.34.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.0(eslint@9.28.0)(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/type-utils': 8.34.0(eslint@9.27.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.34.0(eslint@9.28.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0)(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.34.0 - eslint: 9.27.0 + eslint: 9.28.0 graphemer: 1.4.0 ignore: 7.0.4 natural-compare: 1.4.0 @@ -15152,26 +15077,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.32.1 - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.32.1 - debug: 4.4.1(supports-color@10.0.0) - eslint: 9.27.0 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3)': + '@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 8.34.0 '@typescript-eslint/types': 8.34.0 '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.34.0 debug: 4.4.1(supports-color@10.0.0) - eslint: 9.27.0 + eslint: 9.28.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -15185,11 +15098,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.32.1': - dependencies: - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/visitor-keys': 8.32.1 - '@typescript-eslint/scope-manager@8.34.0': dependencies: '@typescript-eslint/types': 8.34.0 @@ -15199,46 +15107,19 @@ snapshots: dependencies: typescript: 5.8.3 - '@typescript-eslint/type-utils@8.32.1(eslint@9.27.0)(typescript@5.8.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) - debug: 4.4.1(supports-color@10.0.0) - eslint: 9.27.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/type-utils@8.34.0(eslint@9.27.0)(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.34.0(eslint@9.28.0)(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0)(typescript@5.8.3) debug: 4.4.1(supports-color@10.0.0) - eslint: 9.27.0 + eslint: 9.28.0 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.32.1': {} - '@typescript-eslint/types@8.34.0': {} - '@typescript-eslint/typescript-estree@8.32.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/visitor-keys': 8.32.1 - debug: 4.4.1(supports-color@10.0.0) - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.34.0(typescript@5.8.3)': dependencies: '@typescript-eslint/project-service': 8.34.0(typescript@5.8.3) @@ -15255,33 +15136,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.32.1(eslint@9.27.0)(typescript@5.8.3)': + '@typescript-eslint/utils@8.34.0(eslint@9.28.0)(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) - '@typescript-eslint/scope-manager': 8.32.1 - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) - eslint: 9.27.0 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.34.0(eslint@9.27.0)(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0) '@typescript-eslint/scope-manager': 8.34.0 '@typescript-eslint/types': 8.34.0 '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) - eslint: 9.27.0 + eslint: 9.28.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.32.1': - dependencies: - '@typescript-eslint/types': 8.32.1 - eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.34.0': dependencies: '@typescript-eslint/types': 8.34.0 @@ -15289,12 +15154,12 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4))(vue@3.5.16(typescript@5.8.3))': dependencies: - vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4) vue: 3.5.16(typescript@5.8.3) - '@vitest/coverage-v8@3.2.3(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))': + '@vitest/coverage-v8@3.2.3(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -15309,7 +15174,7 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) + vitest: 3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4) transitivePeerDependencies: - supports-color @@ -15328,14 +15193,14 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.3(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4))': + '@vitest/mocker@3.2.3(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4))': dependencies: '@vitest/spy': 3.2.3 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: msw: 2.10.2(@types/node@22.15.31)(typescript@5.8.3) - vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4) '@vitest/pretty-format@2.0.5': dependencies: @@ -16596,9 +16461,9 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-declaration-sorter@7.2.0(postcss@8.5.3): + css-declaration-sorter@7.2.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 css-select@5.1.0: dependencies: @@ -16624,49 +16489,49 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-default@7.0.7(postcss@8.5.3): + cssnano-preset-default@7.0.7(postcss@8.5.4): dependencies: browserslist: 4.24.5 - css-declaration-sorter: 7.2.0(postcss@8.5.3) - cssnano-utils: 5.0.1(postcss@8.5.3) - postcss: 8.5.3 - postcss-calc: 10.1.1(postcss@8.5.3) - postcss-colormin: 7.0.3(postcss@8.5.3) - postcss-convert-values: 7.0.5(postcss@8.5.3) - postcss-discard-comments: 7.0.4(postcss@8.5.3) - postcss-discard-duplicates: 7.0.2(postcss@8.5.3) - postcss-discard-empty: 7.0.1(postcss@8.5.3) - postcss-discard-overridden: 7.0.1(postcss@8.5.3) - postcss-merge-longhand: 7.0.5(postcss@8.5.3) - postcss-merge-rules: 7.0.5(postcss@8.5.3) - postcss-minify-font-values: 7.0.1(postcss@8.5.3) - postcss-minify-gradients: 7.0.1(postcss@8.5.3) - postcss-minify-params: 7.0.3(postcss@8.5.3) - postcss-minify-selectors: 7.0.5(postcss@8.5.3) - postcss-normalize-charset: 7.0.1(postcss@8.5.3) - postcss-normalize-display-values: 7.0.1(postcss@8.5.3) - postcss-normalize-positions: 7.0.1(postcss@8.5.3) - postcss-normalize-repeat-style: 7.0.1(postcss@8.5.3) - postcss-normalize-string: 7.0.1(postcss@8.5.3) - postcss-normalize-timing-functions: 7.0.1(postcss@8.5.3) - postcss-normalize-unicode: 7.0.3(postcss@8.5.3) - postcss-normalize-url: 7.0.1(postcss@8.5.3) - postcss-normalize-whitespace: 7.0.1(postcss@8.5.3) - postcss-ordered-values: 7.0.2(postcss@8.5.3) - postcss-reduce-initial: 7.0.3(postcss@8.5.3) - postcss-reduce-transforms: 7.0.1(postcss@8.5.3) - postcss-svgo: 7.0.2(postcss@8.5.3) - postcss-unique-selectors: 7.0.4(postcss@8.5.3) + css-declaration-sorter: 7.2.0(postcss@8.5.4) + cssnano-utils: 5.0.1(postcss@8.5.4) + postcss: 8.5.4 + postcss-calc: 10.1.1(postcss@8.5.4) + postcss-colormin: 7.0.3(postcss@8.5.4) + postcss-convert-values: 7.0.5(postcss@8.5.4) + postcss-discard-comments: 7.0.4(postcss@8.5.4) + postcss-discard-duplicates: 7.0.2(postcss@8.5.4) + postcss-discard-empty: 7.0.1(postcss@8.5.4) + postcss-discard-overridden: 7.0.1(postcss@8.5.4) + postcss-merge-longhand: 7.0.5(postcss@8.5.4) + postcss-merge-rules: 7.0.5(postcss@8.5.4) + postcss-minify-font-values: 7.0.1(postcss@8.5.4) + postcss-minify-gradients: 7.0.1(postcss@8.5.4) + postcss-minify-params: 7.0.3(postcss@8.5.4) + postcss-minify-selectors: 7.0.5(postcss@8.5.4) + postcss-normalize-charset: 7.0.1(postcss@8.5.4) + postcss-normalize-display-values: 7.0.1(postcss@8.5.4) + postcss-normalize-positions: 7.0.1(postcss@8.5.4) + postcss-normalize-repeat-style: 7.0.1(postcss@8.5.4) + postcss-normalize-string: 7.0.1(postcss@8.5.4) + postcss-normalize-timing-functions: 7.0.1(postcss@8.5.4) + postcss-normalize-unicode: 7.0.3(postcss@8.5.4) + postcss-normalize-url: 7.0.1(postcss@8.5.4) + postcss-normalize-whitespace: 7.0.1(postcss@8.5.4) + postcss-ordered-values: 7.0.2(postcss@8.5.4) + postcss-reduce-initial: 7.0.3(postcss@8.5.4) + postcss-reduce-transforms: 7.0.1(postcss@8.5.4) + postcss-svgo: 7.0.2(postcss@8.5.4) + postcss-unique-selectors: 7.0.4(postcss@8.5.4) - cssnano-utils@5.0.1(postcss@8.5.3): + cssnano-utils@5.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - cssnano@7.0.7(postcss@8.5.3): + cssnano@7.0.7(postcss@8.5.4): dependencies: - cssnano-preset-default: 7.0.7(postcss@8.5.3) + cssnano-preset-default: 7.0.7(postcss@8.5.4) lilconfig: 3.1.3 - postcss: 8.5.3 + postcss: 8.5.4 csso@5.0.5: dependencies: @@ -16679,52 +16544,6 @@ snapshots: csstype@3.1.3: {} - cypress@14.4.0: - dependencies: - '@cypress/request': 3.0.8 - '@cypress/xvfb': 1.2.4(supports-color@8.1.1) - '@types/sinonjs__fake-timers': 8.1.1 - '@types/sizzle': 2.3.3 - arch: 2.2.0 - blob-util: 2.0.2 - bluebird: 3.7.2 - buffer: 5.7.1 - cachedir: 2.3.0 - chalk: 4.1.2 - check-more-types: 2.24.0 - ci-info: 4.1.0 - cli-cursor: 3.1.0 - cli-table3: 0.6.1 - commander: 6.2.1 - common-tags: 1.8.2 - dayjs: 1.11.13 - debug: 4.4.1(supports-color@8.1.1) - enquirer: 2.3.6 - eventemitter2: 6.4.7 - execa: 4.1.0 - executable: 4.1.1 - extract-zip: 2.0.1(supports-color@8.1.1) - figures: 3.2.0 - fs-extra: 9.1.0 - getos: 3.2.1 - is-installed-globally: 0.4.0 - lazy-ass: 1.6.0 - listr2: 3.14.0(enquirer@2.3.6) - lodash: 4.17.21 - log-symbols: 4.1.0 - minimist: 1.2.8 - ospath: 1.2.2 - pretty-bytes: 5.6.0 - process: 0.11.10 - proxy-from-env: 1.0.0 - request-progress: 3.0.0 - semver: 7.7.2 - supports-color: 8.1.1 - tmp: 0.2.3 - tree-kill: 1.2.2 - untildify: 4.0.0 - yauzl: 2.10.0 - cypress@14.4.1: dependencies: '@cypress/request': 3.0.8 @@ -17291,27 +17110,17 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.27.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.28.0): dependencies: debug: 3.2.7(supports-color@8.1.1) optionalDependencies: - '@typescript-eslint/parser': 8.32.1(eslint@9.27.0)(typescript@5.8.3) - eslint: 9.27.0 + '@typescript-eslint/parser': 8.34.0(eslint@9.28.0)(typescript@5.8.3) + eslint: 9.28.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.27.0): - dependencies: - debug: 3.2.7(supports-color@8.1.1) - optionalDependencies: - '@typescript-eslint/parser': 8.34.0(eslint@9.27.0)(typescript@5.8.3) - eslint: 9.27.0 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -17320,9 +17129,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7(supports-color@8.1.1) doctrine: 2.1.0 - eslint: 9.27.0 + eslint: 9.28.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.27.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.28.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -17334,50 +17143,21 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.32.1(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.0(eslint@9.28.0)(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0): + eslint-plugin-vue@10.2.0(eslint@9.28.0)(vue-eslint-parser@10.1.3(eslint@9.28.0)): dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7(supports-color@8.1.1) - doctrine: 2.1.0 - eslint: 9.27.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.34.0(eslint@9.27.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.27.0) - hasown: 2.0.2 - is-core-module: 2.15.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.0 - semver: 6.3.1 - string.prototype.trimend: 1.0.8 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 8.34.0(eslint@9.27.0)(typescript@5.8.3) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-vue@10.2.0(eslint@9.27.0)(vue-eslint-parser@10.1.3(eslint@9.27.0)): - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) - eslint: 9.27.0 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0) + eslint: 9.28.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 semver: 7.7.2 - vue-eslint-parser: 10.1.3(eslint@9.27.0) + vue-eslint-parser: 10.1.3(eslint@9.28.0) xml-name-validator: 4.0.0 eslint-rule-docs@1.1.235: {} @@ -17391,15 +17171,15 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.27.0: + eslint@9.28.0: dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.20.0 '@eslint/config-helpers': 0.2.1 '@eslint/core': 0.14.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.27.0 + '@eslint/js': 9.28.0 '@eslint/plugin-kit': 0.3.1 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 @@ -17527,21 +17307,6 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - execa@9.5.3: - dependencies: - '@sindresorhus/merge-streams': 4.0.0 - cross-spawn: 7.0.6 - figures: 6.1.0 - get-stream: 9.0.1 - human-signals: 8.0.0 - is-plain-obj: 4.1.0 - is-stream: 4.0.1 - npm-run-path: 6.0.0 - pretty-ms: 9.2.0 - signal-exit: 4.1.0 - strip-final-newline: 4.0.0 - yoctocolors: 2.1.1 - execa@9.6.0: dependencies: '@sindresorhus/merge-streams': 4.0.0 @@ -18053,7 +17818,7 @@ snapshots: globals@14.0.0: {} - globals@16.1.0: {} + globals@16.2.0: {} globalthis@1.0.3: dependencies: @@ -18284,8 +18049,6 @@ snapshots: human-signals@5.0.0: {} - human-signals@8.0.0: {} - human-signals@8.0.1: {} iconv-lite@0.4.24: @@ -19833,6 +19596,8 @@ snapshots: nan@2.22.2: {} + nanoid@3.3.11: {} + nanoid@3.3.8: {} nanoid@5.1.5: {} @@ -20361,7 +20126,7 @@ snapshots: pngjs@5.0.0: {} - pnpm@10.11.0: {} + pnpm@10.12.1: {} polished@4.2.2: dependencies: @@ -20369,142 +20134,142 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-calc@10.1.1(postcss@8.5.3): + postcss-calc@10.1.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - postcss-colormin@7.0.3(postcss@8.5.3): + postcss-colormin@7.0.3(postcss@8.5.4): dependencies: browserslist: 4.24.5 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-convert-values@7.0.5(postcss@8.5.3): + postcss-convert-values@7.0.5(postcss@8.5.4): dependencies: browserslist: 4.24.5 - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-discard-comments@7.0.4(postcss@8.5.3): + postcss-discard-comments@7.0.4(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 - postcss-discard-duplicates@7.0.2(postcss@8.5.3): + postcss-discard-duplicates@7.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss-discard-empty@7.0.1(postcss@8.5.3): + postcss-discard-empty@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss-discard-overridden@7.0.1(postcss@8.5.3): + postcss-discard-overridden@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss-merge-longhand@7.0.5(postcss@8.5.3): + postcss-merge-longhand@7.0.5(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - stylehacks: 7.0.5(postcss@8.5.3) + stylehacks: 7.0.5(postcss@8.5.4) - postcss-merge-rules@7.0.5(postcss@8.5.3): + postcss-merge-rules@7.0.5(postcss@8.5.4): dependencies: browserslist: 4.24.5 caniuse-api: 3.0.0 - cssnano-utils: 5.0.1(postcss@8.5.3) - postcss: 8.5.3 + cssnano-utils: 5.0.1(postcss@8.5.4) + postcss: 8.5.4 postcss-selector-parser: 7.1.0 - postcss-minify-font-values@7.0.1(postcss@8.5.3): + postcss-minify-font-values@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-minify-gradients@7.0.1(postcss@8.5.3): + postcss-minify-gradients@7.0.1(postcss@8.5.4): dependencies: colord: 2.9.3 - cssnano-utils: 5.0.1(postcss@8.5.3) - postcss: 8.5.3 + cssnano-utils: 5.0.1(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-minify-params@7.0.3(postcss@8.5.3): + postcss-minify-params@7.0.3(postcss@8.5.4): dependencies: browserslist: 4.24.5 - cssnano-utils: 5.0.1(postcss@8.5.3) - postcss: 8.5.3 + cssnano-utils: 5.0.1(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-minify-selectors@7.0.5(postcss@8.5.3): + postcss-minify-selectors@7.0.5(postcss@8.5.4): dependencies: cssesc: 3.0.0 - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 - postcss-normalize-charset@7.0.1(postcss@8.5.3): + postcss-normalize-charset@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss-normalize-display-values@7.0.1(postcss@8.5.3): + postcss-normalize-display-values@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-normalize-positions@7.0.1(postcss@8.5.3): + postcss-normalize-positions@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@7.0.1(postcss@8.5.3): + postcss-normalize-repeat-style@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-normalize-string@7.0.1(postcss@8.5.3): + postcss-normalize-string@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@7.0.1(postcss@8.5.3): + postcss-normalize-timing-functions@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@7.0.3(postcss@8.5.3): + postcss-normalize-unicode@7.0.3(postcss@8.5.4): dependencies: browserslist: 4.24.5 - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-normalize-url@7.0.1(postcss@8.5.3): + postcss-normalize-url@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@7.0.1(postcss@8.5.3): + postcss-normalize-whitespace@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-ordered-values@7.0.2(postcss@8.5.3): + postcss-ordered-values@7.0.2(postcss@8.5.4): dependencies: - cssnano-utils: 5.0.1(postcss@8.5.3) - postcss: 8.5.3 + cssnano-utils: 5.0.1(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-reduce-initial@7.0.3(postcss@8.5.3): + postcss-reduce-initial@7.0.3(postcss@8.5.4): dependencies: browserslist: 4.24.5 caniuse-api: 3.0.0 - postcss: 8.5.3 + postcss: 8.5.4 - postcss-reduce-transforms@7.0.1(postcss@8.5.3): + postcss-reduce-transforms@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 postcss-selector-parser@6.1.2: @@ -20517,15 +20282,15 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-svgo@7.0.2(postcss@8.5.3): + postcss-svgo@7.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 svgo: 3.3.2 - postcss-unique-selectors@7.0.4(postcss@8.5.3): + postcss-unique-selectors@7.0.4(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 postcss-value-parser@4.2.0: {} @@ -20536,6 +20301,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.4: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postgres-array@2.0.0: {} postgres-bytea@1.0.0: {} @@ -21707,10 +21478,10 @@ snapshots: '@tokenizer/token': 0.3.0 peek-readable: 5.3.1 - stylehacks@7.0.5(postcss@8.5.3): + stylehacks@7.0.5(postcss@8.5.4): dependencies: browserslist: 4.24.5 - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 superagent@10.2.1: @@ -21815,7 +21586,7 @@ snapshots: dependencies: execa: 6.1.0 - terser@5.39.2: + terser@5.42.0: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.15.0 @@ -22266,13 +22037,13 @@ snapshots: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite-node@3.2.3(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4): + vite-node@3.2.3(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4): dependencies: cac: 6.7.14 debug: 4.4.1(supports-color@10.0.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4) transitivePeerDependencies: - '@types/node' - jiti @@ -22289,7 +22060,7 @@ snapshots: vite-plugin-turbosnap@1.0.3: {} - vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4): + vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4): dependencies: esbuild: 0.25.4 fdir: 6.4.4(picomatch@4.0.2) @@ -22301,18 +22072,18 @@ snapshots: '@types/node': 22.15.31 fsevents: 2.3.3 sass: 1.89.2 - terser: 5.39.2 + terser: 5.42.0 tsx: 4.19.4 - vitest-fetch-mock@0.4.5(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)): + vitest-fetch-mock@0.4.5(vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4)): dependencies: - vitest: 3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) + vitest: 3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4) - vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4): + vitest@3.2.3(@types/debug@4.1.12)(@types/node@22.15.31)(happy-dom@17.6.3)(jsdom@26.1.0(bufferutil@4.0.9)(canvas@3.1.0)(utf-8-validate@6.0.5))(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.3 - '@vitest/mocker': 3.2.3(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4)) + '@vitest/mocker': 3.2.3(msw@2.10.2(@types/node@22.15.31)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4)) '@vitest/pretty-format': 3.2.3 '@vitest/runner': 3.2.3 '@vitest/snapshot': 3.2.3 @@ -22330,8 +22101,8 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.0 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) - vite-node: 3.2.3(@types/node@22.15.31)(sass@1.89.2)(terser@5.39.2)(tsx@4.19.4) + vite: 6.3.5(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4) + vite-node: 3.2.3(@types/node@22.15.31)(sass@1.89.2)(terser@5.42.0)(tsx@4.19.4) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 @@ -22405,10 +22176,10 @@ snapshots: vue: 3.5.16(typescript@5.8.3) vue-inbrowser-compiler-independent-utils: 4.71.1(vue@3.5.16(typescript@5.8.3)) - vue-eslint-parser@10.1.3(eslint@9.27.0): + vue-eslint-parser@10.1.3(eslint@9.28.0): dependencies: debug: 4.4.1(supports-color@10.0.0) - eslint: 9.27.0 + eslint: 9.28.0 eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 From d37815621234b2433043f6541aad6ca2010f7026 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Thu, 12 Jun 2025 16:08:07 +0900 Subject: [PATCH 58/76] Update CHANGELOG.md --- CHANGELOG.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86d1a71293..174a36e349 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,9 +3,6 @@ ### Note - Misskey Webプラグインのnote_view_interruptorは不具合の影響により現在一時的に無効化されています。 -### General -- - ### Client - Feat: 画像にウォーターマークを付与できるようになりました - Enhance: ノートのリアクション一覧で、押せるリアクションを優先して表示できるようにするオプションを追加 @@ -15,7 +12,6 @@ - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 - Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 - Fix: タッチ操作時にチャートのツールチップが消えなくなる場合がある問題を修正 -- Fix: Plugin:register_note_view_interruptor()によるノートの書き換えが機能しない問題を修正 ### Server - Feat: 全てのチャットメッセージを既読にするAPIを追加(chat/read-all) From 966e0812f5e4f0b7668ec138c670aacd3dca8735 Mon Sep 17 00:00:00 2001 From: mochi33i Date: Thu, 12 Jun 2025 16:54:59 +0900 Subject: [PATCH 59/76] =?UTF-8?q?fix(misskey-js)=20:=20misskey-js=E3=81=AE?= =?UTF-8?q?=20drive/file/create=20=E3=81=A7=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=82=A2=E3=83=83=E3=83=97=E3=83=AD=E3=83=BC=E3=83=89?= =?UTF-8?q?=E3=81=8C=E3=81=A7=E3=81=8D=E3=81=AA=E3=81=84=E5=95=8F=E9=A1=8C?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3=20(#16028)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(misskey-js): drive/file/createが動かない問題を修正 * CHANGELOG.mdに修正内容を追加 --- CHANGELOG.md | 2 ++ packages/misskey-js/src/api.ts | 2 +- packages/misskey-js/test/api.ts | 8 ++------ 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 174a36e349..4c4388617f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,8 @@ - Fix: アカウント削除が正常に行われないことがあった問題を修正 - Fix: outboxのページネーションが正しく行われない問題を修正 +### Misskey.js +- Fix: misskey-jsの drive/file/create でファイルアップロードができない問題を修正 ## 2025.6.0 diff --git a/packages/misskey-js/src/api.ts b/packages/misskey-js/src/api.ts index 437518f60b..e64f1a048c 100644 --- a/packages/misskey-js/src/api.ts +++ b/packages/misskey-js/src/api.ts @@ -106,7 +106,7 @@ export class APIClient { this.fetch(`${this.origin}/api/${endpoint}`, { method: 'POST', body: payload, - headers: { + headers: mediaType === 'multipart/form-data' ? {} : { 'Content-Type': mediaType, }, credentials: 'omit', diff --git a/packages/misskey-js/test/api.ts b/packages/misskey-js/test/api.ts index 1a7574de25..b8ad2225c8 100644 --- a/packages/misskey-js/test/api.ts +++ b/packages/misskey-js/test/api.ts @@ -94,11 +94,7 @@ describe('API', () => { fetchMock.resetMocks(); fetchMock.mockResponse(async (req) => { if (req.method == 'POST' && req.url == 'https://misskey.test/api/drive/files/create') { - if (req.headers.get('Content-Type')?.includes('multipart/form-data')) { - return JSON.stringify({ id: 'foo' }); - } else { - return { status: 400 }; - } + return JSON.stringify({ id: 'foo' }); } else { return { status: 404 }; } @@ -123,7 +119,7 @@ describe('API', () => { expect(getFetchCall(fetchMock.mock.calls[0])).toEqual({ url: 'https://misskey.test/api/drive/files/create', method: 'POST', - contentType: 'multipart/form-data', + contentType: undefined, body: { i: 'TOKEN', file: testFile, From 151121a567783392089950eb717645d3482bb975 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Thu, 12 Jun 2025 17:34:12 +0900 Subject: [PATCH 60/76] New Crowdin updates (#16183) * New translations ja-jp.yml (Vietnamese) * New translations ja-jp.yml (Thai) * New translations ja-jp.yml (Italian) --- locales/it-IT.yml | 7 +++++-- locales/th-TH.yml | 6 ++++++ locales/vi-VN.yml | 6 ++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/locales/it-IT.yml b/locales/it-IT.yml index a953622954..ba443bdb8a 100644 --- a/locales/it-IT.yml +++ b/locales/it-IT.yml @@ -582,7 +582,7 @@ sounds: "Impostazioni suoni" sound: "Suono" notificationSoundSettings: "Preferenze di notifica" listen: "Ascolta" -none: "Nessuno" +none: "Nessuna" showInPage: "Visualizza in pagina" popout: "Finestra pop-out" volume: "Volume" @@ -1342,7 +1342,7 @@ information: "Informazioni" chat: "Chat" migrateOldSettings: "Migrare le vecchie impostazioni" migrateOldSettings_description: "Di solito, viene fatto automaticamente. Se per qualche motivo non fossero migrate con successo, è possibile avviare il processo di migrazione manualmente, sovrascrivendo le configurazioni attuali." -compress: "Comprimi" +compress: "Compressione" right: "Destra" bottom: "Sotto" top: "Sopra" @@ -1351,6 +1351,7 @@ settingsMigrating: "Migrazione delle impostazioni. Attendere prego ... (Puoi anc readonly: "Sola lettura" goToDeck: "Torna al Deck" federationJobs: "Coda di federazione" +driveAboutTip: "Il Drive mostra l'elenco di file caricati in passato. Puoi organizzarli in cartelle, riusarli allegandoli ad altre note, o caricarli in anticipo e poi pubblicarli in un secondo momento. Tieni presente che se elimini un file, non sarà più visibile in nessuno degli oggetti a cui è allegato (Note, pagine, avatar, banner, ecc.)" scrollToClose: "Scorri per chiudere" advice: "Consiglio" realtimeMode: "Modalità in tempo reale" @@ -2464,6 +2465,8 @@ _visibility: disableFederation: "Senza federazione" disableFederationDescription: "Non spedire attività alle altre istanze remote" _postForm: + quitInspiteOfThereAreUnuploadedFilesConfirm: "Alcuni file non sono stati caricati. Vuoi annullare l'operazione?" + uploaderTip: "Il file non è ancora stato caricato. Nel menu file (tre puntini), puoi ritagliare l'immagine, mettere la filigrana, decidere la presenza o l'assenza di compressione... Il file verrà caricato automaticamente quando pubblichi la Nota." replyPlaceholder: "Rispondi a questa nota..." quotePlaceholder: "Cita questa nota..." channelPlaceholder: "Pubblica sul canale..." diff --git a/locales/th-TH.yml b/locales/th-TH.yml index e475101d16..cbcc337745 100644 --- a/locales/th-TH.yml +++ b/locales/th-TH.yml @@ -220,6 +220,7 @@ silenceThisInstance: "ปิดปากเซิร์ฟเวอร์นี mediaSilenceThisInstance: "ปิดปากสื่อของเซิร์ฟเวอร์นี้" operations: "ดำเนินการ" software: "ซอฟต์แวร์" +softwareName: "ชื่อซอฟต์แวร์" version: "เวอร์ชั่น" metadata: "Metadata" withNFiles: "{n} ไฟล์" @@ -1293,6 +1294,10 @@ federationDisabled: "เซิร์ฟเวอร์นี้ปิดกา reactAreYouSure: "คุณต้องการที่จะตอบสนองต่อ \" {emoji}\" หรือไม่?" markAsSensitiveConfirm: "คุณต้องการทำเครื่องหมายสื่อนี้ว่าละเอียดอ่อนหรือไม่?" unmarkAsSensitiveConfirm: "คุณต้องการลบการกำหนดความไวของสื่อนี้หรือไม่?" +preferences: "การตั้งค่าสภาพแวดล้อม" +preferencesProfile: "โปรไฟล์การกำหนดค่า" +preferenceSyncConflictTitle: "การตั้งค่ามีอยู่บนเซิร์ฟเวอร์" +preferenceSyncConflictText: "รายการการตั้งค่าที่เปิดใช้งานการซิงโครไนซ์จะจัดเก็บค่าไว้บนเซิร์ฟเวอร์ และพบค่าที่จัดเก็บบนเซิร์ฟเวอร์สำหรับรายการการตั้งค่านี้ คุณต้องการทำอย่างไร?" postForm: "แบบฟอร์มการโพสต์" information: "เกี่ยวกับ" right: "ขวา" @@ -1305,6 +1310,7 @@ _chat: send: "ส่ง" _settings: webhook: "Webhook" + preferencesBanner: "คุณสามารถกำหนดค่าพฤติกรรมโดยรวมของไคลเอนต์ได้ตามความต้องการของคุณ" _accountSettings: requireSigninToViewContents: "ต้องเข้าสู่ระบบเพื่อดูเนื้อหา" requireSigninToViewContentsDescription1: "ต้องเข้าสู่ระบบเพื่อดูบันทึกและเนื้อหาอื่น ๆ ทั้งหมดที่คุณสร้าง คาดว่าจะมีประสิทธิผลในการป้องกันไม่ให้ข้อมูลถูกเก็บรวบรวมโดยโปรแกรมรวบรวมข้อมูล" diff --git a/locales/vi-VN.yml b/locales/vi-VN.yml index 26ffe0e30f..47ea715058 100644 --- a/locales/vi-VN.yml +++ b/locales/vi-VN.yml @@ -220,6 +220,7 @@ silenceThisInstance: "Máy chủ im lặng" mediaSilenceThisInstance: "Tắt nội dung đa phương tiện từ máy chủ này" operations: "Vận hành" software: "Phần mềm" +softwareName: "Tên phần mềm" version: "Phiên bản" metadata: "Metadata" withNFiles: "{n} tập tin" @@ -1211,6 +1212,9 @@ federationDisabled: "Liên kết bị vô hiệu hóa trên máy chủ này. B reactAreYouSure: "Bạn có muốn phản hồi với \" {emoji} \" không?" preferences: "Thiết lập môi trường" accessibility: "Khả năng tiếp cận" +preferencesProfile: "Hồ sơ sở thích" +preferenceSyncConflictTitle: "Cài đặt tồn tại trên máy chủ" +preferenceSyncConflictText: "Các thiết lập đồng bộ hóa được bật sẽ lưu các giá trị của chúng vào máy chủ. Tuy nhiên, có những giá trị hiện có trên máy chủ. Bạn muốn ghi đè lên bộ giá trị nào?" paste: "dán" postForm: "Mẫu đăng" information: "Giới thiệu" @@ -1223,6 +1227,8 @@ _chat: members: "Thành viên" home: "Trang chính" send: "Gửi" +_settings: + preferencesBanner: "Bạn có thể cấu hình hành vi chung của máy khách theo sở thích của mình." _accountSettings: requireSigninToViewContents: "Yêu cầu đăng nhập để xem nội dung" requireSigninToViewContentsDescription1: "Yêu cầu đăng nhập để xem tất cả ghi chú và nội dung khác mà bạn tạo. Điều này được kỳ vọng sẽ có hiệu quả trong việc ngăn chặn thông tin bị thu thập bởi các trình thu thập thông tin." From 89db7b3fa803c9e95120ca953785d836e70dbfe8 Mon Sep 17 00:00:00 2001 From: zyoshoka <107108195+zyoshoka@users.noreply.github.com> Date: Thu, 12 Jun 2025 19:05:24 +0900 Subject: [PATCH 61/76] fix(frontend): display reactions correctly in welcome timeline (#16186) --- CHANGELOG.md | 1 + packages/frontend/src/pages/welcome.timeline.note.vue | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c4388617f..0eb197ca64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 - Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 - Fix: タッチ操作時にチャートのツールチップが消えなくなる場合がある問題を修正 +- Fix: ウェルカムタイムラインでリアクションが表示されない問題を修正 ### Server - Feat: 全てのチャットメッセージを既読にするAPIを追加(chat/read-all) diff --git a/packages/frontend/src/pages/welcome.timeline.note.vue b/packages/frontend/src/pages/welcome.timeline.note.vue index b4a24637c9..4dff76901f 100644 --- a/packages/frontend/src/pages/welcome.timeline.note.vue +++ b/packages/frontend/src/pages/welcome.timeline.note.vue @@ -24,8 +24,7 @@ SPDX-License-Identifier: AGPL-3.0-only
- - +
From 1ad32990cb61f0e7e1f38cedd5077a1e61641b0b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 12 Jun 2025 10:07:07 +0000 Subject: [PATCH 62/76] Bump version to 2025.6.1-beta.2 --- package.json | 2 +- packages/misskey-js/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 116e036891..58f412f8ea 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2025.6.1-beta.1", + "version": "2025.6.1-beta.2", "codename": "nasubi", "repository": { "type": "git", diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json index c94aa5f62b..e8f60cf5b1 100644 --- a/packages/misskey-js/package.json +++ b/packages/misskey-js/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "misskey-js", - "version": "2025.6.1-beta.1", + "version": "2025.6.1-beta.2", "description": "Misskey SDK for JavaScript", "license": "MIT", "main": "./built/index.js", From aae7961540651c2aa102ade911f07abcf3cacc14 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Fri, 13 Jun 2025 10:31:14 +0900 Subject: [PATCH 63/76] New Crowdin updates (#16187) * New translations ja-jp.yml (Chinese Simplified) * New translations ja-jp.yml (Chinese Simplified) * New translations ja-jp.yml (Chinese Simplified) --- locales/zh-CN.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml index 73800254ac..fe16a01f3b 100644 --- a/locales/zh-CN.yml +++ b/locales/zh-CN.yml @@ -1631,7 +1631,7 @@ _serverSettings: inquiryUrl: "联络地址" inquiryUrlDescription: "用来指定诸如向服务运营商咨询的论坛地址,或记载了运营商联系方式之类的网页地址。" openRegistration: "开放注册" - openRegistrationWarning: "开放注册有风险。建议仅当能够持续监控服务器并在出现问题时能够立即响应时才打开它。" + openRegistrationWarning: "开放注册有风险。建议仅当能够持续监控服务器,并在出现问题时能够立即响应时才打开它。" thisSettingWillAutomaticallyOffWhenModeratorsInactive: "若在一段时间内没有检测到管理活动,为防止垃圾信息,此设定将自动关闭。" deliverSuspendedSoftware: "停止投递的软件" deliverSuspendedSoftwareDescription: "可因安全漏洞之类的原因,停止向指定的服务器及服务器版本送信。版本信息由服务器提供,不保证可靠性。可使用 semver 范围来指定版本,但指定 >= 2024.3.1 将不包括如 2024.3.1-custom.0 等自定义版本,因此建议像 >= 2024.3.1-0 这样指定 prerelease 版本。" @@ -2143,7 +2143,7 @@ _wordMute: muteWordsDescription: "AND 条件用空格分隔,OR 条件用换行符分隔。" muteWordsDescription2: "正则表达式用斜线包裹" _instanceMute: - instanceMuteDescription: "隐藏服务器中的所有帖子和转帖,包括这些服务器上的用户回复。" + instanceMuteDescription: "隐藏服务器中所有的帖子和转帖,包括这些服务器上用户的回复。" instanceMuteDescription2: "一行一个" title: "下面实例中的帖子将被隐藏。" heading: "已隐藏的服务器" @@ -2493,7 +2493,7 @@ _profile: avatarDecorationMax: "最多可添加 {max} 个挂件" followedMessage: "被关注时显示的消息" followedMessageDescription: "可以设置被关注时向对方显示的短消息。" - followedMessageDescriptionForLockedAccount: "需要批准才能关注的情况下,消息是在请求被批准后显示。" + followedMessageDescriptionForLockedAccount: "需要批准才能关注的情况下,消息会在请求被批准后显示。" _exportOrImport: allNotes: "所有帖子" favoritedNotes: "收藏的帖子" From bc07b79a234a021ca2d1e3ea6186501c74a89493 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sat, 14 Jun 2025 11:36:42 +0900 Subject: [PATCH 64/76] =?UTF-8?q?fix(frontend):=20=E3=83=87=E3=83=83?= =?UTF-8?q?=E3=82=AD=E3=81=AE=E3=82=BF=E3=82=A4=E3=83=A0=E3=83=A9=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=82=AB=E3=83=A9=E3=83=A0=E3=81=A7=E6=96=B0=E7=9D=80?= =?UTF-8?q?=E3=83=8E=E3=83=BC=E3=83=88=E6=99=82=E3=81=AE=E3=82=B5=E3=82=A6?= =?UTF-8?q?=E3=83=B3=E3=83=89=E3=81=8C=E5=86=8D=E7=94=9F=E3=81=95=E3=82=8C?= =?UTF-8?q?=E3=81=AA=E3=81=84=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix #16164 --- CHANGELOG.md | 1 + .../src/components/MkStreamingNotesTimeline.vue | 10 +++++++++- packages/frontend/src/ui/deck/tl-column.vue | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0eb197ca64..6f7c7e6ab9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ - Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 - Fix: タッチ操作時にチャートのツールチップが消えなくなる場合がある問題を修正 - Fix: ウェルカムタイムラインでリアクションが表示されない問題を修正 +- Fix: デッキのタイムラインカラムで新着ノート時のサウンドが再生されない問題を修正 ### Server - Feat: 全てのチャットメッセージを既読にするAPIを追加(chat/read-all) diff --git a/packages/frontend/src/components/MkStreamingNotesTimeline.vue b/packages/frontend/src/components/MkStreamingNotesTimeline.vue index 576a0cf8cc..db9621e378 100644 --- a/packages/frontend/src/components/MkStreamingNotesTimeline.vue +++ b/packages/frontend/src/components/MkStreamingNotesTimeline.vue @@ -62,6 +62,7 @@ import { useInterval } from '@@/js/use-interval.js'; import { getScrollContainer, scrollToTop } from '@@/js/scroll.js'; import type { BasicTimelineType } from '@/timelines.js'; import type { PagingCtx } from '@/composables/use-pagination.js'; +import type { SoundStore } from '@/preferences/def.js'; import { usePagination } from '@/composables/use-pagination.js'; import MkPullToRefresh from '@/components/MkPullToRefresh.vue'; import { useStream } from '@/stream.js'; @@ -83,6 +84,7 @@ const props = withDefaults(defineProps<{ channel?: string; role?: string; sound?: boolean; + customSound?: SoundStore | null; withRenotes?: boolean; withReplies?: boolean; withSensitive?: boolean; @@ -92,6 +94,8 @@ const props = withDefaults(defineProps<{ withReplies: false, withSensitive: true, onlyFiles: false, + sound: false, + customSound: null, }); provide('inTimeline', true); @@ -190,7 +194,11 @@ function prepend(note: Misskey.entities.Note) { } if (props.sound) { - sound.playMisskeySfx($i && (note.userId === $i.id) ? 'noteMy' : 'note'); + if (props.customSound) { + sound.playMisskeySfxFile(props.customSound); + } else { + sound.playMisskeySfx($i && (note.userId === $i.id) ? 'noteMy' : 'note'); + } } } diff --git a/packages/frontend/src/ui/deck/tl-column.vue b/packages/frontend/src/ui/deck/tl-column.vue index 97208f1c6a..37814f0914 100644 --- a/packages/frontend/src/ui/deck/tl-column.vue +++ b/packages/frontend/src/ui/deck/tl-column.vue @@ -26,6 +26,8 @@ SPDX-License-Identifier: AGPL-3.0-only :withReplies="withReplies" :withSensitive="withSensitive" :onlyFiles="onlyFiles" + :sound="true" + :customSound="soundSetting" /> From 8ea6aa2ef3f34184da66663978a2f8e3662ef640 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 14 Jun 2025 03:16:12 +0000 Subject: [PATCH 65/76] Bump version to 2025.6.1-rc.0 --- package.json | 2 +- packages/misskey-js/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 58f412f8ea..d5294fa24e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2025.6.1-beta.2", + "version": "2025.6.1-rc.0", "codename": "nasubi", "repository": { "type": "git", diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json index e8f60cf5b1..cb4010616c 100644 --- a/packages/misskey-js/package.json +++ b/packages/misskey-js/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "misskey-js", - "version": "2025.6.1-beta.2", + "version": "2025.6.1-rc.0", "description": "Misskey SDK for JavaScript", "license": "MIT", "main": "./built/index.js", From 32d721abf1929aa6b7f442c7ac6b695850717a8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?= <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Sat, 14 Jun 2025 16:08:14 +0900 Subject: [PATCH 66/76] =?UTF-8?q?refactor(frontend):=20checkWordMute?= =?UTF-8?q?=E3=81=AE=E8=BF=94=E3=82=8A=E5=80=A4=E3=81=8C=E8=AA=A4=E3=81=A3?= =?UTF-8?q?=E3=81=A6=E3=81=84=E3=82=8B=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=20(#16188)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor(frontend): checkWordMuteの返り値が誤っている問題を修正 * fix lint --- packages/frontend/src/components/MkNote.vue | 24 ++++++++++++------- .../components/MkStreamingNotesTimeline.vue | 2 +- .../frontend/src/utility/get-note-menu.ts | 2 +- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/packages/frontend/src/components/MkNote.vue b/packages/frontend/src/components/MkNote.vue index 3ca7455f0d..794a091f30 100644 --- a/packages/frontend/src/components/MkNote.vue +++ b/packages/frontend/src/components/MkNote.vue @@ -321,20 +321,27 @@ const pleaseLoginContext = computed(() => ({ url: `https://${host}/notes/${appearNote.id}`, })); -/* Overload FunctionにLintが対応していないのでコメントアウト +/* eslint-disable no-redeclare */ +/** checkOnlyでは純粋なワードミュート結果をbooleanで返却する */ function checkMute(noteToCheck: Misskey.entities.Note, mutedWords: Array | undefined | null, checkOnly: true): boolean; -function checkMute(noteToCheck: Misskey.entities.Note, mutedWords: Array | undefined | null, checkOnly: false): Array | false | 'sensitiveMute'; -*/ -function checkMute(noteToCheck: Misskey.entities.Note, mutedWords: Array | undefined | null, checkOnly = false): Array | false | 'sensitiveMute' { +function checkMute(noteToCheck: Misskey.entities.Note, mutedWords: Array | undefined | null, checkOnly?: false): Array | false | 'sensitiveMute'; + +function checkMute(noteToCheck: Misskey.entities.Note, mutedWords: Array | undefined | null, checkOnly = false): Array | boolean | 'sensitiveMute' { if (mutedWords != null) { const result = checkWordMute(noteToCheck, $i, mutedWords); - if (Array.isArray(result)) return result; + if (Array.isArray(result)) { + return checkOnly ? (result.length > 0) : result; + } const replyResult = noteToCheck.reply && checkWordMute(noteToCheck.reply, $i, mutedWords); - if (Array.isArray(replyResult)) return replyResult; + if (Array.isArray(replyResult)) { + return checkOnly ? (replyResult.length > 0) : replyResult; + } const renoteResult = noteToCheck.renote && checkWordMute(noteToCheck.renote, $i, mutedWords); - if (Array.isArray(renoteResult)) return renoteResult; + if (Array.isArray(renoteResult)) { + return checkOnly ? (renoteResult.length > 0) : renoteResult; + } } if (checkOnly) return false; @@ -345,6 +352,7 @@ function checkMute(noteToCheck: Misskey.entities.Note, mutedWords: Array { @@ -417,7 +425,7 @@ if (!props.mock) { const users = renotes.map(x => x.user); - if (users.length < 1) return; + if (users.length < 1 || renoteButton.value == null) return; const { dispose } = os.popup(MkUsersTooltip, { showing, diff --git a/packages/frontend/src/components/MkStreamingNotesTimeline.vue b/packages/frontend/src/components/MkStreamingNotesTimeline.vue index db9621e378..7e72840b7b 100644 --- a/packages/frontend/src/components/MkStreamingNotesTimeline.vue +++ b/packages/frontend/src/components/MkStreamingNotesTimeline.vue @@ -428,7 +428,7 @@ defineExpose({ background: var(--MI_THEME-panel); } -.note { +.note:not(:empty) { border-bottom: solid 0.5px var(--MI_THEME-divider); } diff --git a/packages/frontend/src/utility/get-note-menu.ts b/packages/frontend/src/utility/get-note-menu.ts index 5b99be5fdb..ea93444f08 100644 --- a/packages/frontend/src/utility/get-note-menu.ts +++ b/packages/frontend/src/utility/get-note-menu.ts @@ -542,7 +542,7 @@ function smallerVisibility(a: Visibility, b: Visibility): Visibility { export function getRenoteMenu(props: { note: Misskey.entities.Note; - renoteButton: ShallowRef; + renoteButton: ShallowRef; mock?: boolean; }) { const appearNote = getAppearNote(props.note); From 420756d744aef1ab985d2f9ef0eb8e9b7aa65433 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sat, 14 Jun 2025 19:50:56 +0900 Subject: [PATCH 67/76] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f7c7e6ab9..aaf7ac0cfe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Note - Misskey Webプラグインのnote_view_interruptorは不具合の影響により現在一時的に無効化されています。 +- Misskey Web投稿フォームのプレビュー切り替えは「...」メニュー内に配置されました ### Client - Feat: 画像にウォーターマークを付与できるようになりました From b33eeb13663b2321793c4127dcd4a1d108cefa53 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sun, 15 Jun 2025 08:47:59 +0900 Subject: [PATCH 68/76] enhance(frontend/image-effector): tweak distort fx --- .../src/utility/image-effector/fxs/distort.ts | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/packages/frontend/src/utility/image-effector/fxs/distort.ts b/packages/frontend/src/utility/image-effector/fxs/distort.ts index f91287c038..67ebc77733 100644 --- a/packages/frontend/src/utility/image-effector/fxs/distort.ts +++ b/packages/frontend/src/utility/image-effector/fxs/distort.ts @@ -9,6 +9,10 @@ import { i18n } from '@/i18n.js'; const shader = `#version 300 es precision mediump float; +const float PI = 3.141592653589793; +const float TWO_PI = 6.283185307179586; +const float HALF_PI = 1.5707963267948966; + in vec2 in_uv; uniform sampler2D in_texture; uniform vec2 in_resolution; @@ -20,8 +24,8 @@ out vec4 out_color; void main() { float v = u_direction == 0 ? - sin(u_phase + in_uv.y * u_frequency) * u_strength : - sin(u_phase + in_uv.x * u_frequency) * u_strength; + sin((HALF_PI + (u_phase * PI) - (u_frequency / 2.0)) + in_uv.y * u_frequency) * u_strength : + sin((HALF_PI + (u_phase * PI) - (u_frequency / 2.0)) + in_uv.x * u_frequency) * u_strength; vec4 in_color = u_direction == 0 ? texture(in_texture, vec2(in_uv.x + v, in_uv.y)) : texture(in_texture, vec2(in_uv.x, in_uv.y + v)); @@ -38,32 +42,32 @@ export const FX_distort = defineImageEffectorFx({ direction: { type: 'number:enum' as const, enum: [{ value: 0, label: 'v' }, { value: 1, label: 'h' }], - default: 0, + default: 1, }, phase: { type: 'number' as const, - default: 50.0, - min: 0.0, - max: 100, + default: 0.0, + min: -1.0, + max: 1.0, step: 0.01, }, frequency: { type: 'number' as const, - default: 50, + default: 30, min: 0, max: 100, step: 0.1, }, strength: { type: 'number' as const, - default: 0.1, + default: 0.05, min: 0, max: 1, step: 0.01, }, }, main: ({ gl, u, params }) => { - gl.uniform1f(u.phase, params.phase / 10); + gl.uniform1f(u.phase, params.phase); gl.uniform1f(u.frequency, params.frequency); gl.uniform1f(u.strength, params.strength); gl.uniform1i(u.direction, params.direction); From 3dbfd80d65262bec24002c50cdfb2c1b962efcf5 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sun, 15 Jun 2025 09:25:57 +0900 Subject: [PATCH 69/76] enhance(frontend/image-effector): tweak colorAdjust fx --- .../MkImageEffectorDialog.Layer.vue | 11 +++-- .../utility/image-effector/ImageEffector.ts | 2 + .../utility/image-effector/fxs/colorAdjust.ts | 49 ++++++++++--------- 3 files changed, 35 insertions(+), 27 deletions(-) diff --git a/packages/frontend/src/components/MkImageEffectorDialog.Layer.vue b/packages/frontend/src/components/MkImageEffectorDialog.Layer.vue index ff3b9aff9b..d8466fa7ca 100644 --- a/packages/frontend/src/components/MkImageEffectorDialog.Layer.vue +++ b/packages/frontend/src/components/MkImageEffectorDialog.Layer.vue @@ -20,7 +20,7 @@ SPDX-License-Identifier: AGPL-3.0-only v-if="v.type === 'boolean'" v-model="layer.params[k]" > - + - + - +
@@ -55,7 +56,7 @@ SPDX-License-Identifier: AGPL-3.0-only :max="10000" :step="1" > - +
- + diff --git a/packages/frontend/src/utility/image-effector/ImageEffector.ts b/packages/frontend/src/utility/image-effector/ImageEffector.ts index 85dc5d5266..1028c57f35 100644 --- a/packages/frontend/src/utility/image-effector/ImageEffector.ts +++ b/packages/frontend/src/utility/image-effector/ImageEffector.ts @@ -19,6 +19,8 @@ type ParamTypeToPrimitive = { type ImageEffectorFxParamDefs = Record string; }>; export function defineImageEffectorFx(fx: ImageEffectorFx) { diff --git a/packages/frontend/src/utility/image-effector/fxs/colorAdjust.ts b/packages/frontend/src/utility/image-effector/fxs/colorAdjust.ts index cbb874852d..c38490e198 100644 --- a/packages/frontend/src/utility/image-effector/fxs/colorAdjust.ts +++ b/packages/frontend/src/utility/image-effector/fxs/colorAdjust.ts @@ -72,7 +72,7 @@ void main() { vec3 color = in_color.rgb; color = color * u_brightness; - color += vec3(clamp(u_lightness, 0.0, 2.0) - 1.0); + color += vec3(u_lightness); color = (color - 0.5) * u_contrast + 0.5; vec3 hsl = rgb2hsl(color); @@ -92,45 +92,50 @@ export const FX_colorAdjust = defineImageEffectorFx({ params: { lightness: { type: 'number' as const, - default: 100, - min: 0, - max: 200, - step: 1, + default: 0, + min: -1, + max: 1, + step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, contrast: { type: 'number' as const, - default: 100, + default: 1, min: 0, - max: 200, - step: 1, + max: 4, + step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, hue: { type: 'number' as const, default: 0, - min: -360, - max: 360, - step: 1, + min: -1, + max: 1, + step: 0.01, + toViewValue: v => Math.round(v * 180) + '°', }, brightness: { type: 'number' as const, - default: 100, + default: 1, min: 0, - max: 200, - step: 1, + max: 4, + step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, saturation: { type: 'number' as const, - default: 100, + default: 1, min: 0, - max: 200, - step: 1, + max: 4, + step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, }, main: ({ gl, u, params }) => { - gl.uniform1f(u.brightness, params.brightness / 100); - gl.uniform1f(u.contrast, params.contrast / 100); - gl.uniform1f(u.hue, params.hue / 360); - gl.uniform1f(u.lightness, params.lightness / 100); - gl.uniform1f(u.saturation, params.saturation / 100); + gl.uniform1f(u.brightness, params.brightness); + gl.uniform1f(u.contrast, params.contrast); + gl.uniform1f(u.hue, params.hue / 2); + gl.uniform1f(u.lightness, params.lightness); + gl.uniform1f(u.saturation, params.saturation); }, }); From 5bec8ba6b0f8c98ccc395ef5da9f6126234bf63e Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sun, 15 Jun 2025 10:19:42 +0900 Subject: [PATCH 70/76] enhance(frontend/image-effector): tweak fxs --- packages/frontend/src/utility/image-effector/fxs/checker.ts | 2 ++ .../frontend/src/utility/image-effector/fxs/colorClamp.ts | 2 ++ .../src/utility/image-effector/fxs/colorClampAdvanced.ts | 6 ++++++ packages/frontend/src/utility/image-effector/fxs/distort.ts | 2 ++ .../frontend/src/utility/image-effector/fxs/polkadot.ts | 3 +++ packages/frontend/src/utility/image-effector/fxs/stripe.ts | 3 +++ 6 files changed, 18 insertions(+) diff --git a/packages/frontend/src/utility/image-effector/fxs/checker.ts b/packages/frontend/src/utility/image-effector/fxs/checker.ts index b799bd0d13..c426308951 100644 --- a/packages/frontend/src/utility/image-effector/fxs/checker.ts +++ b/packages/frontend/src/utility/image-effector/fxs/checker.ts @@ -58,6 +58,7 @@ export const FX_checker = defineImageEffectorFx({ min: -1.0, max: 1.0, step: 0.01, + toViewValue: v => Math.round(v * 90) + '°', }, scale: { type: 'number' as const, @@ -76,6 +77,7 @@ export const FX_checker = defineImageEffectorFx({ min: 0.0, max: 1.0, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, }, main: ({ gl, u, params }) => { diff --git a/packages/frontend/src/utility/image-effector/fxs/colorClamp.ts b/packages/frontend/src/utility/image-effector/fxs/colorClamp.ts index 5393d73df0..ae0d92b8ae 100644 --- a/packages/frontend/src/utility/image-effector/fxs/colorClamp.ts +++ b/packages/frontend/src/utility/image-effector/fxs/colorClamp.ts @@ -37,6 +37,7 @@ export const FX_colorClamp = defineImageEffectorFx({ min: 0.0, max: 1.0, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, min: { type: 'number' as const, @@ -44,6 +45,7 @@ export const FX_colorClamp = defineImageEffectorFx({ min: -1.0, max: 0.0, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, }, main: ({ gl, u, params }) => { diff --git a/packages/frontend/src/utility/image-effector/fxs/colorClampAdvanced.ts b/packages/frontend/src/utility/image-effector/fxs/colorClampAdvanced.ts index c66d75a83f..b9387900fb 100644 --- a/packages/frontend/src/utility/image-effector/fxs/colorClampAdvanced.ts +++ b/packages/frontend/src/utility/image-effector/fxs/colorClampAdvanced.ts @@ -41,6 +41,7 @@ export const FX_colorClampAdvanced = defineImageEffectorFx({ min: 0.0, max: 1.0, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, rMin: { type: 'number' as const, @@ -48,6 +49,7 @@ export const FX_colorClampAdvanced = defineImageEffectorFx({ min: -1.0, max: 0.0, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, gMax: { type: 'number' as const, @@ -55,6 +57,7 @@ export const FX_colorClampAdvanced = defineImageEffectorFx({ min: 0.0, max: 1.0, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, gMin: { type: 'number' as const, @@ -62,6 +65,7 @@ export const FX_colorClampAdvanced = defineImageEffectorFx({ min: -1.0, max: 0.0, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, bMax: { type: 'number' as const, @@ -69,6 +73,7 @@ export const FX_colorClampAdvanced = defineImageEffectorFx({ min: 0.0, max: 1.0, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, bMin: { type: 'number' as const, @@ -76,6 +81,7 @@ export const FX_colorClampAdvanced = defineImageEffectorFx({ min: -1.0, max: 0.0, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, }, main: ({ gl, u, params }) => { diff --git a/packages/frontend/src/utility/image-effector/fxs/distort.ts b/packages/frontend/src/utility/image-effector/fxs/distort.ts index 67ebc77733..4b1aefc159 100644 --- a/packages/frontend/src/utility/image-effector/fxs/distort.ts +++ b/packages/frontend/src/utility/image-effector/fxs/distort.ts @@ -50,6 +50,7 @@ export const FX_distort = defineImageEffectorFx({ min: -1.0, max: 1.0, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, frequency: { type: 'number' as const, @@ -64,6 +65,7 @@ export const FX_distort = defineImageEffectorFx({ min: 0, max: 1, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, }, main: ({ gl, u, params }) => { diff --git a/packages/frontend/src/utility/image-effector/fxs/polkadot.ts b/packages/frontend/src/utility/image-effector/fxs/polkadot.ts index 198dd9bad0..14f6f91148 100644 --- a/packages/frontend/src/utility/image-effector/fxs/polkadot.ts +++ b/packages/frontend/src/utility/image-effector/fxs/polkadot.ts @@ -90,6 +90,7 @@ export const FX_polkadot = defineImageEffectorFx({ min: -1.0, max: 1.0, step: 0.01, + toViewValue: v => Math.round(v * 90) + '°', }, scale: { type: 'number' as const, @@ -111,6 +112,7 @@ export const FX_polkadot = defineImageEffectorFx({ min: 0.0, max: 1.0, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, minorDivisions: { type: 'number' as const, @@ -132,6 +134,7 @@ export const FX_polkadot = defineImageEffectorFx({ min: 0.0, max: 1.0, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, color: { type: 'color' as const, diff --git a/packages/frontend/src/utility/image-effector/fxs/stripe.ts b/packages/frontend/src/utility/image-effector/fxs/stripe.ts index 37766e185d..f6c1d2278d 100644 --- a/packages/frontend/src/utility/image-effector/fxs/stripe.ts +++ b/packages/frontend/src/utility/image-effector/fxs/stripe.ts @@ -60,6 +60,7 @@ export const FX_stripe = defineImageEffectorFx({ min: -1.0, max: 1.0, step: 0.01, + toViewValue: v => Math.round(v * 90) + '°', }, frequency: { type: 'number' as const, @@ -74,6 +75,7 @@ export const FX_stripe = defineImageEffectorFx({ min: 0.0, max: 1.0, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, color: { type: 'color' as const, @@ -85,6 +87,7 @@ export const FX_stripe = defineImageEffectorFx({ min: 0.0, max: 1.0, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, }, main: ({ gl, u, params }) => { From ce90fee5861536989019bda57e4e14c2fe160332 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sun, 15 Jun 2025 10:55:11 +0900 Subject: [PATCH 71/76] enhance(frontend/image-effector): add blockNoise fx --- locales/index.d.ts | 4 + locales/ja-JP.yml | 1 + .../src/utility/image-effector/fxs.ts | 2 + .../utility/image-effector/fxs/blockNoise.ts | 119 ++++++++++++++++++ .../src/utility/image-effector/fxs/glitch.ts | 1 + 5 files changed, 127 insertions(+) create mode 100644 packages/frontend/src/utility/image-effector/fxs/blockNoise.ts diff --git a/locales/index.d.ts b/locales/index.d.ts index 1462e933d0..9bf4f95448 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -12220,6 +12220,10 @@ export interface Locale extends ILocale { * チェッカー */ "checker": string; + /** + * ブロックノイズ + */ + "blockNoise": string; }; }; } diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 171eb62b0f..bc2c5ab51b 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -3273,3 +3273,4 @@ _imageEffector: stripe: "ストライプ" polkadot: "ポルカドット" checker: "チェッカー" + blockNoise: "ブロックノイズ" diff --git a/packages/frontend/src/utility/image-effector/fxs.ts b/packages/frontend/src/utility/image-effector/fxs.ts index a5c8e2ff80..003b56efc4 100644 --- a/packages/frontend/src/utility/image-effector/fxs.ts +++ b/packages/frontend/src/utility/image-effector/fxs.ts @@ -18,6 +18,7 @@ import { FX_stripe } from './fxs/stripe.js'; import { FX_threshold } from './fxs/threshold.js'; import { FX_watermarkPlacement } from './fxs/watermarkPlacement.js'; import { FX_zoomLines } from './fxs/zoomLines.js'; +import { FX_blockNoise } from './fxs/blockNoise.js'; import type { ImageEffectorFx } from './ImageEffector.js'; export const FXS = [ @@ -36,4 +37,5 @@ export const FXS = [ FX_stripe, FX_polkadot, FX_checker, + FX_blockNoise, ] as const satisfies ImageEffectorFx[]; diff --git a/packages/frontend/src/utility/image-effector/fxs/blockNoise.ts b/packages/frontend/src/utility/image-effector/fxs/blockNoise.ts new file mode 100644 index 0000000000..66ebbabc0c --- /dev/null +++ b/packages/frontend/src/utility/image-effector/fxs/blockNoise.ts @@ -0,0 +1,119 @@ +/* + * SPDX-FileCopyrightText: syuilo and misskey-project + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import seedrandom from 'seedrandom'; +import { defineImageEffectorFx } from '../ImageEffector.js'; +import { i18n } from '@/i18n.js'; + +const shader = `#version 300 es +precision mediump float; + +in vec2 in_uv; +uniform sampler2D in_texture; +uniform vec2 in_resolution; +uniform int u_amount; +uniform float u_shiftStrengths[128]; +uniform vec2 u_shiftOrigins[128]; +uniform vec2 u_shiftSizes[128]; +uniform float u_channelShift; +out vec4 out_color; + +void main() { + // TODO: ピクセル毎に計算する必要はないのでuniformにする + float aspect_ratio = min(in_resolution.x, in_resolution.y) / max(in_resolution.x, in_resolution.y); + float aspect_ratio_x = in_resolution.x > in_resolution.y ? 1.0 : aspect_ratio; + float aspect_ratio_y = in_resolution.x < in_resolution.y ? 1.0 : aspect_ratio; + + float v = 0.0; + + for (int i = 0; i < u_amount; i++) { + if ( + in_uv.x * aspect_ratio_x > ((u_shiftOrigins[i].x * aspect_ratio_x) - u_shiftSizes[i].x) && + in_uv.x * aspect_ratio_x < ((u_shiftOrigins[i].x * aspect_ratio_x) + u_shiftSizes[i].x) && + in_uv.y * aspect_ratio_y > ((u_shiftOrigins[i].y * aspect_ratio_y) - u_shiftSizes[i].y) && + in_uv.y * aspect_ratio_y < ((u_shiftOrigins[i].y * aspect_ratio_y) + u_shiftSizes[i].y) + ) { + v += u_shiftStrengths[i]; + } + } + + float r = texture(in_texture, vec2(in_uv.x + (v * (1.0 + u_channelShift)), in_uv.y)).r; + float g = texture(in_texture, vec2(in_uv.x + v, in_uv.y)).g; + float b = texture(in_texture, vec2(in_uv.x + (v * (1.0 + (u_channelShift / 2.0))), in_uv.y)).b; + float a = texture(in_texture, vec2(in_uv.x + v, in_uv.y)).a; + out_color = vec4(r, g, b, a); +} +`; + +export const FX_blockNoise = defineImageEffectorFx({ + id: 'blockNoise' as const, + name: i18n.ts._imageEffector._fxs.blockNoise, + shader, + uniforms: ['amount', 'channelShift'] as const, + params: { + amount: { + type: 'number' as const, + default: 50, + min: 1, + max: 100, + step: 1, + }, + strength: { + type: 'number' as const, + default: 0.05, + min: -1, + max: 1, + step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', + }, + width: { + type: 'number' as const, + default: 0.05, + min: 0.01, + max: 1, + step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', + }, + height: { + type: 'number' as const, + default: 0.01, + min: 0.01, + max: 1, + step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', + }, + channelShift: { + type: 'number' as const, + default: 0, + min: 0, + max: 10, + step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', + }, + seed: { + type: 'seed' as const, + default: 100, + }, + }, + main: ({ gl, program, u, params }) => { + gl.uniform1i(u.amount, params.amount); + gl.uniform1f(u.channelShift, params.channelShift); + + const margin = 0; + + const rnd = seedrandom(params.seed.toString()); + + for (let i = 0; i < params.amount; i++) { + const o = gl.getUniformLocation(program, `u_shiftOrigins[${i.toString()}]`); + gl.uniform2f(o, (rnd() * (1 + (margin * 2))) - margin, (rnd() * (1 + (margin * 2))) - margin); + + const s = gl.getUniformLocation(program, `u_shiftStrengths[${i.toString()}]`); + gl.uniform1f(s, (1 - (rnd() * 2)) * params.strength); + + const sizes = gl.getUniformLocation(program, `u_shiftSizes[${i.toString()}]`); + gl.uniform2f(sizes, params.width, params.height); + } + }, +}); diff --git a/packages/frontend/src/utility/image-effector/fxs/glitch.ts b/packages/frontend/src/utility/image-effector/fxs/glitch.ts index e4939a4302..94027e0e31 100644 --- a/packages/frontend/src/utility/image-effector/fxs/glitch.ts +++ b/packages/frontend/src/utility/image-effector/fxs/glitch.ts @@ -70,6 +70,7 @@ export const FX_glitch = defineImageEffectorFx({ min: 0, max: 10, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, seed: { type: 'seed' as const, From e9af9d4451f1ff66c13040b46d8316b52539901b Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sun, 15 Jun 2025 10:57:29 +0900 Subject: [PATCH 72/76] enhance(frontend/image-effector): tweak fxs --- .../src/utility/image-effector/fxs/glitch.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/frontend/src/utility/image-effector/fxs/glitch.ts b/packages/frontend/src/utility/image-effector/fxs/glitch.ts index 94027e0e31..702b476a0b 100644 --- a/packages/frontend/src/utility/image-effector/fxs/glitch.ts +++ b/packages/frontend/src/utility/image-effector/fxs/glitch.ts @@ -52,17 +52,19 @@ export const FX_glitch = defineImageEffectorFx({ }, strength: { type: 'number' as const, - default: 5, - min: -100, - max: 100, + default: 0.05, + min: -1, + max: 1, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, size: { type: 'number' as const, - default: 20, + default: 0.2, min: 0, - max: 100, + max: 1, step: 0.01, + toViewValue: v => Math.round(v * 100) + '%', }, channelShift: { type: 'number' as const, @@ -88,10 +90,10 @@ export const FX_glitch = defineImageEffectorFx({ gl.uniform1f(o, rnd()); const s = gl.getUniformLocation(program, `u_shiftStrengths[${i.toString()}]`); - gl.uniform1f(s, (1 - (rnd() * 2)) * (params.strength / 100)); + gl.uniform1f(s, (1 - (rnd() * 2)) * params.strength); const h = gl.getUniformLocation(program, `u_shiftHeights[${i.toString()}]`); - gl.uniform1f(h, rnd() * (params.size / 100)); + gl.uniform1f(h, rnd() * params.size); } }, }); From fe805fb7f0a05ea201fafb5e7926cded33d53b31 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sun, 15 Jun 2025 11:06:46 +0900 Subject: [PATCH 73/76] enhance(frontend/image-effector): tweak fxs --- locales/index.d.ts | 4 ++++ locales/ja-JP.yml | 1 + .../frontend/src/components/MkImageEffectorDialog.vue | 2 +- packages/frontend/src/utility/image-effector/fxs.ts | 8 +++----- .../frontend/src/utility/image-effector/fxs/blockNoise.ts | 2 +- .../utility/image-effector/fxs/{glitch.ts => tearing.ts} | 6 +++--- 6 files changed, 13 insertions(+), 10 deletions(-) rename packages/frontend/src/utility/image-effector/fxs/{glitch.ts => tearing.ts} (93%) diff --git a/locales/index.d.ts b/locales/index.d.ts index 9bf4f95448..16003570a2 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -12224,6 +12224,10 @@ export interface Locale extends ILocale { * ブロックノイズ */ "blockNoise": string; + /** + * ティアリング + */ + "tearing": string; }; }; } diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index bc2c5ab51b..6ef92e0f2e 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -3274,3 +3274,4 @@ _imageEffector: polkadot: "ポルカドット" checker: "チェッカー" blockNoise: "ブロックノイズ" + tearing: "ティアリング" diff --git a/packages/frontend/src/components/MkImageEffectorDialog.vue b/packages/frontend/src/components/MkImageEffectorDialog.vue index 42502ba449..2c6185fd33 100644 --- a/packages/frontend/src/components/MkImageEffectorDialog.vue +++ b/packages/frontend/src/components/MkImageEffectorDialog.vue @@ -96,7 +96,7 @@ watch(layers, async () => { }, { deep: true }); function addEffect(ev: MouseEvent) { - os.popupMenu(FXS.filter(fx => fx.id !== 'watermarkPlacement').map((fx) => ({ + os.popupMenu(FXS.map((fx) => ({ text: fx.name, action: () => { layers.push({ diff --git a/packages/frontend/src/utility/image-effector/fxs.ts b/packages/frontend/src/utility/image-effector/fxs.ts index 003b56efc4..1fa48aea15 100644 --- a/packages/frontend/src/utility/image-effector/fxs.ts +++ b/packages/frontend/src/utility/image-effector/fxs.ts @@ -10,21 +10,17 @@ import { FX_colorClamp } from './fxs/colorClamp.js'; import { FX_colorClampAdvanced } from './fxs/colorClampAdvanced.js'; import { FX_distort } from './fxs/distort.js'; import { FX_polkadot } from './fxs/polkadot.js'; -import { FX_glitch } from './fxs/glitch.js'; +import { FX_tearing } from './fxs/tearing.js'; import { FX_grayscale } from './fxs/grayscale.js'; import { FX_invert } from './fxs/invert.js'; import { FX_mirror } from './fxs/mirror.js'; import { FX_stripe } from './fxs/stripe.js'; import { FX_threshold } from './fxs/threshold.js'; -import { FX_watermarkPlacement } from './fxs/watermarkPlacement.js'; import { FX_zoomLines } from './fxs/zoomLines.js'; import { FX_blockNoise } from './fxs/blockNoise.js'; import type { ImageEffectorFx } from './ImageEffector.js'; export const FXS = [ - FX_watermarkPlacement, - FX_chromaticAberration, - FX_glitch, FX_mirror, FX_invert, FX_grayscale, @@ -37,5 +33,7 @@ export const FXS = [ FX_stripe, FX_polkadot, FX_checker, + FX_chromaticAberration, + FX_tearing, FX_blockNoise, ] as const satisfies ImageEffectorFx[]; diff --git a/packages/frontend/src/utility/image-effector/fxs/blockNoise.ts b/packages/frontend/src/utility/image-effector/fxs/blockNoise.ts index 66ebbabc0c..bf7eaa8bda 100644 --- a/packages/frontend/src/utility/image-effector/fxs/blockNoise.ts +++ b/packages/frontend/src/utility/image-effector/fxs/blockNoise.ts @@ -49,7 +49,7 @@ void main() { export const FX_blockNoise = defineImageEffectorFx({ id: 'blockNoise' as const, - name: i18n.ts._imageEffector._fxs.blockNoise, + name: i18n.ts._imageEffector._fxs.glitch + ': ' + i18n.ts._imageEffector._fxs.blockNoise, shader, uniforms: ['amount', 'channelShift'] as const, params: { diff --git a/packages/frontend/src/utility/image-effector/fxs/glitch.ts b/packages/frontend/src/utility/image-effector/fxs/tearing.ts similarity index 93% rename from packages/frontend/src/utility/image-effector/fxs/glitch.ts rename to packages/frontend/src/utility/image-effector/fxs/tearing.ts index 702b476a0b..d5f1e062ec 100644 --- a/packages/frontend/src/utility/image-effector/fxs/glitch.ts +++ b/packages/frontend/src/utility/image-effector/fxs/tearing.ts @@ -37,9 +37,9 @@ void main() { } `; -export const FX_glitch = defineImageEffectorFx({ - id: 'glitch' as const, - name: i18n.ts._imageEffector._fxs.glitch, +export const FX_tearing = defineImageEffectorFx({ + id: 'tearing' as const, + name: i18n.ts._imageEffector._fxs.glitch + ': ' + i18n.ts._imageEffector._fxs.tearing, shader, uniforms: ['amount', 'channelShift'] as const, params: { From b93717be333453842bd6e422ad835dbae90c0812 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sun, 15 Jun 2025 11:08:53 +0900 Subject: [PATCH 74/76] Update CHANGELOG.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: おさむのひと <46447427+samunohito@users.noreply.github.com> --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aaf7ac0cfe..451aeed705 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ ## 2025.6.1 ### Note -- Misskey Webプラグインのnote_view_interruptorは不具合の影響により現在一時的に無効化されています。 +- AiScript Misskey拡張API(Misskey Webプラグイン)の[note_view_interruptor](https://misskey-hub.net/ja/docs/for-developers/plugin/plugin-api-reference/#pluginregister_note_view_interruptorfn)は不具合の影響により現在一時的に無効化されています。 - Misskey Web投稿フォームのプレビュー切り替えは「...」メニュー内に配置されました ### Client From 40e35c051ad2b17db955c732d303798a6d0d8e8f Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sun, 15 Jun 2025 11:10:03 +0900 Subject: [PATCH 75/76] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 451aeed705..65aa271d05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ ### Client - Feat: 画像にウォーターマークを付与できるようになりました +- Feat: 画像の加工ができるようになりました(実験的) - Enhance: ノートのリアクション一覧で、押せるリアクションを優先して表示できるようにするオプションを追加 - Enhance: 全てのチャットメッセージを既読にできるように(設定→その他) - Enhance: ミュートした絵文字をデバイス間で同期できるように From c69a13b59283a7e3531fc39b39e18e7a500f4a95 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 16 Jun 2025 02:33:14 +0000 Subject: [PATCH 76/76] Release: 2025.6.1 --- package.json | 2 +- packages/misskey-js/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d5294fa24e..d27c8ee0d6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2025.6.1-rc.0", + "version": "2025.6.1", "codename": "nasubi", "repository": { "type": "git", diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json index cb4010616c..5f5802da4c 100644 --- a/packages/misskey-js/package.json +++ b/packages/misskey-js/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "misskey-js", - "version": "2025.6.1-rc.0", + "version": "2025.6.1", "description": "Misskey SDK for JavaScript", "license": "MIT", "main": "./built/index.js",