From e537f9120c0ad6a5fdcf44a45847b66876a2b13e Mon Sep 17 00:00:00 2001 From: zyoshoka Date: Thu, 11 Jan 2024 20:44:21 +0900 Subject: [PATCH 01/20] =?UTF-8?q?fix(backend):=20`text:=20null`=E3=81=A0?= =?UTF-8?q?=E3=81=91=E3=81=AE=E3=83=8E=E3=83=BC=E3=83=88=E3=81=AF=E6=8A=95?= =?UTF-8?q?=E7=A8=BF=E3=81=A7=E3=81=8D=E3=81=AA=E3=81=84=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/server/api/endpoints/notes/create.ts | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/packages/backend/src/server/api/endpoints/notes/create.ts b/packages/backend/src/server/api/endpoints/notes/create.ts index c5d42dabe469..168ce70c11bb 100644 --- a/packages/backend/src/server/api/endpoints/notes/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/create.ts @@ -172,13 +172,32 @@ export const paramDef = { }, }, // (re)note with text, files and poll are optional - anyOf: [ - { required: ['text'] }, - { required: ['renoteId'] }, - { required: ['fileIds'] }, - { required: ['mediaIds'] }, - { required: ['poll'] }, - ], + if: { + properties: { + renoteId: { + type: 'null', + }, + fileIds: { + type: 'null', + }, + mediaIds: { + type: 'null', + }, + poll: { + type: 'null', + }, + }, + }, + then: { + properties: { + text: { + type: 'string', + minLength: 1, + maxLength: MAX_NOTE_TEXT_LENGTH, + nullable: false, + }, + }, + }, } as const; @Injectable() From e89648122867a7be071a0aabb8f027dfb057442c Mon Sep 17 00:00:00 2001 From: zyoshoka Date: Thu, 11 Jan 2024 20:47:03 +0900 Subject: [PATCH 02/20] add test --- packages/backend/test/e2e/note.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/backend/test/e2e/note.ts b/packages/backend/test/e2e/note.ts index 0f2e08e6756b..9a0bf3385ffe 100644 --- a/packages/backend/test/e2e/note.ts +++ b/packages/backend/test/e2e/note.ts @@ -161,6 +161,13 @@ describe('Note', () => { assert.strictEqual(deleteRes.status, 204); }); + test('text: nullのみだと怒られる', async () => { + const res = await api('/notes/create', { + text: null, + }, alice); + assert.strictEqual(res.status, 400); + }); + test('文字数ぎりぎりで怒られない', async () => { const post = { text: '!'.repeat(MAX_NOTE_TEXT_LENGTH), // 3000文字 From 02225089e107b821afc6ec38fb0de212e6aba808 Mon Sep 17 00:00:00 2001 From: zyoshoka Date: Thu, 11 Jan 2024 20:48:39 +0900 Subject: [PATCH 03/20] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 13ad3a3508e2..cbf9ddab7524 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,7 @@ - Enhance: ActivityPub Deliver queueでBodyを事前処理するように (#12916) - Enhance: クリップをエクスポートできるように - Fix: `drive/files/update`でファイル名のバリデーションが機能していない問題を修正 +- Fix: `notes/create`で`text: null`のみのリクエストに対して400を返すように ## 2023.12.2 From 3d58ca90ae303c40a6c95f7926b507a26361d1bb Mon Sep 17 00:00:00 2001 From: zyoshoka Date: Thu, 11 Jan 2024 22:05:38 +0900 Subject: [PATCH 04/20] chore: bump OpenAPI Specification from 3.0.0 to 3.1.0 --- .../src/server/api/openapi/gen-spec.ts | 2 +- .../misskey-js/generator/src/generator.ts | 26 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/backend/src/server/api/openapi/gen-spec.ts b/packages/backend/src/server/api/openapi/gen-spec.ts index 0e71510b4843..8958be8c0b33 100644 --- a/packages/backend/src/server/api/openapi/gen-spec.ts +++ b/packages/backend/src/server/api/openapi/gen-spec.ts @@ -10,7 +10,7 @@ import { schemas, convertSchemaToOpenApiSchema } from './schemas.js'; export function genOpenapiSpec(config: Config) { const spec = { - openapi: '3.0.0', + openapi: '3.1.0', info: { version: config.version, diff --git a/packages/misskey-js/generator/src/generator.ts b/packages/misskey-js/generator/src/generator.ts index f12ed9451324..6a7b509f5e3c 100644 --- a/packages/misskey-js/generator/src/generator.ts +++ b/packages/misskey-js/generator/src/generator.ts @@ -1,10 +1,10 @@ import { mkdir, writeFile } from 'fs/promises'; -import { OpenAPIV3 } from 'openapi-types'; +import { OpenAPIV3_1 } from 'openapi-types'; import { toPascal } from 'ts-case-convert'; import SwaggerParser from '@apidevtools/swagger-parser'; import openapiTS from 'openapi-typescript'; -function generateVersionHeaderComment(openApiDocs: OpenAPIV3.Document): string { +function generateVersionHeaderComment(openApiDocs: OpenAPIV3_1.Document): string { const contents = { version: openApiDocs.info.version, generatedAt: new Date().toISOString(), @@ -21,7 +21,7 @@ function generateVersionHeaderComment(openApiDocs: OpenAPIV3.Document): string { } async function generateBaseTypes( - openApiDocs: OpenAPIV3.Document, + openApiDocs: OpenAPIV3_1.Document, openApiJsonPath: string, typeFileName: string, ) { @@ -47,7 +47,7 @@ async function generateBaseTypes( } async function generateSchemaEntities( - openApiDocs: OpenAPIV3.Document, + openApiDocs: OpenAPIV3_1.Document, typeFileName: string, outputPath: string, ) { @@ -71,7 +71,7 @@ async function generateSchemaEntities( } async function generateEndpoints( - openApiDocs: OpenAPIV3.Document, + openApiDocs: OpenAPIV3_1.Document, typeFileName: string, entitiesOutputPath: string, endpointOutputPath: string, @@ -79,7 +79,7 @@ async function generateEndpoints( const endpoints: Endpoint[] = []; // misskey-jsはPOST固定で送っているので、こちらも決め打ちする。別メソッドに対応することがあればこちらも直す必要あり - const paths = openApiDocs.paths; + const paths = openApiDocs.paths ?? {}; const postPathItems = Object.keys(paths) .map(it => paths[it]?.post) .filter(filterUndefined); @@ -160,7 +160,7 @@ async function generateEndpoints( } async function generateApiClientJSDoc( - openApiDocs: OpenAPIV3.Document, + openApiDocs: OpenAPIV3_1.Document, apiClientFileName: string, endpointsFileName: string, warningsOutputPath: string, @@ -168,7 +168,7 @@ async function generateApiClientJSDoc( const endpoints: { operationId: string; description: string; }[] = []; // misskey-jsはPOST固定で送っているので、こちらも決め打ちする。別メソッドに対応することがあればこちらも直す必要あり - const paths = openApiDocs.paths; + const paths = openApiDocs.paths ?? {}; const postPathItems = Object.keys(paths) .map(it => paths[it]?.post) .filter(filterUndefined); @@ -221,21 +221,21 @@ async function generateApiClientJSDoc( await writeFile(warningsOutputPath, endpointOutputLine.join('\n')); } -function isRequestBodyObject(value: unknown): value is OpenAPIV3.RequestBodyObject { +function isRequestBodyObject(value: unknown): value is OpenAPIV3_1.RequestBodyObject { if (!value) { return false; } - const { content } = value as Record; + const { content } = value as Record; return content !== undefined; } -function isResponseObject(value: unknown): value is OpenAPIV3.ResponseObject { +function isResponseObject(value: unknown): value is OpenAPIV3_1.ResponseObject { if (!value) { return false; } - const { description } = value as Record; + const { description } = value as Record; return description !== undefined; } @@ -330,7 +330,7 @@ async function main() { await mkdir(generatePath, { recursive: true }); const openApiJsonPath = './api.json'; - const openApiDocs = await SwaggerParser.validate(openApiJsonPath) as OpenAPIV3.Document; + const openApiDocs = await SwaggerParser.validate(openApiJsonPath) as OpenAPIV3_1.Document; const typeFileName = './built/autogen/types.ts'; await generateBaseTypes(openApiDocs, openApiJsonPath, typeFileName); From a4f47e46ac8bf8fcd5a8d4303cc0704a9721fe17 Mon Sep 17 00:00:00 2001 From: zyoshoka Date: Thu, 11 Jan 2024 22:20:18 +0900 Subject: [PATCH 05/20] =?UTF-8?q?chore:=20=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=81=8C=E3=81=99=E3=81=A7=E3=81=AB=E3=82=B3=E3=83=A1=E3=83=B3?= =?UTF-8?q?=E3=83=88=E3=81=A7=E8=A8=98=E8=BF=B0=E3=81=95=E3=82=8C=E3=81=A6?= =?UTF-8?q?=E3=81=84=E3=81=9F=E3=81=AE=E3=81=A7=E3=81=9D=E3=81=A3=E3=81=A1?= =?UTF-8?q?=E3=82=92=E4=BD=BF=E3=81=86=E3=81=93=E3=81=A8=E3=81=AB=E3=81=99?= =?UTF-8?q?=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/server/api/endpoints/notes/create.test.ts | 9 ++++----- packages/backend/test/e2e/note.ts | 7 ------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/packages/backend/src/server/api/endpoints/notes/create.test.ts b/packages/backend/src/server/api/endpoints/notes/create.test.ts index 6086f99c92e0..0aa05a2c9302 100644 --- a/packages/backend/src/server/api/endpoints/notes/create.test.ts +++ b/packages/backend/src/server/api/endpoints/notes/create.test.ts @@ -34,11 +34,10 @@ describe('api:notes/create', () => { .toBe(VALID); }); - // TODO - //test('null post', () => { - // expect(v({ text: null })) - // .toBe(INVALID); - //}); + test('null post', () => { + expect(v({ text: null })) + .toBe(INVALID); + }); test('0 characters post', () => { expect(v({ text: '' })) diff --git a/packages/backend/test/e2e/note.ts b/packages/backend/test/e2e/note.ts index 9a0bf3385ffe..0f2e08e6756b 100644 --- a/packages/backend/test/e2e/note.ts +++ b/packages/backend/test/e2e/note.ts @@ -161,13 +161,6 @@ describe('Note', () => { assert.strictEqual(deleteRes.status, 204); }); - test('text: nullのみだと怒られる', async () => { - const res = await api('/notes/create', { - text: null, - }, alice); - assert.strictEqual(res.status, 400); - }); - test('文字数ぎりぎりで怒られない', async () => { const post = { text: '!'.repeat(MAX_NOTE_TEXT_LENGTH), // 3000文字 From b92c9726bdc22dda707e3924cdf1727cafd6ca04 Mon Sep 17 00:00:00 2001 From: zyoshoka Date: Thu, 11 Jan 2024 22:24:33 +0900 Subject: [PATCH 06/20] fix test --- packages/backend/src/server/api/endpoints/notes/create.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/backend/src/server/api/endpoints/notes/create.ts b/packages/backend/src/server/api/endpoints/notes/create.ts index 168ce70c11bb..52a32b7fec31 100644 --- a/packages/backend/src/server/api/endpoints/notes/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/create.ts @@ -197,6 +197,7 @@ export const paramDef = { nullable: false, }, }, + required: ['text'], }, } as const; From d83c01af6ca380a5463c0d85941affff2f28e541 Mon Sep 17 00:00:00 2001 From: zyoshoka Date: Thu, 11 Jan 2024 22:50:21 +0900 Subject: [PATCH 07/20] fix(backend): prohibit posting whitespace-only notes --- .../backend/src/server/api/endpoints/notes/create.test.ts | 5 +++++ packages/backend/src/server/api/endpoints/notes/create.ts | 2 ++ 2 files changed, 7 insertions(+) diff --git a/packages/backend/src/server/api/endpoints/notes/create.test.ts b/packages/backend/src/server/api/endpoints/notes/create.test.ts index 0aa05a2c9302..3228bbd01480 100644 --- a/packages/backend/src/server/api/endpoints/notes/create.test.ts +++ b/packages/backend/src/server/api/endpoints/notes/create.test.ts @@ -48,6 +48,11 @@ describe('api:notes/create', () => { expect(v({ text: await tooLong })) .toBe(INVALID); }); + + test('whitespace-only post', () => { + expect(v({ text: ' ' })) + .toBe(INVALID); + }); }); describe('cw', () => { diff --git a/packages/backend/src/server/api/endpoints/notes/create.ts b/packages/backend/src/server/api/endpoints/notes/create.ts index 52a32b7fec31..ed522e03c904 100644 --- a/packages/backend/src/server/api/endpoints/notes/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/create.ts @@ -138,6 +138,7 @@ export const paramDef = { minLength: 1, maxLength: MAX_NOTE_TEXT_LENGTH, nullable: true, + pattern: '[^\\s]+', }, fileIds: { type: 'array', @@ -195,6 +196,7 @@ export const paramDef = { minLength: 1, maxLength: MAX_NOTE_TEXT_LENGTH, nullable: false, + pattern: '[^\\s]+', }, }, required: ['text'], From dc381180e8ae8155839ef46436aa61ef56bb387b Mon Sep 17 00:00:00 2001 From: zyoshoka Date: Thu, 11 Jan 2024 22:59:02 +0900 Subject: [PATCH 08/20] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cbf9ddab7524..c2eac1cabef3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,7 +36,7 @@ - Enhance: ActivityPub Deliver queueでBodyを事前処理するように (#12916) - Enhance: クリップをエクスポートできるように - Fix: `drive/files/update`でファイル名のバリデーションが機能していない問題を修正 -- Fix: `notes/create`で`text: null`のみのリクエストに対して400を返すように +- Fix: `notes/create`で`text: null`のみのリクエストや空白文字のみで構成された`text`に対して400を返すように ## 2023.12.2 From 993088180944eeb3e3e18caf880f71c5f87079f1 Mon Sep 17 00:00:00 2001 From: zyoshoka Date: Fri, 12 Jan 2024 15:45:42 +0900 Subject: [PATCH 09/20] =?UTF-8?q?fix(backend):=20`renoteId`=E3=81=BE?= =?UTF-8?q?=E3=81=9F=E3=81=AF`fileIds`=EF=BC=88`mediaIds`=EF=BC=89?= =?UTF-8?q?=E3=81=BE=E3=81=9F=E3=81=AF`poll`=E3=81=8C`null`=E3=81=A7?= =?UTF-8?q?=E3=81=AA=E3=81=84=E5=A0=B4=E5=90=88=E3=81=AB=E3=80=81`text=20?= =?UTF-8?q?=20=E3=81=8C=E7=A9=BA=E7=99=BD=E6=96=87=E5=AD=97=E3=81=AE?= =?UTF-8?q?=E3=81=BF=E3=81=A7=E6=A7=8B=E6=88=90=E3=81=95=E3=82=8C=E3=81=9F?= =?UTF-8?q?=E3=83=AA=E3=82=AF=E3=82=A8=E3=82=B9=E3=83=88=E3=81=AB=E3=81=AA?= =?UTF-8?q?=E3=82=8B=E3=81=93=E3=81=A8=E3=82=92=E8=A8=B1=E5=8F=AF=E3=81=97?= =?UTF-8?q?=E3=81=A6=E3=80=81=E7=B5=90=E6=9E=9C=E3=81=AF`text:=20null`?= =?UTF-8?q?=E3=82=92=E8=BF=94=E3=81=99=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/backend/src/core/NoteCreateService.ts | 3 +++ packages/backend/src/server/api/endpoints/notes/create.ts | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts index 97fb80ab394f..30f6d07118e5 100644 --- a/packages/backend/src/core/NoteCreateService.ts +++ b/packages/backend/src/core/NoteCreateService.ts @@ -325,6 +325,9 @@ export class NoteCreateService implements OnApplicationShutdown { data.text = data.text.slice(0, DB_MAX_NOTE_TEXT_LENGTH); } data.text = data.text.trim(); + if (data.text === '') { + data.text = null; + } } else { data.text = null; } diff --git a/packages/backend/src/server/api/endpoints/notes/create.ts b/packages/backend/src/server/api/endpoints/notes/create.ts index ed522e03c904..0cd0d4d6ec0c 100644 --- a/packages/backend/src/server/api/endpoints/notes/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/create.ts @@ -138,7 +138,6 @@ export const paramDef = { minLength: 1, maxLength: MAX_NOTE_TEXT_LENGTH, nullable: true, - pattern: '[^\\s]+', }, fileIds: { type: 'array', From 5dd8c689fe198675877fd7032c2cba9ec5b6c4b3 Mon Sep 17 00:00:00 2001 From: zyoshoka Date: Fri, 12 Jan 2024 15:50:03 +0900 Subject: [PATCH 10/20] =?UTF-8?q?test(backend):=20=E5=BC=95=E7=94=A8renote?= =?UTF-8?q?=E3=81=A7=E7=A9=BA=E7=99=BD=E6=96=87=E5=AD=97=E3=81=AE=E3=81=BF?= =?UTF-8?q?=E3=81=A7=E6=A7=8B=E6=88=90=E3=81=95=E3=82=8C=E3=81=9Ftext?= =?UTF-8?q?=E3=81=AB=E3=81=99=E3=82=8B=E3=81=A8=E3=83=AC=E3=82=B9=E3=83=9D?= =?UTF-8?q?=E3=83=B3=E3=82=B9=E3=81=8C`text:=20null`=E3=81=AB=E3=81=AA?= =?UTF-8?q?=E3=82=8B=E3=81=93=E3=81=A8=E3=82=92=E3=83=81=E3=82=A7=E3=83=83?= =?UTF-8?q?=E3=82=AF=E3=81=99=E3=82=8B=E3=83=86=E3=82=B9=E3=83=88=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/backend/test/e2e/note.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/backend/test/e2e/note.ts b/packages/backend/test/e2e/note.ts index 0f2e08e6756b..0280b051f5d2 100644 --- a/packages/backend/test/e2e/note.ts +++ b/packages/backend/test/e2e/note.ts @@ -136,6 +136,19 @@ describe('Note', () => { assert.strictEqual(res.body.createdNote.renote.text, bobPost.text); }); + test('引用renoteで空白文字のみで構成されたtextにするとレスポンスがtext: nullになる', async () => { + const bobPost = await post(bob, { + text: 'test', + }); + const res = await api('/notes/create', { + text: ' ', + renoteId: bobPost.id, + }, alice); + + assert.strictEqual(res.status, 200); + assert.strictEqual(res.body.createdNote.text, null); + }); + test('visibility: followersでrenoteできる', async () => { const createRes = await api('/notes/create', { text: 'test', From a9ca55343df6ea1679599acbc4801f78aa3a242b Mon Sep 17 00:00:00 2001 From: zyoshoka Date: Fri, 12 Jan 2024 16:05:27 +0900 Subject: [PATCH 11/20] =?UTF-8?q?fix(frontend):=20`text`=E3=81=8C`null`?= =?UTF-8?q?=E3=81=A7=E3=81=82=E3=81=A3=E3=81=A6`renoteId`=E3=81=A8`replyId?= =?UTF-8?q?`=E3=81=8C`null`=E3=81=A7=E3=81=AA=E3=81=84=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AA=E3=83=8E=E3=83=BC=E3=83=88=E3=81=AF=E5=BC=95=E7=94=A8?= =?UTF-8?q?=E3=83=AA=E3=83=8E=E3=83=BC=E3=83=88=E3=81=A8=E3=81=97=E3=81=A6?= =?UTF-8?q?=E8=A1=A8=E7=A4=BA=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/components/MkNote.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/frontend/src/components/MkNote.vue b/packages/frontend/src/components/MkNote.vue index 9c4354ef5f17..2b7bf719e6bf 100644 --- a/packages/frontend/src/components/MkNote.vue +++ b/packages/frontend/src/components/MkNote.vue @@ -229,6 +229,7 @@ if (noteViewInterruptors.length > 0) { const isRenote = ( note.value.renote != null && + note.value.replyId == null && note.value.text == null && note.value.cw == null && note.value.fileIds.length === 0 && From 7288851d5c2bf4900302ee6be19737b56149fa7d Mon Sep 17 00:00:00 2001 From: zyoshoka Date: Sat, 13 Jan 2024 11:50:09 +0900 Subject: [PATCH 12/20] =?UTF-8?q?fix(misskey-js):=20OpenAPI=203.1=E3=81=AB?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/server/api/endpoints/drive/files.ts | 2 +- .../api/endpoints/federation/instances.ts | 1 + .../api/endpoints/i/2fa/register-key.ts | 33 +- .../src/server/api/endpoints/notes/create.ts | 3 +- .../src/server/api/openapi/gen-spec.ts | 11 +- .../backend/src/server/api/openapi/schemas.ts | 37 +- packages/misskey-js/generator/package.json | 4 +- .../misskey-js/generator/src/generator.ts | 4 +- .../misskey-js/src/autogen/apiClientJSDoc.ts | 2 +- packages/misskey-js/src/autogen/endpoint.ts | 2 +- packages/misskey-js/src/autogen/entities.ts | 2 +- packages/misskey-js/src/autogen/models.ts | 2 +- packages/misskey-js/src/autogen/types.ts | 1882 +++++++++++++++-- pnpm-lock.yaml | 203 +- 14 files changed, 1901 insertions(+), 287 deletions(-) diff --git a/packages/backend/src/server/api/endpoints/drive/files.ts b/packages/backend/src/server/api/endpoints/drive/files.ts index b7e9d12e94e1..0ca31dc993b5 100644 --- a/packages/backend/src/server/api/endpoints/drive/files.ts +++ b/packages/backend/src/server/api/endpoints/drive/files.ts @@ -36,7 +36,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null }, type: { type: 'string', nullable: true, pattern: /^[a-zA-Z\/\-*]+$/.toString().slice(1, -1) }, - sort: { type: 'string', nullable: true, enum: ['+createdAt', '-createdAt', '+name', '-name', '+size', '-size'] }, + sort: { type: 'string', nullable: true, enum: ['+createdAt', '-createdAt', '+name', '-name', '+size', '-size', null] }, }, required: [], } as const; diff --git a/packages/backend/src/server/api/endpoints/federation/instances.ts b/packages/backend/src/server/api/endpoints/federation/instances.ts index e5a90715f5d3..457309731fba 100644 --- a/packages/backend/src/server/api/endpoints/federation/instances.ts +++ b/packages/backend/src/server/api/endpoints/federation/instances.ts @@ -60,6 +60,7 @@ export const paramDef = { '-firstRetrievedAt', '+latestRequestReceivedAt', '-latestRequestReceivedAt', + null, ], }, }, diff --git a/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts b/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts index 0fac96d58f1e..15c5011db9f3 100644 --- a/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts +++ b/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts @@ -103,13 +103,13 @@ export const meta = { items: { type: 'string', enum: [ - "ble", - "cable", - "hybrid", - "internal", - "nfc", - "smart-card", - "usb", + 'ble', + 'cable', + 'hybrid', + 'internal', + 'nfc', + 'smart-card', + 'usb', ], }, }, @@ -123,8 +123,8 @@ export const meta = { authenticatorAttachment: { type: 'string', enum: [ - "cross-platform", - "platform", + 'cross-platform', + 'platform', ], }, requireResidentKey: { @@ -133,9 +133,9 @@ export const meta = { userVerification: { type: 'string', enum: [ - "discouraged", - "preferred", - "required", + 'discouraged', + 'preferred', + 'required', ], }, }, @@ -144,10 +144,11 @@ export const meta = { type: 'string', nullable: true, enum: [ - "direct", - "enterprise", - "indirect", - "none", + 'direct', + 'enterprise', + 'indirect', + 'none', + null, ], }, extensions: { diff --git a/packages/backend/src/server/api/endpoints/notes/create.ts b/packages/backend/src/server/api/endpoints/notes/create.ts index 0cd0d4d6ec0c..e63dc6f20b8f 100644 --- a/packages/backend/src/server/api/endpoints/notes/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/create.ts @@ -191,10 +191,9 @@ export const paramDef = { then: { properties: { text: { - type: 'string', + type: ['string', 'null'], minLength: 1, maxLength: MAX_NOTE_TEXT_LENGTH, - nullable: false, pattern: '[^\\s]+', }, }, diff --git a/packages/backend/src/server/api/openapi/gen-spec.ts b/packages/backend/src/server/api/openapi/gen-spec.ts index 8958be8c0b33..3ed8a4e7278b 100644 --- a/packages/backend/src/server/api/openapi/gen-spec.ts +++ b/packages/backend/src/server/api/openapi/gen-spec.ts @@ -56,7 +56,7 @@ export function genOpenapiSpec(config: Config) { } } - const resSchema = endpoint.meta.res ? convertSchemaToOpenApiSchema(endpoint.meta.res) : {}; + const resSchema = endpoint.meta.res ? convertSchemaToOpenApiSchema(endpoint.meta.res, 'res') : {}; let desc = (endpoint.meta.description ? endpoint.meta.description : 'No description provided.') + '\n\n'; @@ -71,7 +71,7 @@ export function genOpenapiSpec(config: Config) { } const requestType = endpoint.meta.requireFile ? 'multipart/form-data' : 'application/json'; - const schema = { ...endpoint.params }; + const schema = { ...convertSchemaToOpenApiSchema(endpoint.params, 'param') }; if (endpoint.meta.requireFile) { schema.properties = { @@ -210,7 +210,12 @@ export function genOpenapiSpec(config: Config) { }; spec.paths['/' + endpoint.name] = { - ...(endpoint.meta.allowGet ? { get: info } : {}), + ...(endpoint.meta.allowGet ? { + get: { + ...info, + operationId: 'get/' + endpoint.name, + }, + } : {}), post: info, }; } diff --git a/packages/backend/src/server/api/openapi/schemas.ts b/packages/backend/src/server/api/openapi/schemas.ts index 2716f5f1629c..a862a7b74252 100644 --- a/packages/backend/src/server/api/openapi/schemas.ts +++ b/packages/backend/src/server/api/openapi/schemas.ts @@ -6,32 +6,35 @@ import type { Schema } from '@/misc/json-schema.js'; import { refs } from '@/misc/json-schema.js'; -export function convertSchemaToOpenApiSchema(schema: Schema) { - // optional, refはスキーマ定義に含まれないので分離しておく +export function convertSchemaToOpenApiSchema(schema: Schema, type: 'param' | 'res') { + // optional, nullable, refはスキーマ定義に含まれないので分離しておく // eslint-disable-next-line @typescript-eslint/no-unused-vars - const { optional, ref, ...res }: any = schema; + const { optional, nullable, ref, ...res }: any = schema; if (schema.type === 'object' && schema.properties) { - const required = Object.entries(schema.properties).filter(([k, v]) => !v.optional).map(([k]) => k); - if (required.length > 0) { + if (type === 'res') { + const required = Object.entries(schema.properties).filter(([k, v]) => !v.optional).map(([k]) => k); + if (required.length > 0) { // 空配列は許可されない - res.required = required; + res.required = required; + } } for (const k of Object.keys(schema.properties)) { - res.properties[k] = convertSchemaToOpenApiSchema(schema.properties[k]); + res.properties[k] = convertSchemaToOpenApiSchema(schema.properties[k], type); } } if (schema.type === 'array' && schema.items) { - res.items = convertSchemaToOpenApiSchema(schema.items); + res.items = convertSchemaToOpenApiSchema(schema.items, type); } - if (schema.anyOf) res.anyOf = schema.anyOf.map(convertSchemaToOpenApiSchema); - if (schema.oneOf) res.oneOf = schema.oneOf.map(convertSchemaToOpenApiSchema); - if (schema.allOf) res.allOf = schema.allOf.map(convertSchemaToOpenApiSchema); + for (const o of ['anyOf', 'oneOf', 'allOf'] as const) { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + if (o in schema) res[o] = schema[o]!.map(schema => convertSchemaToOpenApiSchema(schema, type)); + } - if (schema.ref) { + if (type === 'res' && schema.ref) { const $ref = `#/components/schemas/${schema.ref}`; if (schema.nullable || schema.optional) { res.allOf = [{ $ref }]; @@ -40,6 +43,14 @@ export function convertSchemaToOpenApiSchema(schema: Schema) { } } + if (schema.nullable) { + if (Array.isArray(schema.type) && !schema.type.includes('null')) { + res.type.push('null'); + } else if (typeof schema.type === 'string') { + res.type = [res.type, 'null']; + } + } + return res; } @@ -72,6 +83,6 @@ export const schemas = { }, ...Object.fromEntries( - Object.entries(refs).map(([key, schema]) => [key, convertSchemaToOpenApiSchema(schema)]), + Object.entries(refs).map(([key, schema]) => [key, convertSchemaToOpenApiSchema(schema, 'res')]), ), }; diff --git a/packages/misskey-js/generator/package.json b/packages/misskey-js/generator/package.json index 9c15965b122b..a1c0f41cb285 100644 --- a/packages/misskey-js/generator/package.json +++ b/packages/misskey-js/generator/package.json @@ -7,14 +7,14 @@ "generate": "tsx src/generator.ts && eslint ./built/**/* --ext .ts --fix" }, "devDependencies": { - "@apidevtools/swagger-parser": "10.1.0", "@misskey-dev/eslint-plugin": "^1.0.0", + "@readme/openapi-parser": "2.5.0", "@types/node": "20.9.1", "@typescript-eslint/eslint-plugin": "6.11.0", "@typescript-eslint/parser": "6.11.0", "eslint": "8.53.0", "openapi-types": "12.1.3", - "openapi-typescript": "6.7.1", + "openapi-typescript": "6.7.3", "ts-case-convert": "2.0.2", "tsx": "4.4.0", "typescript": "5.3.3" diff --git a/packages/misskey-js/generator/src/generator.ts b/packages/misskey-js/generator/src/generator.ts index 6a7b509f5e3c..5a212aae4512 100644 --- a/packages/misskey-js/generator/src/generator.ts +++ b/packages/misskey-js/generator/src/generator.ts @@ -1,7 +1,7 @@ import { mkdir, writeFile } from 'fs/promises'; import { OpenAPIV3_1 } from 'openapi-types'; import { toPascal } from 'ts-case-convert'; -import SwaggerParser from '@apidevtools/swagger-parser'; +import OpenAPIParser from '@readme/openapi-parser'; import openapiTS from 'openapi-typescript'; function generateVersionHeaderComment(openApiDocs: OpenAPIV3_1.Document): string { @@ -330,7 +330,7 @@ async function main() { await mkdir(generatePath, { recursive: true }); const openApiJsonPath = './api.json'; - const openApiDocs = await SwaggerParser.validate(openApiJsonPath) as OpenAPIV3_1.Document; + const openApiDocs = await OpenAPIParser.validate(openApiJsonPath) as OpenAPIV3_1.Document; const typeFileName = './built/autogen/types.ts'; await generateBaseTypes(openApiDocs, openApiJsonPath, typeFileName); diff --git a/packages/misskey-js/src/autogen/apiClientJSDoc.ts b/packages/misskey-js/src/autogen/apiClientJSDoc.ts index 34fe50e9484e..4730f7b9d55d 100644 --- a/packages/misskey-js/src/autogen/apiClientJSDoc.ts +++ b/packages/misskey-js/src/autogen/apiClientJSDoc.ts @@ -1,6 +1,6 @@ /* * version: 2023.12.2 - * generatedAt: 2024-01-11T14:29:04.817Z + * generatedAt: 2024-01-13T02:47:41.647Z */ import type { SwitchCaseResponseType } from '../api.js'; diff --git a/packages/misskey-js/src/autogen/endpoint.ts b/packages/misskey-js/src/autogen/endpoint.ts index 8208c200dc7e..4ce8830a5dbb 100644 --- a/packages/misskey-js/src/autogen/endpoint.ts +++ b/packages/misskey-js/src/autogen/endpoint.ts @@ -1,6 +1,6 @@ /* * version: 2023.12.2 - * generatedAt: 2024-01-11T14:29:04.814Z + * generatedAt: 2024-01-13T02:47:41.642Z */ import type { diff --git a/packages/misskey-js/src/autogen/entities.ts b/packages/misskey-js/src/autogen/entities.ts index 5bac5ac270bb..e7e09f38049d 100644 --- a/packages/misskey-js/src/autogen/entities.ts +++ b/packages/misskey-js/src/autogen/entities.ts @@ -1,6 +1,6 @@ /* * version: 2023.12.2 - * generatedAt: 2024-01-11T14:29:04.811Z + * generatedAt: 2024-01-13T02:47:41.639Z */ import { operations } from './types.js'; diff --git a/packages/misskey-js/src/autogen/models.ts b/packages/misskey-js/src/autogen/models.ts index 518f6a86358c..e9b3a84e0d3a 100644 --- a/packages/misskey-js/src/autogen/models.ts +++ b/packages/misskey-js/src/autogen/models.ts @@ -1,6 +1,6 @@ /* * version: 2023.12.2 - * generatedAt: 2024-01-11T14:29:04.810Z + * generatedAt: 2024-01-13T02:47:41.637Z */ import { components } from './types.js'; diff --git a/packages/misskey-js/src/autogen/types.ts b/packages/misskey-js/src/autogen/types.ts index d0aa2409074a..98eea60c837c 100644 --- a/packages/misskey-js/src/autogen/types.ts +++ b/packages/misskey-js/src/autogen/types.ts @@ -3,7 +3,7 @@ /* * version: 2023.12.2 - * generatedAt: 2024-01-11T14:29:04.681Z + * generatedAt: 2024-01-13T02:47:41.482Z */ /** @@ -989,7 +989,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['charts/active-users']; + get: operations['get/charts/active-users']; /** * charts/active-users * @description No description provided. @@ -1005,7 +1005,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['charts/ap-request']; + get: operations['get/charts/ap-request']; /** * charts/ap-request * @description No description provided. @@ -1021,7 +1021,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['charts/drive']; + get: operations['get/charts/drive']; /** * charts/drive * @description No description provided. @@ -1037,7 +1037,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['charts/federation']; + get: operations['get/charts/federation']; /** * charts/federation * @description No description provided. @@ -1053,7 +1053,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['charts/instance']; + get: operations['get/charts/instance']; /** * charts/instance * @description No description provided. @@ -1069,7 +1069,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['charts/notes']; + get: operations['get/charts/notes']; /** * charts/notes * @description No description provided. @@ -1085,7 +1085,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['charts/user/drive']; + get: operations['get/charts/user/drive']; /** * charts/user/drive * @description No description provided. @@ -1101,7 +1101,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['charts/user/following']; + get: operations['get/charts/user/following']; /** * charts/user/following * @description No description provided. @@ -1117,7 +1117,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['charts/user/notes']; + get: operations['get/charts/user/notes']; /** * charts/user/notes * @description No description provided. @@ -1133,7 +1133,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['charts/user/pv']; + get: operations['get/charts/user/pv']; /** * charts/user/pv * @description No description provided. @@ -1149,7 +1149,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['charts/user/reactions']; + get: operations['get/charts/user/reactions']; /** * charts/user/reactions * @description No description provided. @@ -1165,7 +1165,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['charts/users']; + get: operations['get/charts/users']; /** * charts/users * @description No description provided. @@ -1497,7 +1497,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['federation/instances']; + get: operations['get/federation/instances']; /** * federation/instances * @description No description provided. @@ -1540,7 +1540,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['federation/stats']; + get: operations['get/federation/stats']; /** * federation/stats * @description No description provided. @@ -1718,7 +1718,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['get-online-users-count']; + get: operations['get/get-online-users-count']; /** * get-online-users-count * @description No description provided. @@ -1770,7 +1770,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['hashtags/trend']; + get: operations['get/hashtags/trend']; /** * hashtags/trend * @description No description provided. @@ -2384,7 +2384,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['emojis']; + get: operations['get/emojis']; /** * emojis * @description No description provided. @@ -2400,7 +2400,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['emoji']; + get: operations['get/emoji']; /** * emoji * @description No description provided. @@ -2561,7 +2561,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['notes/featured']; + get: operations['get/notes/featured']; /** * notes/featured * @description No description provided. @@ -2631,7 +2631,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['notes/reactions']; + get: operations['get/notes/reactions']; /** * notes/reactions * @description No description provided. @@ -3044,7 +3044,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['server-info']; + get: operations['get/server-info']; /** * server-info * @description No description provided. @@ -3180,7 +3180,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['users/featured-notes']; + get: operations['get/users/featured-notes']; /** * users/featured-notes * @description No description provided. @@ -3412,7 +3412,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['fetch-rss']; + get: operations['get/fetch-rss']; /** * fetch-rss * @description No description provided. @@ -3438,7 +3438,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['retention']; + get: operations['get/retention']; /** * retention * @description No description provided. @@ -3463,7 +3463,7 @@ export type paths = { * * **Credential required**: *No* */ - get: operations['bubble-game/ranking']; + get: operations['get/bubble-game/ranking']; /** * bubble-game/ranking * @description No description provided. @@ -3816,7 +3816,7 @@ export type components = { fileIds?: string[]; files?: components['schemas']['DriveFile'][]; tags?: string[]; - poll?: Record | null; + poll?: Record | null; /** * Format: id * @example xxxxxxxxxx @@ -3839,7 +3839,7 @@ export type components = { url?: string; reactionAndUserPairCache?: string[]; clippedCount?: number; - myReaction?: Record | null; + myReaction?: Record | null; }; NoteReaction: { /** @@ -10749,7 +10749,7 @@ export type operations = { * * **Credential required**: *No* */ - 'charts/active-users': { + 'get/charts/active-users': { requestBody: { content: { 'application/json': { @@ -10812,12 +10812,12 @@ export type operations = { }; }; /** - * charts/ap-request + * charts/active-users * @description No description provided. * * **Credential required**: *No* */ - 'charts/ap-request': { + 'charts/active-users': { requestBody: { content: { 'application/json': { @@ -10835,9 +10835,15 @@ export type operations = { 200: { content: { 'application/json': { - deliverFailed: number[]; - deliverSucceeded: number[]; - inboxReceived: number[]; + readWrite: number[]; + read: number[]; + write: number[]; + registeredWithinWeek: number[]; + registeredWithinMonth: number[]; + registeredWithinYear: number[]; + registeredOutsideWeek: number[]; + registeredOutsideMonth: number[]; + registeredOutsideYear: number[]; }; }; }; @@ -10874,12 +10880,12 @@ export type operations = { }; }; /** - * charts/drive + * charts/ap-request * @description No description provided. * * **Credential required**: *No* */ - 'charts/drive': { + 'get/charts/ap-request': { requestBody: { content: { 'application/json': { @@ -10897,14 +10903,9 @@ export type operations = { 200: { content: { 'application/json': { - 'local.incCount': number[]; - 'local.incSize': number[]; - 'local.decCount': number[]; - 'local.decSize': number[]; - 'remote.incCount': number[]; - 'remote.incSize': number[]; - 'remote.decCount': number[]; - 'remote.decSize': number[]; + deliverFailed: number[]; + deliverSucceeded: number[]; + inboxReceived: number[]; }; }; }; @@ -10941,12 +10942,12 @@ export type operations = { }; }; /** - * charts/federation + * charts/ap-request * @description No description provided. * * **Credential required**: *No* */ - 'charts/federation': { + 'charts/ap-request': { requestBody: { content: { 'application/json': { @@ -10964,14 +10965,9 @@ export type operations = { 200: { content: { 'application/json': { - deliveredInstances: number[]; - inboxInstances: number[]; - stalled: number[]; - sub: number[]; - pub: number[]; - pubsub: number[]; - subActive: number[]; - pubActive: number[]; + deliverFailed: number[]; + deliverSucceeded: number[]; + inboxReceived: number[]; }; }; }; @@ -11008,12 +11004,12 @@ export type operations = { }; }; /** - * charts/instance + * charts/drive * @description No description provided. * * **Credential required**: *No* */ - 'charts/instance': { + 'get/charts/drive': { requestBody: { content: { 'application/json': { @@ -11023,7 +11019,6 @@ export type operations = { limit?: number; /** @default null */ offset?: number | null; - host: string; }; }; }; @@ -11032,30 +11027,14 @@ export type operations = { 200: { content: { 'application/json': { - 'requests.failed': number[]; - 'requests.succeeded': number[]; - 'requests.received': number[]; - 'notes.total': number[]; - 'notes.inc': number[]; - 'notes.dec': number[]; - 'notes.diffs.normal': number[]; - 'notes.diffs.reply': number[]; - 'notes.diffs.renote': number[]; - 'notes.diffs.withFile': number[]; - 'users.total': number[]; - 'users.inc': number[]; - 'users.dec': number[]; - 'following.total': number[]; - 'following.inc': number[]; - 'following.dec': number[]; - 'followers.total': number[]; - 'followers.inc': number[]; - 'followers.dec': number[]; - 'drive.totalFiles': number[]; - 'drive.incFiles': number[]; - 'drive.decFiles': number[]; - 'drive.incUsage': number[]; - 'drive.decUsage': number[]; + 'local.incCount': number[]; + 'local.incSize': number[]; + 'local.decCount': number[]; + 'local.decSize': number[]; + 'remote.incCount': number[]; + 'remote.incSize': number[]; + 'remote.decCount': number[]; + 'remote.decSize': number[]; }; }; }; @@ -11092,12 +11071,12 @@ export type operations = { }; }; /** - * charts/notes + * charts/drive * @description No description provided. * * **Credential required**: *No* */ - 'charts/notes': { + 'charts/drive': { requestBody: { content: { 'application/json': { @@ -11115,20 +11094,14 @@ export type operations = { 200: { content: { 'application/json': { - 'local.total': number[]; - 'local.inc': number[]; - 'local.dec': number[]; - 'local.diffs.normal': number[]; - 'local.diffs.reply': number[]; - 'local.diffs.renote': number[]; - 'local.diffs.withFile': number[]; - 'remote.total': number[]; - 'remote.inc': number[]; - 'remote.dec': number[]; - 'remote.diffs.normal': number[]; - 'remote.diffs.reply': number[]; - 'remote.diffs.renote': number[]; - 'remote.diffs.withFile': number[]; + 'local.incCount': number[]; + 'local.incSize': number[]; + 'local.decCount': number[]; + 'local.decSize': number[]; + 'remote.incCount': number[]; + 'remote.incSize': number[]; + 'remote.decCount': number[]; + 'remote.decSize': number[]; }; }; }; @@ -11165,12 +11138,12 @@ export type operations = { }; }; /** - * charts/user/drive + * charts/federation * @description No description provided. * * **Credential required**: *No* */ - 'charts/user/drive': { + 'get/charts/federation': { requestBody: { content: { 'application/json': { @@ -11180,8 +11153,6 @@ export type operations = { limit?: number; /** @default null */ offset?: number | null; - /** Format: misskey:id */ - userId: string; }; }; }; @@ -11190,12 +11161,14 @@ export type operations = { 200: { content: { 'application/json': { - totalCount: number[]; - totalSize: number[]; - incCount: number[]; - incSize: number[]; - decCount: number[]; - decSize: number[]; + deliveredInstances: number[]; + inboxInstances: number[]; + stalled: number[]; + sub: number[]; + pub: number[]; + pubsub: number[]; + subActive: number[]; + pubActive: number[]; }; }; }; @@ -11232,12 +11205,12 @@ export type operations = { }; }; /** - * charts/user/following + * charts/federation * @description No description provided. * * **Credential required**: *No* */ - 'charts/user/following': { + 'charts/federation': { requestBody: { content: { 'application/json': { @@ -11247,8 +11220,6 @@ export type operations = { limit?: number; /** @default null */ offset?: number | null; - /** Format: misskey:id */ - userId: string; }; }; }; @@ -11257,18 +11228,14 @@ export type operations = { 200: { content: { 'application/json': { - 'local.followings.total': number[]; - 'local.followings.inc': number[]; - 'local.followings.dec': number[]; - 'local.followers.total': number[]; - 'local.followers.inc': number[]; - 'local.followers.dec': number[]; - 'remote.followings.total': number[]; - 'remote.followings.inc': number[]; - 'remote.followings.dec': number[]; - 'remote.followers.total': number[]; - 'remote.followers.inc': number[]; - 'remote.followers.dec': number[]; + deliveredInstances: number[]; + inboxInstances: number[]; + stalled: number[]; + sub: number[]; + pub: number[]; + pubsub: number[]; + subActive: number[]; + pubActive: number[]; }; }; }; @@ -11305,12 +11272,12 @@ export type operations = { }; }; /** - * charts/user/notes + * charts/instance * @description No description provided. * * **Credential required**: *No* */ - 'charts/user/notes': { + 'get/charts/instance': { requestBody: { content: { 'application/json': { @@ -11320,8 +11287,7 @@ export type operations = { limit?: number; /** @default null */ offset?: number | null; - /** Format: misskey:id */ - userId: string; + host: string; }; }; }; @@ -11330,13 +11296,30 @@ export type operations = { 200: { content: { 'application/json': { - total: number[]; - inc: number[]; - dec: number[]; - 'diffs.normal': number[]; - 'diffs.reply': number[]; - 'diffs.renote': number[]; - 'diffs.withFile': number[]; + 'requests.failed': number[]; + 'requests.succeeded': number[]; + 'requests.received': number[]; + 'notes.total': number[]; + 'notes.inc': number[]; + 'notes.dec': number[]; + 'notes.diffs.normal': number[]; + 'notes.diffs.reply': number[]; + 'notes.diffs.renote': number[]; + 'notes.diffs.withFile': number[]; + 'users.total': number[]; + 'users.inc': number[]; + 'users.dec': number[]; + 'following.total': number[]; + 'following.inc': number[]; + 'following.dec': number[]; + 'followers.total': number[]; + 'followers.inc': number[]; + 'followers.dec': number[]; + 'drive.totalFiles': number[]; + 'drive.incFiles': number[]; + 'drive.decFiles': number[]; + 'drive.incUsage': number[]; + 'drive.decUsage': number[]; }; }; }; @@ -11373,12 +11356,12 @@ export type operations = { }; }; /** - * charts/user/pv + * charts/instance * @description No description provided. * * **Credential required**: *No* */ - 'charts/user/pv': { + 'charts/instance': { requestBody: { content: { 'application/json': { @@ -11388,8 +11371,7 @@ export type operations = { limit?: number; /** @default null */ offset?: number | null; - /** Format: misskey:id */ - userId: string; + host: string; }; }; }; @@ -11398,10 +11380,848 @@ export type operations = { 200: { content: { 'application/json': { - 'upv.user': number[]; - 'pv.user': number[]; - 'upv.visitor': number[]; - 'pv.visitor': number[]; + 'requests.failed': number[]; + 'requests.succeeded': number[]; + 'requests.received': number[]; + 'notes.total': number[]; + 'notes.inc': number[]; + 'notes.dec': number[]; + 'notes.diffs.normal': number[]; + 'notes.diffs.reply': number[]; + 'notes.diffs.renote': number[]; + 'notes.diffs.withFile': number[]; + 'users.total': number[]; + 'users.inc': number[]; + 'users.dec': number[]; + 'following.total': number[]; + 'following.inc': number[]; + 'following.dec': number[]; + 'followers.total': number[]; + 'followers.inc': number[]; + 'followers.dec': number[]; + 'drive.totalFiles': number[]; + 'drive.incFiles': number[]; + 'drive.decFiles': number[]; + 'drive.incUsage': number[]; + 'drive.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* + */ + 'get/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[]; + 'local.inc': number[]; + 'local.dec': number[]; + 'local.diffs.normal': number[]; + 'local.diffs.reply': number[]; + 'local.diffs.renote': number[]; + 'local.diffs.withFile': number[]; + 'remote.total': number[]; + 'remote.inc': number[]; + 'remote.dec': number[]; + 'remote.diffs.normal': number[]; + 'remote.diffs.reply': number[]; + 'remote.diffs.renote': number[]; + 'remote.diffs.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/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[]; + 'local.inc': number[]; + 'local.dec': number[]; + 'local.diffs.normal': number[]; + 'local.diffs.reply': number[]; + 'local.diffs.renote': number[]; + 'local.diffs.withFile': number[]; + 'remote.total': number[]; + 'remote.inc': number[]; + 'remote.dec': number[]; + 'remote.diffs.normal': number[]; + 'remote.diffs.reply': number[]; + 'remote.diffs.renote': number[]; + 'remote.diffs.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* + */ + 'get/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/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* + */ + 'get/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[]; + 'local.followings.inc': number[]; + 'local.followings.dec': number[]; + 'local.followers.total': number[]; + 'local.followers.inc': number[]; + 'local.followers.dec': number[]; + 'remote.followings.total': number[]; + 'remote.followings.inc': number[]; + 'remote.followings.dec': number[]; + 'remote.followers.total': number[]; + 'remote.followers.inc': number[]; + 'remote.followers.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/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[]; + 'local.followings.inc': number[]; + 'local.followings.dec': number[]; + 'local.followers.total': number[]; + 'local.followers.inc': number[]; + 'local.followers.dec': number[]; + 'remote.followings.total': number[]; + 'remote.followings.inc': number[]; + 'remote.followings.dec': number[]; + 'remote.followers.total': number[]; + 'remote.followers.inc': number[]; + 'remote.followers.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* + */ + 'get/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[]; + 'diffs.reply': number[]; + 'diffs.renote': number[]; + 'diffs.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/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[]; + 'diffs.reply': number[]; + 'diffs.renote': number[]; + 'diffs.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* + */ + 'get/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[]; + 'pv.user': number[]; + 'upv.visitor': number[]; + 'pv.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/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[]; + 'pv.user': number[]; + 'upv.visitor': number[]; + 'pv.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* + */ + 'get/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/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[]; }; }; }; @@ -11438,12 +12258,12 @@ export type operations = { }; }; /** - * charts/user/reactions + * charts/users * @description No description provided. * * **Credential required**: *No* */ - 'charts/user/reactions': { + 'get/charts/users': { requestBody: { content: { 'application/json': { @@ -11453,8 +12273,6 @@ export type operations = { limit?: number; /** @default null */ offset?: number | null; - /** Format: misskey:id */ - userId: string; }; }; }; @@ -11463,8 +12281,12 @@ export type operations = { 200: { content: { 'application/json': { - 'local.count': number[]; - 'remote.count': number[]; + 'local.total': number[]; + 'local.inc': number[]; + 'local.dec': number[]; + 'remote.total': number[]; + 'remote.inc': number[]; + 'remote.dec': number[]; }; }; }; @@ -13543,6 +14365,73 @@ export type operations = { }; }; }; + /** + * federation/instances + * @description No description provided. + * + * **Credential required**: *No* + */ + 'get/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/instances * @description No description provided. @@ -13778,6 +14667,65 @@ export type operations = { }; }; }; + /** + * federation/stats + * @description No description provided. + * + * **Credential required**: *No* + */ + 'get/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/stats * @description No description provided. @@ -14859,6 +15807,54 @@ export type operations = { }; }; }; + /** + * get-online-users-count + * @description No description provided. + * + * **Credential required**: *No* + */ + 'get/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']; + }; + }; + }; + }; /** * get-online-users-count * @description No description provided. @@ -15135,6 +16131,56 @@ export type operations = { }; }; }; + /** + * hashtags/trend + * @description No description provided. + * + * **Credential required**: *No* + */ + 'get/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/trend * @description No description provided. @@ -18889,6 +19935,54 @@ export type operations = { }; }; }; + /** + * emojis + * @description No description provided. + * + * **Credential required**: *No* + */ + 'get/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']; + }; + }; + }; + }; /** * emojis * @description No description provided. @@ -18937,6 +20031,59 @@ export type operations = { }; }; }; + /** + * emoji + * @description No description provided. + * + * **Credential required**: *No* + */ + 'get/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']; + }; + }; + }; + }; /** * emoji * @description No description provided. @@ -19943,6 +21090,64 @@ export type operations = { }; }; }; + /** + * notes/featured + * @description No description provided. + * + * **Credential required**: *No* + */ + 'get/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/featured * @description No description provided. @@ -20377,6 +21582,67 @@ export type operations = { }; }; }; + /** + * notes/reactions + * @description No description provided. + * + * **Credential required**: *No* + */ + 'get/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 * @description No description provided. @@ -22850,14 +24116,66 @@ export type operations = { }; }; }; - }; - /** - * reset-db - * @description Only available when running with NODE_ENV=testing. Reset the database and flush Redis. - * - * **Credential required**: *No* - */ - 'reset-db': { + }; + /** + * 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: { @@ -22896,24 +24214,31 @@ export type operations = { }; }; /** - * reset-password - * @description Complete the password reset that was previously requested. + * server-info + * @description No description provided. * * **Credential required**: *No* */ - 'reset-password': { - requestBody: { - content: { - 'application/json': { - token: string; - password: string; - }; - }; - }; + 'get/server-info': { responses: { - /** @description OK (without any results) */ - 204: { - content: never; + /** @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: { @@ -23799,6 +25124,64 @@ export type operations = { }; }; }; + /** + * users/featured-notes + * @description No description provided. + * + * **Credential required**: *No* + */ + 'get/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/featured-notes * @description No description provided. @@ -25256,6 +26639,61 @@ export type operations = { }; }; }; + /** + * fetch-rss + * @description No description provided. + * + * **Credential required**: *No* + */ + 'get/fetch-rss': { + requestBody: { + content: { + 'application/json': { + url: string; + }; + }; + }; + responses: { + /** @description OK (with results) */ + 200: { + content: { + 'application/json': { + items: 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']; + }; + }; + }; + }; /** * fetch-rss * @description No description provided. @@ -25375,6 +26813,52 @@ export type operations = { }; }; }; + /** + * retention + * @description No description provided. + * + * **Credential required**: *No* + */ + 'get/retention': { + responses: { + /** @description OK (with results) */ + 200: { + content: { + 'application/json': 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']; + }; + }; + }; + }; /** * retention * @description No description provided. @@ -25484,6 +26968,64 @@ export type operations = { }; }; }; + /** + * bubble-game/ranking + * @description No description provided. + * + * **Credential required**: *No* + */ + 'get/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/ranking * @description No description provided. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 400051bce79c..825a7ab860bb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1080,12 +1080,12 @@ importers: packages/misskey-js/generator: devDependencies: - '@apidevtools/swagger-parser': - specifier: 10.1.0 - version: 10.1.0(openapi-types@12.1.3) '@misskey-dev/eslint-plugin': specifier: ^1.0.0 version: 1.0.0(@typescript-eslint/eslint-plugin@6.11.0)(@typescript-eslint/parser@6.11.0)(eslint-plugin-import@2.29.1)(eslint@8.53.0) + '@readme/openapi-parser': + specifier: 2.5.0 + version: 2.5.0(openapi-types@12.1.3) '@types/node': specifier: 20.9.1 version: 20.9.1 @@ -1102,8 +1102,8 @@ importers: specifier: 12.1.3 version: 12.1.3 openapi-typescript: - specifier: 6.7.1 - version: 6.7.1 + specifier: 6.7.3 + version: 6.7.3 ts-case-convert: specifier: 2.0.2 version: 2.0.2 @@ -1167,14 +1167,6 @@ packages: '@jridgewell/trace-mapping': 0.3.18 dev: true - /@apidevtools/json-schema-ref-parser@9.0.6: - resolution: {integrity: sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==} - dependencies: - '@jsdevtools/ono': 7.1.3 - call-me-maybe: 1.0.2 - js-yaml: 3.14.1 - dev: true - /@apidevtools/openapi-schemas@2.1.0: resolution: {integrity: sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==} engines: {node: '>=10'} @@ -1184,21 +1176,6 @@ packages: resolution: {integrity: sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==} dev: true - /@apidevtools/swagger-parser@10.1.0(openapi-types@12.1.3): - resolution: {integrity: sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw==} - peerDependencies: - openapi-types: '>=7' - dependencies: - '@apidevtools/json-schema-ref-parser': 9.0.6 - '@apidevtools/openapi-schemas': 2.1.0 - '@apidevtools/swagger-methods': 3.0.2 - '@jsdevtools/ono': 7.1.3 - ajv: 8.12.0 - ajv-draft-04: 1.0.0(ajv@8.12.0) - call-me-maybe: 1.0.2 - openapi-types: 12.1.3 - dev: true - /@aw-web-design/x-default-browser@1.4.126: resolution: {integrity: sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==} hasBin: true @@ -1835,7 +1812,7 @@ packages: '@babel/traverse': 7.22.11 '@babel/types': 7.22.17 convert-source-map: 1.9.0 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -1858,7 +1835,7 @@ packages: '@babel/traverse': 7.23.5 '@babel/types': 7.23.5 convert-source-map: 2.0.0 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -1960,7 +1937,7 @@ packages: '@babel/core': 7.23.5 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -3328,7 +3305,6 @@ packages: engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.0 - dev: false /@babel/template@7.22.15: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} @@ -3360,7 +3336,7 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.23.5 '@babel/types': 7.22.17 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -3378,7 +3354,7 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.23.5 '@babel/types': 7.23.5 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -4257,7 +4233,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 globals: 13.19.0 ignore: 5.2.4 @@ -4274,7 +4250,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 globals: 13.19.0 ignore: 5.2.4 @@ -4539,7 +4515,7 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -4550,6 +4526,11 @@ packages: engines: {node: '>=12.22'} dev: true + /@humanwhocodes/momoa@2.0.4: + resolution: {integrity: sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==} + engines: {node: '>=10.10.0'} + dev: true + /@humanwhocodes/object-schema@2.0.1: resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true @@ -5108,7 +5089,7 @@ packages: '@open-draft/until': 1.0.3 '@types/debug': 4.1.7 '@xmldom/xmldom': 0.8.6 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) headers-polyfill: 3.2.5 outvariant: 1.4.0 strict-event-emitter: 0.2.8 @@ -5863,6 +5844,48 @@ packages: '@babel/runtime': 7.23.2 dev: true + /@readme/better-ajv-errors@1.6.0(ajv@8.12.0): + resolution: {integrity: sha512-9gO9rld84Jgu13kcbKRU+WHseNhaVt76wYMeRDGsUGYxwJtI3RmEJ9LY9dZCYQGI8eUZLuxb5qDja0nqklpFjQ==} + engines: {node: '>=14'} + peerDependencies: + ajv: 4.11.8 - 8 + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/runtime': 7.23.4 + '@humanwhocodes/momoa': 2.0.4 + ajv: 8.12.0 + chalk: 4.1.2 + json-to-ast: 2.1.0 + jsonpointer: 5.0.1 + leven: 3.1.0 + dev: true + + /@readme/json-schema-ref-parser@1.2.0: + resolution: {integrity: sha512-Bt3QVovFSua4QmHa65EHUmh2xS0XJ3rgTEUPH998f4OW4VVJke3BuS16f+kM0ZLOGdvIrzrPRqwihuv5BAjtrA==} + dependencies: + '@jsdevtools/ono': 7.1.3 + '@types/json-schema': 7.0.12 + call-me-maybe: 1.0.2 + js-yaml: 4.1.0 + dev: true + + /@readme/openapi-parser@2.5.0(openapi-types@12.1.3): + resolution: {integrity: sha512-IbymbOqRuUzoIgxfAAR7XJt2FWl6n2yqN09fF5adacGm7W03siA3bj1Emql0X9D2T+RpBYz3x9zDsMhuoMP62A==} + engines: {node: '>=14'} + peerDependencies: + openapi-types: '>=7' + dependencies: + '@apidevtools/openapi-schemas': 2.1.0 + '@apidevtools/swagger-methods': 3.0.2 + '@jsdevtools/ono': 7.1.3 + '@readme/better-ajv-errors': 1.6.0(ajv@8.12.0) + '@readme/json-schema-ref-parser': 1.2.0 + ajv: 8.12.0 + ajv-draft-04: 1.0.0(ajv@8.12.0) + call-me-maybe: 1.0.2 + openapi-types: 12.1.3 + dev: true + /@rollup/plugin-json@6.1.0(rollup@4.9.1): resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} engines: {node: '>=14.0.0'} @@ -8532,7 +8555,7 @@ packages: '@typescript-eslint/type-utils': 6.11.0(eslint@8.53.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.11.0 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) eslint: 8.53.0 graphemer: 1.4.0 ignore: 5.2.4 @@ -8561,7 +8584,7 @@ packages: '@typescript-eslint/type-utils': 6.14.0(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.14.0(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.14.0 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 graphemer: 1.4.0 ignore: 5.2.4 @@ -8587,7 +8610,7 @@ packages: '@typescript-eslint/types': 6.11.0 '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.11.0 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) eslint: 8.53.0 typescript: 5.3.3 transitivePeerDependencies: @@ -8608,7 +8631,7 @@ packages: '@typescript-eslint/types': 6.14.0 '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.14.0 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 typescript: 5.3.3 transitivePeerDependencies: @@ -8643,7 +8666,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3) '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.3.3) - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) eslint: 8.53.0 ts-api-utils: 1.0.1(typescript@5.3.3) typescript: 5.3.3 @@ -8663,7 +8686,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.3.3) '@typescript-eslint/utils': 6.14.0(eslint@8.56.0)(typescript@5.3.3) - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 ts-api-utils: 1.0.1(typescript@5.3.3) typescript: 5.3.3 @@ -8692,7 +8715,7 @@ packages: dependencies: '@typescript-eslint/types': 6.11.0 '@typescript-eslint/visitor-keys': 6.11.0 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 @@ -8713,7 +8736,7 @@ packages: dependencies: '@typescript-eslint/types': 6.14.0 '@typescript-eslint/visitor-keys': 6.14.0 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 @@ -9170,7 +9193,7 @@ packages: engines: {node: '>= 6.0.0'} requiresBuild: true dependencies: - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -9178,7 +9201,7 @@ packages: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} engines: {node: '>= 14'} dependencies: - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: false @@ -9564,7 +9587,7 @@ packages: resolution: {integrity: sha512-TAlMYvOuwGyLK3PfBb5WKBXZmXz2fVCgv23d6zZFdle/q3gPjmxBaeuC0pY0Dzs5PWMSgfqqEZkrye19GlDTgw==} dependencies: archy: 1.0.0 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) fastq: 1.15.0 transitivePeerDependencies: - supports-color @@ -10432,6 +10455,11 @@ packages: engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} dev: true + /code-error-fragment@0.0.230: + resolution: {integrity: sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==} + engines: {node: '>= 4'} + dev: true + /collect-v8-coverage@1.0.1: resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} dev: true @@ -11008,6 +11036,7 @@ packages: dependencies: ms: 2.1.2 supports-color: 5.5.0 + dev: true /debug@4.3.4(supports-color@8.1.1): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -11020,7 +11049,6 @@ packages: dependencies: ms: 2.1.2 supports-color: 8.1.1 - dev: true /decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} @@ -11237,7 +11265,7 @@ packages: hasBin: true dependencies: address: 1.2.2 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true @@ -11561,7 +11589,7 @@ packages: peerDependencies: esbuild: '>=0.12 <1' dependencies: - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) esbuild: 0.18.20 transitivePeerDependencies: - supports-color @@ -11899,7 +11927,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -11946,7 +11974,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -12576,7 +12604,7 @@ packages: debug: optional: true dependencies: - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -13054,6 +13082,10 @@ packages: /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true @@ -13128,6 +13160,7 @@ packages: /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} + dev: true /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -13265,7 +13298,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: false @@ -13327,7 +13360,7 @@ packages: engines: {node: '>= 6.0.0'} dependencies: agent-base: 5.1.1 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true @@ -13337,7 +13370,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -13346,7 +13379,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: false @@ -13356,7 +13389,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: false @@ -13516,7 +13549,7 @@ packages: dependencies: '@ioredis/commands': 1.2.0 cluster-key-slot: 1.1.2 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -13957,7 +13990,7 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) istanbul-lib-coverage: 3.2.0 source-map: 0.6.1 transitivePeerDependencies: @@ -14634,7 +14667,7 @@ packages: resolution: {integrity: sha512-pJ4XLQP4Q9HTxl6RVDLJ8Cyh1uitSs0CzDBAz1uoJ4sRD/Bk7cFSXL1FUXDW3zJ7YnfliJx6eu8Jn283bpZ4Yg==} engines: {node: '>=10'} dependencies: - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) rfdc: 1.3.0 uri-js: 4.4.1 transitivePeerDependencies: @@ -14657,6 +14690,14 @@ packages: /json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + /json-to-ast@2.1.0: + resolution: {integrity: sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==} + engines: {node: '>= 4'} + dependencies: + code-error-fragment: 0.0.230 + grapheme-splitter: 1.0.4 + dev: true + /json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true @@ -14704,6 +14745,11 @@ packages: - web-streams-polyfill dev: false + /jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + dev: true + /jsprim@1.4.2: resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} engines: {node: '>=0.6.0'} @@ -16051,15 +16097,15 @@ packages: /openapi-types@12.1.3: resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} - /openapi-typescript@6.7.1: - resolution: {integrity: sha512-Q3Ltt0KUm2smcPrsaR8qKmSwQ1KM4yGDJVoQdpYa0yvKPeN8huDx5utMT7DvwvJastHHzUxajjivK3WN2+fobg==} + /openapi-typescript@6.7.3: + resolution: {integrity: sha512-es3mGcDXV6TKPo6n3aohzHm0qxhLyR39MhF6mkD1FwFGjhxnqMqfSIgM0eCpInZvqatve4CxmXcMZw3jnnsaXw==} hasBin: true dependencies: ansi-colors: 4.1.3 fast-glob: 3.3.2 js-yaml: 4.1.0 supports-color: 9.4.0 - undici: 5.28.1 + undici: 5.28.2 yargs-parser: 21.1.1 dev: true @@ -17232,7 +17278,7 @@ packages: engines: {node: '>=8.16.0'} dependencies: '@types/mime-types': 2.1.4 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) extract-zip: 1.7.0 https-proxy-agent: 4.0.0 mime: 2.6.0 @@ -18229,7 +18275,7 @@ packages: dependencies: '@hapi/hoek': 10.0.1 '@hapi/wreck': 18.0.1 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) joi: 17.7.0 transitivePeerDependencies: - supports-color @@ -18429,7 +18475,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) socks: 2.7.1 transitivePeerDependencies: - supports-color @@ -18582,7 +18628,7 @@ packages: arg: 5.0.2 bluebird: 3.7.2 check-more-types: 2.24.0 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) execa: 5.1.1 lazy-ass: 1.6.0 ps-tree: 1.2.0 @@ -18846,6 +18892,7 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 + dev: true /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} @@ -19468,7 +19515,7 @@ packages: chalk: 4.1.2 cli-highlight: 2.1.11 date-fns: 2.30.0 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) dotenv: 16.0.3 glob: 8.1.0 ioredis: 5.3.2 @@ -19548,6 +19595,14 @@ packages: engines: {node: '>=14.0'} dependencies: '@fastify/busboy': 2.1.0 + dev: false + + /undici@5.28.2: + resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==} + engines: {node: '>=14.0'} + dependencies: + '@fastify/busboy': 2.1.0 + dev: true /unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} @@ -19825,7 +19880,7 @@ packages: hasBin: true dependencies: cac: 6.7.14 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 @@ -19937,7 +19992,7 @@ packages: acorn-walk: 8.2.0 cac: 6.7.14 chai: 4.3.10 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) happy-dom: 10.0.3 local-pkg: 0.4.3 magic-string: 0.30.3 @@ -20019,7 +20074,7 @@ packages: peerDependencies: eslint: '>=6.0.0' dependencies: - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 From 788072cddab213c7f909818a8ade3df82cd55bbd Mon Sep 17 00:00:00 2001 From: zyoshoka Date: Sat, 13 Jan 2024 11:55:19 +0900 Subject: [PATCH 13/20] =?UTF-8?q?fix(misskey-js):=20=E5=9E=8B=E7=94=9F?= =?UTF-8?q?=E6=88=90=E3=82=92OpenAPI=20Specification=203.1.0=E3=81=AB?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- locales/index.d.ts | 1 + locales/ja-JP.yml | 1 + .../assets/drop-and-fusion/10000yen.png | Bin 87607 -> 93558 bytes .../{poi1.mp3 => collision.mp3} | Bin .../assets/drop-and-fusion/collision_yen.mp3 | Bin 0 -> 7807 bytes .../{bubble2.mp3 => fusion.mp3} | Bin .../assets/drop-and-fusion/fusion_yen.mp3 | Bin 0 -> 7807 bytes .../src/components/MkPlusOneEffect.vue | 2 +- .../src/pages/drop-and-fusion.game.vue | 640 ++++++++---------- .../src/scripts/drop-and-fusion-engine.ts | 337 +++++++-- 10 files changed, 564 insertions(+), 417 deletions(-) rename packages/frontend/assets/drop-and-fusion/{poi1.mp3 => collision.mp3} (100%) create mode 100644 packages/frontend/assets/drop-and-fusion/collision_yen.mp3 rename packages/frontend/assets/drop-and-fusion/{bubble2.mp3 => fusion.mp3} (100%) create mode 100644 packages/frontend/assets/drop-and-fusion/fusion_yen.mp3 diff --git a/locales/index.d.ts b/locales/index.d.ts index fb0f332ec1e0..dafbdd35595c 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -1201,6 +1201,7 @@ export interface Locale { "replaying": string; "ranking": string; "lastNDays": string; + "backToTitle": string; "_bubbleGame": { "howToPlay": string; "_howToPlay": { diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 68c148da4c0f..58952894b37c 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1198,6 +1198,7 @@ replay: "リプレイ" replaying: "リプレイ中" ranking: "ランキング" lastNDays: "直近{n}日" +backToTitle: "タイトルへ" _bubbleGame: howToPlay: "遊び方" diff --git a/packages/frontend/assets/drop-and-fusion/10000yen.png b/packages/frontend/assets/drop-and-fusion/10000yen.png index 69b0dc926a0a42e4f29c5563d8010ef55f201a87..bda777719d1264314827ec9f100706bdd2fa2d47 100644 GIT binary patch literal 93558 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

1!$}j=vR|X>@4Em2Jj8DrHEaM&{HEdlC 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%0AmE{jNvK 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 ATmS$7 literal 87607 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, { value: 1, }); diff --git a/packages/frontend/src/pages/drop-and-fusion.game.vue b/packages/frontend/src/pages/drop-and-fusion.game.vue index fa955806c00b..9161e08fc8f6 100644 --- a/packages/frontend/src/pages/drop-and-fusion.game.vue +++ b/packages/frontend/src/pages/drop-and-fusion.game.vue @@ -8,141 +8,135 @@ SPDX-License-Identifier: AGPL-3.0-only

Loading...
- -
-
-
-
- BUBBLE GAME -
- {{ gameMode }} -
-
+ +
+
+
+
+ BUBBLE GAME +
- {{ gameMode }} -
-
-
- HOLD - -
-
- - - -
+
+
+
+ HOLD + +
+
+ + +
-
- - - +
+
+ + + + +
{{ comboPrev }} Chain!
+
+
+ -
{{ comboPrev }} Chain!
+
-
- - - - - + +
+
+
+ +
SCORE: {{ gameMode === 'yen' ? '円' : 'pt' }}
+
MAX CHAIN:
+
TOTAL EARNINGS:
-
-
- -
SCORE: {{ gameMode === 'yen' ? '円' : 'pt' }}
-
MAX CHAIN:
-
+
+
{{ i18n.ts.replaying }}
+
+
+
+
+
-
{{ i18n.ts.replaying }}
-
-
-
-
-
+
+
+ END + x4 + x16
-
-
- END - x4 - x16 -
+
+
+
+
+
+ {{ i18n.ts.backToTitle }} + {{ i18n.ts.showReplay }} + {{ i18n.ts.share }} + Copy replay data
-
+
+
+
-
- {{ i18n.ts.done }} - {{ i18n.ts.showReplay }} - {{ i18n.ts.share }} - Copy replay data -
+
SCORE: {{ gameMode === 'yen' ? '円' : 'pt' }}
+
HIGH SCORE: {{ gameMode === 'yen' ? '円' : 'pt' }}-
+
TOTAL EARNINGS: -
-
-
-
-
SCORE: {{ gameMode === 'yen' ? '円' : 'pt' }}
-
HIGH SCORE: {{ gameMode === 'yen' ? '円' : 'pt' }}-
-
-
-
-
-
-
+
+
+
-
-
-
- - - - - - -
+
+
+
+
+ + + + + +
-
-
- Surrender - Retry -
+
+
+
+ Surrender + Retry
- +