diff --git a/src/endpoints.ts b/src/endpoints.ts index dbd6212d7..9998fb622 100644 --- a/src/endpoints.ts +++ b/src/endpoints.ts @@ -257,7 +257,7 @@ export type Endpoints = { 'messaging/messages/read': { req: TODO; res: TODO; }; // meta - 'meta': { req: { detail?: boolean; }; res: InstanceMetadata; }; + 'meta': { req: { detail?: boolean; }; res: InstanceMetadata; }; // TODO: 「detail が true なら DetailedInstanceMetadata を返す」のような型付けをしたい // miauth 'miauth/gen-token': { req: TODO; res: TODO; }; diff --git a/src/entities.ts b/src/entities.ts index ff2762a98..a8cbb28f5 100644 --- a/src/entities.ts +++ b/src/entities.ts @@ -154,7 +154,30 @@ export type MessagingMessage = { groupId: string; // TODO }; -export type InstanceMetadata = { +export type LiteInstanceMetadata = { + maintainerName: string | null; + maintainerEmail: string | null; + version: string; + name: string | null; + uri: string; + description: string | null; + tosUrl: string | null; + disableRegistration: boolean; + disableLocalTimeline: boolean; + disableGlobalTimeline: boolean; + driveCapacityPerLocalUserMb: number; + driveCapacityPerRemoteUserMb: number; + enableHcaptcha: boolean; + hcaptchaSiteKey: string | null; + enableRecaptcha: boolean; + recaptchaSiteKey: string | null; + swPublickey: string | null; + maxNoteTextLength: number; + enableEmail: boolean; + enableTwitterIntegration: boolean; + enableGithubIntegration: boolean; + enableDiscordIntegration: boolean; + enableServiceWorker: boolean; emojis: { id: string; name: string; @@ -171,6 +194,12 @@ export type InstanceMetadata = { }[]; }; +export type DetailedInstanceMetadata = LiteInstanceMetadata & { + features: Record; +}; + +export type InstanceMetadata = LiteInstanceMetadata | DetailedInstanceMetadata; + export type ServerInfo = { machine: string; cpu: {