diff --git a/packages/backend/src/server/api/endpoints.ts b/packages/backend/src/server/api/endpoints.ts index 3dfb7fdad4..c4ce52a16b 100644 --- a/packages/backend/src/server/api/endpoints.ts +++ b/packages/backend/src/server/api/endpoints.ts @@ -4,6 +4,7 @@ */ import { permissions } from 'misskey-js'; +import type { ApiErrorInput } from '@/server/api/error.js'; import type { KeyOf, Schema } from '@/misc/json-schema.js'; import * as ep___admin_abuseReport_notificationRecipient_list @@ -780,11 +781,7 @@ interface IEndpointMetaBase { readonly tags?: ReadonlyArray; readonly errors?: { - readonly [key: string]: { - readonly message: string; - readonly code: string; - readonly id: string; - }; + readonly [key: string]: ApiErrorInput; }; readonly res?: Schema; diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/create.ts b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/create.ts index bdfbcba518..137bc45822 100644 --- a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/create.ts +++ b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/create.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ApiError } from '@/server/api/error.js'; import { AbuseReportNotificationRecipientEntityService, @@ -46,7 +48,7 @@ export const meta = { httpStatusCode: 400, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -77,7 +79,7 @@ export const paramDef = { 'name', 'method', ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/delete.ts b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/delete.ts index b6dc44e09c..4bdac5b70c 100644 --- a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/delete.ts +++ b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/delete.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { AbuseReportNotificationService } from '@/core/AbuseReportNotificationService.js'; export const meta = { @@ -14,7 +16,7 @@ export const meta = { requireModerator: true, secure: true, kind: 'write:admin:abuse-report:notification-recipient', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -27,7 +29,7 @@ export const paramDef = { required: [ 'id', ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/list.ts b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/list.ts index dad9161a8a..ecec5cef33 100644 --- a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/list.ts +++ b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/list.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { AbuseReportNotificationRecipientEntityService, } from '@/core/entities/AbuseReportNotificationRecipientEntityService.js'; @@ -25,7 +27,7 @@ export const meta = { ref: 'AbuseReportNotificationRecipient', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -39,7 +41,7 @@ export const paramDef = { }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/show.ts b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/show.ts index 557798f946..504233a101 100644 --- a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/show.ts +++ b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/show.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { AbuseReportNotificationRecipientEntityService, } from '@/core/entities/AbuseReportNotificationRecipientEntityService.js'; @@ -33,7 +35,7 @@ export const meta = { httpStatusCode: 404, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -44,7 +46,7 @@ export const paramDef = { }, }, required: ['id'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/update.ts b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/update.ts index bd4b485217..ce8818b99d 100644 --- a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/update.ts +++ b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/update.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ApiError } from '@/server/api/error.js'; import { AbuseReportNotificationRecipientEntityService, @@ -46,7 +48,7 @@ export const meta = { httpStatusCode: 400, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -82,7 +84,7 @@ export const paramDef = { 'name', 'method', ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts b/packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts index cf3f257ca6..0cc883a260 100644 --- a/packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts +++ b/packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AbuseUserReportsRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { DI } from '@/di-symbols.js'; @@ -77,7 +79,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -91,7 +93,7 @@ export const paramDef = { forwarded: { type: 'boolean', default: false }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/accounts/create.ts b/packages/backend/src/server/api/endpoints/admin/accounts/create.ts index a7e8a3b018..73ad834794 100644 --- a/packages/backend/src/server/api/endpoints/admin/accounts/create.ts +++ b/packages/backend/src/server/api/endpoints/admin/accounts/create.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { IsNull } from 'typeorm'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UsersRepository } from '@/models/_.js'; import { SignupService } from '@/core/SignupService.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; @@ -28,7 +30,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -37,7 +39,7 @@ export const paramDef = { password: passwordSchema, }, required: ['username', 'password'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/accounts/delete.ts b/packages/backend/src/server/api/endpoints/admin/accounts/delete.ts index 01dea703a3..fe7f014f4e 100644 --- a/packages/backend/src/server/api/endpoints/admin/accounts/delete.ts +++ b/packages/backend/src/server/api/endpoints/admin/accounts/delete.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UsersRepository } from '@/models/_.js'; import { QueueService } from '@/core/QueueService.js'; import { DI } from '@/di-symbols.js'; @@ -17,7 +19,7 @@ export const meta = { requireCredential: true, requireAdmin: true, kind: 'write:admin:account', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -25,7 +27,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts b/packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts index 12cd5cf295..2cc0783e1b 100644 --- a/packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts +++ b/packages/backend/src/server/api/endpoints/admin/accounts/find-by-email.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UserProfilesRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; @@ -29,7 +31,7 @@ export const meta = { optional: false, nullable: false, ref: 'UserDetailedNotMe', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -37,7 +39,7 @@ export const paramDef = { email: { type: 'string' }, }, required: ['email'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/ad/create.ts b/packages/backend/src/server/api/endpoints/admin/ad/create.ts index 955154f4fb..967d6515bf 100644 --- a/packages/backend/src/server/api/endpoints/admin/ad/create.ts +++ b/packages/backend/src/server/api/endpoints/admin/ad/create.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AdsRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import { DI } from '@/di-symbols.js'; @@ -22,7 +24,7 @@ export const meta = { nullable: false, ref: 'Ad', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -38,7 +40,7 @@ export const paramDef = { dayOfWeek: { type: 'integer' }, }, required: ['url', 'memo', 'place', 'priority', 'ratio', 'expiresAt', 'startsAt', 'imageUrl', 'dayOfWeek'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/ad/delete.ts b/packages/backend/src/server/api/endpoints/admin/ad/delete.ts index 501e13c6a7..8f388bcaf7 100644 --- a/packages/backend/src/server/api/endpoints/admin/ad/delete.ts +++ b/packages/backend/src/server/api/endpoints/admin/ad/delete.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AdsRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { ModerationLogService } from '@/core/ModerationLogService.js'; @@ -24,7 +26,7 @@ export const meta = { id: 'ccac9863-3a03-416e-b899-8a64041118b1', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -32,7 +34,7 @@ export const paramDef = { id: { type: 'string', format: 'misskey:id' }, }, required: ['id'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/ad/list.ts b/packages/backend/src/server/api/endpoints/admin/ad/list.ts index 6406709cda..13b55391cc 100644 --- a/packages/backend/src/server/api/endpoints/admin/ad/list.ts +++ b/packages/backend/src/server/api/endpoints/admin/ad/list.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AdsRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { DI } from '@/di-symbols.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'Ad', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -37,7 +39,7 @@ export const paramDef = { publishing: { type: 'boolean', default: null, nullable: true }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/ad/update.ts b/packages/backend/src/server/api/endpoints/admin/ad/update.ts index 4e3d731aca..06457704d8 100644 --- a/packages/backend/src/server/api/endpoints/admin/ad/update.ts +++ b/packages/backend/src/server/api/endpoints/admin/ad/update.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AdsRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { ModerationLogService } from '@/core/ModerationLogService.js'; @@ -24,7 +26,7 @@ export const meta = { id: 'b7aa1727-1354-47bc-a182-3a9c3973d300', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -41,7 +43,7 @@ export const paramDef = { dayOfWeek: { type: 'integer' }, }, required: ['id'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/announcements/create.ts b/packages/backend/src/server/api/endpoints/admin/announcements/create.ts index 2dae1df87d..5a64d04672 100644 --- a/packages/backend/src/server/api/endpoints/admin/announcements/create.ts +++ b/packages/backend/src/server/api/endpoints/admin/announcements/create.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { AnnouncementService } from '@/core/AnnouncementService.js'; export const meta = { @@ -48,7 +50,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -64,7 +66,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id', nullable: true, default: null }, }, required: ['title', 'text', 'imageUrl'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/announcements/delete.ts b/packages/backend/src/server/api/endpoints/admin/announcements/delete.ts index 6d1e1b0a10..bf49cf81d7 100644 --- a/packages/backend/src/server/api/endpoints/admin/announcements/delete.ts +++ b/packages/backend/src/server/api/endpoints/admin/announcements/delete.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AnnouncementsRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { AnnouncementService } from '@/core/AnnouncementService.js'; @@ -24,7 +26,7 @@ export const meta = { id: 'ecad8040-a276-4e85-bda9-015a708d291e', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -32,7 +34,7 @@ export const paramDef = { id: { type: 'string', format: 'misskey:id' }, }, required: ['id'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/announcements/list.ts b/packages/backend/src/server/api/endpoints/admin/announcements/list.ts index 7596bf44e3..bcc4a98a11 100644 --- a/packages/backend/src/server/api/endpoints/admin/announcements/list.ts +++ b/packages/backend/src/server/api/endpoints/admin/announcements/list.ts @@ -7,6 +7,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { AnnouncementsRepository, AnnouncementReadsRepository } from '@/models/_.js'; import type { MiAnnouncement } from '@/models/Announcement.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { DI } from '@/di-symbols.js'; import { IdService } from '@/core/IdService.js'; @@ -60,7 +62,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -72,7 +74,7 @@ export const paramDef = { status: { type: 'string', enum: ['all', 'active', 'archived'], default: 'active' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/announcements/update.ts b/packages/backend/src/server/api/endpoints/admin/announcements/update.ts index 6fce6e4e0a..b9bebcc4d9 100644 --- a/packages/backend/src/server/api/endpoints/admin/announcements/update.ts +++ b/packages/backend/src/server/api/endpoints/admin/announcements/update.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AnnouncementsRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { AnnouncementService } from '@/core/AnnouncementService.js'; @@ -24,7 +26,7 @@ export const meta = { id: 'd3aae5a7-6372-4cb4-b61c-f511ffc2d7cc', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -41,7 +43,7 @@ export const paramDef = { isActive: { type: 'boolean' }, }, required: ['id'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/avatar-decorations/create.ts b/packages/backend/src/server/api/endpoints/admin/avatar-decorations/create.ts index fd21309818..ef2b729988 100644 --- a/packages/backend/src/server/api/endpoints/admin/avatar-decorations/create.ts +++ b/packages/backend/src/server/api/endpoints/admin/avatar-decorations/create.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { AvatarDecorationService } from '@/core/AvatarDecorationService.js'; export const meta = { @@ -13,7 +15,7 @@ export const meta = { requireCredential: true, requireRolePolicy: 'canManageAvatarDecorations', kind: 'write:admin:avatar-decorations', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -26,7 +28,7 @@ export const paramDef = { } }, }, required: ['name', 'description', 'url'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/avatar-decorations/delete.ts b/packages/backend/src/server/api/endpoints/admin/avatar-decorations/delete.ts index 3a5673d99d..1de2ed3c4e 100644 --- a/packages/backend/src/server/api/endpoints/admin/avatar-decorations/delete.ts +++ b/packages/backend/src/server/api/endpoints/admin/avatar-decorations/delete.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { AvatarDecorationService } from '@/core/AvatarDecorationService.js'; import { ApiError } from '../../../error.js'; @@ -17,7 +19,7 @@ export const meta = { kind: 'write:admin:avatar-decorations', errors: { }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -25,7 +27,7 @@ export const paramDef = { id: { type: 'string', format: 'misskey:id' }, }, required: ['id'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/avatar-decorations/list.ts b/packages/backend/src/server/api/endpoints/admin/avatar-decorations/list.ts index aee90023e1..b78235b2bd 100644 --- a/packages/backend/src/server/api/endpoints/admin/avatar-decorations/list.ts +++ b/packages/backend/src/server/api/endpoints/admin/avatar-decorations/list.ts @@ -7,6 +7,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { AnnouncementsRepository, AnnouncementReadsRepository } from '@/models/_.js'; import type { MiAnnouncement } from '@/models/Announcement.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { DI } from '@/di-symbols.js'; import { IdService } from '@/core/IdService.js'; @@ -66,7 +68,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -77,7 +79,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id', nullable: true }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/avatar-decorations/update.ts b/packages/backend/src/server/api/endpoints/admin/avatar-decorations/update.ts index 34b3b5a11f..e9e4645078 100644 --- a/packages/backend/src/server/api/endpoints/admin/avatar-decorations/update.ts +++ b/packages/backend/src/server/api/endpoints/admin/avatar-decorations/update.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { AvatarDecorationService } from '@/core/AvatarDecorationService.js'; import { ApiError } from '../../../error.js'; @@ -18,7 +20,7 @@ export const meta = { errors: { }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -32,7 +34,7 @@ export const paramDef = { } }, }, required: ['id'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/delete-account.ts b/packages/backend/src/server/api/endpoints/admin/delete-account.ts index b6f0f22d60..1f76368022 100644 --- a/packages/backend/src/server/api/endpoints/admin/delete-account.ts +++ b/packages/backend/src/server/api/endpoints/admin/delete-account.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UsersRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DeleteAccountService } from '@/core/DeleteAccountService.js'; import { DI } from '@/di-symbols.js'; @@ -15,7 +17,7 @@ export const meta = { requireCredential: true, requireAdmin: true, kind: 'write:admin:delete-account', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -23,7 +25,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts b/packages/backend/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts index d8341b3ad7..25ae2418e7 100644 --- a/packages/backend/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts +++ b/packages/backend/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFilesRepository } from '@/models/_.js'; import { DriveService } from '@/core/DriveService.js'; import { DI } from '@/di-symbols.js'; @@ -15,7 +17,7 @@ export const meta = { requireCredential: true, requireAdmin: true, kind: 'write:admin:delete-all-files-of-a-user', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -23,7 +25,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/drive/clean-remote-files.ts b/packages/backend/src/server/api/endpoints/admin/drive/clean-remote-files.ts index d420a929bd..d0cf6c078f 100644 --- a/packages/backend/src/server/api/endpoints/admin/drive/clean-remote-files.ts +++ b/packages/backend/src/server/api/endpoints/admin/drive/clean-remote-files.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueueService } from '@/core/QueueService.js'; export const meta = { @@ -13,13 +15,13 @@ export const meta = { requireCredential: true, requireModerator: true, kind: 'write:admin:drive', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/drive/cleanup.ts b/packages/backend/src/server/api/endpoints/admin/drive/cleanup.ts index d612572e2e..8b8cf4f5e9 100644 --- a/packages/backend/src/server/api/endpoints/admin/drive/cleanup.ts +++ b/packages/backend/src/server/api/endpoints/admin/drive/cleanup.ts @@ -6,6 +6,8 @@ import { IsNull } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFilesRepository } from '@/models/_.js'; import { DriveService } from '@/core/DriveService.js'; import { DI } from '@/di-symbols.js'; @@ -16,13 +18,13 @@ export const meta = { requireCredential: true, requireModerator: true, kind: 'write:admin:drive', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/drive/files.ts b/packages/backend/src/server/api/endpoints/admin/drive/files.ts index 915d777e77..493a777730 100644 --- a/packages/backend/src/server/api/endpoints/admin/drive/files.ts +++ b/packages/backend/src/server/api/endpoints/admin/drive/files.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { DriveFilesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { DI } from '@/di-symbols.js'; import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'DriveFile', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -45,7 +47,7 @@ export const paramDef = { }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts b/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts index a7136d8c8c..b75951cb46 100644 --- a/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts +++ b/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { DriveFilesRepository, UsersRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { RoleService } from '@/core/RoleService.js'; import { IdService } from '@/core/IdService.js'; @@ -159,7 +161,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -171,7 +173,7 @@ export const paramDef = { { required: ['fileId'] }, { required: ['url'] }, ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/add-aliases-bulk.ts b/packages/backend/src/server/api/endpoints/admin/emoji/add-aliases-bulk.ts index a30a080e59..c25393a82e 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/add-aliases-bulk.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/add-aliases-bulk.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { CustomEmojiService } from '@/core/CustomEmojiService.js'; export const meta = { @@ -13,7 +15,7 @@ export const meta = { requireCredential: true, requireRolePolicy: 'canManageCustomEmojis', kind: 'write:admin:emoji', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -26,7 +28,7 @@ export const paramDef = { } }, }, required: ['ids', 'aliases'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/add.ts b/packages/backend/src/server/api/endpoints/admin/emoji/add.ts index 796f273330..55524e33d8 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/add.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/add.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFilesRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { CustomEmojiService } from '@/core/CustomEmojiService.js'; @@ -35,7 +37,7 @@ export const meta = { type: 'object', ref: 'EmojiDetailed', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -58,7 +60,7 @@ export const paramDef = { } }, }, required: ['name', 'fileId'], -} as const; +} as const satisfies Schema; // TODO: ロジックをサービスに切り出す diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts b/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts index 975f892df9..619d712625 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { EmojisRepository } from '@/models/_.js'; import type { MiDriveFile } from '@/models/DriveFile.js'; import { DI } from '@/di-symbols.js'; @@ -44,7 +46,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -52,7 +54,7 @@ export const paramDef = { emojiId: { type: 'string', format: 'misskey:id' }, }, required: ['emojiId'], -} as const; +} as const satisfies Schema; // TODO: ロジックをサービスに切り出す diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/delete-bulk.ts b/packages/backend/src/server/api/endpoints/admin/emoji/delete-bulk.ts index cec9f700c3..74ec981816 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/delete-bulk.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/delete-bulk.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { CustomEmojiService } from '@/core/CustomEmojiService.js'; export const meta = { @@ -13,7 +15,7 @@ export const meta = { requireCredential: true, requireRolePolicy: 'canManageCustomEmojis', kind: 'write:admin:emoji', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -23,7 +25,7 @@ export const paramDef = { } }, }, required: ['ids'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/delete.ts b/packages/backend/src/server/api/endpoints/admin/emoji/delete.ts index 50c45b6ac5..f6d24b08f0 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/delete.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/delete.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { CustomEmojiService } from '@/core/CustomEmojiService.js'; export const meta = { @@ -21,7 +23,7 @@ export const meta = { id: 'be83669b-773a-44b7-b1f8-e5e5170ac3c2', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -29,7 +31,7 @@ export const paramDef = { id: { type: 'string', format: 'misskey:id' }, }, required: ['id'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/import-zip.ts b/packages/backend/src/server/api/endpoints/admin/emoji/import-zip.ts index 8e5f69c894..765fb84769 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/import-zip.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/import-zip.ts @@ -5,13 +5,15 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueueService } from '@/core/QueueService.js'; export const meta = { secure: true, requireCredential: true, requireRolePolicy: 'canManageCustomEmojis', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -19,7 +21,7 @@ export const paramDef = { fileId: { type: 'string', format: 'misskey:id' }, }, required: ['fileId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/list-remote.ts b/packages/backend/src/server/api/endpoints/admin/emoji/list-remote.ts index 0889ceb76f..7207a2694f 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/list-remote.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/list-remote.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { EmojisRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { UtilityService } from '@/core/UtilityService.js'; @@ -59,7 +61,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -76,7 +78,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/list.ts b/packages/backend/src/server/api/endpoints/admin/emoji/list.ts index ffb5dbf4b5..37c7cd9553 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/list.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/list.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { EmojisRepository } from '@/models/_.js'; import type { MiEmoji } from '@/models/Emoji.js'; import { QueryService } from '@/core/QueryService.js'; @@ -59,7 +61,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -70,7 +72,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/remove-aliases-bulk.ts b/packages/backend/src/server/api/endpoints/admin/emoji/remove-aliases-bulk.ts index 0fa119eabe..d4d4787c4f 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/remove-aliases-bulk.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/remove-aliases-bulk.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { CustomEmojiService } from '@/core/CustomEmojiService.js'; export const meta = { @@ -13,7 +15,7 @@ export const meta = { requireCredential: true, requireRolePolicy: 'canManageCustomEmojis', kind: 'write:admin:emoji', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -26,7 +28,7 @@ export const paramDef = { } }, }, required: ['ids', 'aliases'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/set-aliases-bulk.ts b/packages/backend/src/server/api/endpoints/admin/emoji/set-aliases-bulk.ts index d9ee18699c..35922994a3 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/set-aliases-bulk.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/set-aliases-bulk.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { CustomEmojiService } from '@/core/CustomEmojiService.js'; export const meta = { @@ -13,7 +15,7 @@ export const meta = { requireCredential: true, requireRolePolicy: 'canManageCustomEmojis', kind: 'write:admin:emoji', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -26,7 +28,7 @@ export const paramDef = { } }, }, required: ['ids', 'aliases'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/set-category-bulk.ts b/packages/backend/src/server/api/endpoints/admin/emoji/set-category-bulk.ts index dc25df2767..68be6aeb5e 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/set-category-bulk.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/set-category-bulk.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { CustomEmojiService } from '@/core/CustomEmojiService.js'; export const meta = { @@ -13,7 +15,7 @@ export const meta = { requireCredential: true, requireRolePolicy: 'canManageCustomEmojis', kind: 'write:admin:emoji', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -28,7 +30,7 @@ export const paramDef = { }, }, required: ['ids'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/set-license-bulk.ts b/packages/backend/src/server/api/endpoints/admin/emoji/set-license-bulk.ts index 4ba99faab7..e65753a44a 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/set-license-bulk.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/set-license-bulk.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { CustomEmojiService } from '@/core/CustomEmojiService.js'; export const meta = { @@ -13,7 +15,7 @@ export const meta = { requireCredential: true, requireRolePolicy: 'canManageCustomEmojis', kind: 'write:admin:emoji', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -28,7 +30,7 @@ export const paramDef = { }, }, required: ['ids'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/update.ts b/packages/backend/src/server/api/endpoints/admin/emoji/update.ts index 22609a16a3..d930ffd2e9 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/update.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/update.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { CustomEmojiService } from '@/core/CustomEmojiService.js'; import type { DriveFilesRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; @@ -34,7 +36,7 @@ export const meta = { id: '7180fe9d-1ee3-bff9-647d-fe9896d2ffb8', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -61,7 +63,7 @@ export const paramDef = { { required: ['id'] }, { required: ['name'] }, ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/federation/delete-all-files.ts b/packages/backend/src/server/api/endpoints/admin/federation/delete-all-files.ts index 4a54c26009..3c51a1cfe0 100644 --- a/packages/backend/src/server/api/endpoints/admin/federation/delete-all-files.ts +++ b/packages/backend/src/server/api/endpoints/admin/federation/delete-all-files.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFilesRepository } from '@/models/_.js'; import { DriveService } from '@/core/DriveService.js'; import { DI } from '@/di-symbols.js'; @@ -15,7 +17,7 @@ export const meta = { requireCredential: true, requireModerator: true, kind: 'write:admin:federation', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -23,7 +25,7 @@ export const paramDef = { host: { type: 'string' }, }, required: ['host'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts b/packages/backend/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts index 556e291025..05bbce9814 100644 --- a/packages/backend/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts +++ b/packages/backend/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { InstancesRepository } from '@/models/_.js'; import { FetchInstanceMetadataService } from '@/core/FetchInstanceMetadataService.js'; import { UtilityService } from '@/core/UtilityService.js'; @@ -16,7 +18,7 @@ export const meta = { requireCredential: true, requireModerator: true, kind: 'write:admin:federation', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -24,7 +26,7 @@ export const paramDef = { host: { type: 'string' }, }, required: ['host'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/federation/remove-all-following.ts b/packages/backend/src/server/api/endpoints/admin/federation/remove-all-following.ts index 9e93310746..e5d9fc80cd 100644 --- a/packages/backend/src/server/api/endpoints/admin/federation/remove-all-following.ts +++ b/packages/backend/src/server/api/endpoints/admin/federation/remove-all-following.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { FollowingsRepository, UsersRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { QueueService } from '@/core/QueueService.js'; @@ -15,7 +17,7 @@ export const meta = { requireCredential: true, requireModerator: true, kind: 'write:admin:federation', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -23,7 +25,7 @@ export const paramDef = { host: { type: 'string' }, }, required: ['host'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/federation/update-instance.ts b/packages/backend/src/server/api/endpoints/admin/federation/update-instance.ts index fed7bfbbde..ceb81a46a9 100644 --- a/packages/backend/src/server/api/endpoints/admin/federation/update-instance.ts +++ b/packages/backend/src/server/api/endpoints/admin/federation/update-instance.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { InstancesRepository } from '@/models/_.js'; import { UtilityService } from '@/core/UtilityService.js'; import { DI } from '@/di-symbols.js'; @@ -17,7 +19,7 @@ export const meta = { requireCredential: true, requireModerator: true, kind: 'write:admin:federation', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -27,7 +29,7 @@ export const paramDef = { moderationNote: { type: 'string' }, }, required: ['host'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/get-index-stats.ts b/packages/backend/src/server/api/endpoints/admin/get-index-stats.ts index 90a3fa0200..3de96adf87 100644 --- a/packages/backend/src/server/api/endpoints/admin/get-index-stats.ts +++ b/packages/backend/src/server/api/endpoints/admin/get-index-stats.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { DataSource } from 'typeorm'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; export const meta = { @@ -24,13 +26,13 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/get-table-stats.ts b/packages/backend/src/server/api/endpoints/admin/get-table-stats.ts index eb85fca179..c5bfa1f2ab 100644 --- a/packages/backend/src/server/api/endpoints/admin/get-table-stats.ts +++ b/packages/backend/src/server/api/endpoints/admin/get-table-stats.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { DataSource } from 'typeorm'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; export const meta = { @@ -37,13 +39,13 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/get-user-ips.ts b/packages/backend/src/server/api/endpoints/admin/get-user-ips.ts index b7781b8c99..2155f90711 100644 --- a/packages/backend/src/server/api/endpoints/admin/get-user-ips.ts +++ b/packages/backend/src/server/api/endpoints/admin/get-user-ips.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UserIpsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { IdService } from '@/core/IdService.js'; @@ -34,7 +36,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -42,7 +44,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/invite/create.ts b/packages/backend/src/server/api/endpoints/admin/invite/create.ts index 5ecae3161a..f4f5aae065 100644 --- a/packages/backend/src/server/api/endpoints/admin/invite/create.ts +++ b/packages/backend/src/server/api/endpoints/admin/invite/create.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { RegistrationTicketsRepository } from '@/models/_.js'; import { InviteCodeEntityService } from '@/core/entities/InviteCodeEntityService.js'; import { IdService } from '@/core/IdService.js'; @@ -37,7 +39,7 @@ export const meta = { ref: 'InviteCode', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -46,7 +48,7 @@ export const paramDef = { expiresAt: { type: 'string', nullable: true }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/invite/list.ts b/packages/backend/src/server/api/endpoints/admin/invite/list.ts index e33a9a1aec..11113c7ac5 100644 --- a/packages/backend/src/server/api/endpoints/admin/invite/list.ts +++ b/packages/backend/src/server/api/endpoints/admin/invite/list.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { RegistrationTicketsRepository } from '@/models/_.js'; import { InviteCodeEntityService } from '@/core/entities/InviteCodeEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -25,7 +27,7 @@ export const meta = { ref: 'InviteCode', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { sort: { type: 'string', enum: ['+createdAt', '-createdAt', '+usedAt', '-usedAt'] }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/meta.ts b/packages/backend/src/server/api/endpoints/admin/meta.ts index 2e7f73da73..072c3e99f1 100644 --- a/packages/backend/src/server/api/endpoints/admin/meta.ts +++ b/packages/backend/src/server/api/endpoints/admin/meta.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { MetaService } from '@/core/MetaService.js'; import type { Config } from '@/config.js'; import { DI } from '@/di-symbols.js'; @@ -493,14 +495,14 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: { }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/promo/create.ts b/packages/backend/src/server/api/endpoints/admin/promo/create.ts index 1d32c6cc00..5915139862 100644 --- a/packages/backend/src/server/api/endpoints/admin/promo/create.ts +++ b/packages/backend/src/server/api/endpoints/admin/promo/create.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { PromoNotesRepository } from '@/models/_.js'; import { GetterService } from '@/server/api/GetterService.js'; import { DI } from '@/di-symbols.js'; @@ -30,7 +32,7 @@ export const meta = { id: 'ae427aa2-7a41-484f-a18c-2c1104051604', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -39,7 +41,7 @@ export const paramDef = { expiresAt: { type: 'integer' }, }, required: ['noteId', 'expiresAt'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/queue/clear.ts b/packages/backend/src/server/api/endpoints/admin/queue/clear.ts index 3f7df0e63d..7abc3028d0 100644 --- a/packages/backend/src/server/api/endpoints/admin/queue/clear.ts +++ b/packages/backend/src/server/api/endpoints/admin/queue/clear.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ModerationLogService } from '@/core/ModerationLogService.js'; import { QueueService } from '@/core/QueueService.js'; @@ -14,13 +16,13 @@ export const meta = { requireCredential: true, requireModerator: true, kind: 'write:admin:queue', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts b/packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts index f3e440b4cb..f2cb7db539 100644 --- a/packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts +++ b/packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts @@ -6,6 +6,8 @@ import { URL } from 'node:url'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DeliverQueue } from '@/core/QueueModule.js'; export const meta = { @@ -36,13 +38,13 @@ export const meta = { 12, ]], }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts b/packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts index e7589cba81..750e28f77b 100644 --- a/packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts +++ b/packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts @@ -6,6 +6,8 @@ import { URL } from 'node:url'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { InboxQueue } from '@/core/QueueModule.js'; export const meta = { @@ -36,13 +38,13 @@ export const meta = { 12, ]], }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/queue/promote.ts b/packages/backend/src/server/api/endpoints/admin/queue/promote.ts index 7502d4e1f7..9bf5fed0b9 100644 --- a/packages/backend/src/server/api/endpoints/admin/queue/promote.ts +++ b/packages/backend/src/server/api/endpoints/admin/queue/promote.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ModerationLogService } from '@/core/ModerationLogService.js'; import { QueueService } from '@/core/QueueService.js'; @@ -14,7 +16,7 @@ export const meta = { requireCredential: true, requireModerator: true, kind: 'write:admin:queue', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -22,7 +24,7 @@ export const paramDef = { type: { type: 'string', enum: ['deliver', 'inbox'] }, }, required: ['type'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/queue/stats.ts b/packages/backend/src/server/api/endpoints/admin/queue/stats.ts index d7f9e4eaa3..e3f47fc9f4 100644 --- a/packages/backend/src/server/api/endpoints/admin/queue/stats.ts +++ b/packages/backend/src/server/api/endpoints/admin/queue/stats.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DbQueue, DeliverQueue, EndedPollNotificationQueue, InboxQueue, ObjectStorageQueue, SystemQueue, UserWebhookDeliverQueue, SystemWebhookDeliverQueue } from '@/core/QueueModule.js'; export const meta = { @@ -36,13 +38,13 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/relays/add.ts b/packages/backend/src/server/api/endpoints/admin/relays/add.ts index 3d7bc4567e..b461635f0a 100644 --- a/packages/backend/src/server/api/endpoints/admin/relays/add.ts +++ b/packages/backend/src/server/api/endpoints/admin/relays/add.ts @@ -6,6 +6,8 @@ import { URL } from 'node:url'; import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { RelayService } from '@/core/RelayService.js'; import { ApiError } from '../../../error.js'; @@ -50,7 +52,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -58,7 +60,7 @@ export const paramDef = { inbox: { type: 'string' }, }, required: ['inbox'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/relays/list.ts b/packages/backend/src/server/api/endpoints/admin/relays/list.ts index 587d5c3b03..31604b16d4 100644 --- a/packages/backend/src/server/api/endpoints/admin/relays/list.ts +++ b/packages/backend/src/server/api/endpoints/admin/relays/list.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { RelayService } from '@/core/RelayService.js'; export const meta = { @@ -44,13 +46,13 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/relays/remove.ts b/packages/backend/src/server/api/endpoints/admin/relays/remove.ts index 1f6e773cd4..f9c9f830d3 100644 --- a/packages/backend/src/server/api/endpoints/admin/relays/remove.ts +++ b/packages/backend/src/server/api/endpoints/admin/relays/remove.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { RelayService } from '@/core/RelayService.js'; export const meta = { @@ -13,7 +15,7 @@ export const meta = { requireCredential: true, requireModerator: true, kind: 'write:admin:relays', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -21,7 +23,7 @@ export const paramDef = { inbox: { type: 'string' }, }, required: ['inbox'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/reset-password.ts b/packages/backend/src/server/api/endpoints/admin/reset-password.ts index 53db096c1d..f962e45d9a 100644 --- a/packages/backend/src/server/api/endpoints/admin/reset-password.ts +++ b/packages/backend/src/server/api/endpoints/admin/reset-password.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import bcrypt from 'bcryptjs'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UsersRepository, UserProfilesRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { secureRndstr } from '@/misc/secure-rndstr.js'; @@ -30,7 +32,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -38,7 +40,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts b/packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts index 9b79100fcf..fcaffb2061 100644 --- a/packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts +++ b/packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AbuseUserReportsRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '@/server/api/error.js'; @@ -26,7 +28,7 @@ export const meta = { httpStatusCode: 404, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { forward: { type: 'boolean', default: false }, }, required: ['reportId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/roles/assign.ts b/packages/backend/src/server/api/endpoints/admin/roles/assign.ts index b6c7953781..528da7c596 100644 --- a/packages/backend/src/server/api/endpoints/admin/roles/assign.ts +++ b/packages/backend/src/server/api/endpoints/admin/roles/assign.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { RolesRepository, UsersRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '@/server/api/error.js'; @@ -36,7 +38,7 @@ export const meta = { id: '25b5bc31-dc79-4ebd-9bd2-c84978fd052c', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -52,7 +54,7 @@ export const paramDef = { 'roleId', 'userId', ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/roles/create.ts b/packages/backend/src/server/api/endpoints/admin/roles/create.ts index e0c02f7a5d..686d307cf3 100644 --- a/packages/backend/src/server/api/endpoints/admin/roles/create.ts +++ b/packages/backend/src/server/api/endpoints/admin/roles/create.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { RoleEntityService } from '@/core/entities/RoleEntityService.js'; import { RoleService } from '@/core/RoleService.js'; @@ -20,7 +22,7 @@ export const meta = { optional: false, nullable: false, ref: 'Role', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -57,7 +59,7 @@ export const paramDef = { 'displayOrder', 'policies', ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/roles/delete.ts b/packages/backend/src/server/api/endpoints/admin/roles/delete.ts index 638e2b15b9..16a51a08f5 100644 --- a/packages/backend/src/server/api/endpoints/admin/roles/delete.ts +++ b/packages/backend/src/server/api/endpoints/admin/roles/delete.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { RolesRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '@/server/api/error.js'; @@ -24,7 +26,7 @@ export const meta = { id: 'de0d6ecd-8e0a-4253-88ff-74bc89ae3d45', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -34,7 +36,7 @@ export const paramDef = { required: [ 'roleId', ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/roles/list.ts b/packages/backend/src/server/api/endpoints/admin/roles/list.ts index 333fac6aa6..9166a79f71 100644 --- a/packages/backend/src/server/api/endpoints/admin/roles/list.ts +++ b/packages/backend/src/server/api/endpoints/admin/roles/list.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { RolesRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { RoleEntityService } from '@/core/entities/RoleEntityService.js'; @@ -25,7 +27,7 @@ export const meta = { ref: 'Role', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -33,7 +35,7 @@ export const paramDef = { }, required: [ ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/roles/show.ts b/packages/backend/src/server/api/endpoints/admin/roles/show.ts index 13e5cbb995..774506a087 100644 --- a/packages/backend/src/server/api/endpoints/admin/roles/show.ts +++ b/packages/backend/src/server/api/endpoints/admin/roles/show.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { RolesRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '@/server/api/error.js'; @@ -30,7 +32,7 @@ export const meta = { optional: false, nullable: false, ref: 'Role', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -40,7 +42,7 @@ export const paramDef = { required: [ 'roleId', ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/roles/unassign.ts b/packages/backend/src/server/api/endpoints/admin/roles/unassign.ts index e7da3384b1..80a3b594df 100644 --- a/packages/backend/src/server/api/endpoints/admin/roles/unassign.ts +++ b/packages/backend/src/server/api/endpoints/admin/roles/unassign.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { RolesRepository, UsersRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '@/server/api/error.js'; @@ -42,7 +44,7 @@ export const meta = { id: '24636eee-e8c1-493e-94b2-e16ad401e262', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -54,7 +56,7 @@ export const paramDef = { 'roleId', 'userId', ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/roles/update-default-policies.ts b/packages/backend/src/server/api/endpoints/admin/roles/update-default-policies.ts index 5cf49670be..a494c71f89 100644 --- a/packages/backend/src/server/api/endpoints/admin/roles/update-default-policies.ts +++ b/packages/backend/src/server/api/endpoints/admin/roles/update-default-policies.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; import { MetaService } from '@/core/MetaService.js'; import { ModerationLogService } from '@/core/ModerationLogService.js'; @@ -15,7 +17,7 @@ export const meta = { requireCredential: true, requireAdmin: true, kind: 'write:admin:roles', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -27,7 +29,7 @@ export const paramDef = { required: [ 'policies', ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/roles/update.ts b/packages/backend/src/server/api/endpoints/admin/roles/update.ts index 465ad7aaaf..d05b6c7978 100644 --- a/packages/backend/src/server/api/endpoints/admin/roles/update.ts +++ b/packages/backend/src/server/api/endpoints/admin/roles/update.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { RolesRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '@/server/api/error.js'; @@ -24,7 +26,7 @@ export const meta = { id: 'cd23ef55-09ad-428a-ac61-95a45e124b32', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -50,7 +52,7 @@ export const paramDef = { required: [ 'roleId', ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/roles/users.ts b/packages/backend/src/server/api/endpoints/admin/roles/users.ts index 198166bec2..f2b38d8cd8 100644 --- a/packages/backend/src/server/api/endpoints/admin/roles/users.ts +++ b/packages/backend/src/server/api/endpoints/admin/roles/users.ts @@ -7,6 +7,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Brackets } from 'typeorm'; import type { RoleAssignmentsRepository, RolesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { DI } from '@/di-symbols.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; @@ -41,7 +43,7 @@ export const meta = { required: ['id', 'createdAt', 'user'], }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -52,7 +54,7 @@ export const paramDef = { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, }, required: ['roleId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/send-email.ts b/packages/backend/src/server/api/endpoints/admin/send-email.ts index f01a7778a8..947a706a20 100644 --- a/packages/backend/src/server/api/endpoints/admin/send-email.ts +++ b/packages/backend/src/server/api/endpoints/admin/send-email.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { EmailService } from '@/core/EmailService.js'; export const meta = { @@ -13,7 +15,7 @@ export const meta = { requireCredential: true, requireModerator: true, kind: 'write:admin:send-email', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -23,7 +25,7 @@ export const paramDef = { text: { type: 'string' }, }, required: ['to', 'subject', 'text'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/server-info.ts b/packages/backend/src/server/api/endpoints/admin/server-info.ts index 80b6a4d32e..372d7e094a 100644 --- a/packages/backend/src/server/api/endpoints/admin/server-info.ts +++ b/packages/backend/src/server/api/endpoints/admin/server-info.ts @@ -9,6 +9,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { DataSource } from 'typeorm'; import * as Redis from 'ioredis'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; export const meta = { @@ -93,13 +95,13 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/show-moderation-logs.ts b/packages/backend/src/server/api/endpoints/admin/show-moderation-logs.ts index 58c5f1f60a..95d8e1521f 100644 --- a/packages/backend/src/server/api/endpoints/admin/show-moderation-logs.ts +++ b/packages/backend/src/server/api/endpoints/admin/show-moderation-logs.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { ModerationLogsRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { DI } from '@/di-symbols.js'; @@ -55,7 +57,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -67,7 +69,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id', nullable: true }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/show-user.ts b/packages/backend/src/server/api/endpoints/admin/show-user.ts index 5a1c05f41a..88fc405527 100644 --- a/packages/backend/src/server/api/endpoints/admin/show-user.ts +++ b/packages/backend/src/server/api/endpoints/admin/show-user.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UsersRepository, SigninsRepository, UserProfilesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { RoleService } from '@/core/RoleService.js'; import { RoleEntityService } from '@/core/entities/RoleEntityService.js'; @@ -174,7 +176,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -182,7 +184,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/show-users.ts b/packages/backend/src/server/api/endpoints/admin/show-users.ts index 2fef9abbf9..496d8ab006 100644 --- a/packages/backend/src/server/api/endpoints/admin/show-users.ts +++ b/packages/backend/src/server/api/endpoints/admin/show-users.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UsersRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { sqlLikeEscape } from '@/misc/sql-like-escape.js'; @@ -27,7 +29,7 @@ export const meta = { ref: 'UserDetailed', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -46,7 +48,7 @@ export const paramDef = { }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/suspend-user.ts b/packages/backend/src/server/api/endpoints/admin/suspend-user.ts index bea1bdc4ed..8babc43b10 100644 --- a/packages/backend/src/server/api/endpoints/admin/suspend-user.ts +++ b/packages/backend/src/server/api/endpoints/admin/suspend-user.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UsersRepository } from '@/models/_.js'; import { UserSuspendService } from '@/core/UserSuspendService.js'; import { DI } from '@/di-symbols.js'; @@ -16,7 +18,7 @@ export const meta = { requireCredential: true, requireModerator: true, kind: 'write:admin:suspend-user', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -24,7 +26,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/system-webhook/create.ts b/packages/backend/src/server/api/endpoints/admin/system-webhook/create.ts index 28071e7a33..057191850d 100644 --- a/packages/backend/src/server/api/endpoints/admin/system-webhook/create.ts +++ b/packages/backend/src/server/api/endpoints/admin/system-webhook/create.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { SystemWebhookEntityService } from '@/core/entities/SystemWebhookEntityService.js'; import { systemWebhookEventTypes } from '@/models/SystemWebhook.js'; import { SystemWebhookService } from '@/core/SystemWebhookService.js'; @@ -21,7 +23,7 @@ export const meta = { type: 'object', ref: 'SystemWebhook', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -59,7 +61,7 @@ export const paramDef = { 'url', 'secret', ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/system-webhook/delete.ts b/packages/backend/src/server/api/endpoints/admin/system-webhook/delete.ts index 9cdfc7e70f..175659f867 100644 --- a/packages/backend/src/server/api/endpoints/admin/system-webhook/delete.ts +++ b/packages/backend/src/server/api/endpoints/admin/system-webhook/delete.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { SystemWebhookService } from '@/core/SystemWebhookService.js'; export const meta = { @@ -14,7 +16,7 @@ export const meta = { requireModerator: true, secure: true, kind: 'write:admin:system-webhook', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -27,7 +29,7 @@ export const paramDef = { required: [ 'id', ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/system-webhook/list.ts b/packages/backend/src/server/api/endpoints/admin/system-webhook/list.ts index 7a440a774e..e7f0c10b23 100644 --- a/packages/backend/src/server/api/endpoints/admin/system-webhook/list.ts +++ b/packages/backend/src/server/api/endpoints/admin/system-webhook/list.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { SystemWebhookEntityService } from '@/core/entities/SystemWebhookEntityService.js'; import { systemWebhookEventTypes } from '@/models/SystemWebhook.js'; import { SystemWebhookService } from '@/core/SystemWebhookService.js'; @@ -24,7 +26,7 @@ export const meta = { ref: 'SystemWebhook', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -41,7 +43,7 @@ export const paramDef = { }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/system-webhook/show.ts b/packages/backend/src/server/api/endpoints/admin/system-webhook/show.ts index 75862c96a7..43e976338c 100644 --- a/packages/backend/src/server/api/endpoints/admin/system-webhook/show.ts +++ b/packages/backend/src/server/api/endpoints/admin/system-webhook/show.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { SystemWebhookEntityService } from '@/core/entities/SystemWebhookEntityService.js'; import { ApiError } from '@/server/api/error.js'; import { SystemWebhookService } from '@/core/SystemWebhookService.js'; @@ -31,7 +33,7 @@ export const meta = { httpStatusCode: 404, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -42,7 +44,7 @@ export const paramDef = { }, }, required: ['id'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/system-webhook/update.ts b/packages/backend/src/server/api/endpoints/admin/system-webhook/update.ts index 8d68bb8f87..c6216938ac 100644 --- a/packages/backend/src/server/api/endpoints/admin/system-webhook/update.ts +++ b/packages/backend/src/server/api/endpoints/admin/system-webhook/update.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { SystemWebhookEntityService } from '@/core/entities/SystemWebhookEntityService.js'; import { systemWebhookEventTypes } from '@/models/SystemWebhook.js'; import { SystemWebhookService } from '@/core/SystemWebhookService.js'; @@ -21,7 +23,7 @@ export const meta = { type: 'object', ref: 'SystemWebhook', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -64,7 +66,7 @@ export const paramDef = { 'url', 'secret', ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/unset-user-avatar.ts b/packages/backend/src/server/api/endpoints/admin/unset-user-avatar.ts index ddab6f3a9d..0ad6546241 100644 --- a/packages/backend/src/server/api/endpoints/admin/unset-user-avatar.ts +++ b/packages/backend/src/server/api/endpoints/admin/unset-user-avatar.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UsersRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { ModerationLogService } from '@/core/ModerationLogService.js'; @@ -15,7 +17,7 @@ export const meta = { requireCredential: true, requireModerator: true, kind: 'write:admin:unset-user-avatar', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -23,7 +25,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; // eslint-disable-next-line import/no-default-export @Injectable() diff --git a/packages/backend/src/server/api/endpoints/admin/unset-user-banner.ts b/packages/backend/src/server/api/endpoints/admin/unset-user-banner.ts index e16dad719c..cd359e22af 100644 --- a/packages/backend/src/server/api/endpoints/admin/unset-user-banner.ts +++ b/packages/backend/src/server/api/endpoints/admin/unset-user-banner.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UsersRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { ModerationLogService } from '@/core/ModerationLogService.js'; @@ -15,7 +17,7 @@ export const meta = { requireCredential: true, requireModerator: true, kind: 'write:admin:unset-user-banner', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -23,7 +25,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; // eslint-disable-next-line import/no-default-export @Injectable() diff --git a/packages/backend/src/server/api/endpoints/admin/unsuspend-user.ts b/packages/backend/src/server/api/endpoints/admin/unsuspend-user.ts index b52c638cdb..e6a94a8e64 100644 --- a/packages/backend/src/server/api/endpoints/admin/unsuspend-user.ts +++ b/packages/backend/src/server/api/endpoints/admin/unsuspend-user.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UsersRepository } from '@/models/_.js'; import { UserSuspendService } from '@/core/UserSuspendService.js'; import { DI } from '@/di-symbols.js'; @@ -15,7 +17,7 @@ export const meta = { requireCredential: true, requireModerator: true, kind: 'write:admin:unsuspend-user', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -23,7 +25,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/update-meta.ts b/packages/backend/src/server/api/endpoints/admin/update-meta.ts index 5efdc9d8c4..0bae985215 100644 --- a/packages/backend/src/server/api/endpoints/admin/update-meta.ts +++ b/packages/backend/src/server/api/endpoints/admin/update-meta.ts @@ -7,6 +7,8 @@ import { Injectable } from '@nestjs/common'; import type { MiMeta } from '@/models/Meta.js'; import { ModerationLogService } from '@/core/ModerationLogService.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { MetaService } from '@/core/MetaService.js'; export const meta = { @@ -15,7 +17,7 @@ export const meta = { requireCredential: true, requireAdmin: true, kind: 'write:admin:meta', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -169,7 +171,7 @@ export const paramDef = { urlPreviewSummaryProxyUrl: { type: 'string', nullable: true }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/admin/update-user-note.ts b/packages/backend/src/server/api/endpoints/admin/update-user-note.ts index e9930422c0..8438e03167 100644 --- a/packages/backend/src/server/api/endpoints/admin/update-user-note.ts +++ b/packages/backend/src/server/api/endpoints/admin/update-user-note.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UserProfilesRepository, UsersRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { ModerationLogService } from '@/core/ModerationLogService.js'; @@ -15,7 +17,7 @@ export const meta = { requireCredential: true, requireModerator: true, kind: 'write:admin:user-note', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -24,7 +26,7 @@ export const paramDef = { text: { type: 'string' }, }, required: ['userId', 'text'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/announcements.ts b/packages/backend/src/server/api/endpoints/announcements.ts index ff8dd73605..672fe050d0 100644 --- a/packages/backend/src/server/api/endpoints/announcements.ts +++ b/packages/backend/src/server/api/endpoints/announcements.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Brackets } from 'typeorm'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { AnnouncementEntityService } from '@/core/entities/AnnouncementEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -25,7 +27,7 @@ export const meta = { ref: 'Announcement', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { isActive: { type: 'boolean', default: true }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/announcements/show.ts b/packages/backend/src/server/api/endpoints/announcements/show.ts index 6312a0a54c..dfc1510410 100644 --- a/packages/backend/src/server/api/endpoints/announcements/show.ts +++ b/packages/backend/src/server/api/endpoints/announcements/show.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import { EntityNotFoundError } from 'typeorm'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { AnnouncementService } from '@/core/AnnouncementService.js'; import { ApiError } from '../../error.js'; @@ -27,7 +29,7 @@ export const meta = { id: 'b57b5e1d-4f49-404a-9edb-46b00268f121', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { announcementId: { type: 'string', format: 'misskey:id' }, }, required: ['announcementId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/antennas/create.ts b/packages/backend/src/server/api/endpoints/antennas/create.ts index e0c8ddcc84..de5eec67d2 100644 --- a/packages/backend/src/server/api/endpoints/antennas/create.ts +++ b/packages/backend/src/server/api/endpoints/antennas/create.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { IdService } from '@/core/IdService.js'; import type { UserListsRepository, AntennasRepository } from '@/models/_.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; @@ -47,7 +49,7 @@ export const meta = { optional: false, nullable: false, ref: 'Antenna', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -75,7 +77,7 @@ export const paramDef = { withFile: { type: 'boolean' }, }, required: ['name', 'src', 'keywords', 'excludeKeywords', 'users', 'caseSensitive', 'withReplies', 'withFile'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/antennas/delete.ts b/packages/backend/src/server/api/endpoints/antennas/delete.ts index 2258954b56..ebb3002af2 100644 --- a/packages/backend/src/server/api/endpoints/antennas/delete.ts +++ b/packages/backend/src/server/api/endpoints/antennas/delete.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AntennasRepository } from '@/models/_.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; import { DI } from '@/di-symbols.js'; @@ -24,7 +26,7 @@ export const meta = { id: 'b34dcf9d-348f-44bb-99d0-6c9314cfe2df', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -32,7 +34,7 @@ export const paramDef = { antennaId: { type: 'string', format: 'misskey:id' }, }, required: ['antennaId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/antennas/list.ts b/packages/backend/src/server/api/endpoints/antennas/list.ts index 83d29f9c8c..dfe7c0b4b9 100644 --- a/packages/backend/src/server/api/endpoints/antennas/list.ts +++ b/packages/backend/src/server/api/endpoints/antennas/list.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AntennasRepository } from '@/models/_.js'; import { AntennaEntityService } from '@/core/entities/AntennaEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -25,13 +27,13 @@ export const meta = { ref: 'Antenna', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/antennas/notes.ts b/packages/backend/src/server/api/endpoints/antennas/notes.ts index f4dfe1ecc4..aea140806e 100644 --- a/packages/backend/src/server/api/endpoints/antennas/notes.ts +++ b/packages/backend/src/server/api/endpoints/antennas/notes.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import * as Redis from 'ioredis'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { NotesRepository, AntennasRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { NoteReadService } from '@/core/NoteReadService.js'; @@ -41,7 +43,7 @@ export const meta = { ref: 'Note', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -54,7 +56,7 @@ export const paramDef = { untilDate: { type: 'integer' }, }, required: ['antennaId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/antennas/show.ts b/packages/backend/src/server/api/endpoints/antennas/show.ts index a40f187d0b..9c2aacfef9 100644 --- a/packages/backend/src/server/api/endpoints/antennas/show.ts +++ b/packages/backend/src/server/api/endpoints/antennas/show.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AntennasRepository } from '@/models/_.js'; import { AntennaEntityService } from '@/core/entities/AntennaEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -30,7 +32,7 @@ export const meta = { optional: false, nullable: false, ref: 'Antenna', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -38,7 +40,7 @@ export const paramDef = { antennaId: { type: 'string', format: 'misskey:id' }, }, required: ['antennaId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/antennas/update.ts b/packages/backend/src/server/api/endpoints/antennas/update.ts index 10f26b1912..514d93c716 100644 --- a/packages/backend/src/server/api/endpoints/antennas/update.ts +++ b/packages/backend/src/server/api/endpoints/antennas/update.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AntennasRepository, UserListsRepository } from '@/models/_.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; import { AntennaEntityService } from '@/core/entities/AntennaEntityService.js'; @@ -45,7 +47,7 @@ export const meta = { optional: false, nullable: false, ref: 'Antenna', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -74,7 +76,7 @@ export const paramDef = { withFile: { type: 'boolean' }, }, required: ['antennaId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/ap/get.ts b/packages/backend/src/server/api/endpoints/ap/get.ts index d8c55de7ec..38c795b361 100644 --- a/packages/backend/src/server/api/endpoints/ap/get.ts +++ b/packages/backend/src/server/api/endpoints/ap/get.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ApResolverService } from '@/core/activitypub/ApResolverService.js'; export const meta = { @@ -26,7 +28,7 @@ export const meta = { type: 'object', optional: false, nullable: false, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -34,7 +36,7 @@ export const paramDef = { uri: { type: 'string' }, }, required: ['uri'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/ap/show.ts b/packages/backend/src/server/api/endpoints/ap/show.ts index d3c40dba59..f2edb14222 100644 --- a/packages/backend/src/server/api/endpoints/ap/show.ts +++ b/packages/backend/src/server/api/endpoints/ap/show.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { MiNote } from '@/models/Note.js'; import type { MiLocalUser, MiUser } from '@/models/User.js'; import { isActor, isPost, getApId } from '@/core/activitypub/type.js'; @@ -75,7 +77,7 @@ export const meta = { }, ], }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -83,7 +85,7 @@ export const paramDef = { uri: { type: 'string' }, }, required: ['uri'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/app/create.ts b/packages/backend/src/server/api/endpoints/app/create.ts index ba847fc4f0..8f6026a2f4 100644 --- a/packages/backend/src/server/api/endpoints/app/create.ts +++ b/packages/backend/src/server/api/endpoints/app/create.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AppsRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import { unique } from '@/misc/prelude/array.js'; @@ -22,7 +24,7 @@ export const meta = { optional: false, nullable: false, ref: 'App', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { callbackUrl: { type: 'string', nullable: true }, }, required: ['name', 'description', 'permission'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/app/show.ts b/packages/backend/src/server/api/endpoints/app/show.ts index 3db9a0d0d4..7365b5d85e 100644 --- a/packages/backend/src/server/api/endpoints/app/show.ts +++ b/packages/backend/src/server/api/endpoints/app/show.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AppsRepository } from '@/models/_.js'; import { AppEntityService } from '@/core/entities/AppEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -26,7 +28,7 @@ export const meta = { optional: false, nullable: false, ref: 'App', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -34,7 +36,7 @@ export const paramDef = { appId: { type: 'string', format: 'misskey:id' }, }, required: ['appId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/auth/accept.ts b/packages/backend/src/server/api/endpoints/auth/accept.ts index 2e62f04df0..808d8677ce 100644 --- a/packages/backend/src/server/api/endpoints/auth/accept.ts +++ b/packages/backend/src/server/api/endpoints/auth/accept.ts @@ -6,6 +6,8 @@ import * as crypto from 'node:crypto'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AuthSessionsRepository, AppsRepository, AccessTokensRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import { secureRndstr } from '@/misc/secure-rndstr.js'; @@ -26,7 +28,7 @@ export const meta = { id: '9c72d8de-391a-43c1-9d06-08d29efde8df', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -34,7 +36,7 @@ export const paramDef = { token: { type: 'string' }, }, required: ['token'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/auth/session/generate.ts b/packages/backend/src/server/api/endpoints/auth/session/generate.ts index f8ddfdb75c..c36dd074ad 100644 --- a/packages/backend/src/server/api/endpoints/auth/session/generate.ts +++ b/packages/backend/src/server/api/endpoints/auth/session/generate.ts @@ -6,6 +6,8 @@ import { randomUUID } from 'node:crypto'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AppsRepository, AuthSessionsRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import type { Config } from '@/config.js'; @@ -40,7 +42,7 @@ export const meta = { id: '92f93e63-428e-4f2f-a5a4-39e1407fe998', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -48,7 +50,7 @@ export const paramDef = { appSecret: { type: 'string' }, }, required: ['appSecret'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/auth/session/show.ts b/packages/backend/src/server/api/endpoints/auth/session/show.ts index 13e02a2541..9aa093a7a2 100644 --- a/packages/backend/src/server/api/endpoints/auth/session/show.ts +++ b/packages/backend/src/server/api/endpoints/auth/session/show.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AuthSessionsRepository } from '@/models/_.js'; import { AuthSessionEntityService } from '@/core/entities/AuthSessionEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -43,7 +45,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -51,7 +53,7 @@ export const paramDef = { token: { type: 'string' }, }, required: ['token'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/auth/session/userkey.ts b/packages/backend/src/server/api/endpoints/auth/session/userkey.ts index b490c5832d..81e00a0fa4 100644 --- a/packages/backend/src/server/api/endpoints/auth/session/userkey.ts +++ b/packages/backend/src/server/api/endpoints/auth/session/userkey.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AppsRepository, AccessTokensRepository, AuthSessionsRepository } from '@/models/_.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -51,7 +53,7 @@ export const meta = { id: '8c8a4145-02cc-4cca-8e66-29ba60445a8e', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -60,7 +62,7 @@ export const paramDef = { token: { type: 'string' }, }, required: ['appSecret', 'token'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/blocking/create.ts b/packages/backend/src/server/api/endpoints/blocking/create.ts index 5066215749..20afeed526 100644 --- a/packages/backend/src/server/api/endpoints/blocking/create.ts +++ b/packages/backend/src/server/api/endpoints/blocking/create.ts @@ -6,6 +6,8 @@ import ms from 'ms'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UsersRepository, BlockingsRepository } from '@/models/_.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { UserBlockingService } from '@/core/UserBlockingService.js'; @@ -50,7 +52,7 @@ export const meta = { optional: false, nullable: false, ref: 'UserDetailedNotMe', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -58,7 +60,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/blocking/delete.ts b/packages/backend/src/server/api/endpoints/blocking/delete.ts index cebb307338..a5d02c8477 100644 --- a/packages/backend/src/server/api/endpoints/blocking/delete.ts +++ b/packages/backend/src/server/api/endpoints/blocking/delete.ts @@ -6,6 +6,8 @@ import ms from 'ms'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UsersRepository, BlockingsRepository } from '@/models/_.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { UserBlockingService } from '@/core/UserBlockingService.js'; @@ -50,7 +52,7 @@ export const meta = { optional: false, nullable: false, ref: 'UserDetailedNotMe', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -58,7 +60,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/blocking/list.ts b/packages/backend/src/server/api/endpoints/blocking/list.ts index 8431fa6b34..7eb151ff18 100644 --- a/packages/backend/src/server/api/endpoints/blocking/list.ts +++ b/packages/backend/src/server/api/endpoints/blocking/list.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { BlockingsRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { BlockingEntityService } from '@/core/entities/BlockingEntityService.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'Blocking', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/bubble-game/ranking.ts b/packages/backend/src/server/api/endpoints/bubble-game/ranking.ts index ab877bbe20..fcc01a35db 100644 --- a/packages/backend/src/server/api/endpoints/bubble-game/ranking.ts +++ b/packages/backend/src/server/api/endpoints/bubble-game/ranking.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { MoreThan } from 'typeorm'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { BubbleGameRecordsRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; @@ -40,7 +42,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -48,7 +50,7 @@ export const paramDef = { gameMode: { type: 'string' }, }, required: ['gameMode'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/bubble-game/register.ts b/packages/backend/src/server/api/endpoints/bubble-game/register.ts index 0a999e42cd..a980b67995 100644 --- a/packages/backend/src/server/api/endpoints/bubble-game/register.ts +++ b/packages/backend/src/server/api/endpoints/bubble-game/register.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { IdService } from '@/core/IdService.js'; import type { BubbleGameRecordsRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; @@ -29,7 +31,7 @@ export const meta = { id: 'eb627bc7-574b-4a52-a860-3c3eae772b88', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -49,7 +51,7 @@ export const paramDef = { gameVersion: { type: 'integer' }, }, required: ['score', 'seed', 'logs', 'gameMode', 'gameVersion'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/channels/create.ts b/packages/backend/src/server/api/endpoints/channels/create.ts index e3a6d2d670..f0ee9862f3 100644 --- a/packages/backend/src/server/api/endpoints/channels/create.ts +++ b/packages/backend/src/server/api/endpoints/channels/create.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { ChannelsRepository, DriveFilesRepository } from '@/models/_.js'; import type { MiChannel } from '@/models/Channel.js'; import { IdService } from '@/core/IdService.js'; @@ -40,7 +42,7 @@ export const meta = { id: 'cd1e9f3e-5a12-4ab4-96f6-5d0a2cc32050', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -53,7 +55,7 @@ export const paramDef = { allowRenoteToExternal: { type: 'boolean', nullable: true }, }, required: ['name'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/channels/favorite.ts b/packages/backend/src/server/api/endpoints/channels/favorite.ts index a1ae9b80a7..d21f155120 100644 --- a/packages/backend/src/server/api/endpoints/channels/favorite.ts +++ b/packages/backend/src/server/api/endpoints/channels/favorite.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { ChannelFavoritesRepository, ChannelsRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import { DI } from '@/di-symbols.js'; @@ -26,7 +28,7 @@ export const meta = { id: '4938f5f3-6167-4c04-9149-6607b7542861', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -34,7 +36,7 @@ export const paramDef = { channelId: { type: 'string', format: 'misskey:id' }, }, required: ['channelId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/channels/featured.ts b/packages/backend/src/server/api/endpoints/channels/featured.ts index a9a79ba8fc..8ec6b5a42a 100644 --- a/packages/backend/src/server/api/endpoints/channels/featured.ts +++ b/packages/backend/src/server/api/endpoints/channels/featured.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { ChannelsRepository } from '@/models/_.js'; import { ChannelEntityService } from '@/core/entities/ChannelEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -23,13 +25,13 @@ export const meta = { ref: 'Channel', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/channels/follow.ts b/packages/backend/src/server/api/endpoints/channels/follow.ts index 1812820ba2..ee33f79a6f 100644 --- a/packages/backend/src/server/api/endpoints/channels/follow.ts +++ b/packages/backend/src/server/api/endpoints/channels/follow.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { ChannelsRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { ChannelFollowingService } from '@/core/ChannelFollowingService.js'; @@ -26,7 +28,7 @@ export const meta = { id: 'c0031718-d573-4e85-928e-10039f1fbb68', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -34,7 +36,7 @@ export const paramDef = { channelId: { type: 'string', format: 'misskey:id' }, }, required: ['channelId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/channels/followed.ts b/packages/backend/src/server/api/endpoints/channels/followed.ts index d2f36f251e..6e970bad2b 100644 --- a/packages/backend/src/server/api/endpoints/channels/followed.ts +++ b/packages/backend/src/server/api/endpoints/channels/followed.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { ChannelFollowingsRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { ChannelEntityService } from '@/core/entities/ChannelEntityService.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'Channel', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { limit: { type: 'integer', minimum: 1, maximum: 100, default: 5 }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/channels/my-favorites.ts b/packages/backend/src/server/api/endpoints/channels/my-favorites.ts index d96e6c3ad2..12de99f8d9 100644 --- a/packages/backend/src/server/api/endpoints/channels/my-favorites.ts +++ b/packages/backend/src/server/api/endpoints/channels/my-favorites.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { ChannelFavoritesRepository } from '@/models/_.js'; import { ChannelEntityService } from '@/core/entities/ChannelEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -25,14 +27,14 @@ export const meta = { ref: 'Channel', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: { }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/channels/owned.ts b/packages/backend/src/server/api/endpoints/channels/owned.ts index daab685f1b..88eef61c89 100644 --- a/packages/backend/src/server/api/endpoints/channels/owned.ts +++ b/packages/backend/src/server/api/endpoints/channels/owned.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { ChannelsRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { ChannelEntityService } from '@/core/entities/ChannelEntityService.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'Channel', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { limit: { type: 'integer', minimum: 1, maximum: 100, default: 5 }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/channels/search.ts b/packages/backend/src/server/api/endpoints/channels/search.ts index ae32203603..062d4d5565 100644 --- a/packages/backend/src/server/api/endpoints/channels/search.ts +++ b/packages/backend/src/server/api/endpoints/channels/search.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Brackets } from 'typeorm'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import type { ChannelsRepository } from '@/models/_.js'; import { ChannelEntityService } from '@/core/entities/ChannelEntityService.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'Channel', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -38,7 +40,7 @@ export const paramDef = { limit: { type: 'integer', minimum: 1, maximum: 100, default: 5 }, }, required: ['query'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/channels/show.ts b/packages/backend/src/server/api/endpoints/channels/show.ts index 332ce2c9dc..8c049c92b6 100644 --- a/packages/backend/src/server/api/endpoints/channels/show.ts +++ b/packages/backend/src/server/api/endpoints/channels/show.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { ChannelsRepository } from '@/models/_.js'; import { ChannelEntityService } from '@/core/entities/ChannelEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -28,7 +30,7 @@ export const meta = { id: '6f6c314b-7486-4897-8966-c04a66a02923', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { channelId: { type: 'string', format: 'misskey:id' }, }, required: ['channelId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/channels/timeline.ts b/packages/backend/src/server/api/endpoints/channels/timeline.ts index 8c55673590..85c16927e5 100644 --- a/packages/backend/src/server/api/endpoints/channels/timeline.ts +++ b/packages/backend/src/server/api/endpoints/channels/timeline.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { ChannelsRepository, NotesRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; @@ -39,7 +41,7 @@ export const meta = { id: '4d0eeeba-a02c-4c3c-9966-ef60d38d2e7f', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -53,7 +55,7 @@ export const paramDef = { allowPartial: { type: 'boolean', default: false }, // true is recommended but for compatibility false by default }, required: ['channelId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/channels/unfavorite.ts b/packages/backend/src/server/api/endpoints/channels/unfavorite.ts index fc6b75e295..0d9f33fa43 100644 --- a/packages/backend/src/server/api/endpoints/channels/unfavorite.ts +++ b/packages/backend/src/server/api/endpoints/channels/unfavorite.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { ChannelFavoritesRepository, ChannelsRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../../error.js'; @@ -25,7 +27,7 @@ export const meta = { id: '353c68dd-131a-476c-aa99-88a345e83668', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -33,7 +35,7 @@ export const paramDef = { channelId: { type: 'string', format: 'misskey:id' }, }, required: ['channelId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/channels/unfollow.ts b/packages/backend/src/server/api/endpoints/channels/unfollow.ts index 48c5261135..3f2758f233 100644 --- a/packages/backend/src/server/api/endpoints/channels/unfollow.ts +++ b/packages/backend/src/server/api/endpoints/channels/unfollow.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { ChannelsRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { ChannelFollowingService } from '@/core/ChannelFollowingService.js'; @@ -26,7 +28,7 @@ export const meta = { id: '19959ee9-0153-4c51-bbd9-a98c49dc59d6', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -34,7 +36,7 @@ export const paramDef = { channelId: { type: 'string', format: 'misskey:id' }, }, required: ['channelId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/channels/update.ts b/packages/backend/src/server/api/endpoints/channels/update.ts index dba2938b39..7d5a87204f 100644 --- a/packages/backend/src/server/api/endpoints/channels/update.ts +++ b/packages/backend/src/server/api/endpoints/channels/update.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFilesRepository, ChannelsRepository } from '@/models/_.js'; import { ChannelEntityService } from '@/core/entities/ChannelEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -43,7 +45,7 @@ export const meta = { id: 'e86c14a4-0da2-4032-8df3-e737a04c7f3b', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -64,7 +66,7 @@ export const paramDef = { allowRenoteToExternal: { type: 'boolean', nullable: true }, }, required: ['channelId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/charts/active-users.ts b/packages/backend/src/server/api/endpoints/charts/active-users.ts index fd21e3d9fe..5c9f537dda 100644 --- a/packages/backend/src/server/api/endpoints/charts/active-users.ts +++ b/packages/backend/src/server/api/endpoints/charts/active-users.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import { getJsonSchema } from '@/core/chart/core.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import ActiveUsersChart from '@/core/chart/charts/active-users.js'; import { schema } from '@/core/chart/charts/entities/active-users.js'; @@ -16,7 +18,7 @@ export const meta = { allowGet: true, cacheSec: 60 * 60, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -26,7 +28,7 @@ export const paramDef = { offset: { type: 'integer', nullable: true, default: null }, }, required: ['span'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/charts/ap-request.ts b/packages/backend/src/server/api/endpoints/charts/ap-request.ts index cbe792376b..c08fcbf2d8 100644 --- a/packages/backend/src/server/api/endpoints/charts/ap-request.ts +++ b/packages/backend/src/server/api/endpoints/charts/ap-request.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import { getJsonSchema } from '@/core/chart/core.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import ApRequestChart from '@/core/chart/charts/ap-request.js'; import { schema } from '@/core/chart/charts/entities/ap-request.js'; @@ -16,7 +18,7 @@ export const meta = { allowGet: true, cacheSec: 60 * 60, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -26,7 +28,7 @@ export const paramDef = { offset: { type: 'integer', nullable: true, default: null }, }, required: ['span'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/charts/drive.ts b/packages/backend/src/server/api/endpoints/charts/drive.ts index d32bc765a4..597ea3f57d 100644 --- a/packages/backend/src/server/api/endpoints/charts/drive.ts +++ b/packages/backend/src/server/api/endpoints/charts/drive.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import { getJsonSchema } from '@/core/chart/core.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import DriveChart from '@/core/chart/charts/drive.js'; import { schema } from '@/core/chart/charts/entities/drive.js'; @@ -16,7 +18,7 @@ export const meta = { allowGet: true, cacheSec: 60 * 60, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -26,7 +28,7 @@ export const paramDef = { offset: { type: 'integer', nullable: true, default: null }, }, required: ['span'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/charts/federation.ts b/packages/backend/src/server/api/endpoints/charts/federation.ts index dad21e9e8e..6579804ba2 100644 --- a/packages/backend/src/server/api/endpoints/charts/federation.ts +++ b/packages/backend/src/server/api/endpoints/charts/federation.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import { getJsonSchema } from '@/core/chart/core.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import FederationChart from '@/core/chart/charts/federation.js'; import { schema } from '@/core/chart/charts/entities/federation.js'; @@ -16,7 +18,7 @@ export const meta = { allowGet: true, cacheSec: 60 * 60, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -26,7 +28,7 @@ export const paramDef = { offset: { type: 'integer', nullable: true, default: null }, }, required: ['span'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/charts/instance.ts b/packages/backend/src/server/api/endpoints/charts/instance.ts index 68aa12ac0e..f9f69c4797 100644 --- a/packages/backend/src/server/api/endpoints/charts/instance.ts +++ b/packages/backend/src/server/api/endpoints/charts/instance.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import { getJsonSchema } from '@/core/chart/core.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import InstanceChart from '@/core/chart/charts/instance.js'; import { schema } from '@/core/chart/charts/entities/instance.js'; @@ -16,7 +18,7 @@ export const meta = { allowGet: true, cacheSec: 60 * 60, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -27,7 +29,7 @@ export const paramDef = { host: { type: 'string' }, }, required: ['span', 'host'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/charts/notes.ts b/packages/backend/src/server/api/endpoints/charts/notes.ts index e1979cfe8b..b33b4b42b0 100644 --- a/packages/backend/src/server/api/endpoints/charts/notes.ts +++ b/packages/backend/src/server/api/endpoints/charts/notes.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import { getJsonSchema } from '@/core/chart/core.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import NotesChart from '@/core/chart/charts/notes.js'; import { schema } from '@/core/chart/charts/entities/notes.js'; @@ -16,7 +18,7 @@ export const meta = { allowGet: true, cacheSec: 60 * 60, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -26,7 +28,7 @@ export const paramDef = { offset: { type: 'integer', nullable: true, default: null }, }, required: ['span'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/charts/user/drive.ts b/packages/backend/src/server/api/endpoints/charts/user/drive.ts index dcb72084b7..efea13bd21 100644 --- a/packages/backend/src/server/api/endpoints/charts/user/drive.ts +++ b/packages/backend/src/server/api/endpoints/charts/user/drive.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import { getJsonSchema } from '@/core/chart/core.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import PerUserDriveChart from '@/core/chart/charts/per-user-drive.js'; import { schema } from '@/core/chart/charts/entities/per-user-drive.js'; @@ -16,7 +18,7 @@ export const meta = { allowGet: true, cacheSec: 60 * 60, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -27,7 +29,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['span', 'userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/charts/user/following.ts b/packages/backend/src/server/api/endpoints/charts/user/following.ts index 0a019ce4fb..d55e25359e 100644 --- a/packages/backend/src/server/api/endpoints/charts/user/following.ts +++ b/packages/backend/src/server/api/endpoints/charts/user/following.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { getJsonSchema } from '@/core/chart/core.js'; import PerUserFollowingChart from '@/core/chart/charts/per-user-following.js'; import { schema } from '@/core/chart/charts/entities/per-user-following.js'; @@ -16,7 +18,7 @@ export const meta = { allowGet: true, cacheSec: 60 * 60, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -27,7 +29,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['span', 'userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/charts/user/notes.ts b/packages/backend/src/server/api/endpoints/charts/user/notes.ts index 06b15bca18..2dfeda3f3b 100644 --- a/packages/backend/src/server/api/endpoints/charts/user/notes.ts +++ b/packages/backend/src/server/api/endpoints/charts/user/notes.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import { getJsonSchema } from '@/core/chart/core.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import PerUserNotesChart from '@/core/chart/charts/per-user-notes.js'; import { schema } from '@/core/chart/charts/entities/per-user-notes.js'; @@ -16,7 +18,7 @@ export const meta = { allowGet: true, cacheSec: 60 * 60, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -27,7 +29,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['span', 'userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/charts/user/pv.ts b/packages/backend/src/server/api/endpoints/charts/user/pv.ts index d359b491e2..be4debe289 100644 --- a/packages/backend/src/server/api/endpoints/charts/user/pv.ts +++ b/packages/backend/src/server/api/endpoints/charts/user/pv.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import { getJsonSchema } from '@/core/chart/core.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import PerUserPvChart from '@/core/chart/charts/per-user-pv.js'; import { schema } from '@/core/chart/charts/entities/per-user-pv.js'; @@ -16,7 +18,7 @@ export const meta = { allowGet: true, cacheSec: 60 * 60, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -27,7 +29,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['span', 'userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/charts/user/reactions.ts b/packages/backend/src/server/api/endpoints/charts/user/reactions.ts index 4355aa5348..fa75caf0e2 100644 --- a/packages/backend/src/server/api/endpoints/charts/user/reactions.ts +++ b/packages/backend/src/server/api/endpoints/charts/user/reactions.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import { getJsonSchema } from '@/core/chart/core.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import PerUserReactionsChart from '@/core/chart/charts/per-user-reactions.js'; import { schema } from '@/core/chart/charts/entities/per-user-reactions.js'; @@ -16,7 +18,7 @@ export const meta = { allowGet: true, cacheSec: 60 * 60, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -27,7 +29,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['span', 'userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/charts/users.ts b/packages/backend/src/server/api/endpoints/charts/users.ts index 1f5f5fea54..cfe42f4bc7 100644 --- a/packages/backend/src/server/api/endpoints/charts/users.ts +++ b/packages/backend/src/server/api/endpoints/charts/users.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import { getJsonSchema } from '@/core/chart/core.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import UsersChart from '@/core/chart/charts/users.js'; import { schema } from '@/core/chart/charts/entities/users.js'; @@ -16,7 +18,7 @@ export const meta = { allowGet: true, cacheSec: 60 * 60, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -26,7 +28,7 @@ export const paramDef = { offset: { type: 'integer', nullable: true, default: null }, }, required: ['span'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/clips/add-note.ts b/packages/backend/src/server/api/endpoints/clips/add-note.ts index d7c9ea3964..b3e6f19f6c 100644 --- a/packages/backend/src/server/api/endpoints/clips/add-note.ts +++ b/packages/backend/src/server/api/endpoints/clips/add-note.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ClipService } from '@/core/ClipService.js'; import { ApiError } from '../../error.js'; @@ -48,7 +50,7 @@ export const meta = { id: 'f0dba960-ff73-4615-8df4-d6ac5d9dc118', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -57,7 +59,7 @@ export const paramDef = { noteId: { type: 'string', format: 'misskey:id' }, }, required: ['clipId', 'noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/clips/create.ts b/packages/backend/src/server/api/endpoints/clips/create.ts index ceebc8ba5e..aa1f2d409e 100644 --- a/packages/backend/src/server/api/endpoints/clips/create.ts +++ b/packages/backend/src/server/api/endpoints/clips/create.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { MiClip } from '@/models/_.js'; import { ClipEntityService } from '@/core/entities/ClipEntityService.js'; import { ApiError } from '@/server/api/error.js'; @@ -32,7 +34,7 @@ export const meta = { id: '920f7c2d-6208-4b76-8082-e632020f5883', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -42,7 +44,7 @@ export const paramDef = { description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048 }, }, required: ['name'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/clips/delete.ts b/packages/backend/src/server/api/endpoints/clips/delete.ts index ca8ff2e1f1..f51ef5df08 100644 --- a/packages/backend/src/server/api/endpoints/clips/delete.ts +++ b/packages/backend/src/server/api/endpoints/clips/delete.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ClipService } from '@/core/ClipService.js'; import { ApiError } from '../../error.js'; @@ -22,7 +24,7 @@ export const meta = { id: '70ca08ba-6865-4630-b6fb-8494759aa754', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -30,7 +32,7 @@ export const paramDef = { clipId: { type: 'string', format: 'misskey:id' }, }, required: ['clipId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/clips/favorite.ts b/packages/backend/src/server/api/endpoints/clips/favorite.ts index 11f8ec3e92..e9d78c3fcd 100644 --- a/packages/backend/src/server/api/endpoints/clips/favorite.ts +++ b/packages/backend/src/server/api/endpoints/clips/favorite.ts @@ -7,6 +7,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { ClipsRepository, ClipFavoritesRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../../error.js'; @@ -32,7 +34,7 @@ export const meta = { id: '92658936-c625-4273-8326-2d790129256e', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -40,7 +42,7 @@ export const paramDef = { clipId: { type: 'string', format: 'misskey:id' }, }, required: ['clipId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/clips/list.ts b/packages/backend/src/server/api/endpoints/clips/list.ts index 2e4a3ff820..a436f684f2 100644 --- a/packages/backend/src/server/api/endpoints/clips/list.ts +++ b/packages/backend/src/server/api/endpoints/clips/list.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { ClipsRepository } from '@/models/_.js'; import { ClipEntityService } from '@/core/entities/ClipEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -25,13 +27,13 @@ export const meta = { ref: 'Clip', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/clips/my-favorites.ts b/packages/backend/src/server/api/endpoints/clips/my-favorites.ts index 44719592d1..4b050e54c0 100644 --- a/packages/backend/src/server/api/endpoints/clips/my-favorites.ts +++ b/packages/backend/src/server/api/endpoints/clips/my-favorites.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { ClipFavoritesRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { ClipEntityService } from '@/core/entities/ClipEntityService.js'; @@ -25,14 +27,14 @@ export const meta = { ref: 'Clip', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: { }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/clips/notes.ts b/packages/backend/src/server/api/endpoints/clips/notes.ts index 943c31c894..205d27731a 100644 --- a/packages/backend/src/server/api/endpoints/clips/notes.ts +++ b/packages/backend/src/server/api/endpoints/clips/notes.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { NotesRepository, ClipsRepository, ClipNotesRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; @@ -35,7 +37,7 @@ export const meta = { ref: 'Note', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -46,7 +48,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: ['clipId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/clips/remove-note.ts b/packages/backend/src/server/api/endpoints/clips/remove-note.ts index 33f9ecd25b..5e5d1f95c5 100644 --- a/packages/backend/src/server/api/endpoints/clips/remove-note.ts +++ b/packages/backend/src/server/api/endpoints/clips/remove-note.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ClipService } from '@/core/ClipService.js'; import { ApiError } from '../../error.js'; @@ -30,7 +32,7 @@ export const meta = { id: 'aff017de-190e-434b-893e-33a9ff5049d8', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -39,7 +41,7 @@ export const paramDef = { noteId: { type: 'string', format: 'misskey:id' }, }, required: ['clipId', 'noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/clips/show.ts b/packages/backend/src/server/api/endpoints/clips/show.ts index 1078a1b176..8fbc88475d 100644 --- a/packages/backend/src/server/api/endpoints/clips/show.ts +++ b/packages/backend/src/server/api/endpoints/clips/show.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { ClipsRepository } from '@/models/_.js'; import { ClipEntityService } from '@/core/entities/ClipEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -30,7 +32,7 @@ export const meta = { optional: false, nullable: false, ref: 'Clip', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -38,7 +40,7 @@ export const paramDef = { clipId: { type: 'string', format: 'misskey:id' }, }, required: ['clipId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/clips/unfavorite.ts b/packages/backend/src/server/api/endpoints/clips/unfavorite.ts index a458fda4a0..bdb1f1cef5 100644 --- a/packages/backend/src/server/api/endpoints/clips/unfavorite.ts +++ b/packages/backend/src/server/api/endpoints/clips/unfavorite.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { ClipsRepository, ClipFavoritesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../../error.js'; @@ -31,7 +33,7 @@ export const meta = { id: '90c3a9e8-b321-4dae-bf57-2bf79bbcc187', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -39,7 +41,7 @@ export const paramDef = { clipId: { type: 'string', format: 'misskey:id' }, }, required: ['clipId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/clips/update.ts b/packages/backend/src/server/api/endpoints/clips/update.ts index 603a3ccf3d..5952086808 100644 --- a/packages/backend/src/server/api/endpoints/clips/update.ts +++ b/packages/backend/src/server/api/endpoints/clips/update.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ClipEntityService } from '@/core/entities/ClipEntityService.js'; import { ClipService } from '@/core/ClipService.js'; import { ApiError } from '../../error.js'; @@ -31,7 +33,7 @@ export const meta = { optional: false, nullable: false, ref: 'Clip', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -42,7 +44,7 @@ export const paramDef = { description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048 }, }, required: ['clipId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive.ts b/packages/backend/src/server/api/endpoints/drive.ts index 7e9b0fa0e1..a668354543 100644 --- a/packages/backend/src/server/api/endpoints/drive.ts +++ b/packages/backend/src/server/api/endpoints/drive.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { MetaService } from '@/core/MetaService.js'; import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js'; import { RoleService } from '@/core/RoleService.js'; @@ -30,13 +32,13 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/files.ts b/packages/backend/src/server/api/endpoints/drive/files.ts index 10c521332d..57cdf9cb6a 100644 --- a/packages/backend/src/server/api/endpoints/drive/files.ts +++ b/packages/backend/src/server/api/endpoints/drive/files.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFilesRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'DriveFile', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -39,7 +41,7 @@ export const paramDef = { sort: { type: 'string', nullable: true, enum: ['+createdAt', '-createdAt', '+name', '-name', '+size', '-size', null] }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/files/attached-notes.ts b/packages/backend/src/server/api/endpoints/drive/files/attached-notes.ts index 4670392025..baf901cdb6 100644 --- a/packages/backend/src/server/api/endpoints/drive/files/attached-notes.ts +++ b/packages/backend/src/server/api/endpoints/drive/files/attached-notes.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { NotesRepository, DriveFilesRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; @@ -37,7 +39,7 @@ export const meta = { id: 'c118ece3-2e4b-4296-99d1-51756e32d232', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -48,7 +50,7 @@ export const paramDef = { fileId: { type: 'string', format: 'misskey:id' }, }, required: ['fileId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/files/check-existence.ts b/packages/backend/src/server/api/endpoints/drive/files/check-existence.ts index cc7920505f..27e53037fd 100644 --- a/packages/backend/src/server/api/endpoints/drive/files/check-existence.ts +++ b/packages/backend/src/server/api/endpoints/drive/files/check-existence.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFilesRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; @@ -21,7 +23,7 @@ export const meta = { type: 'boolean', optional: false, nullable: false, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -29,7 +31,7 @@ export const paramDef = { md5: { type: 'string' }, }, required: ['md5'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/files/create.ts b/packages/backend/src/server/api/endpoints/drive/files/create.ts index 9c17f93ab2..fbf92f8f9f 100644 --- a/packages/backend/src/server/api/endpoints/drive/files/create.ts +++ b/packages/backend/src/server/api/endpoints/drive/files/create.ts @@ -8,6 +8,8 @@ import { Injectable } from '@nestjs/common'; import { DB_MAX_IMAGE_COMMENT_LENGTH } from '@/const.js'; import { IdentifiableError } from '@/misc/identifiable-error.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js'; import { MetaService } from '@/core/MetaService.js'; import { DriveService } from '@/core/DriveService.js'; @@ -56,7 +58,7 @@ export const meta = { id: 'd08dbc37-a6a9-463a-8c47-96c32ab5f064', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -68,7 +70,7 @@ export const paramDef = { force: { type: 'boolean', default: false }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/files/delete.ts b/packages/backend/src/server/api/endpoints/drive/files/delete.ts index fa6e11da49..cc401bda01 100644 --- a/packages/backend/src/server/api/endpoints/drive/files/delete.ts +++ b/packages/backend/src/server/api/endpoints/drive/files/delete.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFilesRepository } from '@/models/_.js'; import { DriveService } from '@/core/DriveService.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; @@ -34,7 +36,7 @@ export const meta = { id: '5eb8d909-2540-4970-90b8-dd6f86088121', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -42,7 +44,7 @@ export const paramDef = { fileId: { type: 'string', format: 'misskey:id' }, }, required: ['fileId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/files/find-by-hash.ts b/packages/backend/src/server/api/endpoints/drive/files/find-by-hash.ts index 090cff6875..8126953ce3 100644 --- a/packages/backend/src/server/api/endpoints/drive/files/find-by-hash.ts +++ b/packages/backend/src/server/api/endpoints/drive/files/find-by-hash.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { DriveFilesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -27,7 +29,7 @@ export const meta = { ref: 'DriveFile', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { md5: { type: 'string' }, }, required: ['md5'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/files/find.ts b/packages/backend/src/server/api/endpoints/drive/files/find.ts index 502d42f9e0..d476abfee2 100644 --- a/packages/backend/src/server/api/endpoints/drive/files/find.ts +++ b/packages/backend/src/server/api/endpoints/drive/files/find.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { IsNull } from 'typeorm'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFilesRepository } from '@/models/_.js'; import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -28,7 +30,7 @@ export const meta = { ref: 'DriveFile', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -37,7 +39,7 @@ export const paramDef = { folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null }, }, required: ['name'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/files/show.ts b/packages/backend/src/server/api/endpoints/drive/files/show.ts index e8f4539d61..be01259eb9 100644 --- a/packages/backend/src/server/api/endpoints/drive/files/show.ts +++ b/packages/backend/src/server/api/endpoints/drive/files/show.ts @@ -7,6 +7,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { MiDriveFile } from '@/models/DriveFile.js'; import type { DriveFilesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js'; import { DI } from '@/di-symbols.js'; import { RoleService } from '@/core/RoleService.js'; @@ -40,7 +42,7 @@ export const meta = { id: '25b73c73-68b1-41d0-bad1-381cfdf6579f', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -52,7 +54,7 @@ export const paramDef = { { required: ['fileId'] }, { required: ['url'] }, ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/files/update.ts b/packages/backend/src/server/api/endpoints/drive/files/update.ts index df1622cce0..4b979ce693 100644 --- a/packages/backend/src/server/api/endpoints/drive/files/update.ts +++ b/packages/backend/src/server/api/endpoints/drive/files/update.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { DriveFilesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { RoleService } from '@/core/RoleService.js'; import { DriveService } from '@/core/DriveService.js'; @@ -56,7 +58,7 @@ export const meta = { optional: false, nullable: false, ref: 'DriveFile', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -68,7 +70,7 @@ export const paramDef = { comment: { type: 'string', nullable: true, maxLength: 512 }, }, required: ['fileId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts b/packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts index b964ae95b8..c6ada3167c 100644 --- a/packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts +++ b/packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts @@ -6,6 +6,8 @@ import ms from 'ms'; import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js'; import { DriveService } from '@/core/DriveService.js'; @@ -25,7 +27,7 @@ export const meta = { prohibitMoved: true, kind: 'write:drive', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -38,7 +40,7 @@ export const paramDef = { force: { type: 'boolean', default: false }, }, required: ['url'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/folders.ts b/packages/backend/src/server/api/endpoints/drive/folders.ts index 8c4848f8e1..6ef673c83f 100644 --- a/packages/backend/src/server/api/endpoints/drive/folders.ts +++ b/packages/backend/src/server/api/endpoints/drive/folders.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFoldersRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { DriveFolderEntityService } from '@/core/entities/DriveFolderEntityService.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'DriveFolder', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -37,7 +39,7 @@ export const paramDef = { folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/folders/create.ts b/packages/backend/src/server/api/endpoints/drive/folders/create.ts index 08d9d9cdc3..80fc0b481d 100644 --- a/packages/backend/src/server/api/endpoints/drive/folders/create.ts +++ b/packages/backend/src/server/api/endpoints/drive/folders/create.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFoldersRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import { DriveFolderEntityService } from '@/core/entities/DriveFolderEntityService.js'; @@ -38,7 +40,7 @@ export const meta = { optional: false as const, nullable: false as const, ref: 'DriveFolder', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -47,7 +49,7 @@ export const paramDef = { parentId: { type: 'string', format: 'misskey:id', nullable: true }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/folders/delete.ts b/packages/backend/src/server/api/endpoints/drive/folders/delete.ts index 85d63873a4..2223e9c33d 100644 --- a/packages/backend/src/server/api/endpoints/drive/folders/delete.ts +++ b/packages/backend/src/server/api/endpoints/drive/folders/delete.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFoldersRepository, DriveFilesRepository } from '@/models/_.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; import { DI } from '@/di-symbols.js'; @@ -30,7 +32,7 @@ export const meta = { id: 'b0fc8a17-963c-405d-bfbc-859a487295e1', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -38,7 +40,7 @@ export const paramDef = { folderId: { type: 'string', format: 'misskey:id' }, }, required: ['folderId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/folders/find.ts b/packages/backend/src/server/api/endpoints/drive/folders/find.ts index eb45a30bc0..31432deb7b 100644 --- a/packages/backend/src/server/api/endpoints/drive/folders/find.ts +++ b/packages/backend/src/server/api/endpoints/drive/folders/find.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { IsNull } from 'typeorm'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFoldersRepository } from '@/models/_.js'; import { DriveFolderEntityService } from '@/core/entities/DriveFolderEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'DriveFolder', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { parentId: { type: 'string', format: 'misskey:id', nullable: true, default: null }, }, required: ['name'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/folders/show.ts b/packages/backend/src/server/api/endpoints/drive/folders/show.ts index a1c0df6697..247cf8e5c6 100644 --- a/packages/backend/src/server/api/endpoints/drive/folders/show.ts +++ b/packages/backend/src/server/api/endpoints/drive/folders/show.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFoldersRepository } from '@/models/_.js'; import { DriveFolderEntityService } from '@/core/entities/DriveFolderEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -30,7 +32,7 @@ export const meta = { id: 'd74ab9eb-bb09-4bba-bf24-fb58f761e1e9', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -38,7 +40,7 @@ export const paramDef = { folderId: { type: 'string', format: 'misskey:id' }, }, required: ['folderId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/folders/update.ts b/packages/backend/src/server/api/endpoints/drive/folders/update.ts index 62b04e1df3..efb034a8fa 100644 --- a/packages/backend/src/server/api/endpoints/drive/folders/update.ts +++ b/packages/backend/src/server/api/endpoints/drive/folders/update.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFoldersRepository } from '@/models/_.js'; import { DriveFolderEntityService } from '@/core/entities/DriveFolderEntityService.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; @@ -43,7 +45,7 @@ export const meta = { optional: false, nullable: false, ref: 'DriveFolder', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -53,7 +55,7 @@ export const paramDef = { parentId: { type: 'string', format: 'misskey:id', nullable: true }, }, required: ['folderId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/drive/stream.ts b/packages/backend/src/server/api/endpoints/drive/stream.ts index f7c1ed39b5..44eb6403b4 100644 --- a/packages/backend/src/server/api/endpoints/drive/stream.ts +++ b/packages/backend/src/server/api/endpoints/drive/stream.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFilesRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'DriveFile', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -37,7 +39,7 @@ export const paramDef = { type: { type: 'string', pattern: /^[a-zA-Z\/\-*]+$/.toString().slice(1, -1) }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/email-address/available.ts b/packages/backend/src/server/api/endpoints/email-address/available.ts index 1d7dacd60e..7209cd813f 100644 --- a/packages/backend/src/server/api/endpoints/email-address/available.ts +++ b/packages/backend/src/server/api/endpoints/email-address/available.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { EmailService } from '@/core/EmailService.js'; export const meta = { @@ -26,7 +28,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -34,7 +36,7 @@ export const paramDef = { emailAddress: { type: 'string' }, }, required: ['emailAddress'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/emoji.ts b/packages/backend/src/server/api/endpoints/emoji.ts index ccfbda0d44..aacc603e72 100644 --- a/packages/backend/src/server/api/endpoints/emoji.ts +++ b/packages/backend/src/server/api/endpoints/emoji.ts @@ -7,6 +7,8 @@ import { IsNull } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import type { EmojisRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { EmojiEntityService } from '@/core/entities/EmojiEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -22,7 +24,7 @@ export const meta = { optional: false, nullable: false, ref: 'EmojiDetailed', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -32,7 +34,7 @@ export const paramDef = { }, }, required: ['name'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/emojis.ts b/packages/backend/src/server/api/endpoints/emojis.ts index 46ef4eca1b..f34a81b5e7 100644 --- a/packages/backend/src/server/api/endpoints/emojis.ts +++ b/packages/backend/src/server/api/endpoints/emojis.ts @@ -7,6 +7,8 @@ import { IsNull } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import type { EmojisRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { EmojiEntityService } from '@/core/entities/EmojiEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -32,14 +34,14 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: { }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/endpoint.ts b/packages/backend/src/server/api/endpoints/endpoint.ts index fe7e9c36f3..a51d10dfb2 100644 --- a/packages/backend/src/server/api/endpoints/endpoint.ts +++ b/packages/backend/src/server/api/endpoints/endpoint.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import endpoints from '../endpoints.js'; export const meta = { @@ -28,7 +30,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { endpoint: { type: 'string' }, }, required: ['endpoint'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/endpoints.ts b/packages/backend/src/server/api/endpoints/endpoints.ts index 4aedf62a84..9faaaf8a89 100644 --- a/packages/backend/src/server/api/endpoints/endpoints.ts +++ b/packages/backend/src/server/api/endpoints/endpoints.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import endpoints from '../endpoints.js'; export const meta = { @@ -26,13 +28,13 @@ export const meta = { '...', ], }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/export-custom-emojis.ts b/packages/backend/src/server/api/endpoints/export-custom-emojis.ts index 5ff099524d..8c31bbe739 100644 --- a/packages/backend/src/server/api/endpoints/export-custom-emojis.ts +++ b/packages/backend/src/server/api/endpoints/export-custom-emojis.ts @@ -6,6 +6,8 @@ import ms from 'ms'; import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueueService } from '@/core/QueueService.js'; export const meta = { @@ -15,13 +17,13 @@ export const meta = { duration: ms('1hour'), max: 1, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/federation/followers.ts b/packages/backend/src/server/api/endpoints/federation/followers.ts index ce4dd13067..b82075d71f 100644 --- a/packages/backend/src/server/api/endpoints/federation/followers.ts +++ b/packages/backend/src/server/api/endpoints/federation/followers.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { FollowingsRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { FollowingEntityService } from '@/core/entities/FollowingEntityService.js'; @@ -24,7 +26,7 @@ export const meta = { ref: 'Following', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, }, required: ['host'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/federation/following.ts b/packages/backend/src/server/api/endpoints/federation/following.ts index 1a793889c7..23e44b96de 100644 --- a/packages/backend/src/server/api/endpoints/federation/following.ts +++ b/packages/backend/src/server/api/endpoints/federation/following.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { FollowingsRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { FollowingEntityService } from '@/core/entities/FollowingEntityService.js'; @@ -24,7 +26,7 @@ export const meta = { ref: 'Following', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, }, required: ['host'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/federation/instances.ts b/packages/backend/src/server/api/endpoints/federation/instances.ts index 41954129e6..8c4ef9189e 100644 --- a/packages/backend/src/server/api/endpoints/federation/instances.ts +++ b/packages/backend/src/server/api/endpoints/federation/instances.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { InstancesRepository } from '@/models/_.js'; import { InstanceEntityService } from '@/core/entities/InstanceEntityService.js'; import { MetaService } from '@/core/MetaService.js'; @@ -27,7 +29,7 @@ export const meta = { ref: 'FederationInstance', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -65,7 +67,7 @@ export const paramDef = { }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/federation/show-instance.ts b/packages/backend/src/server/api/endpoints/federation/show-instance.ts index 2972861a4b..0614353936 100644 --- a/packages/backend/src/server/api/endpoints/federation/show-instance.ts +++ b/packages/backend/src/server/api/endpoints/federation/show-instance.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { InstancesRepository } from '@/models/_.js'; import { InstanceEntityService } from '@/core/entities/InstanceEntityService.js'; import { UtilityService } from '@/core/UtilityService.js'; @@ -20,7 +22,7 @@ export const meta = { optional: false, nullable: true, ref: 'FederationInstance', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -28,7 +30,7 @@ export const paramDef = { host: { type: 'string' }, }, required: ['host'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/federation/stats.ts b/packages/backend/src/server/api/endpoints/federation/stats.ts index 69900bff9a..5bdd9d0ac3 100644 --- a/packages/backend/src/server/api/endpoints/federation/stats.ts +++ b/packages/backend/src/server/api/endpoints/federation/stats.ts @@ -8,6 +8,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { FollowingsRepository, InstancesRepository } from '@/models/_.js'; import { awaitAll } from '@/misc/prelude/await-all.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { InstanceEntityService } from '@/core/entities/InstanceEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -50,7 +52,7 @@ export const meta = { otherFollowingCount: { type: 'number' }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -58,7 +60,7 @@ export const paramDef = { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts b/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts index f8430ef431..a397adeac0 100644 --- a/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts +++ b/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ApPersonService } from '@/core/activitypub/models/ApPersonService.js'; import { GetterService } from '@/server/api/GetterService.js'; @@ -12,7 +14,7 @@ export const meta = { tags: ['federation'], requireCredential: false, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -20,7 +22,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/federation/users.ts b/packages/backend/src/server/api/endpoints/federation/users.ts index 71b1aeb07b..55131cc4e4 100644 --- a/packages/backend/src/server/api/endpoints/federation/users.ts +++ b/packages/backend/src/server/api/endpoints/federation/users.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UsersRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; @@ -24,7 +26,7 @@ export const meta = { ref: 'UserDetailedNotMe', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, }, required: ['host'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/fetch-external-resources.ts b/packages/backend/src/server/api/endpoints/fetch-external-resources.ts index f36136d53b..3fd17ef7d7 100644 --- a/packages/backend/src/server/api/endpoints/fetch-external-resources.ts +++ b/packages/backend/src/server/api/endpoints/fetch-external-resources.ts @@ -7,6 +7,8 @@ import { createHash } from 'crypto'; import ms from 'ms'; import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { HttpRequestService } from '@/core/HttpRequestService.js'; import { ApiError } from '../error.js'; @@ -45,7 +47,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -54,7 +56,7 @@ export const paramDef = { hash: { type: 'string' }, }, required: ['url', 'hash'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/fetch-rss.ts b/packages/backend/src/server/api/endpoints/fetch-rss.ts index ba48b0119e..7ffc18c4a5 100644 --- a/packages/backend/src/server/api/endpoints/fetch-rss.ts +++ b/packages/backend/src/server/api/endpoints/fetch-rss.ts @@ -6,6 +6,8 @@ import Parser from 'rss-parser'; import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { HttpRequestService } from '@/core/HttpRequestService.js'; const rssParser = new Parser(); @@ -203,7 +205,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -211,7 +213,7 @@ export const paramDef = { url: { type: 'string' }, }, required: ['url'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/flash/create.ts b/packages/backend/src/server/api/endpoints/flash/create.ts index 64f13a577e..9d2c85e949 100644 --- a/packages/backend/src/server/api/endpoints/flash/create.ts +++ b/packages/backend/src/server/api/endpoints/flash/create.ts @@ -8,6 +8,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { FlashsRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { FlashEntityService } from '@/core/entities/FlashEntityService.js'; @@ -33,7 +35,7 @@ export const meta = { optional: false, nullable: false, ref: 'Flash', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -47,7 +49,7 @@ export const paramDef = { visibility: { type: 'string', enum: ['public', 'private'], default: 'public' }, }, required: ['title', 'summary', 'script', 'permissions'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/flash/delete.ts b/packages/backend/src/server/api/endpoints/flash/delete.ts index 6912450abf..bc85971822 100644 --- a/packages/backend/src/server/api/endpoints/flash/delete.ts +++ b/packages/backend/src/server/api/endpoints/flash/delete.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { FlashsRepository, UsersRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { ModerationLogService } from '@/core/ModerationLogService.js'; import { RoleService } from '@/core/RoleService.js'; @@ -31,7 +33,7 @@ export const meta = { id: '1036ad7b-9f92-4fff-89c3-0e50dc941704', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -39,7 +41,7 @@ export const paramDef = { flashId: { type: 'string', format: 'misskey:id' }, }, required: ['flashId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/flash/featured.ts b/packages/backend/src/server/api/endpoints/flash/featured.ts index c2d6ab5085..ff13b376ee 100644 --- a/packages/backend/src/server/api/endpoints/flash/featured.ts +++ b/packages/backend/src/server/api/endpoints/flash/featured.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { FlashsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { FlashEntityService } from '@/core/entities/FlashEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -23,13 +25,13 @@ export const meta = { ref: 'Flash', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/flash/like.ts b/packages/backend/src/server/api/endpoints/flash/like.ts index e4dc5b61c5..92ee068297 100644 --- a/packages/backend/src/server/api/endpoints/flash/like.ts +++ b/packages/backend/src/server/api/endpoints/flash/like.ts @@ -7,6 +7,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { FlashsRepository, FlashLikesRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../../error.js'; @@ -38,7 +40,7 @@ export const meta = { id: '010065cf-ad43-40df-8067-abff9f4686e3', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -46,7 +48,7 @@ export const paramDef = { flashId: { type: 'string', format: 'misskey:id' }, }, required: ['flashId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/flash/my-likes.ts b/packages/backend/src/server/api/endpoints/flash/my-likes.ts index 755cc5acfc..d96230b388 100644 --- a/packages/backend/src/server/api/endpoints/flash/my-likes.ts +++ b/packages/backend/src/server/api/endpoints/flash/my-likes.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { FlashLikesRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { FlashLikeEntityService } from '@/core/entities/FlashLikeEntityService.js'; @@ -36,7 +38,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -46,7 +48,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/flash/my.ts b/packages/backend/src/server/api/endpoints/flash/my.ts index 5746096232..6cd45f7e0f 100644 --- a/packages/backend/src/server/api/endpoints/flash/my.ts +++ b/packages/backend/src/server/api/endpoints/flash/my.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { FlashsRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { FlashEntityService } from '@/core/entities/FlashEntityService.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'Flash', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/flash/show.ts b/packages/backend/src/server/api/endpoints/flash/show.ts index a6fbd8e76e..d3dec140c0 100644 --- a/packages/backend/src/server/api/endpoints/flash/show.ts +++ b/packages/backend/src/server/api/endpoints/flash/show.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { FlashsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { FlashEntityService } from '@/core/entities/FlashEntityService.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../../error.js'; @@ -28,7 +30,7 @@ export const meta = { id: 'f0d34a1a-d29a-401d-90ba-1982122b5630', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { flashId: { type: 'string', format: 'misskey:id' }, }, required: ['flashId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/flash/unlike.ts b/packages/backend/src/server/api/endpoints/flash/unlike.ts index 7869bcdf52..8b5cfe8f20 100644 --- a/packages/backend/src/server/api/endpoints/flash/unlike.ts +++ b/packages/backend/src/server/api/endpoints/flash/unlike.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { FlashsRepository, FlashLikesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../../error.js'; @@ -31,7 +33,7 @@ export const meta = { id: '755f25a7-9871-4f65-9f34-51eaad9ae0ac', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -39,7 +41,7 @@ export const paramDef = { flashId: { type: 'string', format: 'misskey:id' }, }, required: ['flashId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/flash/update.ts b/packages/backend/src/server/api/endpoints/flash/update.ts index e378669f0a..7defde3017 100644 --- a/packages/backend/src/server/api/endpoints/flash/update.ts +++ b/packages/backend/src/server/api/endpoints/flash/update.ts @@ -7,6 +7,8 @@ import ms from 'ms'; import { Inject, Injectable } from '@nestjs/common'; import type { FlashsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../../error.js'; @@ -37,7 +39,7 @@ export const meta = { id: '08e60c88-5948-478e-a132-02ec701d67b2', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -52,7 +54,7 @@ export const paramDef = { visibility: { type: 'string', enum: ['public', 'private'] }, }, required: ['flashId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/following/create.ts b/packages/backend/src/server/api/endpoints/following/create.ts index db320e7129..b42c79efc8 100644 --- a/packages/backend/src/server/api/endpoints/following/create.ts +++ b/packages/backend/src/server/api/endpoints/following/create.ts @@ -6,6 +6,8 @@ import ms from 'ms'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { FollowingsRepository } from '@/models/_.js'; import { IdentifiableError } from '@/misc/identifiable-error.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; @@ -65,7 +67,7 @@ export const meta = { optional: false, nullable: false, ref: 'UserLite', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -74,7 +76,7 @@ export const paramDef = { withReplies: { type: 'boolean' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/following/delete.ts b/packages/backend/src/server/api/endpoints/following/delete.ts index ba146b6703..64ed4da284 100644 --- a/packages/backend/src/server/api/endpoints/following/delete.ts +++ b/packages/backend/src/server/api/endpoints/following/delete.ts @@ -6,6 +6,8 @@ import ms from 'ms'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { FollowingsRepository } from '@/models/_.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { UserFollowingService } from '@/core/UserFollowingService.js'; @@ -50,7 +52,7 @@ export const meta = { optional: false, nullable: false, ref: 'UserLite', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -58,7 +60,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/following/invalidate.ts b/packages/backend/src/server/api/endpoints/following/invalidate.ts index 8935c2c2da..c12c17d0e2 100644 --- a/packages/backend/src/server/api/endpoints/following/invalidate.ts +++ b/packages/backend/src/server/api/endpoints/following/invalidate.ts @@ -6,6 +6,8 @@ import ms from 'ms'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { FollowingsRepository } from '@/models/_.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { UserFollowingService } from '@/core/UserFollowingService.js'; @@ -50,7 +52,7 @@ export const meta = { optional: false, nullable: false, ref: 'UserLite', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -58,7 +60,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/following/requests/accept.ts b/packages/backend/src/server/api/endpoints/following/requests/accept.ts index 2d1446681c..1ee5f2641e 100644 --- a/packages/backend/src/server/api/endpoints/following/requests/accept.ts +++ b/packages/backend/src/server/api/endpoints/following/requests/accept.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { GetterService } from '@/server/api/GetterService.js'; import { UserFollowingService } from '@/core/UserFollowingService.js'; import { ApiError } from '../../../error.js'; @@ -28,7 +30,7 @@ export const meta = { id: 'bcde4f8b-0913-4614-8881-614e522fb041', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/following/requests/cancel.ts b/packages/backend/src/server/api/endpoints/following/requests/cancel.ts index 6d663d480c..02931af0ad 100644 --- a/packages/backend/src/server/api/endpoints/following/requests/cancel.ts +++ b/packages/backend/src/server/api/endpoints/following/requests/cancel.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { IdentifiableError } from '@/misc/identifiable-error.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { GetterService } from '@/server/api/GetterService.js'; @@ -37,7 +39,7 @@ export const meta = { optional: false, nullable: false, ref: 'UserLite', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -45,7 +47,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/following/requests/list.ts b/packages/backend/src/server/api/endpoints/following/requests/list.ts index fa59e38976..930ae23417 100644 --- a/packages/backend/src/server/api/endpoints/following/requests/list.ts +++ b/packages/backend/src/server/api/endpoints/following/requests/list.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import type { FollowRequestsRepository } from '@/models/_.js'; import { FollowRequestEntityService } from '@/core/entities/FollowRequestEntityService.js'; @@ -42,7 +44,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -52,7 +54,7 @@ export const paramDef = { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/following/requests/reject.ts b/packages/backend/src/server/api/endpoints/following/requests/reject.ts index 4f78eae677..f0d6d6bc45 100644 --- a/packages/backend/src/server/api/endpoints/following/requests/reject.ts +++ b/packages/backend/src/server/api/endpoints/following/requests/reject.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { GetterService } from '@/server/api/GetterService.js'; import { UserFollowingService } from '@/core/UserFollowingService.js'; import { ApiError } from '../../../error.js'; @@ -23,7 +25,7 @@ export const meta = { id: 'abc2ffa6-25b2-4380-ba99-321ff3a94555', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -31,7 +33,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/following/update-all.ts b/packages/backend/src/server/api/endpoints/following/update-all.ts index c953feb393..fbefdc35d5 100644 --- a/packages/backend/src/server/api/endpoints/following/update-all.ts +++ b/packages/backend/src/server/api/endpoints/following/update-all.ts @@ -6,6 +6,8 @@ import ms from 'ms'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { FollowingsRepository } from '@/models/_.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { UserFollowingService } from '@/core/UserFollowingService.js'; @@ -24,7 +26,7 @@ export const meta = { requireCredential: true, kind: 'write:following', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -32,7 +34,7 @@ export const paramDef = { notify: { type: 'string', enum: ['normal', 'none'] }, withReplies: { type: 'boolean' }, }, -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/following/update.ts b/packages/backend/src/server/api/endpoints/following/update.ts index d62cf210ed..00d8b1db37 100644 --- a/packages/backend/src/server/api/endpoints/following/update.ts +++ b/packages/backend/src/server/api/endpoints/following/update.ts @@ -6,6 +6,8 @@ import ms from 'ms'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { FollowingsRepository } from '@/models/_.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { UserFollowingService } from '@/core/UserFollowingService.js'; @@ -50,7 +52,7 @@ export const meta = { optional: false, nullable: false, ref: 'UserLite', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -60,7 +62,7 @@ export const paramDef = { withReplies: { type: 'boolean' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/gallery/featured.ts b/packages/backend/src/server/api/endpoints/gallery/featured.ts index 7d2878e03f..dda93b4463 100644 --- a/packages/backend/src/server/api/endpoints/gallery/featured.ts +++ b/packages/backend/src/server/api/endpoints/gallery/featured.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { GalleryPostsRepository } from '@/models/_.js'; import { GalleryPostEntityService } from '@/core/entities/GalleryPostEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -24,7 +26,7 @@ export const meta = { ref: 'GalleryPost', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -33,7 +35,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/gallery/popular.ts b/packages/backend/src/server/api/endpoints/gallery/popular.ts index 4ee252104a..66863801b5 100644 --- a/packages/backend/src/server/api/endpoints/gallery/popular.ts +++ b/packages/backend/src/server/api/endpoints/gallery/popular.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { GalleryPostsRepository } from '@/models/_.js'; import { GalleryPostEntityService } from '@/core/entities/GalleryPostEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -23,13 +25,13 @@ export const meta = { ref: 'GalleryPost', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/gallery/posts.ts b/packages/backend/src/server/api/endpoints/gallery/posts.ts index d398418ab4..4a8d35d657 100644 --- a/packages/backend/src/server/api/endpoints/gallery/posts.ts +++ b/packages/backend/src/server/api/endpoints/gallery/posts.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { GalleryPostsRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { GalleryPostEntityService } from '@/core/entities/GalleryPostEntityService.js'; @@ -22,7 +24,7 @@ export const meta = { ref: 'GalleryPost', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -32,7 +34,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/create.ts b/packages/backend/src/server/api/endpoints/gallery/posts/create.ts index 504a9c789e..e99e42f392 100644 --- a/packages/backend/src/server/api/endpoints/gallery/posts/create.ts +++ b/packages/backend/src/server/api/endpoints/gallery/posts/create.ts @@ -6,6 +6,8 @@ import ms from 'ms'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFilesRepository, GalleryPostsRepository } from '@/models/_.js'; import { MiGalleryPost } from '@/models/GalleryPost.js'; import type { MiDriveFile } from '@/models/DriveFile.js'; @@ -36,7 +38,7 @@ export const meta = { errors: { }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -49,7 +51,7 @@ export const paramDef = { isSensitive: { type: 'boolean', default: false }, }, required: ['title', 'fileIds'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/delete.ts b/packages/backend/src/server/api/endpoints/gallery/posts/delete.ts index b6b94db161..95882799d0 100644 --- a/packages/backend/src/server/api/endpoints/gallery/posts/delete.ts +++ b/packages/backend/src/server/api/endpoints/gallery/posts/delete.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { GalleryPostsRepository, UsersRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { ModerationLogService } from '@/core/ModerationLogService.js'; @@ -31,7 +33,7 @@ export const meta = { id: 'c86e09de-1c48-43ac-a435-1c7e42ed4496', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -39,7 +41,7 @@ export const paramDef = { postId: { type: 'string', format: 'misskey:id' }, }, required: ['postId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/like.ts b/packages/backend/src/server/api/endpoints/gallery/posts/like.ts index 91e49e6463..b2fbeebb89 100644 --- a/packages/backend/src/server/api/endpoints/gallery/posts/like.ts +++ b/packages/backend/src/server/api/endpoints/gallery/posts/like.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { GalleryLikesRepository, GalleryPostsRepository } from '@/models/_.js'; import { FeaturedService, GALLERY_POSTS_RANKING_WINDOW } from '@/core/FeaturedService.js'; import { IdService } from '@/core/IdService.js'; @@ -39,7 +41,7 @@ export const meta = { id: '40e9ed56-a59c-473a-bf3f-f289c54fb5a7', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -47,7 +49,7 @@ export const paramDef = { postId: { type: 'string', format: 'misskey:id' }, }, required: ['postId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/show.ts b/packages/backend/src/server/api/endpoints/gallery/posts/show.ts index bd69898229..2ffc6e1e86 100644 --- a/packages/backend/src/server/api/endpoints/gallery/posts/show.ts +++ b/packages/backend/src/server/api/endpoints/gallery/posts/show.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { GalleryPostsRepository } from '@/models/_.js'; import { GalleryPostEntityService } from '@/core/entities/GalleryPostEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -28,7 +30,7 @@ export const meta = { optional: false, nullable: false, ref: 'GalleryPost', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { postId: { type: 'string', format: 'misskey:id' }, }, required: ['postId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/unlike.ts b/packages/backend/src/server/api/endpoints/gallery/posts/unlike.ts index f44e2c7afc..6371640e01 100644 --- a/packages/backend/src/server/api/endpoints/gallery/posts/unlike.ts +++ b/packages/backend/src/server/api/endpoints/gallery/posts/unlike.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { GalleryPostsRepository, GalleryLikesRepository } from '@/models/_.js'; import { FeaturedService, GALLERY_POSTS_RANKING_WINDOW } from '@/core/FeaturedService.js'; import { IdService } from '@/core/IdService.js'; @@ -33,7 +35,7 @@ export const meta = { id: 'e3e8e06e-be37-41f7-a5b4-87a8250288f0', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -41,7 +43,7 @@ export const paramDef = { postId: { type: 'string', format: 'misskey:id' }, }, required: ['postId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/update.ts b/packages/backend/src/server/api/endpoints/gallery/posts/update.ts index 5243ee9603..3a6f868c8f 100644 --- a/packages/backend/src/server/api/endpoints/gallery/posts/update.ts +++ b/packages/backend/src/server/api/endpoints/gallery/posts/update.ts @@ -6,6 +6,8 @@ import ms from 'ms'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { DriveFilesRepository, GalleryPostsRepository } from '@/models/_.js'; import type { MiDriveFile } from '@/models/DriveFile.js'; import { GalleryPostEntityService } from '@/core/entities/GalleryPostEntityService.js'; @@ -34,7 +36,7 @@ export const meta = { errors: { }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -48,7 +50,7 @@ export const paramDef = { isSensitive: { type: 'boolean', default: false }, }, required: ['postId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/get-avatar-decorations.ts b/packages/backend/src/server/api/endpoints/get-avatar-decorations.ts index 52acee1cfb..7ed22106bd 100644 --- a/packages/backend/src/server/api/endpoints/get-avatar-decorations.ts +++ b/packages/backend/src/server/api/endpoints/get-avatar-decorations.ts @@ -6,6 +6,8 @@ import { IsNull } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { AvatarDecorationService } from '@/core/AvatarDecorationService.js'; import { RoleService } from '@/core/RoleService.js'; @@ -52,13 +54,13 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/get-online-users-count.ts b/packages/backend/src/server/api/endpoints/get-online-users-count.ts index a57774be73..acd44db473 100644 --- a/packages/backend/src/server/api/endpoints/get-online-users-count.ts +++ b/packages/backend/src/server/api/endpoints/get-online-users-count.ts @@ -8,6 +8,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { USER_ONLINE_THRESHOLD } from '@/const.js'; import type { UsersRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; export const meta = { @@ -26,13 +28,13 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/hashtags/list.ts b/packages/backend/src/server/api/endpoints/hashtags/list.ts index 5cd3c6584d..ddcbac67d5 100644 --- a/packages/backend/src/server/api/endpoints/hashtags/list.ts +++ b/packages/backend/src/server/api/endpoints/hashtags/list.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { HashtagsRepository } from '@/models/_.js'; import { HashtagEntityService } from '@/core/entities/HashtagEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -23,7 +25,7 @@ export const meta = { ref: 'Hashtag', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { sort: { type: 'string', enum: ['+mentionedUsers', '-mentionedUsers', '+mentionedLocalUsers', '-mentionedLocalUsers', '+mentionedRemoteUsers', '-mentionedRemoteUsers', '+attachedUsers', '-attachedUsers', '+attachedLocalUsers', '-attachedLocalUsers', '+attachedRemoteUsers', '-attachedRemoteUsers'] }, }, required: ['sort'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/hashtags/search.ts b/packages/backend/src/server/api/endpoints/hashtags/search.ts index d4eb851054..2ffcd321f1 100644 --- a/packages/backend/src/server/api/endpoints/hashtags/search.ts +++ b/packages/backend/src/server/api/endpoints/hashtags/search.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { HashtagsRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { sqlLikeEscape } from '@/misc/sql-like-escape.js'; @@ -22,7 +24,7 @@ export const meta = { optional: false, nullable: false, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -32,7 +34,7 @@ export const paramDef = { offset: { type: 'integer', default: 0 }, }, required: ['query'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/hashtags/show.ts b/packages/backend/src/server/api/endpoints/hashtags/show.ts index 940e3bd69d..dfddb72ef1 100644 --- a/packages/backend/src/server/api/endpoints/hashtags/show.ts +++ b/packages/backend/src/server/api/endpoints/hashtags/show.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { HashtagsRepository } from '@/models/_.js'; import { normalizeForSearch } from '@/misc/normalize-for-search.js'; import { HashtagEntityService } from '@/core/entities/HashtagEntityService.js'; @@ -29,7 +31,7 @@ export const meta = { id: '110ee688-193e-4a3a-9ecf-c167b2e6981e', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -37,7 +39,7 @@ export const paramDef = { tag: { type: 'string' }, }, required: ['tag'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/hashtags/trend.ts b/packages/backend/src/server/api/endpoints/hashtags/trend.ts index cb8065e3a6..1b1e326bc0 100644 --- a/packages/backend/src/server/api/endpoints/hashtags/trend.ts +++ b/packages/backend/src/server/api/endpoints/hashtags/trend.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { FeaturedService } from '@/core/FeaturedService.js'; import { HashtagService } from '@/core/HashtagService.js'; @@ -42,13 +44,13 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/hashtags/users.ts b/packages/backend/src/server/api/endpoints/hashtags/users.ts index 30f0c1b0c8..ab44de19f9 100644 --- a/packages/backend/src/server/api/endpoints/hashtags/users.ts +++ b/packages/backend/src/server/api/endpoints/hashtags/users.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UsersRepository } from '@/models/_.js'; import { safeForSql } from "@/misc/safe-for-sql.js"; import { normalizeForSearch } from '@/misc/normalize-for-search.js'; @@ -25,7 +27,7 @@ export const meta = { ref: 'UserDetailed', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -37,7 +39,7 @@ export const paramDef = { origin: { type: 'string', enum: ['combined', 'local', 'remote'], default: 'local' }, }, required: ['tag', 'sort'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i.ts b/packages/backend/src/server/api/endpoints/i.ts index d324e3e64a..891a9c9340 100644 --- a/packages/backend/src/server/api/endpoints/i.ts +++ b/packages/backend/src/server/api/endpoints/i.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UserProfilesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../error.js'; @@ -30,13 +32,13 @@ export const meta = { kind: 'permission', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/2fa/done.ts b/packages/backend/src/server/api/endpoints/i/2fa/done.ts index 2a30e8b0c3..b6376c30ee 100644 --- a/packages/backend/src/server/api/endpoints/i/2fa/done.ts +++ b/packages/backend/src/server/api/endpoints/i/2fa/done.ts @@ -6,6 +6,8 @@ import * as OTPAuth from 'otpauth'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import type { UserProfilesRepository } from '@/models/_.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; @@ -28,7 +30,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { token: { type: 'string' }, }, required: ['token'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts b/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts index 65eece5b97..eb8ddcadfe 100644 --- a/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts +++ b/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts @@ -6,6 +6,8 @@ import bcrypt from 'bcryptjs'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { DI } from '@/di-symbols.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; @@ -42,7 +44,7 @@ export const meta = { name: { type: 'string' }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -53,7 +55,7 @@ export const paramDef = { credential: { type: 'object' }, }, required: ['password', 'name', 'credential'], -} as const; +} as const satisfies Schema; // eslint-disable-next-line import/no-default-export @Injectable() diff --git a/packages/backend/src/server/api/endpoints/i/2fa/password-less.ts b/packages/backend/src/server/api/endpoints/i/2fa/password-less.ts index bf039ccd16..e80f6fa96c 100644 --- a/packages/backend/src/server/api/endpoints/i/2fa/password-less.ts +++ b/packages/backend/src/server/api/endpoints/i/2fa/password-less.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import type { UserProfilesRepository, UserSecurityKeysRepository } from '@/models/_.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; @@ -23,7 +25,7 @@ export const meta = { id: 'f9c54d7f-d4c2-4d3c-9a8g-a70daac86512', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -31,7 +33,7 @@ export const paramDef = { value: { type: 'boolean' }, }, required: ['value'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export 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 9391aee5e0..685f3084fc 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 @@ -6,6 +6,8 @@ import bcrypt from 'bcryptjs'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UserProfilesRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { WebAuthnService } from '@/core/WebAuthnService.js'; @@ -171,7 +173,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -180,7 +182,7 @@ export const paramDef = { token: { type: 'string', nullable: true }, }, required: ['password'], -} as const; +} as const satisfies Schema; // eslint-disable-next-line import/no-default-export @Injectable() diff --git a/packages/backend/src/server/api/endpoints/i/2fa/register.ts b/packages/backend/src/server/api/endpoints/i/2fa/register.ts index a54c598213..dcf1216737 100644 --- a/packages/backend/src/server/api/endpoints/i/2fa/register.ts +++ b/packages/backend/src/server/api/endpoints/i/2fa/register.ts @@ -9,6 +9,8 @@ import * as QRCode from 'qrcode'; import { Inject, Injectable } from '@nestjs/common'; import type { UserProfilesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import type { Config } from '@/config.js'; import { ApiError } from '@/server/api/error.js'; @@ -39,7 +41,7 @@ export const meta = { issuer: { type: 'string' }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -48,7 +50,7 @@ export const paramDef = { token: { type: 'string', nullable: true }, }, required: ['password'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/2fa/remove-key.ts b/packages/backend/src/server/api/endpoints/i/2fa/remove-key.ts index c350136eae..fdd6f2dc21 100644 --- a/packages/backend/src/server/api/endpoints/i/2fa/remove-key.ts +++ b/packages/backend/src/server/api/endpoints/i/2fa/remove-key.ts @@ -6,6 +6,8 @@ import bcrypt from 'bcryptjs'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UserProfilesRepository, UserSecurityKeysRepository } from '@/models/_.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; @@ -25,7 +27,7 @@ export const meta = { id: '141c598d-a825-44c8-9173-cfb9d92be493', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { credentialId: { type: 'string' }, }, required: ['password', 'credentialId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/2fa/unregister.ts b/packages/backend/src/server/api/endpoints/i/2fa/unregister.ts index b5a53cc889..442c8f94f7 100644 --- a/packages/backend/src/server/api/endpoints/i/2fa/unregister.ts +++ b/packages/backend/src/server/api/endpoints/i/2fa/unregister.ts @@ -6,6 +6,8 @@ import bcrypt from 'bcryptjs'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import type { UserProfilesRepository } from '@/models/_.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; @@ -25,7 +27,7 @@ export const meta = { id: '7add0395-9901-4098-82f9-4f67af65f775', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -34,7 +36,7 @@ export const paramDef = { token: { type: 'string', nullable: true }, }, required: ['password'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/2fa/update-key.ts b/packages/backend/src/server/api/endpoints/i/2fa/update-key.ts index cfa07cc8d7..ccd9fdb63b 100644 --- a/packages/backend/src/server/api/endpoints/i/2fa/update-key.ts +++ b/packages/backend/src/server/api/endpoints/i/2fa/update-key.ts @@ -6,6 +6,8 @@ import bcrypt from 'bcryptjs'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UserSecurityKeysRepository } from '@/models/_.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; @@ -30,7 +32,7 @@ export const meta = { id: '1fb7cb09-d46a-4fff-b8df-057708cce513', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -39,7 +41,7 @@ export const paramDef = { credentialId: { type: 'string' }, }, required: ['name', 'credentialId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/apps.ts b/packages/backend/src/server/api/endpoints/i/apps.ts index 91c8597b1b..68569826f2 100644 --- a/packages/backend/src/server/api/endpoints/i/apps.ts +++ b/packages/backend/src/server/api/endpoints/i/apps.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AccessTokensRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { IdService } from '@/core/IdService.js'; @@ -49,7 +51,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -57,7 +59,7 @@ export const paramDef = { sort: { type: 'string', enum: ['+createdAt', '-createdAt', '+lastUsedAt', '-lastUsedAt'] }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/authorized-apps.ts b/packages/backend/src/server/api/endpoints/i/authorized-apps.ts index 0b4faf5ef8..999f2ab26c 100644 --- a/packages/backend/src/server/api/endpoints/i/authorized-apps.ts +++ b/packages/backend/src/server/api/endpoints/i/authorized-apps.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { IsNull, Not } from 'typeorm'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AccessTokensRepository } from '@/models/_.js'; import { AppEntityService } from '@/core/entities/AppEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -48,7 +50,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -58,7 +60,7 @@ export const paramDef = { sort: { type: 'string', enum: ['desc', 'asc'], default: 'desc' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/change-password.ts b/packages/backend/src/server/api/endpoints/i/change-password.ts index bb78d47149..806f9c8a28 100644 --- a/packages/backend/src/server/api/endpoints/i/change-password.ts +++ b/packages/backend/src/server/api/endpoints/i/change-password.ts @@ -6,6 +6,8 @@ import bcrypt from 'bcryptjs'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UserProfilesRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { UserAuthService } from '@/core/UserAuthService.js'; @@ -14,7 +16,7 @@ export const meta = { requireCredential: true, secure: true, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -24,7 +26,7 @@ export const paramDef = { token: { type: 'string', nullable: true }, }, required: ['currentPassword', 'newPassword'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/claim-achievement.ts b/packages/backend/src/server/api/endpoints/i/claim-achievement.ts index e70905ef1b..f7efb5e06b 100644 --- a/packages/backend/src/server/api/endpoints/i/claim-achievement.ts +++ b/packages/backend/src/server/api/endpoints/i/claim-achievement.ts @@ -5,13 +5,15 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { AchievementService, ACHIEVEMENT_TYPES } from '@/core/AchievementService.js'; export const meta = { requireCredential: true, prohibitMoved: true, kind: 'write:account', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -19,7 +21,7 @@ export const paramDef = { name: { type: 'string', enum: ACHIEVEMENT_TYPES }, }, required: ['name'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/delete-account.ts b/packages/backend/src/server/api/endpoints/i/delete-account.ts index bfa0b4605d..e5dfd63245 100644 --- a/packages/backend/src/server/api/endpoints/i/delete-account.ts +++ b/packages/backend/src/server/api/endpoints/i/delete-account.ts @@ -7,6 +7,8 @@ import bcrypt from 'bcryptjs'; import { Inject, Injectable } from '@nestjs/common'; import type { UsersRepository, UserProfilesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DeleteAccountService } from '@/core/DeleteAccountService.js'; import { DI } from '@/di-symbols.js'; import { UserAuthService } from '@/core/UserAuthService.js'; @@ -15,7 +17,7 @@ export const meta = { requireCredential: true, secure: true, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -24,7 +26,7 @@ export const paramDef = { token: { type: 'string', nullable: true }, }, required: ['password'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/export-antennas.ts b/packages/backend/src/server/api/endpoints/i/export-antennas.ts index 77fb4a895f..b5dbb0dd75 100644 --- a/packages/backend/src/server/api/endpoints/i/export-antennas.ts +++ b/packages/backend/src/server/api/endpoints/i/export-antennas.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueueService } from '@/core/QueueService.js'; export const meta = { @@ -15,13 +17,13 @@ export const meta = { duration: ms('1hour'), max: 1, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/export-blocking.ts b/packages/backend/src/server/api/endpoints/i/export-blocking.ts index 7573018bec..0ce81cd539 100644 --- a/packages/backend/src/server/api/endpoints/i/export-blocking.ts +++ b/packages/backend/src/server/api/endpoints/i/export-blocking.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueueService } from '@/core/QueueService.js'; export const meta = { @@ -15,13 +17,13 @@ export const meta = { duration: ms('1hour'), max: 1, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/export-clips.ts b/packages/backend/src/server/api/endpoints/i/export-clips.ts index 10d1fdac73..d9a06e5a05 100644 --- a/packages/backend/src/server/api/endpoints/i/export-clips.ts +++ b/packages/backend/src/server/api/endpoints/i/export-clips.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueueService } from '@/core/QueueService.js'; export const meta = { @@ -15,13 +17,13 @@ export const meta = { duration: ms('1day'), max: 1, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/export-favorites.ts b/packages/backend/src/server/api/endpoints/i/export-favorites.ts index 5e03f70170..37f2d5f954 100644 --- a/packages/backend/src/server/api/endpoints/i/export-favorites.ts +++ b/packages/backend/src/server/api/endpoints/i/export-favorites.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueueService } from '@/core/QueueService.js'; export const meta = { @@ -15,13 +17,13 @@ export const meta = { duration: ms('1day'), max: 1, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/export-following.ts b/packages/backend/src/server/api/endpoints/i/export-following.ts index 2e5ba14737..c9b7798149 100644 --- a/packages/backend/src/server/api/endpoints/i/export-following.ts +++ b/packages/backend/src/server/api/endpoints/i/export-following.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueueService } from '@/core/QueueService.js'; export const meta = { @@ -15,7 +17,7 @@ export const meta = { duration: ms('1hour'), max: 1, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -24,7 +26,7 @@ export const paramDef = { excludeInactive: { type: 'boolean', default: false }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/export-mute.ts b/packages/backend/src/server/api/endpoints/i/export-mute.ts index 0384cf142b..a4678209cd 100644 --- a/packages/backend/src/server/api/endpoints/i/export-mute.ts +++ b/packages/backend/src/server/api/endpoints/i/export-mute.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueueService } from '@/core/QueueService.js'; export const meta = { @@ -15,13 +17,13 @@ export const meta = { duration: ms('1hour'), max: 1, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/export-notes.ts b/packages/backend/src/server/api/endpoints/i/export-notes.ts index db4e78f667..da14780881 100644 --- a/packages/backend/src/server/api/endpoints/i/export-notes.ts +++ b/packages/backend/src/server/api/endpoints/i/export-notes.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueueService } from '@/core/QueueService.js'; export const meta = { @@ -15,13 +17,13 @@ export const meta = { duration: ms('1day'), max: 1, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/export-user-lists.ts b/packages/backend/src/server/api/endpoints/i/export-user-lists.ts index 6cd662102c..cc46fc3108 100644 --- a/packages/backend/src/server/api/endpoints/i/export-user-lists.ts +++ b/packages/backend/src/server/api/endpoints/i/export-user-lists.ts @@ -6,6 +6,8 @@ import { Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueueService } from '@/core/QueueService.js'; export const meta = { @@ -15,13 +17,13 @@ export const meta = { duration: ms('1min'), max: 1, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/favorites.ts b/packages/backend/src/server/api/endpoints/i/favorites.ts index 3558035eca..4ed12973dd 100644 --- a/packages/backend/src/server/api/endpoints/i/favorites.ts +++ b/packages/backend/src/server/api/endpoints/i/favorites.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { NoteFavoritesRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { NoteFavoriteEntityService } from '@/core/entities/NoteFavoriteEntityService.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'NoteFavorite', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/gallery/likes.ts b/packages/backend/src/server/api/endpoints/i/gallery/likes.ts index d492585ffa..53ef14153b 100644 --- a/packages/backend/src/server/api/endpoints/i/gallery/likes.ts +++ b/packages/backend/src/server/api/endpoints/i/gallery/likes.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { GalleryLikesRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { GalleryLikeEntityService } from '@/core/entities/GalleryLikeEntityService.js'; @@ -37,7 +39,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -47,7 +49,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/gallery/posts.ts b/packages/backend/src/server/api/endpoints/i/gallery/posts.ts index 73a6fcc98b..c40116ad7d 100644 --- a/packages/backend/src/server/api/endpoints/i/gallery/posts.ts +++ b/packages/backend/src/server/api/endpoints/i/gallery/posts.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { GalleryPostsRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { GalleryPostEntityService } from '@/core/entities/GalleryPostEntityService.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'GalleryPost', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/import-antennas.ts b/packages/backend/src/server/api/endpoints/i/import-antennas.ts index bc46163e3d..67fd8286c2 100644 --- a/packages/backend/src/server/api/endpoints/i/import-antennas.ts +++ b/packages/backend/src/server/api/endpoints/i/import-antennas.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueueService } from '@/core/QueueService.js'; import type { AntennasRepository, DriveFilesRepository, UsersRepository, MiAntenna as _Antenna } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; @@ -44,7 +46,7 @@ export const meta = { id: '600917d4-a4cb-4cc5-8ba8-7ac8ea3c7779', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -52,7 +54,7 @@ export const paramDef = { fileId: { type: 'string', format: 'misskey:id' }, }, required: ['fileId'], -} as const; +} as const satisfies Schema; @Injectable() // eslint-disable-next-line import/no-default-export export default class extends Endpoint { diff --git a/packages/backend/src/server/api/endpoints/i/import-blocking.ts b/packages/backend/src/server/api/endpoints/i/import-blocking.ts index 2606108539..dea4c64dfd 100644 --- a/packages/backend/src/server/api/endpoints/i/import-blocking.ts +++ b/packages/backend/src/server/api/endpoints/i/import-blocking.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueueService } from '@/core/QueueService.js'; import { AccountMoveService } from '@/core/AccountMoveService.js'; import type { DriveFilesRepository } from '@/models/_.js'; @@ -47,7 +49,7 @@ export const meta = { id: '6f3a4dcc-f060-a707-4950-806fbdbe60d6', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -55,7 +57,7 @@ export const paramDef = { fileId: { type: 'string', format: 'misskey:id' }, }, required: ['fileId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/import-following.ts b/packages/backend/src/server/api/endpoints/i/import-following.ts index d5e824df27..c7018c91bd 100644 --- a/packages/backend/src/server/api/endpoints/i/import-following.ts +++ b/packages/backend/src/server/api/endpoints/i/import-following.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueueService } from '@/core/QueueService.js'; import { AccountMoveService } from '@/core/AccountMoveService.js'; import type { DriveFilesRepository } from '@/models/_.js'; @@ -46,7 +48,7 @@ export const meta = { id: '31a1b42c-06f7-42ae-8a38-a661c5c9f691', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -55,7 +57,7 @@ export const paramDef = { withReplies: { type: 'boolean' }, }, required: ['fileId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/import-muting.ts b/packages/backend/src/server/api/endpoints/i/import-muting.ts index 0f5800404e..6ce29aa8df 100644 --- a/packages/backend/src/server/api/endpoints/i/import-muting.ts +++ b/packages/backend/src/server/api/endpoints/i/import-muting.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueueService } from '@/core/QueueService.js'; import { AccountMoveService } from '@/core/AccountMoveService.js'; import type { DriveFilesRepository } from '@/models/_.js'; @@ -47,7 +49,7 @@ export const meta = { id: 'd2f12af1-e7b4-feac-86a3-519548f2728e', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -55,7 +57,7 @@ export const paramDef = { fileId: { type: 'string', format: 'misskey:id' }, }, required: ['fileId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/import-user-lists.ts b/packages/backend/src/server/api/endpoints/i/import-user-lists.ts index bacdd5c88f..1747c19b67 100644 --- a/packages/backend/src/server/api/endpoints/i/import-user-lists.ts +++ b/packages/backend/src/server/api/endpoints/i/import-user-lists.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueueService } from '@/core/QueueService.js'; import { AccountMoveService } from '@/core/AccountMoveService.js'; import type { DriveFilesRepository } from '@/models/_.js'; @@ -46,7 +48,7 @@ export const meta = { id: '99efe367-ce6e-4d44-93f8-5fae7b040356', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -54,7 +56,7 @@ export const paramDef = { fileId: { type: 'string', format: 'misskey:id' }, }, required: ['fileId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/move.ts b/packages/backend/src/server/api/endpoints/i/move.ts index 1bd641232c..73414b7e71 100644 --- a/packages/backend/src/server/api/endpoints/i/move.ts +++ b/packages/backend/src/server/api/endpoints/i/move.ts @@ -7,6 +7,8 @@ import { Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ApiError } from '@/server/api/error.js'; import { MiLocalUser, MiRemoteUser } from '@/models/User.js'; @@ -68,7 +70,7 @@ export const meta = { res: { type: 'object', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -76,7 +78,7 @@ export const paramDef = { moveToAccount: { type: 'string' }, }, required: ['moveToAccount'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/notifications-grouped.ts b/packages/backend/src/server/api/endpoints/i/notifications-grouped.ts index dc6ffd3e02..dd1b71583a 100644 --- a/packages/backend/src/server/api/endpoints/i/notifications-grouped.ts +++ b/packages/backend/src/server/api/endpoints/i/notifications-grouped.ts @@ -9,6 +9,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { NotesRepository } from '@/models/_.js'; import { obsoleteNotificationTypes, groupedNotificationTypes, FilterUnionByProperty } from '@/types.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NoteReadService } from '@/core/NoteReadService.js'; import { NotificationEntityService } from '@/core/entities/NotificationEntityService.js'; import { NotificationService } from '@/core/NotificationService.js'; @@ -37,7 +39,7 @@ export const meta = { ref: 'Notification', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -55,7 +57,7 @@ export const paramDef = { } }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/notifications.ts b/packages/backend/src/server/api/endpoints/i/notifications.ts index 2f619380e9..649221685f 100644 --- a/packages/backend/src/server/api/endpoints/i/notifications.ts +++ b/packages/backend/src/server/api/endpoints/i/notifications.ts @@ -9,6 +9,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { NotesRepository } from '@/models/_.js'; import { FilterUnionByProperty, notificationTypes, obsoleteNotificationTypes } from '@/types.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NoteReadService } from '@/core/NoteReadService.js'; import { NotificationEntityService } from '@/core/entities/NotificationEntityService.js'; import { NotificationService } from '@/core/NotificationService.js'; @@ -37,7 +39,7 @@ export const meta = { ref: 'Notification', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -55,7 +57,7 @@ export const paramDef = { } }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/page-likes.ts b/packages/backend/src/server/api/endpoints/i/page-likes.ts index d4c09426a7..77983ddbf8 100644 --- a/packages/backend/src/server/api/endpoints/i/page-likes.ts +++ b/packages/backend/src/server/api/endpoints/i/page-likes.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { PageLikesRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { PageLikeEntityService } from '@/core/entities/PageLikeEntityService.js'; @@ -36,7 +38,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -46,7 +48,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/pages.ts b/packages/backend/src/server/api/endpoints/i/pages.ts index 1b6359a633..eb04dec734 100644 --- a/packages/backend/src/server/api/endpoints/i/pages.ts +++ b/packages/backend/src/server/api/endpoints/i/pages.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { PagesRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { PageEntityService } from '@/core/entities/PageEntityService.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'Page', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/pin.ts b/packages/backend/src/server/api/endpoints/i/pin.ts index b7cafd74df..71634fa39e 100644 --- a/packages/backend/src/server/api/endpoints/i/pin.ts +++ b/packages/backend/src/server/api/endpoints/i/pin.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { NotePiningService } from '@/core/NotePiningService.js'; import { ApiError } from '../../error.js'; @@ -42,7 +44,7 @@ export const meta = { optional: false, nullable: false, ref: 'MeDetailed', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -50,7 +52,7 @@ export const paramDef = { noteId: { type: 'string', format: 'misskey:id' }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/read-all-unread-notes.ts b/packages/backend/src/server/api/endpoints/i/read-all-unread-notes.ts index d1a8eccb1d..d535a891ad 100644 --- a/packages/backend/src/server/api/endpoints/i/read-all-unread-notes.ts +++ b/packages/backend/src/server/api/endpoints/i/read-all-unread-notes.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { NoteUnreadsRepository } from '@/models/_.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; import { DI } from '@/di-symbols.js'; @@ -15,13 +17,13 @@ export const meta = { requireCredential: true, kind: 'write:account', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/read-announcement.ts b/packages/backend/src/server/api/endpoints/i/read-announcement.ts index 4db1ca73c1..935f1d55dd 100644 --- a/packages/backend/src/server/api/endpoints/i/read-announcement.ts +++ b/packages/backend/src/server/api/endpoints/i/read-announcement.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { AnnouncementService } from '@/core/AnnouncementService.js'; export const meta = { @@ -16,7 +18,7 @@ export const meta = { errors: { }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -24,7 +26,7 @@ export const paramDef = { announcementId: { type: 'string', format: 'misskey:id' }, }, required: ['announcementId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/regenerate-token.ts b/packages/backend/src/server/api/endpoints/i/regenerate-token.ts index 78f3cce9ad..b1a3a45f80 100644 --- a/packages/backend/src/server/api/endpoints/i/regenerate-token.ts +++ b/packages/backend/src/server/api/endpoints/i/regenerate-token.ts @@ -6,6 +6,8 @@ import bcrypt from 'bcryptjs'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UsersRepository, UserProfilesRepository } from '@/models/_.js'; import generateUserToken from '@/misc/generate-native-user-token.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; @@ -15,7 +17,7 @@ export const meta = { requireCredential: true, secure: true, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -23,7 +25,7 @@ export const paramDef = { password: { type: 'string' }, }, required: ['password'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/registry/get-all.ts b/packages/backend/src/server/api/endpoints/i/registry/get-all.ts index f1797cfde7..af33520770 100644 --- a/packages/backend/src/server/api/endpoints/i/registry/get-all.ts +++ b/packages/backend/src/server/api/endpoints/i/registry/get-all.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { RegistryApiService } from '@/core/RegistryApiService.js'; export const meta = { @@ -14,7 +16,7 @@ export const meta = { res: { type: 'object', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -25,7 +27,7 @@ export const paramDef = { domain: { type: 'string', nullable: true }, }, required: ['scope'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/registry/get-detail.ts b/packages/backend/src/server/api/endpoints/i/registry/get-detail.ts index d53c390460..9c41674d32 100644 --- a/packages/backend/src/server/api/endpoints/i/registry/get-detail.ts +++ b/packages/backend/src/server/api/endpoints/i/registry/get-detail.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { RegistryApiService } from '@/core/RegistryApiService.js'; import { ApiError } from '../../../error.js'; @@ -32,7 +34,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -44,7 +46,7 @@ export const paramDef = { domain: { type: 'string', nullable: true }, }, required: ['key', 'scope'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/registry/get.ts b/packages/backend/src/server/api/endpoints/i/registry/get.ts index d9a8fdd449..a1b27677c2 100644 --- a/packages/backend/src/server/api/endpoints/i/registry/get.ts +++ b/packages/backend/src/server/api/endpoints/i/registry/get.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { RegistryApiService } from '@/core/RegistryApiService.js'; import { ApiError } from '../../../error.js'; @@ -23,7 +25,7 @@ export const meta = { res: { type: 'object', } -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { domain: { type: 'string', nullable: true }, }, required: ['key', 'scope'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/registry/keys-with-type.ts b/packages/backend/src/server/api/endpoints/i/registry/keys-with-type.ts index 3fe339606d..434071b0e1 100644 --- a/packages/backend/src/server/api/endpoints/i/registry/keys-with-type.ts +++ b/packages/backend/src/server/api/endpoints/i/registry/keys-with-type.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { RegistryApiService } from '@/core/RegistryApiService.js'; export const meta = { @@ -17,7 +19,7 @@ export const meta = { type: 'string', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -28,7 +30,7 @@ export const paramDef = { domain: { type: 'string', nullable: true }, }, required: ['scope'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/registry/keys.ts b/packages/backend/src/server/api/endpoints/i/registry/keys.ts index 28f158c62d..7f6ccf4d5f 100644 --- a/packages/backend/src/server/api/endpoints/i/registry/keys.ts +++ b/packages/backend/src/server/api/endpoints/i/registry/keys.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { RegistryApiService } from '@/core/RegistryApiService.js'; export const meta = { @@ -17,7 +19,7 @@ export const meta = { type: 'string', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -28,7 +30,7 @@ export const paramDef = { domain: { type: 'string', nullable: true }, }, required: ['scope'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/registry/remove.ts b/packages/backend/src/server/api/endpoints/i/registry/remove.ts index cf965ba0cf..1345c1c124 100644 --- a/packages/backend/src/server/api/endpoints/i/registry/remove.ts +++ b/packages/backend/src/server/api/endpoints/i/registry/remove.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { RegistryItemsRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { RegistryApiService } from '@/core/RegistryApiService.js'; @@ -21,7 +23,7 @@ export const meta = { id: '1fac4e8a-a6cd-4e39-a4a5-3a7e11f1b019', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -33,7 +35,7 @@ export const paramDef = { domain: { type: 'string', nullable: true }, }, required: ['key', 'scope'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/registry/scopes-with-domain.ts b/packages/backend/src/server/api/endpoints/i/registry/scopes-with-domain.ts index 67a99b028a..9e684164f1 100644 --- a/packages/backend/src/server/api/endpoints/i/registry/scopes-with-domain.ts +++ b/packages/backend/src/server/api/endpoints/i/registry/scopes-with-domain.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { RegistryApiService } from '@/core/RegistryApiService.js'; export const meta = { @@ -32,13 +34,13 @@ export const meta = { }, }, } -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/registry/set.ts b/packages/backend/src/server/api/endpoints/i/registry/set.ts index 8723035d84..158ca6eb0c 100644 --- a/packages/backend/src/server/api/endpoints/i/registry/set.ts +++ b/packages/backend/src/server/api/endpoints/i/registry/set.ts @@ -5,12 +5,14 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { RegistryApiService } from '@/core/RegistryApiService.js'; export const meta = { requireCredential: true, kind: 'write:account', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -23,7 +25,7 @@ export const paramDef = { domain: { type: 'string', nullable: true }, }, required: ['key', 'value', 'scope'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/revoke-token.ts b/packages/backend/src/server/api/endpoints/i/revoke-token.ts index c05ee93c6f..9862009921 100644 --- a/packages/backend/src/server/api/endpoints/i/revoke-token.ts +++ b/packages/backend/src/server/api/endpoints/i/revoke-token.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AccessTokensRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; @@ -12,7 +14,7 @@ export const meta = { requireCredential: true, secure: true, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -24,7 +26,7 @@ export const paramDef = { { required: ['tokenId'] }, { required: ['token'] }, ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/signin-history.ts b/packages/backend/src/server/api/endpoints/i/signin-history.ts index 76ad0bbe21..bba15c97c4 100644 --- a/packages/backend/src/server/api/endpoints/i/signin-history.ts +++ b/packages/backend/src/server/api/endpoints/i/signin-history.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { SigninsRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { SigninEntityService } from '@/core/entities/SigninEntityService.js'; @@ -23,7 +25,7 @@ export const meta = { ref: 'Signin', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -33,7 +35,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/unpin.ts b/packages/backend/src/server/api/endpoints/i/unpin.ts index 74825cf9f3..e90d2a4479 100644 --- a/packages/backend/src/server/api/endpoints/i/unpin.ts +++ b/packages/backend/src/server/api/endpoints/i/unpin.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { NotePiningService } from '@/core/NotePiningService.js'; import { ApiError } from '../../error.js'; @@ -29,7 +31,7 @@ export const meta = { optional: false, nullable: false, ref: 'MeDetailed', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -37,7 +39,7 @@ export const paramDef = { noteId: { type: 'string', format: 'misskey:id' }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/update-email.ts b/packages/backend/src/server/api/endpoints/i/update-email.ts index eea657ebbd..b182b30026 100644 --- a/packages/backend/src/server/api/endpoints/i/update-email.ts +++ b/packages/backend/src/server/api/endpoints/i/update-email.ts @@ -7,6 +7,8 @@ import { Inject, Injectable } from '@nestjs/common'; import ms from 'ms'; import bcrypt from 'bcryptjs'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UserProfilesRepository } from '@/models/_.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { EmailService } from '@/core/EmailService.js'; @@ -52,7 +54,7 @@ export const meta = { type: 'object', ref: 'MeDetailed', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -62,7 +64,7 @@ export const paramDef = { token: { type: 'string', nullable: true }, }, required: ['password'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/update.ts b/packages/backend/src/server/api/endpoints/i/update.ts index a1e2fa5e4c..dc4993be63 100644 --- a/packages/backend/src/server/api/endpoints/i/update.ts +++ b/packages/backend/src/server/api/endpoints/i/update.ts @@ -19,6 +19,8 @@ import { notificationTypes } from '@/types.js'; import { normalizeForSearch } from '@/misc/normalize-for-search.js'; import { langmap } from '@/misc/langmap.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; import { UserFollowingService } from '@/core/UserFollowingService.js'; @@ -127,7 +129,7 @@ export const meta = { const muteWords = { type: 'array', items: { oneOf: [ { type: 'array', items: { type: 'string' } }, { type: 'string' }, -] } } as const; +] } } as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -215,7 +217,7 @@ export const paramDef = { items: { type: 'string' }, }, }, -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/webhooks/create.ts b/packages/backend/src/server/api/endpoints/i/webhooks/create.ts index 9eb7f5b3a0..f5cef0412d 100644 --- a/packages/backend/src/server/api/endpoints/i/webhooks/create.ts +++ b/packages/backend/src/server/api/endpoints/i/webhooks/create.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { IdService } from '@/core/IdService.js'; import type { WebhooksRepository } from '@/models/_.js'; import { webhookEventTypes } from '@/models/Webhook.js'; @@ -54,7 +56,7 @@ export const meta = { latestStatus: { type: 'integer', nullable: true }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -67,7 +69,7 @@ export const paramDef = { } }, }, required: ['name', 'url', 'on'], -} as const; +} as const satisfies Schema; // TODO: ロジックをサービスに切り出す diff --git a/packages/backend/src/server/api/endpoints/i/webhooks/delete.ts b/packages/backend/src/server/api/endpoints/i/webhooks/delete.ts index 1b1ac00670..ea6305a155 100644 --- a/packages/backend/src/server/api/endpoints/i/webhooks/delete.ts +++ b/packages/backend/src/server/api/endpoints/i/webhooks/delete.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { WebhooksRepository } from '@/models/_.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; import { DI } from '@/di-symbols.js'; @@ -24,7 +26,7 @@ export const meta = { id: 'bae73e5a-5522-4965-ae19-3a8688e71d82', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -32,7 +34,7 @@ export const paramDef = { webhookId: { type: 'string', format: 'misskey:id' }, }, required: ['webhookId'], -} as const; +} as const satisfies Schema; // TODO: ロジックをサービスに切り出す diff --git a/packages/backend/src/server/api/endpoints/i/webhooks/list.ts b/packages/backend/src/server/api/endpoints/i/webhooks/list.ts index fe07afb2d0..6164e0bbca 100644 --- a/packages/backend/src/server/api/endpoints/i/webhooks/list.ts +++ b/packages/backend/src/server/api/endpoints/i/webhooks/list.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { webhookEventTypes } from '@/models/Webhook.js'; import type { WebhooksRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; @@ -45,13 +47,13 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/webhooks/show.ts b/packages/backend/src/server/api/endpoints/i/webhooks/show.ts index 5ddb79caf2..7914d4caea 100644 --- a/packages/backend/src/server/api/endpoints/i/webhooks/show.ts +++ b/packages/backend/src/server/api/endpoints/i/webhooks/show.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { webhookEventTypes } from '@/models/Webhook.js'; import type { WebhooksRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; @@ -51,7 +53,7 @@ export const meta = { latestStatus: { type: 'integer', nullable: true }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -59,7 +61,7 @@ export const paramDef = { webhookId: { type: 'string', format: 'misskey:id' }, }, required: ['webhookId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/i/webhooks/update.ts b/packages/backend/src/server/api/endpoints/i/webhooks/update.ts index 07a25bd82a..dfdce26bdc 100644 --- a/packages/backend/src/server/api/endpoints/i/webhooks/update.ts +++ b/packages/backend/src/server/api/endpoints/i/webhooks/update.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { WebhooksRepository } from '@/models/_.js'; import { webhookEventTypes } from '@/models/Webhook.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; @@ -26,7 +28,7 @@ export const meta = { }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -41,7 +43,7 @@ export const paramDef = { active: { type: 'boolean' }, }, required: ['webhookId'], -} as const; +} as const satisfies Schema; // TODO: ロジックをサービスに切り出す diff --git a/packages/backend/src/server/api/endpoints/invite/create.ts b/packages/backend/src/server/api/endpoints/invite/create.ts index a70b587da7..ecbb69a8ac 100644 --- a/packages/backend/src/server/api/endpoints/invite/create.ts +++ b/packages/backend/src/server/api/endpoints/invite/create.ts @@ -6,6 +6,8 @@ import { MoreThan } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { RegistrationTicketsRepository } from '@/models/_.js'; import { InviteCodeEntityService } from '@/core/entities/InviteCodeEntityService.js'; import { IdService } from '@/core/IdService.js'; @@ -34,13 +36,13 @@ export const meta = { optional: false, nullable: false, ref: 'InviteCode', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/invite/delete.ts b/packages/backend/src/server/api/endpoints/invite/delete.ts index e960ff9f4e..aa2e7ec4ec 100644 --- a/packages/backend/src/server/api/endpoints/invite/delete.ts +++ b/packages/backend/src/server/api/endpoints/invite/delete.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { RegistrationTicketsRepository } from '@/models/_.js'; import { RoleService } from '@/core/RoleService.js'; import { DI } from '@/di-symbols.js'; @@ -36,7 +38,7 @@ export const meta = { id: '5eb8d909-2540-4970-90b8-dd6f86088121', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -44,7 +46,7 @@ export const paramDef = { inviteId: { type: 'string', format: 'misskey:id' }, }, required: ['inviteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/invite/limit.ts b/packages/backend/src/server/api/endpoints/invite/limit.ts index 2786bd98d5..0f9203af35 100644 --- a/packages/backend/src/server/api/endpoints/invite/limit.ts +++ b/packages/backend/src/server/api/endpoints/invite/limit.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { MoreThan } from 'typeorm'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { RegistrationTicketsRepository } from '@/models/_.js'; import { RoleService } from '@/core/RoleService.js'; import { DI } from '@/di-symbols.js'; @@ -28,13 +30,13 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/invite/list.ts b/packages/backend/src/server/api/endpoints/invite/list.ts index 23aefe83a2..98bd0064a3 100644 --- a/packages/backend/src/server/api/endpoints/invite/list.ts +++ b/packages/backend/src/server/api/endpoints/invite/list.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { RegistrationTicketsRepository } from '@/models/_.js'; import { InviteCodeEntityService } from '@/core/entities/InviteCodeEntityService.js'; import { QueryService } from '@/core/QueryService.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'InviteCode', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/meta.ts b/packages/backend/src/server/api/endpoints/meta.ts index 5460635e1d..5b469f5487 100644 --- a/packages/backend/src/server/api/endpoints/meta.ts +++ b/packages/backend/src/server/api/endpoints/meta.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { MetaEntityService } from '@/core/entities/MetaEntityService.js'; export const meta = { @@ -19,7 +21,7 @@ export const meta = { { type: 'object', ref: 'MetaDetailed' }, ], }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -27,7 +29,7 @@ export const paramDef = { detail: { type: 'boolean', default: true }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/miauth/gen-token.ts b/packages/backend/src/server/api/endpoints/miauth/gen-token.ts index fc9a8f3ebe..1c39995da2 100644 --- a/packages/backend/src/server/api/endpoints/miauth/gen-token.ts +++ b/packages/backend/src/server/api/endpoints/miauth/gen-token.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AccessTokensRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import { secureRndstr } from '@/misc/secure-rndstr.js'; @@ -27,7 +29,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -41,7 +43,7 @@ export const paramDef = { } }, }, required: ['session', 'permission'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/mute/create.ts b/packages/backend/src/server/api/endpoints/mute/create.ts index e39c133b43..6307ee33f4 100644 --- a/packages/backend/src/server/api/endpoints/mute/create.ts +++ b/packages/backend/src/server/api/endpoints/mute/create.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { MutingsRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { GetterService } from '@/server/api/GetterService.js'; @@ -44,7 +46,7 @@ export const meta = { id: '7e7359cb-160c-4956-b08f-4d1c653cd007', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -57,7 +59,7 @@ export const paramDef = { }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/mute/delete.ts b/packages/backend/src/server/api/endpoints/mute/delete.ts index d11832858e..9bf96d492b 100644 --- a/packages/backend/src/server/api/endpoints/mute/delete.ts +++ b/packages/backend/src/server/api/endpoints/mute/delete.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { MutingsRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { GetterService } from '@/server/api/GetterService.js'; @@ -37,7 +39,7 @@ export const meta = { id: '5467d020-daa9-4553-81e1-135c0c35a96d', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -45,7 +47,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/mute/list.ts b/packages/backend/src/server/api/endpoints/mute/list.ts index 23204f2829..e386bacc23 100644 --- a/packages/backend/src/server/api/endpoints/mute/list.ts +++ b/packages/backend/src/server/api/endpoints/mute/list.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { MutingsRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { MutingEntityService } from '@/core/entities/MutingEntityService.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'Muting', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/my/apps.ts b/packages/backend/src/server/api/endpoints/my/apps.ts index c04a92626f..20270d57b0 100644 --- a/packages/backend/src/server/api/endpoints/my/apps.ts +++ b/packages/backend/src/server/api/endpoints/my/apps.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { AppsRepository } from '@/models/_.js'; import { AppEntityService } from '@/core/entities/AppEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -24,7 +26,7 @@ export const meta = { ref: 'App', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -33,7 +35,7 @@ export const paramDef = { offset: { type: 'integer', default: 0 }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes.ts b/packages/backend/src/server/api/endpoints/notes.ts index 9938322a2a..86566a8eaa 100644 --- a/packages/backend/src/server/api/endpoints/notes.ts +++ b/packages/backend/src/server/api/endpoints/notes.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { NotesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -22,7 +24,7 @@ export const meta = { ref: 'Note', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -37,7 +39,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/children.ts b/packages/backend/src/server/api/endpoints/notes/children.ts index 0c6533d336..ff5a100d67 100644 --- a/packages/backend/src/server/api/endpoints/notes/children.ts +++ b/packages/backend/src/server/api/endpoints/notes/children.ts @@ -7,6 +7,8 @@ import { Brackets } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import type { NotesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -25,7 +27,7 @@ export const meta = { ref: 'Note', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/clips.ts b/packages/backend/src/server/api/endpoints/notes/clips.ts index 29cab9f212..bdedda5c9e 100644 --- a/packages/backend/src/server/api/endpoints/notes/clips.ts +++ b/packages/backend/src/server/api/endpoints/notes/clips.ts @@ -7,6 +7,8 @@ import { In } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import type { ClipNotesRepository, ClipsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ClipEntityService } from '@/core/entities/ClipEntityService.js'; import { DI } from '@/di-symbols.js'; import { GetterService } from '@/server/api/GetterService.js'; @@ -34,7 +36,7 @@ export const meta = { id: '47db1a1c-b0af-458d-8fb4-986e4efafe1e', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -42,7 +44,7 @@ export const paramDef = { noteId: { type: 'string', format: 'misskey:id' }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/conversation.ts b/packages/backend/src/server/api/endpoints/notes/conversation.ts index d13fd5e82e..5bf840e749 100644 --- a/packages/backend/src/server/api/endpoints/notes/conversation.ts +++ b/packages/backend/src/server/api/endpoints/notes/conversation.ts @@ -7,6 +7,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { MiNote } from '@/models/Note.js'; import type { NotesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { DI } from '@/di-symbols.js'; import { GetterService } from '@/server/api/GetterService.js'; @@ -34,7 +36,7 @@ export const meta = { id: 'e1035875-9551-45ec-afa8-1ded1fcb53c8', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -44,7 +46,7 @@ export const paramDef = { offset: { type: 'integer', default: 0 }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/create.ts b/packages/backend/src/server/api/endpoints/notes/create.ts index beb77ca7ab..fc75453f9b 100644 --- a/packages/backend/src/server/api/endpoints/notes/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/create.ts @@ -13,6 +13,8 @@ import type { MiNote } from '@/models/Note.js'; import type { MiChannel } from '@/models/Channel.js'; import { MAX_NOTE_TEXT_LENGTH } from '@/const.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { NoteCreateService } from '@/core/NoteCreateService.js'; import { DI } from '@/di-symbols.js'; @@ -133,7 +135,7 @@ export const meta = { id: '4de0363a-3046-481b-9b0f-feff3e211025', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -220,7 +222,7 @@ export const paramDef = { }, required: ['text'], }, -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/delete.ts b/packages/backend/src/server/api/endpoints/notes/delete.ts index 9d7c9a9081..8096a61f95 100644 --- a/packages/backend/src/server/api/endpoints/notes/delete.ts +++ b/packages/backend/src/server/api/endpoints/notes/delete.ts @@ -7,6 +7,8 @@ import ms from 'ms'; import { Inject, Injectable } from '@nestjs/common'; import type { UsersRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NoteDeleteService } from '@/core/NoteDeleteService.js'; import { DI } from '@/di-symbols.js'; import { GetterService } from '@/server/api/GetterService.js'; @@ -39,7 +41,7 @@ export const meta = { id: 'fe8d7103-0ea8-4ec3-814d-f8b401dc69e9', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -47,7 +49,7 @@ export const paramDef = { noteId: { type: 'string', format: 'misskey:id' }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/favorites/create.ts b/packages/backend/src/server/api/endpoints/notes/favorites/create.ts index 804071b3d4..03fc1a7e52 100644 --- a/packages/backend/src/server/api/endpoints/notes/favorites/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/favorites/create.ts @@ -8,6 +8,8 @@ import ms from 'ms'; import type { NoteFavoritesRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { GetterService } from '@/server/api/GetterService.js'; import { DI } from '@/di-symbols.js'; import { AchievementService } from '@/core/AchievementService.js'; @@ -39,7 +41,7 @@ export const meta = { id: 'a402c12b-34dd-41d2-97d8-4d2ffd96a1a6', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -47,7 +49,7 @@ export const paramDef = { noteId: { type: 'string', format: 'misskey:id' }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/favorites/delete.ts b/packages/backend/src/server/api/endpoints/notes/favorites/delete.ts index 2036facdba..5bb7dcc9ed 100644 --- a/packages/backend/src/server/api/endpoints/notes/favorites/delete.ts +++ b/packages/backend/src/server/api/endpoints/notes/favorites/delete.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { GetterService } from '@/server/api/GetterService.js'; import { DI } from '@/di-symbols.js'; import type { NoteFavoritesRepository } from '@/models/_.js'; @@ -30,7 +32,7 @@ export const meta = { id: 'b625fc69-635e-45e9-86f4-dbefbef35af5', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -38,7 +40,7 @@ export const paramDef = { noteId: { type: 'string', format: 'misskey:id' }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/featured.ts b/packages/backend/src/server/api/endpoints/notes/featured.ts index dcd971360d..ce4c997121 100644 --- a/packages/backend/src/server/api/endpoints/notes/featured.ts +++ b/packages/backend/src/server/api/endpoints/notes/featured.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { NotesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { DI } from '@/di-symbols.js'; import { FeaturedService } from '@/core/FeaturedService.js'; @@ -28,7 +30,7 @@ export const meta = { ref: 'Note', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -38,7 +40,7 @@ export const paramDef = { channelId: { type: 'string', nullable: true, format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/global-timeline.ts b/packages/backend/src/server/api/endpoints/notes/global-timeline.ts index 258a0bfb8f..27e225a06a 100644 --- a/packages/backend/src/server/api/endpoints/notes/global-timeline.ts +++ b/packages/backend/src/server/api/endpoints/notes/global-timeline.ts @@ -7,6 +7,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Brackets } from 'typeorm'; import type { NotesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import ActiveUsersChart from '@/core/chart/charts/active-users.js'; @@ -34,7 +36,7 @@ export const meta = { id: '0332fc13-6ab2-4427-ae80-a9fadffd1a6b', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -48,7 +50,7 @@ export const paramDef = { untilDate: { type: 'integer' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts b/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts index 2a2c659942..49024d48b6 100644 --- a/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts +++ b/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts @@ -7,6 +7,8 @@ import { Brackets } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import type { NotesRepository, ChannelFollowingsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import ActiveUsersChart from '@/core/chart/charts/active-users.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -50,7 +52,7 @@ export const meta = { id: 'dfaa3eb7-8002-4cb7-bcc4-1095df46656f' }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -69,7 +71,7 @@ export const paramDef = { withReplies: { type: 'boolean', default: false }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/local-timeline.ts b/packages/backend/src/server/api/endpoints/notes/local-timeline.ts index be82b5a8a7..9fa9c0b262 100644 --- a/packages/backend/src/server/api/endpoints/notes/local-timeline.ts +++ b/packages/backend/src/server/api/endpoints/notes/local-timeline.ts @@ -7,6 +7,8 @@ import { Brackets } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import type { NotesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import ActiveUsersChart from '@/core/chart/charts/active-users.js'; import { DI } from '@/di-symbols.js'; @@ -45,7 +47,7 @@ export const meta = { id: 'dd9c8400-1cb5-4eef-8a31-200c5f933793', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -61,7 +63,7 @@ export const paramDef = { untilDate: { type: 'integer' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/mentions.ts b/packages/backend/src/server/api/endpoints/notes/mentions.ts index 5558dd3a8b..8f7ac3826a 100644 --- a/packages/backend/src/server/api/endpoints/notes/mentions.ts +++ b/packages/backend/src/server/api/endpoints/notes/mentions.ts @@ -7,6 +7,8 @@ import { Brackets } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import type { NotesRepository, FollowingsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { NoteReadService } from '@/core/NoteReadService.js'; @@ -27,7 +29,7 @@ export const meta = { ref: 'Note', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -39,7 +41,7 @@ export const paramDef = { visibility: { type: 'string' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/polls/recommendation.ts b/packages/backend/src/server/api/endpoints/notes/polls/recommendation.ts index 4fd6f8682d..15fec2f00f 100644 --- a/packages/backend/src/server/api/endpoints/notes/polls/recommendation.ts +++ b/packages/backend/src/server/api/endpoints/notes/polls/recommendation.ts @@ -7,6 +7,8 @@ import { Brackets, In } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import type { NotesRepository, MutingsRepository, PollsRepository, PollVotesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -25,7 +27,7 @@ export const meta = { ref: 'Note', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { excludeChannels: { type: 'boolean', default: false }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/polls/vote.ts b/packages/backend/src/server/api/endpoints/notes/polls/vote.ts index f33f49075b..141c089598 100644 --- a/packages/backend/src/server/api/endpoints/notes/polls/vote.ts +++ b/packages/backend/src/server/api/endpoints/notes/polls/vote.ts @@ -8,6 +8,8 @@ import type { UsersRepository, PollsRepository, PollVotesRepository } from '@/mo import type { MiRemoteUser } from '@/models/User.js'; import { IdService } from '@/core/IdService.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { GetterService } from '@/server/api/GetterService.js'; import { QueueService } from '@/core/QueueService.js'; import { PollService } from '@/core/PollService.js'; @@ -63,7 +65,7 @@ export const meta = { id: '85a5377e-b1e9-4617-b0b9-5bea73331e49', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -72,7 +74,7 @@ export const paramDef = { choice: { type: 'integer' }, }, required: ['noteId', 'choice'], -} as const; +} as const satisfies Schema; // TODO: ロジックをサービスに切り出す diff --git a/packages/backend/src/server/api/endpoints/notes/reactions.ts b/packages/backend/src/server/api/endpoints/notes/reactions.ts index 97b12ab7f7..d74a7b28ab 100644 --- a/packages/backend/src/server/api/endpoints/notes/reactions.ts +++ b/packages/backend/src/server/api/endpoints/notes/reactions.ts @@ -8,6 +8,8 @@ import { Brackets, type FindOptionsWhere } from 'typeorm'; import type { NoteReactionsRepository } from '@/models/_.js'; import type { MiNoteReaction } from '@/models/NoteReaction.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NoteReactionEntityService } from '@/core/entities/NoteReactionEntityService.js'; import { DI } from '@/di-symbols.js'; import { QueryService } from '@/core/QueryService.js'; @@ -37,7 +39,7 @@ export const meta = { id: '263fff3d-d0e1-4af4-bea7-8408059b451a', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -49,7 +51,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/reactions/create.ts b/packages/backend/src/server/api/endpoints/notes/reactions/create.ts index 0f0dcca605..861654f11a 100644 --- a/packages/backend/src/server/api/endpoints/notes/reactions/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/reactions/create.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { GetterService } from '@/server/api/GetterService.js'; import { ReactionService } from '@/core/ReactionService.js'; import { ApiError } from '../../../error.js'; @@ -43,7 +45,7 @@ export const meta = { id: 'eaccdc08-ddef-43fe-908f-d108faad57f5', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -52,7 +54,7 @@ export const paramDef = { reaction: { type: 'string' }, }, required: ['noteId', 'reaction'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/reactions/delete.ts b/packages/backend/src/server/api/endpoints/notes/reactions/delete.ts index e6c3bbbcf5..fd60c847cf 100644 --- a/packages/backend/src/server/api/endpoints/notes/reactions/delete.ts +++ b/packages/backend/src/server/api/endpoints/notes/reactions/delete.ts @@ -6,6 +6,8 @@ import ms from 'ms'; import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { GetterService } from '@/server/api/GetterService.js'; import { ReactionService } from '@/core/ReactionService.js'; import { ApiError } from '../../../error.js'; @@ -36,7 +38,7 @@ export const meta = { id: '92f4426d-4196-4125-aa5b-02943e2ec8fc', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -44,7 +46,7 @@ export const paramDef = { noteId: { type: 'string', format: 'misskey:id' }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/renotes.ts b/packages/backend/src/server/api/endpoints/notes/renotes.ts index ffe1ee6eb8..c7c66c85c9 100644 --- a/packages/backend/src/server/api/endpoints/notes/renotes.ts +++ b/packages/backend/src/server/api/endpoints/notes/renotes.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { NotesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -34,7 +36,7 @@ export const meta = { id: '12908022-2e21-46cd-ba6a-3edaf6093f46', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -45,7 +47,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/replies.ts b/packages/backend/src/server/api/endpoints/notes/replies.ts index 5f32332a6a..0e3fc6cf53 100644 --- a/packages/backend/src/server/api/endpoints/notes/replies.ts +++ b/packages/backend/src/server/api/endpoints/notes/replies.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { NotesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -24,7 +26,7 @@ export const meta = { ref: 'Note', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/search-by-tag.ts b/packages/backend/src/server/api/endpoints/notes/search-by-tag.ts index 626ff080c7..706d6e91c2 100644 --- a/packages/backend/src/server/api/endpoints/notes/search-by-tag.ts +++ b/packages/backend/src/server/api/endpoints/notes/search-by-tag.ts @@ -9,6 +9,8 @@ import type { NotesRepository } from '@/models/_.js'; import { safeForSql } from '@/misc/safe-for-sql.js'; import { normalizeForSearch } from '@/misc/normalize-for-search.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -25,7 +27,7 @@ export const meta = { ref: 'Note', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -61,7 +63,7 @@ export const paramDef = { { required: ['tag'] }, { required: ['query'] }, ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/search.ts b/packages/backend/src/server/api/endpoints/notes/search.ts index 3fe19806e3..97bc61cd78 100644 --- a/packages/backend/src/server/api/endpoints/notes/search.ts +++ b/packages/backend/src/server/api/endpoints/notes/search.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { SearchService } from '@/core/SearchService.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { RoleService } from '@/core/RoleService.js'; @@ -32,7 +34,7 @@ export const meta = { id: '0b44998d-77aa-4427-80d0-d2c9b8523011', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -50,7 +52,7 @@ export const paramDef = { channelId: { type: 'string', format: 'misskey:id', nullable: true, default: null }, }, required: ['query'], -} as const; +} as const satisfies Schema; // TODO: ロジックをサービスに切り出す diff --git a/packages/backend/src/server/api/endpoints/notes/show.ts b/packages/backend/src/server/api/endpoints/notes/show.ts index adcda30a7d..60a3d71983 100644 --- a/packages/backend/src/server/api/endpoints/notes/show.ts +++ b/packages/backend/src/server/api/endpoints/notes/show.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { GetterService } from '@/server/api/GetterService.js'; import { ApiError } from '../../error.js'; @@ -27,7 +29,7 @@ export const meta = { id: '24fcbfc6-2e37-42b6-8388-c29b3861a08d', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { noteId: { type: 'string', format: 'misskey:id' }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/state.ts b/packages/backend/src/server/api/endpoints/notes/state.ts index 4c1eb86542..4c76adcd4f 100644 --- a/packages/backend/src/server/api/endpoints/notes/state.ts +++ b/packages/backend/src/server/api/endpoints/notes/state.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { NotesRepository, NoteThreadMutingsRepository, NoteFavoritesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; export const meta = { @@ -28,7 +30,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { noteId: { type: 'string', format: 'misskey:id' }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/thread-muting/create.ts b/packages/backend/src/server/api/endpoints/notes/thread-muting/create.ts index 732d644a29..3ae3587786 100644 --- a/packages/backend/src/server/api/endpoints/notes/thread-muting/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/thread-muting/create.ts @@ -8,6 +8,8 @@ import ms from 'ms'; import type { NotesRepository, NoteThreadMutingsRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { GetterService } from '@/server/api/GetterService.js'; import { NoteReadService } from '@/core/NoteReadService.js'; import { DI } from '@/di-symbols.js'; @@ -32,7 +34,7 @@ export const meta = { id: '5ff67ada-ed3b-2e71-8e87-a1a421e177d2', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -40,7 +42,7 @@ export const paramDef = { noteId: { type: 'string', format: 'misskey:id' }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/thread-muting/delete.ts b/packages/backend/src/server/api/endpoints/notes/thread-muting/delete.ts index d94d6cd652..f069510608 100644 --- a/packages/backend/src/server/api/endpoints/notes/thread-muting/delete.ts +++ b/packages/backend/src/server/api/endpoints/notes/thread-muting/delete.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { NoteThreadMutingsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { GetterService } from '@/server/api/GetterService.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../../../error.js'; @@ -24,7 +26,7 @@ export const meta = { id: 'bddd57ac-ceb3-b29d-4334-86ea5fae481a', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -32,7 +34,7 @@ export const paramDef = { noteId: { type: 'string', format: 'misskey:id' }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/timeline.ts b/packages/backend/src/server/api/endpoints/notes/timeline.ts index c9b43b5359..03433cc4f0 100644 --- a/packages/backend/src/server/api/endpoints/notes/timeline.ts +++ b/packages/backend/src/server/api/endpoints/notes/timeline.ts @@ -7,6 +7,8 @@ import { Brackets } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import type { NotesRepository, ChannelFollowingsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import ActiveUsersChart from '@/core/chart/charts/active-users.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; @@ -33,7 +35,7 @@ export const meta = { ref: 'Note', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -51,7 +53,7 @@ export const paramDef = { withRenotes: { type: 'boolean', default: true }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/translate.ts b/packages/backend/src/server/api/endpoints/notes/translate.ts index 38a9660aa2..d19acdd520 100644 --- a/packages/backend/src/server/api/endpoints/notes/translate.ts +++ b/packages/backend/src/server/api/endpoints/notes/translate.ts @@ -6,6 +6,8 @@ import { URLSearchParams } from 'node:url'; import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { MetaService } from '@/core/MetaService.js'; import { HttpRequestService } from '@/core/HttpRequestService.js'; @@ -45,7 +47,7 @@ export const meta = { id: 'ea29f2ca-c368-43b3-aaf1-5ac3e74bbe5d', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -54,7 +56,7 @@ export const paramDef = { targetLang: { type: 'string' }, }, required: ['noteId', 'targetLang'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/unrenote.ts b/packages/backend/src/server/api/endpoints/notes/unrenote.ts index 73e70cfde4..38d0213c49 100644 --- a/packages/backend/src/server/api/endpoints/notes/unrenote.ts +++ b/packages/backend/src/server/api/endpoints/notes/unrenote.ts @@ -7,6 +7,8 @@ import ms from 'ms'; import { Inject, Injectable } from '@nestjs/common'; import type { UsersRepository, NotesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NoteDeleteService } from '@/core/NoteDeleteService.js'; import { DI } from '@/di-symbols.js'; import { GetterService } from '@/server/api/GetterService.js'; @@ -32,7 +34,7 @@ export const meta = { id: 'efd4a259-2442-496b-8dd7-b255aa1a160f', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -40,7 +42,7 @@ export const paramDef = { noteId: { type: 'string', format: 'misskey:id' }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts b/packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts index 43877e61ef..8d0442d6bf 100644 --- a/packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts +++ b/packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts @@ -7,6 +7,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Brackets } from 'typeorm'; import type { MiUserList, NotesRepository, UserListMembershipsRepository, UserListsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import ActiveUsersChart from '@/core/chart/charts/active-users.js'; import { DI } from '@/di-symbols.js'; @@ -41,7 +43,7 @@ export const meta = { id: '8fb1fbd5-e476-4c37-9fb0-43d55b63a2ff', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -64,7 +66,7 @@ export const paramDef = { }, }, required: ['listId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notifications/create.ts b/packages/backend/src/server/api/endpoints/notifications/create.ts index 7671b58e6b..a727c9c9ae 100644 --- a/packages/backend/src/server/api/endpoints/notifications/create.ts +++ b/packages/backend/src/server/api/endpoints/notifications/create.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NotificationService } from '@/core/NotificationService.js'; export const meta = { @@ -21,7 +23,7 @@ export const meta = { errors: { }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -31,7 +33,7 @@ export const paramDef = { icon: { type: 'string', nullable: true }, }, required: ['body'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notifications/flush.ts b/packages/backend/src/server/api/endpoints/notifications/flush.ts index 47c0642fd1..e205a86b96 100644 --- a/packages/backend/src/server/api/endpoints/notifications/flush.ts +++ b/packages/backend/src/server/api/endpoints/notifications/flush.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NotificationService } from '@/core/NotificationService.js'; export const meta = { @@ -13,13 +15,13 @@ export const meta = { requireCredential: true, kind: 'write:notifications', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notifications/mark-all-as-read.ts b/packages/backend/src/server/api/endpoints/notifications/mark-all-as-read.ts index 6565125c00..0682744caf 100644 --- a/packages/backend/src/server/api/endpoints/notifications/mark-all-as-read.ts +++ b/packages/backend/src/server/api/endpoints/notifications/mark-all-as-read.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NotificationService } from '@/core/NotificationService.js'; export const meta = { @@ -13,13 +15,13 @@ export const meta = { requireCredential: true, kind: 'write:notifications', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/notifications/test-notification.ts b/packages/backend/src/server/api/endpoints/notifications/test-notification.ts index 50b850a519..a08faa885b 100644 --- a/packages/backend/src/server/api/endpoints/notifications/test-notification.ts +++ b/packages/backend/src/server/api/endpoints/notifications/test-notification.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NotificationService } from '@/core/NotificationService.js'; export const meta = { @@ -18,13 +20,13 @@ export const meta = { duration: 1000 * 60, max: 10, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/page-push.ts b/packages/backend/src/server/api/endpoints/page-push.ts index ce454ab24a..32dd7f7069 100644 --- a/packages/backend/src/server/api/endpoints/page-push.ts +++ b/packages/backend/src/server/api/endpoints/page-push.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { PagesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { GlobalEventService } from '@/core/GlobalEventService.js'; import { DI } from '@/di-symbols.js'; @@ -22,7 +24,7 @@ export const meta = { id: '4a13ad31-6729-46b4-b9af-e86b265c2e74', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -32,7 +34,7 @@ export const paramDef = { var: {}, }, required: ['pageId', 'event'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/pages/create.ts b/packages/backend/src/server/api/endpoints/pages/create.ts index fa03b0b457..82d638c98b 100644 --- a/packages/backend/src/server/api/endpoints/pages/create.ts +++ b/packages/backend/src/server/api/endpoints/pages/create.ts @@ -9,6 +9,8 @@ import type { DriveFilesRepository, PagesRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import { MiPage } from '@/models/Page.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { PageEntityService } from '@/core/entities/PageEntityService.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../../error.js'; @@ -45,7 +47,7 @@ export const meta = { id: '4650348e-301c-499a-83c9-6aa988c66bc1', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -66,7 +68,7 @@ export const paramDef = { hideTitleWhenPinned: { type: 'boolean', default: false }, }, required: ['title', 'name', 'content', 'variables', 'script'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/pages/delete.ts b/packages/backend/src/server/api/endpoints/pages/delete.ts index f2bc946788..40ce738d61 100644 --- a/packages/backend/src/server/api/endpoints/pages/delete.ts +++ b/packages/backend/src/server/api/endpoints/pages/delete.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { PagesRepository, UsersRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { ModerationLogService } from '@/core/ModerationLogService.js'; import { RoleService } from '@/core/RoleService.js'; @@ -31,7 +33,7 @@ export const meta = { id: '8b741b3e-2c22-44b3-a15f-29949aa1601e', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -39,7 +41,7 @@ export const paramDef = { pageId: { type: 'string', format: 'misskey:id' }, }, required: ['pageId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/pages/featured.ts b/packages/backend/src/server/api/endpoints/pages/featured.ts index a47b69e56e..f8e1bc5af7 100644 --- a/packages/backend/src/server/api/endpoints/pages/featured.ts +++ b/packages/backend/src/server/api/endpoints/pages/featured.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { PagesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { PageEntityService } from '@/core/entities/PageEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -23,13 +25,13 @@ export const meta = { ref: 'Page', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/pages/like.ts b/packages/backend/src/server/api/endpoints/pages/like.ts index 11eed693ad..89d2a30441 100644 --- a/packages/backend/src/server/api/endpoints/pages/like.ts +++ b/packages/backend/src/server/api/endpoints/pages/like.ts @@ -7,6 +7,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { PagesRepository, PageLikesRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../../error.js'; @@ -38,7 +40,7 @@ export const meta = { id: 'd4c1edbe-7da2-4eae-8714-1acfd2d63941', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -46,7 +48,7 @@ export const paramDef = { pageId: { type: 'string', format: 'misskey:id' }, }, required: ['pageId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/pages/show.ts b/packages/backend/src/server/api/endpoints/pages/show.ts index e08b832a3f..4335ec527b 100644 --- a/packages/backend/src/server/api/endpoints/pages/show.ts +++ b/packages/backend/src/server/api/endpoints/pages/show.ts @@ -8,6 +8,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UsersRepository, PagesRepository } from '@/models/_.js'; import type { MiPage } from '@/models/Page.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { PageEntityService } from '@/core/entities/PageEntityService.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../../error.js'; @@ -30,7 +32,7 @@ export const meta = { id: '222120c0-3ead-4528-811b-b96f233388d7', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -43,7 +45,7 @@ export const paramDef = { { required: ['pageId'] }, { required: ['name', 'username'] }, ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/pages/unlike.ts b/packages/backend/src/server/api/endpoints/pages/unlike.ts index 70c965e0ad..6a306dfb52 100644 --- a/packages/backend/src/server/api/endpoints/pages/unlike.ts +++ b/packages/backend/src/server/api/endpoints/pages/unlike.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { PagesRepository, PageLikesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../../error.js'; @@ -31,7 +33,7 @@ export const meta = { id: 'f5e586b0-ce93-4050-b0e3-7f31af5259ee', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -39,7 +41,7 @@ export const paramDef = { pageId: { type: 'string', format: 'misskey:id' }, }, required: ['pageId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/pages/update.ts b/packages/backend/src/server/api/endpoints/pages/update.ts index f11bbbcb1a..7edcd4458d 100644 --- a/packages/backend/src/server/api/endpoints/pages/update.ts +++ b/packages/backend/src/server/api/endpoints/pages/update.ts @@ -8,6 +8,8 @@ import { Not } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import type { PagesRepository, DriveFilesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../../error.js'; @@ -49,7 +51,7 @@ export const meta = { id: '2298a392-d4a1-44c5-9ebb-ac1aeaa5a9ab', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -71,7 +73,7 @@ export const paramDef = { hideTitleWhenPinned: { type: 'boolean' }, }, required: ['pageId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/ping.ts b/packages/backend/src/server/api/endpoints/ping.ts index e218a8f755..a52759ba0b 100644 --- a/packages/backend/src/server/api/endpoints/ping.ts +++ b/packages/backend/src/server/api/endpoints/ping.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; export const meta = { requireCredential: false, @@ -21,13 +23,13 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/pinned-users.ts b/packages/backend/src/server/api/endpoints/pinned-users.ts index 15832ef7f8..a21f268e04 100644 --- a/packages/backend/src/server/api/endpoints/pinned-users.ts +++ b/packages/backend/src/server/api/endpoints/pinned-users.ts @@ -9,6 +9,8 @@ import type { UsersRepository } from '@/models/_.js'; import * as Acct from '@/misc/acct.js'; import type { MiUser } from '@/models/User.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { MetaService } from '@/core/MetaService.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -27,13 +29,13 @@ export const meta = { ref: 'UserDetailed', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/promo/read.ts b/packages/backend/src/server/api/endpoints/promo/read.ts index 9f7d078014..db2b778fd0 100644 --- a/packages/backend/src/server/api/endpoints/promo/read.ts +++ b/packages/backend/src/server/api/endpoints/promo/read.ts @@ -7,6 +7,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { PromoReadsRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { GetterService } from '@/server/api/GetterService.js'; import { ApiError } from '../../error.js'; @@ -24,7 +26,7 @@ export const meta = { id: 'd785b897-fcd3-4fe9-8fc3-b85c26e6c932', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -32,7 +34,7 @@ export const paramDef = { noteId: { type: 'string', format: 'misskey:id' }, }, required: ['noteId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/renote-mute/create.ts b/packages/backend/src/server/api/endpoints/renote-mute/create.ts index 84a1f010d4..bb2c08e148 100644 --- a/packages/backend/src/server/api/endpoints/renote-mute/create.ts +++ b/packages/backend/src/server/api/endpoints/renote-mute/create.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import ms from 'ms'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { GetterService } from '@/server/api/GetterService.js'; import { ApiError } from '../../error.js'; @@ -44,7 +46,7 @@ export const meta = { id: 'ccfecbe4-1f1c-4fc2-8a3d-c3ffee61cb7b', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -52,7 +54,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/renote-mute/delete.ts b/packages/backend/src/server/api/endpoints/renote-mute/delete.ts index 1a584b8404..d58cdf64e1 100644 --- a/packages/backend/src/server/api/endpoints/renote-mute/delete.ts +++ b/packages/backend/src/server/api/endpoints/renote-mute/delete.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { GetterService } from '@/server/api/GetterService.js'; import { ApiError } from '../../error.js'; @@ -37,7 +39,7 @@ export const meta = { id: '2e4ef874-8bf0-4b4b-b069-4598f6d05817', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -45,7 +47,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/renote-mute/list.ts b/packages/backend/src/server/api/endpoints/renote-mute/list.ts index 3be01f989a..7a589056e6 100644 --- a/packages/backend/src/server/api/endpoints/renote-mute/list.ts +++ b/packages/backend/src/server/api/endpoints/renote-mute/list.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { RenoteMutingsRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { RenoteMutingEntityService } from '@/core/entities/RenoteMutingEntityService.js'; @@ -26,7 +28,7 @@ export const meta = { ref: 'RenoteMuting', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/request-reset-password.ts b/packages/backend/src/server/api/endpoints/request-reset-password.ts index 86fe6a2e6e..ee5b0d90cc 100644 --- a/packages/backend/src/server/api/endpoints/request-reset-password.ts +++ b/packages/backend/src/server/api/endpoints/request-reset-password.ts @@ -8,6 +8,8 @@ import { IsNull } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import type { PasswordResetRequestsRepository, UserProfilesRepository, UsersRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { IdService } from '@/core/IdService.js'; import type { Config } from '@/config.js'; import { DI } from '@/di-symbols.js'; @@ -29,7 +31,7 @@ export const meta = { errors: { }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -38,7 +40,7 @@ export const paramDef = { email: { type: 'string' }, }, required: ['username', 'email'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/reset-db.ts b/packages/backend/src/server/api/endpoints/reset-db.ts index 67d5fabd86..5ecfad0c58 100644 --- a/packages/backend/src/server/api/endpoints/reset-db.ts +++ b/packages/backend/src/server/api/endpoints/reset-db.ts @@ -7,6 +7,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { DataSource } from 'typeorm'; import * as Redis from 'ioredis'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { resetDb } from '@/misc/reset-db.js'; @@ -20,13 +22,13 @@ export const meta = { errors: { }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/reset-password.ts b/packages/backend/src/server/api/endpoints/reset-password.ts index 9693892637..4c06b53f23 100644 --- a/packages/backend/src/server/api/endpoints/reset-password.ts +++ b/packages/backend/src/server/api/endpoints/reset-password.ts @@ -7,6 +7,8 @@ import bcrypt from 'bcryptjs'; import { Inject, Injectable } from '@nestjs/common'; import type { UserProfilesRepository, PasswordResetRequestsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { IdService } from '@/core/IdService.js'; @@ -20,7 +22,7 @@ export const meta = { errors: { }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -29,7 +31,7 @@ export const paramDef = { password: { type: 'string' }, }, required: ['token', 'password'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/retention.ts b/packages/backend/src/server/api/endpoints/retention.ts index 4695f32042..940fd106ef 100644 --- a/packages/backend/src/server/api/endpoints/retention.ts +++ b/packages/backend/src/server/api/endpoints/retention.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { RetentionAggregationsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; export const meta = { @@ -44,13 +46,13 @@ export const meta = { allowGet: true, cacheSec: 60 * 60, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/reversi/cancel-match.ts b/packages/backend/src/server/api/endpoints/reversi/cancel-match.ts index dd6f273e01..fedaccf15b 100644 --- a/packages/backend/src/server/api/endpoints/reversi/cancel-match.ts +++ b/packages/backend/src/server/api/endpoints/reversi/cancel-match.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ReversiService } from '@/core/ReversiService.js'; export const meta = { @@ -14,7 +16,7 @@ export const meta = { errors: { }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -22,7 +24,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id', nullable: true }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/reversi/games.ts b/packages/backend/src/server/api/endpoints/reversi/games.ts index 6b06068727..1fd63a1758 100644 --- a/packages/backend/src/server/api/endpoints/reversi/games.ts +++ b/packages/backend/src/server/api/endpoints/reversi/games.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Brackets } from 'typeorm'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ReversiGameEntityService } from '@/core/entities/ReversiGameEntityService.js'; import { DI } from '@/di-symbols.js'; import type { ReversiGamesRepository } from '@/models/_.js'; @@ -19,7 +21,7 @@ export const meta = { optional: false, nullable: false, items: { ref: 'ReversiGameLite' }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -30,7 +32,7 @@ export const paramDef = { my: { type: 'boolean', default: false }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/reversi/invitations.ts b/packages/backend/src/server/api/endpoints/reversi/invitations.ts index 5b3b9da75b..6a8344e69b 100644 --- a/packages/backend/src/server/api/endpoints/reversi/invitations.ts +++ b/packages/backend/src/server/api/endpoints/reversi/invitations.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { ReversiService } from '@/core/ReversiService.js'; @@ -19,10 +21,10 @@ export const meta = { optional: false, nullable: false, items: { ref: 'UserLite' }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/reversi/match.ts b/packages/backend/src/server/api/endpoints/reversi/match.ts index aa8b8a7d72..cefaf1669e 100644 --- a/packages/backend/src/server/api/endpoints/reversi/match.ts +++ b/packages/backend/src/server/api/endpoints/reversi/match.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ReversiService } from '@/core/ReversiService.js'; import { ReversiGameEntityService } from '@/core/entities/ReversiGameEntityService.js'; import { ApiError } from '../../error.js'; @@ -34,7 +36,7 @@ export const meta = { optional: true, ref: 'ReversiGameDetailed', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -44,7 +46,7 @@ export const paramDef = { multiple: { type: 'boolean', default: false }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/reversi/show-game.ts b/packages/backend/src/server/api/endpoints/reversi/show-game.ts index fc3b96eb51..1470682cab 100644 --- a/packages/backend/src/server/api/endpoints/reversi/show-game.ts +++ b/packages/backend/src/server/api/endpoints/reversi/show-game.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ReversiService } from '@/core/ReversiService.js'; import { ReversiGameEntityService } from '@/core/entities/ReversiGameEntityService.js'; import { ApiError } from '../../error.js'; @@ -25,7 +27,7 @@ export const meta = { optional: false, nullable: false, ref: 'ReversiGameDetailed', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -33,7 +35,7 @@ export const paramDef = { gameId: { type: 'string', format: 'misskey:id' }, }, required: ['gameId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/reversi/surrender.ts b/packages/backend/src/server/api/endpoints/reversi/surrender.ts index 75e5372862..f45f100f50 100644 --- a/packages/backend/src/server/api/endpoints/reversi/surrender.ts +++ b/packages/backend/src/server/api/endpoints/reversi/surrender.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ReversiService } from '@/core/ReversiService.js'; import { ApiError } from '../../error.js'; @@ -32,7 +34,7 @@ export const meta = { id: '6e04164b-a992-4c93-8489-2123069973e1', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -40,7 +42,7 @@ export const paramDef = { gameId: { type: 'string', format: 'misskey:id' }, }, required: ['gameId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/reversi/verify.ts b/packages/backend/src/server/api/endpoints/reversi/verify.ts index 981735a3d7..528ac156e5 100644 --- a/packages/backend/src/server/api/endpoints/reversi/verify.ts +++ b/packages/backend/src/server/api/endpoints/reversi/verify.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { ReversiService } from '@/core/ReversiService.js'; import { ReversiGameEntityService } from '@/core/entities/ReversiGameEntityService.js'; import { ApiError } from '../../error.js'; @@ -30,7 +32,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -39,7 +41,7 @@ export const paramDef = { crc32: { type: 'string' }, }, required: ['gameId', 'crc32'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/roles/list.ts b/packages/backend/src/server/api/endpoints/roles/list.ts index b087aa242b..50aa6ade45 100644 --- a/packages/backend/src/server/api/endpoints/roles/list.ts +++ b/packages/backend/src/server/api/endpoints/roles/list.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { RolesRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { RoleEntityService } from '@/core/entities/RoleEntityService.js'; @@ -24,7 +26,7 @@ export const meta = { ref: 'Role', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -32,7 +34,7 @@ export const paramDef = { }, required: [ ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/roles/notes.ts b/packages/backend/src/server/api/endpoints/roles/notes.ts index 71f2782a5d..e8be4fac82 100644 --- a/packages/backend/src/server/api/endpoints/roles/notes.ts +++ b/packages/backend/src/server/api/endpoints/roles/notes.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import * as Redis from 'ioredis'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { NotesRepository, RolesRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { DI } from '@/di-symbols.js'; @@ -37,7 +39,7 @@ export const meta = { ref: 'Note', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -50,7 +52,7 @@ export const paramDef = { untilDate: { type: 'integer' }, }, required: ['roleId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/roles/show.ts b/packages/backend/src/server/api/endpoints/roles/show.ts index 38477c5e8e..b4ebb500c5 100644 --- a/packages/backend/src/server/api/endpoints/roles/show.ts +++ b/packages/backend/src/server/api/endpoints/roles/show.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { RolesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { RoleEntityService } from '@/core/entities/RoleEntityService.js'; import { ApiError } from '../../error.js'; @@ -28,7 +30,7 @@ export const meta = { optional: false, nullable: false, ref: 'Role', }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -36,7 +38,7 @@ export const paramDef = { roleId: { type: 'string', format: 'misskey:id' }, }, required: ['roleId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/roles/users.ts b/packages/backend/src/server/api/endpoints/roles/users.ts index 48d350af59..080aaf3862 100644 --- a/packages/backend/src/server/api/endpoints/roles/users.ts +++ b/packages/backend/src/server/api/endpoints/roles/users.ts @@ -7,6 +7,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Brackets } from 'typeorm'; import type { RoleAssignmentsRepository, RolesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { DI } from '@/di-symbols.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; @@ -43,7 +45,7 @@ export const meta = { required: ['id', 'user'], }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -54,7 +56,7 @@ export const paramDef = { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, }, required: ['roleId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/server-info.ts b/packages/backend/src/server/api/endpoints/server-info.ts index c13802eb06..6fecd8384c 100644 --- a/packages/backend/src/server/api/endpoints/server-info.ts +++ b/packages/backend/src/server/api/endpoints/server-info.ts @@ -7,6 +7,8 @@ import * as os from 'node:os'; import si from 'systeminformation'; import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { MetaService } from '@/core/MetaService.js'; export const meta = { @@ -62,13 +64,13 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/stats.ts b/packages/backend/src/server/api/endpoints/stats.ts index 1e6983177f..1fa238bed1 100644 --- a/packages/backend/src/server/api/endpoints/stats.ts +++ b/packages/backend/src/server/api/endpoints/stats.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { InstancesRepository, NoteReactionsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import NotesChart from '@/core/chart/charts/notes.js'; import UsersChart from '@/core/chart/charts/users.js'; @@ -49,13 +51,13 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', properties: {}, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/sw/register.ts b/packages/backend/src/server/api/endpoints/sw/register.ts index a9a33149f9..8b8bef5cdc 100644 --- a/packages/backend/src/server/api/endpoints/sw/register.ts +++ b/packages/backend/src/server/api/endpoints/sw/register.ts @@ -7,6 +7,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { IdService } from '@/core/IdService.js'; import type { SwSubscriptionsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { MetaService } from '@/core/MetaService.js'; import { DI } from '@/di-symbols.js'; import { PushNotificationService } from '@/core/PushNotificationService.js'; @@ -46,7 +48,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -102,7 +104,7 @@ export default class extends Endpoint { // eslint- this.pushNotificationService.refreshCache(me.id); return { - state: 'subscribed' as const, + state: 'subscribed' as const satisfies Schema, key: instance.swPublicKey, userId: me.id, endpoint: ps.endpoint, diff --git a/packages/backend/src/server/api/endpoints/sw/show-registration.ts b/packages/backend/src/server/api/endpoints/sw/show-registration.ts index 797e4fd34d..29f4d31050 100644 --- a/packages/backend/src/server/api/endpoints/sw/show-registration.ts +++ b/packages/backend/src/server/api/endpoints/sw/show-registration.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { SwSubscriptionsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; export const meta = { @@ -34,7 +36,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -42,7 +44,7 @@ export const paramDef = { endpoint: { type: 'string' }, }, required: ['endpoint'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/sw/unregister.ts b/packages/backend/src/server/api/endpoints/sw/unregister.ts index 2edf7fab1b..e1b3036efb 100644 --- a/packages/backend/src/server/api/endpoints/sw/unregister.ts +++ b/packages/backend/src/server/api/endpoints/sw/unregister.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { SwSubscriptionsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { PushNotificationService } from '@/core/PushNotificationService.js'; @@ -15,7 +17,7 @@ export const meta = { requireCredential: false, description: 'Unregister from receiving push notifications.', -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -23,7 +25,7 @@ export const paramDef = { endpoint: { type: 'string' }, }, required: ['endpoint'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/sw/update-registration.ts b/packages/backend/src/server/api/endpoints/sw/update-registration.ts index 839a07c770..473c1d8a7f 100644 --- a/packages/backend/src/server/api/endpoints/sw/update-registration.ts +++ b/packages/backend/src/server/api/endpoints/sw/update-registration.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { SwSubscriptionsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { PushNotificationService } from '@/core/PushNotificationService.js'; import { ApiError } from '../../error.js'; @@ -43,7 +45,7 @@ export const meta = { id: ' b09d8066-8064-5613-efb6-0e963b21d012', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -52,7 +54,7 @@ export const paramDef = { sendReadMessage: { type: 'boolean' }, }, required: ['endpoint'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/test.ts b/packages/backend/src/server/api/endpoints/test.ts index 9231f0ab94..314ac7dab6 100644 --- a/packages/backend/src/server/api/endpoints/test.ts +++ b/packages/backend/src/server/api/endpoints/test.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; export const meta = { tags: ['non-productive'], @@ -40,7 +42,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -52,7 +54,7 @@ export const paramDef = { id: { type: 'string', format: 'misskey:id' }, }, required: ['required'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/username/available.ts b/packages/backend/src/server/api/endpoints/username/available.ts index affb0996f1..8a8b6790b2 100644 --- a/packages/backend/src/server/api/endpoints/username/available.ts +++ b/packages/backend/src/server/api/endpoints/username/available.ts @@ -7,6 +7,8 @@ import { IsNull } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import type { UsedUsernamesRepository, UsersRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { localUsernameSchema } from '@/models/User.js'; import { DI } from '@/di-symbols.js'; import { MetaService } from '@/core/MetaService.js'; @@ -26,7 +28,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -34,7 +36,7 @@ export const paramDef = { username: localUsernameSchema, }, required: ['username'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users.ts b/packages/backend/src/server/api/endpoints/users.ts index e845853017..8ba3314112 100644 --- a/packages/backend/src/server/api/endpoints/users.ts +++ b/packages/backend/src/server/api/endpoints/users.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UsersRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -24,7 +26,7 @@ export const meta = { ref: 'UserDetailed', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -42,7 +44,7 @@ export const paramDef = { }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/achievements.ts b/packages/backend/src/server/api/endpoints/users/achievements.ts index f7139b3684..bbbb9aefb6 100644 --- a/packages/backend/src/server/api/endpoints/users/achievements.ts +++ b/packages/backend/src/server/api/endpoints/users/achievements.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UserProfilesRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; @@ -25,7 +27,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -33,7 +35,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/clips.ts b/packages/backend/src/server/api/endpoints/users/clips.ts index 7f7d2ea8cc..c1d5354cd8 100644 --- a/packages/backend/src/server/api/endpoints/users/clips.ts +++ b/packages/backend/src/server/api/endpoints/users/clips.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { ClipsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { ClipEntityService } from '@/core/entities/ClipEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -24,7 +26,7 @@ export const meta = { ref: 'Clip', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/featured-notes.ts b/packages/backend/src/server/api/endpoints/users/featured-notes.ts index e01f19ba7a..1d35bef483 100644 --- a/packages/backend/src/server/api/endpoints/users/featured-notes.ts +++ b/packages/backend/src/server/api/endpoints/users/featured-notes.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { NotesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { DI } from '@/di-symbols.js'; import { FeaturedService } from '@/core/FeaturedService.js'; @@ -28,7 +30,7 @@ export const meta = { ref: 'Note', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -38,7 +40,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/flashs.ts b/packages/backend/src/server/api/endpoints/users/flashs.ts index e5ea450215..e2f9775d7f 100644 --- a/packages/backend/src/server/api/endpoints/users/flashs.ts +++ b/packages/backend/src/server/api/endpoints/users/flashs.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { FlashEntityService } from '@/core/entities/FlashEntityService.js'; import type { FlashsRepository } from '@/models/_.js'; @@ -24,7 +26,7 @@ export const meta = { ref: 'Flash', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; // eslint-disable-next-line import/no-default-export @Injectable() diff --git a/packages/backend/src/server/api/endpoints/users/followers.ts b/packages/backend/src/server/api/endpoints/users/followers.ts index a8b4319a61..62d1c9f950 100644 --- a/packages/backend/src/server/api/endpoints/users/followers.ts +++ b/packages/backend/src/server/api/endpoints/users/followers.ts @@ -7,6 +7,8 @@ import { IsNull } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import type { UsersRepository, FollowingsRepository, UserProfilesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { FollowingEntityService } from '@/core/entities/FollowingEntityService.js'; import { UtilityService } from '@/core/UtilityService.js'; @@ -44,7 +46,7 @@ export const meta = { id: '3c6a84db-d619-26af-ca14-06232a21df8a', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -65,7 +67,7 @@ export const paramDef = { { required: ['userId'] }, { required: ['username', 'host'] }, ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/following.ts b/packages/backend/src/server/api/endpoints/users/following.ts index feda5bb353..731f1e5f89 100644 --- a/packages/backend/src/server/api/endpoints/users/following.ts +++ b/packages/backend/src/server/api/endpoints/users/following.ts @@ -8,6 +8,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UsersRepository, FollowingsRepository, UserProfilesRepository } from '@/models/_.js'; import { birthdaySchema } from '@/models/User.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { FollowingEntityService } from '@/core/entities/FollowingEntityService.js'; import { UtilityService } from '@/core/UtilityService.js'; @@ -51,7 +53,7 @@ export const meta = { id: 'a2b007b9-4782-4eba-abd3-93b05ed4130d', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -74,7 +76,7 @@ export const paramDef = { { required: ['userId'] }, { required: ['username', 'host'] }, ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/gallery/posts.ts b/packages/backend/src/server/api/endpoints/users/gallery/posts.ts index 553886374c..ad87df715d 100644 --- a/packages/backend/src/server/api/endpoints/users/gallery/posts.ts +++ b/packages/backend/src/server/api/endpoints/users/gallery/posts.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { GalleryPostsRepository } from '@/models/_.js'; import { QueryService } from '@/core/QueryService.js'; import { GalleryPostEntityService } from '@/core/entities/GalleryPostEntityService.js'; @@ -24,7 +26,7 @@ export const meta = { ref: 'GalleryPost', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/get-frequently-replied-users.ts b/packages/backend/src/server/api/endpoints/users/get-frequently-replied-users.ts index 9248a2fa68..33398b4fe2 100644 --- a/packages/backend/src/server/api/endpoints/users/get-frequently-replied-users.ts +++ b/packages/backend/src/server/api/endpoints/users/get-frequently-replied-users.ts @@ -8,6 +8,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { maximum } from '@/misc/prelude/array.js'; import type { NotesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { DI } from '@/di-symbols.js'; import { GetterService } from '@/server/api/GetterService.js'; @@ -47,7 +49,7 @@ export const meta = { id: 'e6965129-7b2a-40a4-bae2-cd84cd434822', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -56,7 +58,7 @@ export const paramDef = { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts b/packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts index 7e44d501ab..ddc743d414 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts @@ -8,6 +8,8 @@ import type { UserListsRepository, UserListMembershipsRepository, BlockingsRepos import { IdService } from '@/core/IdService.js'; import type { MiUserList } from '@/models/UserList.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { GetterService } from '@/server/api/GetterService.js'; import { UserListEntityService } from '@/core/entities/UserListEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -60,7 +62,7 @@ export const meta = { id: '1845ea77-38d1-426e-8e4e-8b83b24f5bd7', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -69,7 +71,7 @@ export const paramDef = { listId: { type: 'string', format: 'misskey:id' }, }, required: ['name', 'listId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/lists/create.ts b/packages/backend/src/server/api/endpoints/users/lists/create.ts index 7daf05ba4e..61707fb9c4 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/create.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/create.ts @@ -8,6 +8,8 @@ import type { UserListsRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import type { MiUserList } from '@/models/UserList.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserListEntityService } from '@/core/entities/UserListEntityService.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '@/server/api/error.js'; @@ -37,7 +39,7 @@ export const meta = { id: '0cf21a28-7715-4f39-a20d-777bfdb8d138', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -45,7 +47,7 @@ export const paramDef = { name: { type: 'string', minLength: 1, maxLength: 100 }, }, required: ['name'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/lists/delete.ts b/packages/backend/src/server/api/endpoints/users/lists/delete.ts index dc0d28a0eb..2278b57c52 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/delete.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/delete.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UserListsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../../../error.js'; @@ -25,7 +27,7 @@ export const meta = { id: '78436795-db79-42f5-b1e2-55ea2cf19166', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -33,7 +35,7 @@ export const paramDef = { listId: { type: 'string', format: 'misskey:id' }, }, required: ['listId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/lists/favorite.ts b/packages/backend/src/server/api/endpoints/users/lists/favorite.ts index fd142d5a01..f248faa827 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/favorite.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/favorite.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UserListFavoritesRepository, UserListsRepository } from '@/models/_.js'; import { IdService } from '@/core/IdService.js'; import { ApiError } from '@/server/api/error.js'; @@ -26,7 +28,7 @@ export const meta = { id: '6425bba0-985b-461e-af1b-518070e72081', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -34,7 +36,7 @@ export const paramDef = { listId: { type: 'string', format: 'misskey:id' }, }, required: ['listId'], -} as const; +} as const satisfies Schema; @Injectable() // eslint-disable-next-line import/no-default-export export default class extends Endpoint { diff --git a/packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts b/packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts index 6d6e8d34ea..5fcb42e15d 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/get-memberships.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UserListsRepository, UserListFavoritesRepository, UserListMembershipsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserListEntityService } from '@/core/entities/UserListEntityService.js'; import { DI } from '@/di-symbols.js'; import { QueryService } from '@/core/QueryService.js'; @@ -54,7 +56,7 @@ export const meta = { }, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -66,7 +68,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: ['listId'], -} as const; +} as const satisfies Schema; @Injectable() // eslint-disable-next-line import/no-default-export export default class extends Endpoint { diff --git a/packages/backend/src/server/api/endpoints/users/lists/list.ts b/packages/backend/src/server/api/endpoints/users/lists/list.ts index 4241ef1cd0..ecc245c974 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/list.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/list.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UserListsRepository, UsersRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserListEntityService } from '@/core/entities/UserListEntityService.js'; import { ApiError } from '@/server/api/error.js'; import { DI } from '@/di-symbols.js'; @@ -45,7 +47,7 @@ export const meta = { id: 'ab36de0e-29e9-48cb-9732-d82f1281620d', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -53,7 +55,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() // eslint-disable-next-line import/no-default-export export default class extends Endpoint { diff --git a/packages/backend/src/server/api/endpoints/users/lists/pull.ts b/packages/backend/src/server/api/endpoints/users/lists/pull.ts index 94f06f3bea..1d7fe63233 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/pull.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/pull.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UserListsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { GetterService } from '@/server/api/GetterService.js'; import { DI } from '@/di-symbols.js'; import { UserListService } from '@/core/UserListService.js'; @@ -35,7 +37,7 @@ export const meta = { id: '588e7f72-c744-4a61-b180-d354e912bda2', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -44,7 +46,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['listId', 'userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/lists/push.ts b/packages/backend/src/server/api/endpoints/users/lists/push.ts index c717b3959c..d2dd13c1ee 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/push.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/push.ts @@ -7,6 +7,8 @@ import { Inject, Injectable } from '@nestjs/common'; import ms from 'ms'; import type { UserListsRepository, UserListMembershipsRepository, BlockingsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { GetterService } from '@/server/api/GetterService.js'; import { UserListService } from '@/core/UserListService.js'; import { DI } from '@/di-symbols.js'; @@ -59,7 +61,7 @@ export const meta = { id: '2dd9752e-a338-413d-8eec-41814430989b', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -68,7 +70,7 @@ export const paramDef = { userId: { type: 'string', format: 'misskey:id' }, }, required: ['listId', 'userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/lists/show.ts b/packages/backend/src/server/api/endpoints/users/lists/show.ts index 8756801fe4..255a8342b1 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/show.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/show.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UserListsRepository, UserListFavoritesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserListEntityService } from '@/core/entities/UserListEntityService.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../../../error.js'; @@ -32,7 +34,7 @@ export const meta = { id: '7bc05c21-1d7a-41ae-88f1-66820f4dc686', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -41,7 +43,7 @@ export const paramDef = { forPublic: { type: 'boolean', default: false }, }, required: ['listId'], -} as const; +} as const satisfies Schema; @Injectable() // eslint-disable-next-line import/no-default-export export default class extends Endpoint { diff --git a/packages/backend/src/server/api/endpoints/users/lists/unfavorite.ts b/packages/backend/src/server/api/endpoints/users/lists/unfavorite.ts index 3f4bd5af8c..3031bb52a5 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/unfavorite.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/unfavorite.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import type { UserListFavoritesRepository, UserListsRepository } from '@/models/_.js'; import { ApiError } from '@/server/api/error.js'; import { DI } from '@/di-symbols.js'; @@ -25,7 +27,7 @@ export const meta = { id: '835c4b27-463d-4cfa-969b-a9058678d465', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -33,7 +35,7 @@ export const paramDef = { listId: { type: 'string', format: 'misskey:id' }, }, required: ['listId'], -} as const; +} as const satisfies Schema; @Injectable() // eslint-disable-next-line import/no-default-export export default class extends Endpoint { diff --git a/packages/backend/src/server/api/endpoints/users/lists/update-membership.ts b/packages/backend/src/server/api/endpoints/users/lists/update-membership.ts index 3948ae1685..2246cb6a70 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/update-membership.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/update-membership.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UserListsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { GetterService } from '@/server/api/GetterService.js'; import { DI } from '@/di-symbols.js'; import { UserListService } from '@/core/UserListService.js'; @@ -33,7 +35,7 @@ export const meta = { id: '588e7f72-c744-4a61-b180-d354e912bda2', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -43,7 +45,7 @@ export const paramDef = { withReplies: { type: 'boolean' }, }, required: ['listId', 'userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/lists/update.ts b/packages/backend/src/server/api/endpoints/users/lists/update.ts index a38f84d7b0..21b04a403a 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/update.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/update.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UserListsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserListEntityService } from '@/core/entities/UserListEntityService.js'; import { DI } from '@/di-symbols.js'; import { ApiError } from '../../../error.js'; @@ -32,7 +34,7 @@ export const meta = { id: '796666fe-3dff-4d39-becb-8a5932c1d5b7', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -42,7 +44,7 @@ export const paramDef = { isPublic: { type: 'boolean' }, }, required: ['listId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/notes.ts b/packages/backend/src/server/api/endpoints/users/notes.ts index cc76c12f1d..85ba1ed4b5 100644 --- a/packages/backend/src/server/api/endpoints/users/notes.ts +++ b/packages/backend/src/server/api/endpoints/users/notes.ts @@ -7,6 +7,8 @@ import { Brackets } from 'typeorm'; import { Inject, Injectable } from '@nestjs/common'; import type { NotesRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { DI } from '@/di-symbols.js'; import { CacheService } from '@/core/CacheService.js'; @@ -44,7 +46,7 @@ export const meta = { id: '91c8cb9f-36ed-46e7-9ca2-7df96ed6e222', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -62,7 +64,7 @@ export const paramDef = { withFiles: { type: 'boolean', default: false }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/pages.ts b/packages/backend/src/server/api/endpoints/users/pages.ts index bb7de0e0b5..526390e99b 100644 --- a/packages/backend/src/server/api/endpoints/users/pages.ts +++ b/packages/backend/src/server/api/endpoints/users/pages.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { PageEntityService } from '@/core/entities/PageEntityService.js'; import type { PagesRepository } from '@/models/_.js'; @@ -24,7 +26,7 @@ export const meta = { ref: 'Page', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -35,7 +37,7 @@ export const paramDef = { untilId: { type: 'string', format: 'misskey:id' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/reactions.ts b/packages/backend/src/server/api/endpoints/users/reactions.ts index 7805ae3288..13e25bc9f3 100644 --- a/packages/backend/src/server/api/endpoints/users/reactions.ts +++ b/packages/backend/src/server/api/endpoints/users/reactions.ts @@ -6,6 +6,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UserProfilesRepository, NoteReactionsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { NoteReactionEntityService } from '@/core/entities/NoteReactionEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -44,7 +46,7 @@ export const meta = { id: '6b95fa98-8cf9-2350-e284-f0ffdb54a805', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -57,7 +59,7 @@ export const paramDef = { untilDate: { type: 'integer' }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/recommendation.ts b/packages/backend/src/server/api/endpoints/users/recommendation.ts index 5b3b4527f7..4a07eaf71e 100644 --- a/packages/backend/src/server/api/endpoints/users/recommendation.ts +++ b/packages/backend/src/server/api/endpoints/users/recommendation.ts @@ -7,6 +7,8 @@ import ms from 'ms'; import { Inject, Injectable } from '@nestjs/common'; import type { UsersRepository, FollowingsRepository } from '@/models/_.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { QueryService } from '@/core/QueryService.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { DI } from '@/di-symbols.js'; @@ -29,7 +31,7 @@ export const meta = { ref: 'UserDetailed', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -38,7 +40,7 @@ export const paramDef = { offset: { type: 'integer', default: 0 }, }, required: [], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/relation.ts b/packages/backend/src/server/api/endpoints/users/relation.ts index 1d75437b81..84e140b33b 100644 --- a/packages/backend/src/server/api/endpoints/users/relation.ts +++ b/packages/backend/src/server/api/endpoints/users/relation.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; export const meta = { @@ -108,7 +110,7 @@ export const meta = { }, ], }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -124,7 +126,7 @@ export const paramDef = { }, }, required: ['userId'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/report-abuse.ts b/packages/backend/src/server/api/endpoints/users/report-abuse.ts index 5ff6de37d2..64d034cb53 100644 --- a/packages/backend/src/server/api/endpoints/users/report-abuse.ts +++ b/packages/backend/src/server/api/endpoints/users/report-abuse.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { GetterService } from '@/server/api/GetterService.js'; import { RoleService } from '@/core/RoleService.js'; import { AbuseReportService } from '@/core/AbuseReportService.js'; @@ -37,7 +39,7 @@ export const meta = { id: '35e166f5-05fb-4f87-a2d5-adb42676d48f', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -46,7 +48,7 @@ export const paramDef = { comment: { type: 'string', minLength: 1, maxLength: 2048 }, }, required: ['userId', 'comment'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts b/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts index 8ff952dcb5..9162130e0b 100644 --- a/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts +++ b/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts @@ -5,6 +5,8 @@ import { Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserSearchService } from '@/core/UserSearchService.js'; export const meta = { @@ -23,7 +25,7 @@ export const meta = { ref: 'User', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -38,7 +40,7 @@ export const paramDef = { { required: ['username'] }, { required: ['host'] }, ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/search.ts b/packages/backend/src/server/api/endpoints/users/search.ts index 0b0136066d..aa4476bf9a 100644 --- a/packages/backend/src/server/api/endpoints/users/search.ts +++ b/packages/backend/src/server/api/endpoints/users/search.ts @@ -8,6 +8,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UsersRepository, UserProfilesRepository } from '@/models/_.js'; import type { MiUser } from '@/models/User.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { DI } from '@/di-symbols.js'; import { sqlLikeEscape } from '@/misc/sql-like-escape.js'; @@ -28,7 +30,7 @@ export const meta = { ref: 'User', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -40,7 +42,7 @@ export const paramDef = { detail: { type: 'boolean', default: true }, }, required: ['query'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/show.ts b/packages/backend/src/server/api/endpoints/users/show.ts index 062326e28d..e19567936e 100644 --- a/packages/backend/src/server/api/endpoints/users/show.ts +++ b/packages/backend/src/server/api/endpoints/users/show.ts @@ -8,6 +8,8 @@ import { Inject, Injectable } from '@nestjs/common'; import type { UsersRepository } from '@/models/_.js'; import type { MiUser } from '@/models/User.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { RemoteUserResolveService } from '@/core/RemoteUserResolveService.js'; import { DI } from '@/di-symbols.js'; @@ -56,7 +58,7 @@ export const meta = { httpStatusCode: 404, }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -77,7 +79,7 @@ export const paramDef = { { required: ['userIds'] }, { required: ['username'] }, ], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/endpoints/users/update-memo.ts b/packages/backend/src/server/api/endpoints/users/update-memo.ts index 5a10de0c40..fe70e1dfc3 100644 --- a/packages/backend/src/server/api/endpoints/users/update-memo.ts +++ b/packages/backend/src/server/api/endpoints/users/update-memo.ts @@ -5,6 +5,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { Endpoint } from '@/server/api/endpoint-base.js'; +import type { IEndpointMeta } from '@/server/api/endpoints.js'; +import type { Schema } from '@/misc/json-schema.js'; import { IdService } from '@/core/IdService.js'; import type { UserMemoRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; @@ -25,7 +27,7 @@ export const meta = { id: '6fef56f3-e765-4957-88e5-c6f65329b8a5', }, }, -} as const; +} as const satisfies IEndpointMeta; export const paramDef = { type: 'object', @@ -38,7 +40,7 @@ export const paramDef = { }, }, required: ['userId', 'memo'], -} as const; +} as const satisfies Schema; @Injectable() export default class extends Endpoint { // eslint-disable-line import/no-default-export diff --git a/packages/backend/src/server/api/error.ts b/packages/backend/src/server/api/error.ts index 2f8322a568..60dfdccfd4 100644 --- a/packages/backend/src/server/api/error.ts +++ b/packages/backend/src/server/api/error.ts @@ -3,7 +3,7 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -type E = { message: string, code: string, id: string, kind?: 'client' | 'server' | 'permission', httpStatusCode?: number }; +export type ApiErrorInput = { message: string, code: string, id: string, kind?: 'client' | 'server' | 'permission', httpStatusCode?: number }; export class ApiError extends Error { public message: string; @@ -13,7 +13,7 @@ export class ApiError extends Error { public httpStatusCode?: number; public info?: any; - constructor(err?: E | null | undefined, info?: any | null | undefined) { + constructor(err?: ApiErrorInput | null | undefined, info?: any | null | undefined) { if (err == null) err = { message: 'Internal error occurred. Please contact us if the error persists.', code: 'INTERNAL_ERROR',