fix(backend): add missing schemas and fix incorrect schemas (#13295)

* fix(backend): add missing schemas and fix incorrect schemas

* fix: ci

* fix: ci (本命)

* fix: run `pnpm build-misskey-js-with-types`

* fix: typos

* fix: role-condition-formula-value contains `id`

* fix: incorrect schema
This commit is contained in:
zyoshoka 2024-02-16 14:27:33 +09:00 committed by GitHub
parent 147e8f1e3e
commit 40bbae3d6c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
31 changed files with 1038 additions and 160 deletions

View File

@ -37,7 +37,17 @@ import { packedEmojiDetailedSchema, packedEmojiSimpleSchema } from '@/models/jso
import { packedFlashSchema } from '@/models/json-schema/flash.js'; import { packedFlashSchema } from '@/models/json-schema/flash.js';
import { packedAnnouncementSchema } from '@/models/json-schema/announcement.js'; import { packedAnnouncementSchema } from '@/models/json-schema/announcement.js';
import { packedSigninSchema } from '@/models/json-schema/signin.js'; import { packedSigninSchema } from '@/models/json-schema/signin.js';
import { packedRoleLiteSchema, packedRoleSchema, packedRolePoliciesSchema } from '@/models/json-schema/role.js'; import {
packedRoleLiteSchema,
packedRoleSchema,
packedRolePoliciesSchema,
packedRoleCondFormulaLogicsSchema,
packedRoleCondFormulaValueNot,
packedRoleCondFormulaValueIsLocalOrRemoteSchema,
packedRoleCondFormulaValueCreatedSchema,
packedRoleCondFormulaFollowersOrFollowingOrNotesSchema,
packedRoleCondFormulaValueSchema,
} from '@/models/json-schema/role.js';
import { packedAdSchema } from '@/models/json-schema/ad.js'; import { packedAdSchema } from '@/models/json-schema/ad.js';
import { packedReversiGameLiteSchema, packedReversiGameDetailedSchema } from '@/models/json-schema/reversi-game.js'; import { packedReversiGameLiteSchema, packedReversiGameDetailedSchema } from '@/models/json-schema/reversi-game.js';
@ -78,6 +88,12 @@ export const refs = {
EmojiDetailed: packedEmojiDetailedSchema, EmojiDetailed: packedEmojiDetailedSchema,
Flash: packedFlashSchema, Flash: packedFlashSchema,
Signin: packedSigninSchema, Signin: packedSigninSchema,
RoleCondFormulaLogics: packedRoleCondFormulaLogicsSchema,
RoleCondFormulaValueNot: packedRoleCondFormulaValueNot,
RoleCondFormulaValueIsLocalOrRemote: packedRoleCondFormulaValueIsLocalOrRemoteSchema,
RoleCondFormulaValueCreated: packedRoleCondFormulaValueCreatedSchema,
RoleCondFormulaFollowersOrFollowingOrNotes: packedRoleCondFormulaFollowersOrFollowingOrNotesSchema,
RoleCondFormulaValue: packedRoleCondFormulaValueSchema,
RoleLite: packedRoleLiteSchema, RoleLite: packedRoleLiteSchema,
Role: packedRoleSchema, Role: packedRoleSchema,
RolePolicies: packedRolePoliciesSchema, RolePolicies: packedRolePoliciesSchema,

View File

@ -48,7 +48,7 @@ export class MiBubbleGameRecord {
@Column('jsonb', { @Column('jsonb', {
default: [], default: [],
}) })
public logs: any[]; public logs: number[][];
@Column('boolean', { @Column('boolean', {
default: false, default: false,

View File

@ -69,7 +69,7 @@ type CondFormulaValueNotesMoreThanOrEq = {
value: number; value: number;
}; };
export type RoleCondFormulaValue = export type RoleCondFormulaValue = { id: string } & (
CondFormulaValueAnd | CondFormulaValueAnd |
CondFormulaValueOr | CondFormulaValueOr |
CondFormulaValueNot | CondFormulaValueNot |
@ -82,7 +82,8 @@ export type RoleCondFormulaValue =
CondFormulaValueFollowingLessThanOrEq | CondFormulaValueFollowingLessThanOrEq |
CondFormulaValueFollowingMoreThanOrEq | CondFormulaValueFollowingMoreThanOrEq |
CondFormulaValueNotesLessThanOrEq | CondFormulaValueNotesLessThanOrEq |
CondFormulaValueNotesMoreThanOrEq; CondFormulaValueNotesMoreThanOrEq
);
@Entity('role') @Entity('role')
export class MiRole { export class MiRole {

View File

@ -47,12 +47,12 @@ export const packedReversiGameLiteSchema = {
user1: { user1: {
type: 'object', type: 'object',
optional: false, nullable: false, optional: false, nullable: false,
ref: 'User', ref: 'UserLite',
}, },
user2: { user2: {
type: 'object', type: 'object',
optional: false, nullable: false, optional: false, nullable: false,
ref: 'User', ref: 'UserLite',
}, },
winnerId: { winnerId: {
type: 'string', type: 'string',
@ -62,7 +62,7 @@ export const packedReversiGameLiteSchema = {
winner: { winner: {
type: 'object', type: 'object',
optional: false, nullable: true, optional: false, nullable: true,
ref: 'User', ref: 'UserLite',
}, },
surrenderedUserId: { surrenderedUserId: {
type: 'string', type: 'string',
@ -165,12 +165,12 @@ export const packedReversiGameDetailedSchema = {
user1: { user1: {
type: 'object', type: 'object',
optional: false, nullable: false, optional: false, nullable: false,
ref: 'User', ref: 'UserLite',
}, },
user2: { user2: {
type: 'object', type: 'object',
optional: false, nullable: false, optional: false, nullable: false,
ref: 'User', ref: 'UserLite',
}, },
winnerId: { winnerId: {
type: 'string', type: 'string',
@ -180,7 +180,7 @@ export const packedReversiGameDetailedSchema = {
winner: { winner: {
type: 'object', type: 'object',
optional: false, nullable: true, optional: false, nullable: true,
ref: 'User', ref: 'UserLite',
}, },
surrenderedUserId: { surrenderedUserId: {
type: 'string', type: 'string',
@ -226,6 +226,9 @@ export const packedReversiGameDetailedSchema = {
items: { items: {
type: 'array', type: 'array',
optional: false, nullable: false, optional: false, nullable: false,
items: {
type: 'number',
},
}, },
}, },
map: { map: {

View File

@ -1,3 +1,129 @@
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
export const packedRoleCondFormulaLogicsSchema = {
type: 'object',
properties: {
id: {
type: 'string', optional: false,
},
type: {
type: 'string',
nullable: false, optional: false,
enum: ['and', 'or'],
},
values: {
type: 'array',
nullable: false, optional: false,
items: {
ref: 'RoleCondFormulaValue',
},
},
},
} as const;
export const packedRoleCondFormulaValueNot = {
type: 'object',
properties: {
id: {
type: 'string', optional: false,
},
type: {
type: 'string',
nullable: false, optional: false,
enum: ['not'],
},
value: {
type: 'object',
optional: false,
ref: 'RoleCondFormulaValue',
},
},
} as const;
export const packedRoleCondFormulaValueIsLocalOrRemoteSchema = {
type: 'object',
properties: {
id: {
type: 'string', optional: false,
},
type: {
type: 'string',
nullable: false, optional: false,
enum: ['isLocal', 'isRemote'],
},
},
} as const;
export const packedRoleCondFormulaValueCreatedSchema = {
type: 'object',
properties: {
id: {
type: 'string', optional: false,
},
type: {
type: 'string',
nullable: false, optional: false,
enum: [
'createdLessThan',
'createdMoreThan',
],
},
sec: {
type: 'number',
nullable: false, optional: false,
},
},
} as const;
export const packedRoleCondFormulaFollowersOrFollowingOrNotesSchema = {
type: 'object',
properties: {
id: {
type: 'string', optional: false,
},
type: {
type: 'string',
nullable: false, optional: false,
enum: [
'followersLessThanOrEq',
'followersMoreThanOrEq',
'followingLessThanOrEq',
'followingMoreThanOrEq',
'notesLessThanOrEq',
'notesMoreThanOrEq',
],
},
value: {
type: 'number',
nullable: false, optional: false,
},
},
} as const;
export const packedRoleCondFormulaValueSchema = {
type: 'object',
oneOf: [
{
ref: 'RoleCondFormulaLogics',
},
{
ref: 'RoleCondFormulaValueNot',
},
{
ref: 'RoleCondFormulaValueIsLocalOrRemote',
},
{
ref: 'RoleCondFormulaValueCreated',
},
{
ref: 'RoleCondFormulaFollowersOrFollowingOrNotes',
},
],
} as const;
export const packedRolePoliciesSchema = { export const packedRolePoliciesSchema = {
type: 'object', type: 'object',
optional: false, nullable: false, optional: false, nullable: false,
@ -174,6 +300,7 @@ export const packedRoleSchema = {
condFormula: { condFormula: {
type: 'object', type: 'object',
optional: false, nullable: false, optional: false, nullable: false,
ref: 'RoleCondFormulaValue',
}, },
isPublic: { isPublic: {
type: 'boolean', type: 'boolean',

View File

@ -3,16 +3,38 @@
* SPDX-License-Identifier: AGPL-3.0-only * SPDX-License-Identifier: AGPL-3.0-only
*/ */
const notificationRecieveConfig = { export const notificationRecieveConfig = {
type: 'object', type: 'object',
nullable: false, optional: true, oneOf: [
{
type: 'object',
nullable: false,
properties: { properties: {
type: { type: {
type: 'string', type: 'string',
nullable: false, optional: false, nullable: false,
enum: ['all', 'following', 'follower', 'mutualFollow', 'list', 'never'], enum: ['all', 'following', 'follower', 'mutualFollow', 'never'],
}, },
}, },
required: ['type'],
},
{
type: 'object',
nullable: false,
properties: {
type: {
type: 'string',
nullable: false,
enum: ['list'],
},
userListId: {
type: 'string',
format: 'misskey:id',
},
},
required: ['type', 'userListId'],
},
],
} as const; } as const;
export const packedUserLiteSchema = { export const packedUserLiteSchema = {
@ -546,15 +568,20 @@ export const packedMeDetailedOnlySchema = {
type: 'object', type: 'object',
nullable: false, optional: false, nullable: false, optional: false,
properties: { properties: {
app: notificationRecieveConfig, note: { optional: true, ...notificationRecieveConfig },
quote: notificationRecieveConfig, follow: { optional: true, ...notificationRecieveConfig },
reply: notificationRecieveConfig, mention: { optional: true, ...notificationRecieveConfig },
follow: notificationRecieveConfig, reply: { optional: true, ...notificationRecieveConfig },
renote: notificationRecieveConfig, renote: { optional: true, ...notificationRecieveConfig },
mention: notificationRecieveConfig, quote: { optional: true, ...notificationRecieveConfig },
reaction: notificationRecieveConfig, reaction: { optional: true, ...notificationRecieveConfig },
pollEnded: notificationRecieveConfig, pollEnded: { optional: true, ...notificationRecieveConfig },
receiveFollowRequest: notificationRecieveConfig, receiveFollowRequest: { optional: true, ...notificationRecieveConfig },
followRequestAccepted: { optional: true, ...notificationRecieveConfig },
roleAssigned: { optional: true, ...notificationRecieveConfig },
achievementEarned: { optional: true, ...notificationRecieveConfig },
app: { optional: true, ...notificationRecieveConfig },
test: { optional: true, ...notificationRecieveConfig },
}, },
}, },
emailNotificationTypes: { emailNotificationTypes: {

View File

@ -15,9 +15,6 @@ export const meta = {
requireCredential: true, requireCredential: true,
requireAdmin: true, requireAdmin: true,
kind: 'write:admin:delete-account', kind: 'write:admin:delete-account',
res: {
},
} as const; } as const;
export const paramDef = { export const paramDef = {

View File

@ -84,6 +84,24 @@ export const meta = {
properties: { properties: {
type: 'object', type: 'object',
optional: false, nullable: false, optional: false, nullable: false,
properties: {
width: {
type: 'number',
optional: true, nullable: false,
},
height: {
type: 'number',
optional: true, nullable: false,
},
orientation: {
type: 'number',
optional: true, nullable: false,
},
avgColor: {
type: 'string',
optional: true, nullable: false,
},
},
}, },
storedInternal: { storedInternal: {
type: 'boolean', type: 'boolean',

View File

@ -18,6 +18,18 @@ export const meta = {
res: { res: {
type: 'object', type: 'object',
optional: false, nullable: false, optional: false, nullable: false,
additionalProperties: {
type: 'object',
properties: {
count: {
type: 'number',
},
size: {
type: 'number',
},
},
required: ['count', 'size'],
},
example: { example: {
migrations: { migrations: {
count: 66, count: 66,

View File

@ -10,6 +10,7 @@ import { DI } from '@/di-symbols.js';
import { RoleService } from '@/core/RoleService.js'; import { RoleService } from '@/core/RoleService.js';
import { RoleEntityService } from '@/core/entities/RoleEntityService.js'; import { RoleEntityService } from '@/core/entities/RoleEntityService.js';
import { IdService } from '@/core/IdService.js'; import { IdService } from '@/core/IdService.js';
import { notificationRecieveConfig } from '@/models/json-schema/user.js';
export const meta = { export const meta = {
tags: ['admin'], tags: ['admin'],
@ -21,6 +22,157 @@ export const meta = {
res: { res: {
type: 'object', type: 'object',
nullable: false, optional: false, nullable: false, optional: false,
properties: {
email: {
type: 'string',
optional: false, nullable: true,
},
emailVerified: {
type: 'boolean',
optional: false, nullable: false,
},
autoAcceptFollowed: {
type: 'boolean',
optional: false, nullable: false,
},
noCrawle: {
type: 'boolean',
optional: false, nullable: false,
},
preventAiLearning: {
type: 'boolean',
optional: false, nullable: false,
},
alwaysMarkNsfw: {
type: 'boolean',
optional: false, nullable: false,
},
autoSensitive: {
type: 'boolean',
optional: false, nullable: false,
},
carefulBot: {
type: 'boolean',
optional: false, nullable: false,
},
injectFeaturedNote: {
type: 'boolean',
optional: false, nullable: false,
},
receiveAnnouncementEmail: {
type: 'boolean',
optional: false, nullable: false,
},
mutedWords: {
type: 'array',
optional: false, nullable: false,
items: {
anyOf: [
{
type: 'string',
},
{
type: 'array',
items: {
type: 'string',
},
},
],
},
},
mutedInstances: {
type: 'array',
optional: false, nullable: false,
items: {
type: 'string',
},
},
notificationRecieveConfig: {
type: 'object',
optional: false, nullable: false,
properties: {
note: { optional: true, ...notificationRecieveConfig },
follow: { optional: true, ...notificationRecieveConfig },
mention: { optional: true, ...notificationRecieveConfig },
reply: { optional: true, ...notificationRecieveConfig },
renote: { optional: true, ...notificationRecieveConfig },
quote: { optional: true, ...notificationRecieveConfig },
reaction: { optional: true, ...notificationRecieveConfig },
pollEnded: { optional: true, ...notificationRecieveConfig },
receiveFollowRequest: { optional: true, ...notificationRecieveConfig },
followRequestAccepted: { optional: true, ...notificationRecieveConfig },
roleAssigned: { optional: true, ...notificationRecieveConfig },
achievementEarned: { optional: true, ...notificationRecieveConfig },
app: { optional: true, ...notificationRecieveConfig },
test: { optional: true, ...notificationRecieveConfig },
},
},
isModerator: {
type: 'boolean',
optional: false, nullable: false,
},
isSilenced: {
type: 'boolean',
optional: false, nullable: false,
},
isSuspended: {
type: 'boolean',
optional: false, nullable: false,
},
isHibernated: {
type: 'boolean',
optional: false, nullable: false,
},
lastActiveDate: {
type: 'string',
optional: false, nullable: true,
},
moderationNote: {
type: 'string',
optional: false, nullable: false,
},
signins: {
type: 'array',
optional: false, nullable: false,
items: {
ref: 'Signin',
},
},
policies: {
type: 'object',
optional: false, nullable: false,
ref: 'RolePolicies',
},
roles: {
type: 'array',
optional: false, nullable: false,
items: {
type: 'object',
ref: 'Role',
},
},
roleAssigns: {
type: 'array',
optional: false, nullable: false,
items: {
type: 'object',
properties: {
createdAt: {
type: 'string',
optional: false, nullable: false,
},
expiresAt: {
type: 'string',
optional: false, nullable: true,
},
roleId: {
type: 'string',
optional: false, nullable: false,
},
},
},
},
},
}, },
} as const; } as const;
@ -89,7 +241,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
isSilenced: isSilenced, isSilenced: isSilenced,
isSuspended: user.isSuspended, isSuspended: user.isSuspended,
isHibernated: user.isHibernated, isHibernated: user.isHibernated,
lastActiveDate: user.lastActiveDate, lastActiveDate: user.lastActiveDate ? user.lastActiveDate.toISOString() : null,
moderationNote: profile.moderationNote ?? '', moderationNote: profile.moderationNote ?? '',
signins, signins,
policies: await this.roleService.getUserPolicies(user.id), policies: await this.roleService.getUserPolicies(user.id),

View File

@ -24,9 +24,19 @@ export const meta = {
type: 'object', type: 'object',
optional: false, nullable: false, optional: false, nullable: false,
properties: { properties: {
id: { type: 'string', format: 'misskey:id' }, id: {
score: { type: 'integer' }, type: 'string', format: 'misskey:id',
user: { ref: 'UserLite' }, optional: false, nullable: false,
},
score: {
type: 'integer',
optional: false, nullable: false,
},
user: {
type: 'object',
optional: true, nullable: false,
ref: 'UserLite',
},
}, },
}, },
}, },

View File

@ -29,9 +29,6 @@ export const meta = {
id: 'eb627bc7-574b-4a52-a860-3c3eae772b88', id: 'eb627bc7-574b-4a52-a860-3c3eae772b88',
}, },
}, },
res: {
},
} as const; } as const;
export const paramDef = { export const paramDef = {
@ -39,7 +36,15 @@ export const paramDef = {
properties: { properties: {
score: { type: 'integer', minimum: 0 }, score: { type: 'integer', minimum: 0 },
seed: { type: 'string', minLength: 1, maxLength: 1024 }, seed: { type: 'string', minLength: 1, maxLength: 1024 },
logs: { type: 'array' }, logs: {
type: 'array',
items: {
type: 'array',
items: {
type: 'number',
},
},
},
gameMode: { type: 'string' }, gameMode: { type: 'string' },
gameVersion: { type: 'integer' }, gameVersion: { type: 'integer' },
}, },

View File

@ -15,6 +15,19 @@ export const meta = {
requireCredential: true, requireCredential: true,
secure: true, secure: true,
res: {
type: 'object',
properties: {
backupCodes: {
type: 'array',
optional: false,
items: {
type: 'string',
},
},
},
},
} as const; } as const;
export const paramDef = { export const paramDef = {

View File

@ -47,7 +47,7 @@ export const meta = {
properties: { properties: {
id: { id: {
type: 'string', type: 'string',
nullable: true, optional: true,
}, },
}, },
}, },

View File

@ -21,26 +21,31 @@ export const meta = {
properties: { properties: {
id: { id: {
type: 'string', type: 'string',
optional: false,
format: 'misskey:id', format: 'misskey:id',
}, },
name: { name: {
type: 'string', type: 'string',
optional: true,
}, },
createdAt: { createdAt: {
type: 'string', type: 'string',
optional: false,
format: 'date-time', format: 'date-time',
}, },
lastUsedAt: { lastUsedAt: {
type: 'string', type: 'string',
optional: true,
format: 'date-time', format: 'date-time',
}, },
permission: { permission: {
type: 'array', type: 'array',
optional: false,
uniqueItems: true, uniqueItems: true,
items: { items: {
type: 'string' type: 'string',
},
}, },
}
}, },
}, },
}, },

View File

@ -23,23 +23,27 @@ export const meta = {
id: { id: {
type: 'string', type: 'string',
format: 'misskey:id', format: 'misskey:id',
optional: false,
}, },
name: { name: {
type: 'string', type: 'string',
optional: false,
}, },
callbackUrl: { callbackUrl: {
type: 'string', type: 'string',
nullable: true, optional: false, nullable: true,
}, },
permission: { permission: {
type: 'array', type: 'array',
optional: false,
uniqueItems: true, uniqueItems: true,
items: { items: {
type: 'string' type: 'string',
}, },
}, },
isAuthorized: { isAuthorized: {
type: 'boolean', type: 'boolean',
optional: true,
}, },
}, },
}, },

View File

@ -22,7 +22,16 @@ export const meta = {
res: { res: {
type: 'object', type: 'object',
} properties: {
updatedAt: {
type: 'string',
optional: false,
},
value: {
optional: false,
},
},
},
} as const; } as const;
export const paramDef = { export const paramDef = {
@ -50,7 +59,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
} }
return { return {
updatedAt: item.updatedAt, updatedAt: item.updatedAt.toISOString(),
value: item.value, value: item.value,
}; };
}); });

View File

@ -13,6 +13,9 @@ export const meta = {
res: { res: {
type: 'object', type: 'object',
additionalProperties: {
type: 'string',
},
}, },
} as const; } as const;

View File

@ -10,6 +10,13 @@ import { RegistryApiService } from '@/core/RegistryApiService.js';
export const meta = { export const meta = {
requireCredential: true, requireCredential: true,
kind: 'read:account', kind: 'read:account',
res: {
type: 'array',
items: {
type: 'string',
},
},
} as const; } as const;
export const paramDef = { export const paramDef = {

View File

@ -33,6 +33,7 @@ import { HttpRequestService } from '@/core/HttpRequestService.js';
import type { Config } from '@/config.js'; import type { Config } from '@/config.js';
import { safeForSql } from '@/misc/safe-for-sql.js'; import { safeForSql } from '@/misc/safe-for-sql.js';
import { AvatarDecorationService } from '@/core/AvatarDecorationService.js'; import { AvatarDecorationService } from '@/core/AvatarDecorationService.js';
import { notificationRecieveConfig } from '@/models/json-schema/user.js';
import { ApiLoggerService } from '../../ApiLoggerService.js'; import { ApiLoggerService } from '../../ApiLoggerService.js';
import { ApiError } from '../../error.js'; import { ApiError } from '../../error.js';
@ -184,7 +185,26 @@ export const paramDef = {
mutedInstances: { type: 'array', items: { mutedInstances: { type: 'array', items: {
type: 'string', type: 'string',
} }, } },
notificationRecieveConfig: { type: 'object' }, notificationRecieveConfig: {
type: 'object',
nullable: false,
properties: {
note: notificationRecieveConfig,
follow: notificationRecieveConfig,
mention: notificationRecieveConfig,
reply: notificationRecieveConfig,
renote: notificationRecieveConfig,
quote: notificationRecieveConfig,
reaction: notificationRecieveConfig,
pollEnded: notificationRecieveConfig,
receiveFollowRequest: notificationRecieveConfig,
followRequestAccepted: notificationRecieveConfig,
roleAssigned: notificationRecieveConfig,
achievementEarned: notificationRecieveConfig,
app: notificationRecieveConfig,
test: notificationRecieveConfig,
},
},
emailNotificationTypes: { type: 'array', items: { emailNotificationTypes: { type: 'array', items: {
type: 'string', type: 'string',
} }, } },

View File

@ -33,7 +33,7 @@ export const meta = {
properties: { properties: {
id: { id: {
type: 'string', type: 'string',
format: 'misskey:id' format: 'misskey:id',
}, },
userId: { userId: {
type: 'string', type: 'string',
@ -45,7 +45,7 @@ export const meta = {
items: { items: {
type: 'string', type: 'string',
enum: webhookEventTypes, enum: webhookEventTypes,
} },
}, },
url: { type: 'string' }, url: { type: 'string' },
secret: { type: 'string' }, secret: { type: 'string' },
@ -108,7 +108,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
url: webhook.url, url: webhook.url,
secret: webhook.secret, secret: webhook.secret,
active: webhook.active, active: webhook.active,
latestSentAt: webhook.latestSentAt?.toISOString(), latestSentAt: webhook.latestSentAt ? webhook.latestSentAt.toISOString() : null,
latestStatus: webhook.latestStatus, latestStatus: webhook.latestStatus,
}; };
}); });

View File

@ -23,7 +23,7 @@ export const meta = {
properties: { properties: {
id: { id: {
type: 'string', type: 'string',
format: 'misskey:id' format: 'misskey:id',
}, },
userId: { userId: {
type: 'string', type: 'string',
@ -35,7 +35,7 @@ export const meta = {
items: { items: {
type: 'string', type: 'string',
enum: webhookEventTypes, enum: webhookEventTypes,
} },
}, },
url: { type: 'string' }, url: { type: 'string' },
secret: { type: 'string' }, secret: { type: 'string' },
@ -43,8 +43,8 @@ export const meta = {
latestSentAt: { type: 'string', format: 'date-time', nullable: true }, latestSentAt: { type: 'string', format: 'date-time', nullable: true },
latestStatus: { type: 'integer', nullable: true }, latestStatus: { type: 'integer', nullable: true },
}, },
} },
} },
} as const; } as const;
export const paramDef = { export const paramDef = {
@ -73,7 +73,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
url: webhook.url, url: webhook.url,
secret: webhook.secret, secret: webhook.secret,
active: webhook.active, active: webhook.active,
latestSentAt: webhook.latestSentAt?.toISOString(), latestSentAt: webhook.latestSentAt ? webhook.latestSentAt.toISOString() : null,
latestStatus: webhook.latestStatus, latestStatus: webhook.latestStatus,
} }
)); ));

View File

@ -30,7 +30,7 @@ export const meta = {
properties: { properties: {
id: { id: {
type: 'string', type: 'string',
format: 'misskey:id' format: 'misskey:id',
}, },
userId: { userId: {
type: 'string', type: 'string',
@ -42,7 +42,7 @@ export const meta = {
items: { items: {
type: 'string', type: 'string',
enum: webhookEventTypes, enum: webhookEventTypes,
} },
}, },
url: { type: 'string' }, url: { type: 'string' },
secret: { type: 'string' }, secret: { type: 'string' },
@ -85,7 +85,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
url: webhook.url, url: webhook.url,
secret: webhook.secret, secret: webhook.secret,
active: webhook.active, active: webhook.active,
latestSentAt: webhook.latestSentAt?.toISOString(), latestSentAt: webhook.latestSentAt ? webhook.latestSentAt.toISOString() : null,
latestStatus: webhook.latestStatus, latestStatus: webhook.latestStatus,
}; };
}); });

View File

@ -14,9 +14,6 @@ export const meta = {
errors: { errors: {
}, },
res: {
},
} as const; } as const;
export const paramDef = { export const paramDef = {

View File

@ -30,6 +30,9 @@ export const meta = {
}, },
res: { res: {
type: 'object',
optional: true,
ref: 'ReversiGameDetailed',
}, },
} as const; } as const;

View File

@ -18,24 +18,28 @@ export const meta = {
properties: { properties: {
id: { id: {
type: 'string', type: 'string',
format: 'misskey:id' format: 'misskey:id',
optional: true, nullable: false,
}, },
required: { required: {
type: 'boolean', type: 'boolean',
optional: false, nullable: false,
}, },
string: { string: {
type: 'string', type: 'string',
optional: true, nullable: false,
}, },
default: { default: {
type: 'string', type: 'string',
optional: true, nullable: false,
}, },
nullableDefault: { nullableDefault: {
type: 'string', type: 'string',
default: 'hello', default: 'hello',
nullable: true, optional: true, nullable: true,
},
},
}, },
}
}
} as const; } as const;
export const paramDef = { export const paramDef = {

View File

@ -103,9 +103,6 @@ type AdminAvatarDecorationsUpdateRequest = operations['admin/avatar-decorations/
// @public (undocumented) // @public (undocumented)
type AdminDeleteAccountRequest = operations['admin/delete-account']['requestBody']['content']['application/json']; type AdminDeleteAccountRequest = operations['admin/delete-account']['requestBody']['content']['application/json'];
// @public (undocumented)
type AdminDeleteAccountResponse = operations['admin/delete-account']['responses']['200']['content']['application/json'];
// @public (undocumented) // @public (undocumented)
type AdminDeleteAllFilesOfAUserRequest = operations['admin/delete-all-files-of-a-user']['requestBody']['content']['application/json']; type AdminDeleteAllFilesOfAUserRequest = operations['admin/delete-all-files-of-a-user']['requestBody']['content']['application/json'];
@ -482,9 +479,6 @@ type BubbleGameRankingResponse = operations['bubble-game/ranking']['responses'][
// @public (undocumented) // @public (undocumented)
type BubbleGameRegisterRequest = operations['bubble-game/register']['requestBody']['content']['application/json']; type BubbleGameRegisterRequest = operations['bubble-game/register']['requestBody']['content']['application/json'];
// @public (undocumented)
type BubbleGameRegisterResponse = operations['bubble-game/register']['responses']['200']['content']['application/json'];
// @public (undocumented) // @public (undocumented)
type Channel = components['schemas']['Channel']; type Channel = components['schemas']['Channel'];
@ -1210,7 +1204,6 @@ declare namespace entities {
AdminUnsuspendUserRequest, AdminUnsuspendUserRequest,
AdminUpdateMetaRequest, AdminUpdateMetaRequest,
AdminDeleteAccountRequest, AdminDeleteAccountRequest,
AdminDeleteAccountResponse,
AdminUpdateUserNoteRequest, AdminUpdateUserNoteRequest,
AdminRolesCreateRequest, AdminRolesCreateRequest,
AdminRolesCreateResponse, AdminRolesCreateResponse,
@ -1408,6 +1401,7 @@ declare namespace entities {
HashtagsUsersResponse, HashtagsUsersResponse,
IResponse, IResponse,
I2faDoneRequest, I2faDoneRequest,
I2faDoneResponse,
I2faKeyDoneRequest, I2faKeyDoneRequest,
I2faKeyDoneResponse, I2faKeyDoneResponse,
I2faPasswordLessRequest, I2faPasswordLessRequest,
@ -1458,6 +1452,7 @@ declare namespace entities {
IRegistryKeysWithTypeRequest, IRegistryKeysWithTypeRequest,
IRegistryKeysWithTypeResponse, IRegistryKeysWithTypeResponse,
IRegistryKeysRequest, IRegistryKeysRequest,
IRegistryKeysResponse,
IRegistryRemoveRequest, IRegistryRemoveRequest,
IRegistryScopesWithDomainResponse, IRegistryScopesWithDomainResponse,
IRegistrySetRequest, IRegistrySetRequest,
@ -1661,11 +1656,9 @@ declare namespace entities {
FetchExternalResourcesResponse, FetchExternalResourcesResponse,
RetentionResponse, RetentionResponse,
BubbleGameRegisterRequest, BubbleGameRegisterRequest,
BubbleGameRegisterResponse,
BubbleGameRankingRequest, BubbleGameRankingRequest,
BubbleGameRankingResponse, BubbleGameRankingResponse,
ReversiCancelMatchRequest, ReversiCancelMatchRequest,
ReversiCancelMatchResponse,
ReversiGamesRequest, ReversiGamesRequest,
ReversiGamesResponse, ReversiGamesResponse,
ReversiMatchRequest, ReversiMatchRequest,
@ -1712,6 +1705,12 @@ declare namespace entities {
EmojiDetailed, EmojiDetailed,
Flash, Flash,
Signin, Signin,
RoleCondFormulaLogics,
RoleCondFormulaValueNot,
RoleCondFormulaValueIsLocalOrRemote,
RoleCondFormulaValueCreated,
RoleCondFormulaFollowersOrFollowingOrNotes,
RoleCondFormulaValue,
RoleLite, RoleLite,
Role, Role,
RolePolicies, RolePolicies,
@ -1972,6 +1971,9 @@ type HashtagsUsersResponse = operations['hashtags/users']['responses']['200']['c
// @public (undocumented) // @public (undocumented)
type I2faDoneRequest = operations['i/2fa/done']['requestBody']['content']['application/json']; type I2faDoneRequest = operations['i/2fa/done']['requestBody']['content']['application/json'];
// @public (undocumented)
type I2faDoneResponse = operations['i/2fa/done']['responses']['200']['content']['application/json'];
// @public (undocumented) // @public (undocumented)
type I2faKeyDoneRequest = operations['i/2fa/key-done']['requestBody']['content']['application/json']; type I2faKeyDoneRequest = operations['i/2fa/key-done']['requestBody']['content']['application/json'];
@ -2143,6 +2145,9 @@ type IRegistryGetResponse = operations['i/registry/get']['responses']['200']['co
// @public (undocumented) // @public (undocumented)
type IRegistryKeysRequest = operations['i/registry/keys']['requestBody']['content']['application/json']; type IRegistryKeysRequest = operations['i/registry/keys']['requestBody']['content']['application/json'];
// @public (undocumented)
type IRegistryKeysResponse = operations['i/registry/keys']['responses']['200']['content']['application/json'];
// @public (undocumented) // @public (undocumented)
type IRegistryKeysWithTypeRequest = operations['i/registry/keys-with-type']['requestBody']['content']['application/json']; type IRegistryKeysWithTypeRequest = operations['i/registry/keys-with-type']['requestBody']['content']['application/json'];
@ -2659,9 +2664,6 @@ type RetentionResponse = operations['retention']['responses']['200']['content'][
// @public (undocumented) // @public (undocumented)
type ReversiCancelMatchRequest = operations['reversi/cancel-match']['requestBody']['content']['application/json']; type ReversiCancelMatchRequest = operations['reversi/cancel-match']['requestBody']['content']['application/json'];
// @public (undocumented)
type ReversiCancelMatchResponse = operations['reversi/cancel-match']['responses']['200']['content']['application/json'];
// @public (undocumented) // @public (undocumented)
type ReversiGameDetailed = components['schemas']['ReversiGameDetailed']; type ReversiGameDetailed = components['schemas']['ReversiGameDetailed'];
@ -2701,6 +2703,24 @@ type ReversiVerifyResponse = operations['reversi/verify']['responses']['200']['c
// @public (undocumented) // @public (undocumented)
type Role = components['schemas']['Role']; type Role = components['schemas']['Role'];
// @public (undocumented)
type RoleCondFormulaFollowersOrFollowingOrNotes = components['schemas']['RoleCondFormulaFollowersOrFollowingOrNotes'];
// @public (undocumented)
type RoleCondFormulaLogics = components['schemas']['RoleCondFormulaLogics'];
// @public (undocumented)
type RoleCondFormulaValue = components['schemas']['RoleCondFormulaValue'];
// @public (undocumented)
type RoleCondFormulaValueCreated = components['schemas']['RoleCondFormulaValueCreated'];
// @public (undocumented)
type RoleCondFormulaValueIsLocalOrRemote = components['schemas']['RoleCondFormulaValueIsLocalOrRemote'];
// @public (undocumented)
type RoleCondFormulaValueNot = components['schemas']['RoleCondFormulaValueNot'];
// @public (undocumented) // @public (undocumented)
type RoleLite = components['schemas']['RoleLite']; type RoleLite = components['schemas']['RoleLite'];

View File

@ -85,7 +85,6 @@ import type {
AdminUnsuspendUserRequest, AdminUnsuspendUserRequest,
AdminUpdateMetaRequest, AdminUpdateMetaRequest,
AdminDeleteAccountRequest, AdminDeleteAccountRequest,
AdminDeleteAccountResponse,
AdminUpdateUserNoteRequest, AdminUpdateUserNoteRequest,
AdminRolesCreateRequest, AdminRolesCreateRequest,
AdminRolesCreateResponse, AdminRolesCreateResponse,
@ -283,6 +282,7 @@ import type {
HashtagsUsersResponse, HashtagsUsersResponse,
IResponse, IResponse,
I2faDoneRequest, I2faDoneRequest,
I2faDoneResponse,
I2faKeyDoneRequest, I2faKeyDoneRequest,
I2faKeyDoneResponse, I2faKeyDoneResponse,
I2faPasswordLessRequest, I2faPasswordLessRequest,
@ -333,6 +333,7 @@ import type {
IRegistryKeysWithTypeRequest, IRegistryKeysWithTypeRequest,
IRegistryKeysWithTypeResponse, IRegistryKeysWithTypeResponse,
IRegistryKeysRequest, IRegistryKeysRequest,
IRegistryKeysResponse,
IRegistryRemoveRequest, IRegistryRemoveRequest,
IRegistryScopesWithDomainResponse, IRegistryScopesWithDomainResponse,
IRegistrySetRequest, IRegistrySetRequest,
@ -536,11 +537,9 @@ import type {
FetchExternalResourcesResponse, FetchExternalResourcesResponse,
RetentionResponse, RetentionResponse,
BubbleGameRegisterRequest, BubbleGameRegisterRequest,
BubbleGameRegisterResponse,
BubbleGameRankingRequest, BubbleGameRankingRequest,
BubbleGameRankingResponse, BubbleGameRankingResponse,
ReversiCancelMatchRequest, ReversiCancelMatchRequest,
ReversiCancelMatchResponse,
ReversiGamesRequest, ReversiGamesRequest,
ReversiGamesResponse, ReversiGamesResponse,
ReversiMatchRequest, ReversiMatchRequest,
@ -619,7 +618,7 @@ export type Endpoints = {
'admin/suspend-user': { req: AdminSuspendUserRequest; res: EmptyResponse }; 'admin/suspend-user': { req: AdminSuspendUserRequest; res: EmptyResponse };
'admin/unsuspend-user': { req: AdminUnsuspendUserRequest; res: EmptyResponse }; 'admin/unsuspend-user': { req: AdminUnsuspendUserRequest; res: EmptyResponse };
'admin/update-meta': { req: AdminUpdateMetaRequest; res: EmptyResponse }; 'admin/update-meta': { req: AdminUpdateMetaRequest; res: EmptyResponse };
'admin/delete-account': { req: AdminDeleteAccountRequest; res: AdminDeleteAccountResponse }; 'admin/delete-account': { req: AdminDeleteAccountRequest; res: EmptyResponse };
'admin/update-user-note': { req: AdminUpdateUserNoteRequest; res: EmptyResponse }; 'admin/update-user-note': { req: AdminUpdateUserNoteRequest; res: EmptyResponse };
'admin/roles/create': { req: AdminRolesCreateRequest; res: AdminRolesCreateResponse }; 'admin/roles/create': { req: AdminRolesCreateRequest; res: AdminRolesCreateResponse };
'admin/roles/delete': { req: AdminRolesDeleteRequest; res: EmptyResponse }; 'admin/roles/delete': { req: AdminRolesDeleteRequest; res: EmptyResponse };
@ -739,7 +738,7 @@ export type Endpoints = {
'hashtags/trend': { req: EmptyRequest; res: HashtagsTrendResponse }; 'hashtags/trend': { req: EmptyRequest; res: HashtagsTrendResponse };
'hashtags/users': { req: HashtagsUsersRequest; res: HashtagsUsersResponse }; 'hashtags/users': { req: HashtagsUsersRequest; res: HashtagsUsersResponse };
'i': { req: EmptyRequest; res: IResponse }; 'i': { req: EmptyRequest; res: IResponse };
'i/2fa/done': { req: I2faDoneRequest; res: EmptyResponse }; 'i/2fa/done': { req: I2faDoneRequest; res: I2faDoneResponse };
'i/2fa/key-done': { req: I2faKeyDoneRequest; res: I2faKeyDoneResponse }; 'i/2fa/key-done': { req: I2faKeyDoneRequest; res: I2faKeyDoneResponse };
'i/2fa/password-less': { req: I2faPasswordLessRequest; res: EmptyResponse }; 'i/2fa/password-less': { req: I2faPasswordLessRequest; res: EmptyResponse };
'i/2fa/register-key': { req: I2faRegisterKeyRequest; res: I2faRegisterKeyResponse }; 'i/2fa/register-key': { req: I2faRegisterKeyRequest; res: I2faRegisterKeyResponse };
@ -780,7 +779,7 @@ export type Endpoints = {
'i/registry/get-detail': { req: IRegistryGetDetailRequest; res: IRegistryGetDetailResponse }; 'i/registry/get-detail': { req: IRegistryGetDetailRequest; res: IRegistryGetDetailResponse };
'i/registry/get': { req: IRegistryGetRequest; res: IRegistryGetResponse }; 'i/registry/get': { req: IRegistryGetRequest; res: IRegistryGetResponse };
'i/registry/keys-with-type': { req: IRegistryKeysWithTypeRequest; res: IRegistryKeysWithTypeResponse }; 'i/registry/keys-with-type': { req: IRegistryKeysWithTypeRequest; res: IRegistryKeysWithTypeResponse };
'i/registry/keys': { req: IRegistryKeysRequest; res: EmptyResponse }; 'i/registry/keys': { req: IRegistryKeysRequest; res: IRegistryKeysResponse };
'i/registry/remove': { req: IRegistryRemoveRequest; res: EmptyResponse }; 'i/registry/remove': { req: IRegistryRemoveRequest; res: EmptyResponse };
'i/registry/scopes-with-domain': { req: EmptyRequest; res: IRegistryScopesWithDomainResponse }; 'i/registry/scopes-with-domain': { req: EmptyRequest; res: IRegistryScopesWithDomainResponse };
'i/registry/set': { req: IRegistrySetRequest; res: EmptyResponse }; 'i/registry/set': { req: IRegistrySetRequest; res: EmptyResponse };
@ -912,9 +911,9 @@ export type Endpoints = {
'fetch-rss': { req: FetchRssRequest; res: FetchRssResponse }; 'fetch-rss': { req: FetchRssRequest; res: FetchRssResponse };
'fetch-external-resources': { req: FetchExternalResourcesRequest; res: FetchExternalResourcesResponse }; 'fetch-external-resources': { req: FetchExternalResourcesRequest; res: FetchExternalResourcesResponse };
'retention': { req: EmptyRequest; res: RetentionResponse }; 'retention': { req: EmptyRequest; res: RetentionResponse };
'bubble-game/register': { req: BubbleGameRegisterRequest; res: BubbleGameRegisterResponse }; 'bubble-game/register': { req: BubbleGameRegisterRequest; res: EmptyResponse };
'bubble-game/ranking': { req: BubbleGameRankingRequest; res: BubbleGameRankingResponse }; 'bubble-game/ranking': { req: BubbleGameRankingRequest; res: BubbleGameRankingResponse };
'reversi/cancel-match': { req: ReversiCancelMatchRequest; res: ReversiCancelMatchResponse }; 'reversi/cancel-match': { req: ReversiCancelMatchRequest; res: EmptyResponse };
'reversi/games': { req: ReversiGamesRequest; res: ReversiGamesResponse }; 'reversi/games': { req: ReversiGamesRequest; res: ReversiGamesResponse };
'reversi/match': { req: ReversiMatchRequest; res: ReversiMatchResponse }; 'reversi/match': { req: ReversiMatchRequest; res: ReversiMatchResponse };
'reversi/invitations': { req: EmptyRequest; res: ReversiInvitationsResponse }; 'reversi/invitations': { req: EmptyRequest; res: ReversiInvitationsResponse };

View File

@ -87,7 +87,6 @@ export type AdminSuspendUserRequest = operations['admin/suspend-user']['requestB
export type AdminUnsuspendUserRequest = operations['admin/unsuspend-user']['requestBody']['content']['application/json']; export type AdminUnsuspendUserRequest = operations['admin/unsuspend-user']['requestBody']['content']['application/json'];
export type AdminUpdateMetaRequest = operations['admin/update-meta']['requestBody']['content']['application/json']; export type AdminUpdateMetaRequest = operations['admin/update-meta']['requestBody']['content']['application/json'];
export type AdminDeleteAccountRequest = operations['admin/delete-account']['requestBody']['content']['application/json']; export type AdminDeleteAccountRequest = operations['admin/delete-account']['requestBody']['content']['application/json'];
export type AdminDeleteAccountResponse = operations['admin/delete-account']['responses']['200']['content']['application/json'];
export type AdminUpdateUserNoteRequest = operations['admin/update-user-note']['requestBody']['content']['application/json']; export type AdminUpdateUserNoteRequest = operations['admin/update-user-note']['requestBody']['content']['application/json'];
export type AdminRolesCreateRequest = operations['admin/roles/create']['requestBody']['content']['application/json']; export type AdminRolesCreateRequest = operations['admin/roles/create']['requestBody']['content']['application/json'];
export type AdminRolesCreateResponse = operations['admin/roles/create']['responses']['200']['content']['application/json']; export type AdminRolesCreateResponse = operations['admin/roles/create']['responses']['200']['content']['application/json'];
@ -285,6 +284,7 @@ export type HashtagsUsersRequest = operations['hashtags/users']['requestBody']['
export type HashtagsUsersResponse = operations['hashtags/users']['responses']['200']['content']['application/json']; export type HashtagsUsersResponse = operations['hashtags/users']['responses']['200']['content']['application/json'];
export type IResponse = operations['i']['responses']['200']['content']['application/json']; export type IResponse = operations['i']['responses']['200']['content']['application/json'];
export type I2faDoneRequest = operations['i/2fa/done']['requestBody']['content']['application/json']; export type I2faDoneRequest = operations['i/2fa/done']['requestBody']['content']['application/json'];
export type I2faDoneResponse = operations['i/2fa/done']['responses']['200']['content']['application/json'];
export type I2faKeyDoneRequest = operations['i/2fa/key-done']['requestBody']['content']['application/json']; export type I2faKeyDoneRequest = operations['i/2fa/key-done']['requestBody']['content']['application/json'];
export type I2faKeyDoneResponse = operations['i/2fa/key-done']['responses']['200']['content']['application/json']; export type I2faKeyDoneResponse = operations['i/2fa/key-done']['responses']['200']['content']['application/json'];
export type I2faPasswordLessRequest = operations['i/2fa/password-less']['requestBody']['content']['application/json']; export type I2faPasswordLessRequest = operations['i/2fa/password-less']['requestBody']['content']['application/json'];
@ -335,6 +335,7 @@ export type IRegistryGetResponse = operations['i/registry/get']['responses']['20
export type IRegistryKeysWithTypeRequest = operations['i/registry/keys-with-type']['requestBody']['content']['application/json']; export type IRegistryKeysWithTypeRequest = operations['i/registry/keys-with-type']['requestBody']['content']['application/json'];
export type IRegistryKeysWithTypeResponse = operations['i/registry/keys-with-type']['responses']['200']['content']['application/json']; export type IRegistryKeysWithTypeResponse = operations['i/registry/keys-with-type']['responses']['200']['content']['application/json'];
export type IRegistryKeysRequest = operations['i/registry/keys']['requestBody']['content']['application/json']; export type IRegistryKeysRequest = operations['i/registry/keys']['requestBody']['content']['application/json'];
export type IRegistryKeysResponse = operations['i/registry/keys']['responses']['200']['content']['application/json'];
export type IRegistryRemoveRequest = operations['i/registry/remove']['requestBody']['content']['application/json']; export type IRegistryRemoveRequest = operations['i/registry/remove']['requestBody']['content']['application/json'];
export type IRegistryScopesWithDomainResponse = operations['i/registry/scopes-with-domain']['responses']['200']['content']['application/json']; export type IRegistryScopesWithDomainResponse = operations['i/registry/scopes-with-domain']['responses']['200']['content']['application/json'];
export type IRegistrySetRequest = operations['i/registry/set']['requestBody']['content']['application/json']; export type IRegistrySetRequest = operations['i/registry/set']['requestBody']['content']['application/json'];
@ -538,11 +539,9 @@ export type FetchExternalResourcesRequest = operations['fetch-external-resources
export type FetchExternalResourcesResponse = operations['fetch-external-resources']['responses']['200']['content']['application/json']; export type FetchExternalResourcesResponse = operations['fetch-external-resources']['responses']['200']['content']['application/json'];
export type RetentionResponse = operations['retention']['responses']['200']['content']['application/json']; export type RetentionResponse = operations['retention']['responses']['200']['content']['application/json'];
export type BubbleGameRegisterRequest = operations['bubble-game/register']['requestBody']['content']['application/json']; export type BubbleGameRegisterRequest = operations['bubble-game/register']['requestBody']['content']['application/json'];
export type BubbleGameRegisterResponse = operations['bubble-game/register']['responses']['200']['content']['application/json'];
export type BubbleGameRankingRequest = operations['bubble-game/ranking']['requestBody']['content']['application/json']; export type BubbleGameRankingRequest = operations['bubble-game/ranking']['requestBody']['content']['application/json'];
export type BubbleGameRankingResponse = operations['bubble-game/ranking']['responses']['200']['content']['application/json']; export type BubbleGameRankingResponse = operations['bubble-game/ranking']['responses']['200']['content']['application/json'];
export type ReversiCancelMatchRequest = operations['reversi/cancel-match']['requestBody']['content']['application/json']; export type ReversiCancelMatchRequest = operations['reversi/cancel-match']['requestBody']['content']['application/json'];
export type ReversiCancelMatchResponse = operations['reversi/cancel-match']['responses']['200']['content']['application/json'];
export type ReversiGamesRequest = operations['reversi/games']['requestBody']['content']['application/json']; export type ReversiGamesRequest = operations['reversi/games']['requestBody']['content']['application/json'];
export type ReversiGamesResponse = operations['reversi/games']['responses']['200']['content']['application/json']; export type ReversiGamesResponse = operations['reversi/games']['responses']['200']['content']['application/json'];
export type ReversiMatchRequest = operations['reversi/match']['requestBody']['content']['application/json']; export type ReversiMatchRequest = operations['reversi/match']['requestBody']['content']['application/json'];

View File

@ -35,6 +35,12 @@ export type EmojiSimple = components['schemas']['EmojiSimple'];
export type EmojiDetailed = components['schemas']['EmojiDetailed']; export type EmojiDetailed = components['schemas']['EmojiDetailed'];
export type Flash = components['schemas']['Flash']; export type Flash = components['schemas']['Flash'];
export type Signin = components['schemas']['Signin']; export type Signin = components['schemas']['Signin'];
export type RoleCondFormulaLogics = components['schemas']['RoleCondFormulaLogics'];
export type RoleCondFormulaValueNot = components['schemas']['RoleCondFormulaValueNot'];
export type RoleCondFormulaValueIsLocalOrRemote = components['schemas']['RoleCondFormulaValueIsLocalOrRemote'];
export type RoleCondFormulaValueCreated = components['schemas']['RoleCondFormulaValueCreated'];
export type RoleCondFormulaFollowersOrFollowingOrNotes = components['schemas']['RoleCondFormulaFollowersOrFollowingOrNotes'];
export type RoleCondFormulaValue = components['schemas']['RoleCondFormulaValue'];
export type RoleLite = components['schemas']['RoleLite']; export type RoleLite = components['schemas']['RoleLite'];
export type Role = components['schemas']['Role']; export type Role = components['schemas']['Role'];
export type RolePolicies = components['schemas']['RolePolicies']; export type RolePolicies = components['schemas']['RolePolicies'];

View File

@ -3696,42 +3696,132 @@ export type components = {
hardMutedWords: string[][]; hardMutedWords: string[][];
mutedInstances: string[] | null; mutedInstances: string[] | null;
notificationRecieveConfig: { notificationRecieveConfig: {
app?: { note?: OneOf<[{
/** @enum {string} */ /** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'list' | 'never'; type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}; }, {
quote?: {
/** @enum {string} */ /** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'list' | 'never'; type: 'list';
}; /** Format: misskey:id */
reply?: { userListId: string;
}]>;
follow?: OneOf<[{
/** @enum {string} */ /** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'list' | 'never'; type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}; }, {
follow?: {
/** @enum {string} */ /** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'list' | 'never'; type: 'list';
}; /** Format: misskey:id */
renote?: { userListId: string;
}]>;
mention?: OneOf<[{
/** @enum {string} */ /** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'list' | 'never'; type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}; }, {
mention?: {
/** @enum {string} */ /** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'list' | 'never'; type: 'list';
}; /** Format: misskey:id */
reaction?: { userListId: string;
}]>;
reply?: OneOf<[{
/** @enum {string} */ /** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'list' | 'never'; type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}; }, {
pollEnded?: {
/** @enum {string} */ /** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'list' | 'never'; type: 'list';
}; /** Format: misskey:id */
receiveFollowRequest?: { userListId: string;
}]>;
renote?: OneOf<[{
/** @enum {string} */ /** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'list' | 'never'; type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}; }, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
quote?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
reaction?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
pollEnded?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
receiveFollowRequest?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
followRequestAccepted?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
roleAssigned?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
achievementEarned?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
app?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
test?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
}; };
emailNotificationTypes: string[]; emailNotificationTypes: string[];
achievements: { achievements: {
@ -4463,6 +4553,36 @@ export type components = {
headers: Record<string, never>; headers: Record<string, never>;
success: boolean; success: boolean;
}; };
RoleCondFormulaLogics: {
id: string;
/** @enum {string} */
type: 'and' | 'or';
values: components['schemas']['RoleCondFormulaValue'][];
};
RoleCondFormulaValueNot: {
id: string;
/** @enum {string} */
type: 'not';
value: components['schemas']['RoleCondFormulaValue'];
};
RoleCondFormulaValueIsLocalOrRemote: {
id: string;
/** @enum {string} */
type: 'isLocal' | 'isRemote';
};
RoleCondFormulaValueCreated: {
id: string;
/** @enum {string} */
type: 'createdLessThan' | 'createdMoreThan';
sec: number;
};
RoleCondFormulaFollowersOrFollowingOrNotes: {
id: string;
/** @enum {string} */
type: 'followersLessThanOrEq' | 'followersMoreThanOrEq' | 'followingLessThanOrEq' | 'followingMoreThanOrEq' | 'notesLessThanOrEq' | 'notesMoreThanOrEq';
value: number;
};
RoleCondFormulaValue: components['schemas']['RoleCondFormulaLogics'] | components['schemas']['RoleCondFormulaValueNot'] | components['schemas']['RoleCondFormulaValueIsLocalOrRemote'] | components['schemas']['RoleCondFormulaValueCreated'] | components['schemas']['RoleCondFormulaFollowersOrFollowingOrNotes'];
RoleLite: { RoleLite: {
/** /**
* Format: id * Format: id
@ -4489,7 +4609,7 @@ export type components = {
updatedAt: string; updatedAt: string;
/** @enum {string} */ /** @enum {string} */
target: 'manual' | 'conditional'; target: 'manual' | 'conditional';
condFormula: Record<string, never>; condFormula: components['schemas']['RoleCondFormulaValue'];
/** @example false */ /** @example false */
isPublic: boolean; isPublic: boolean;
/** @example false */ /** @example false */
@ -4548,11 +4668,11 @@ export type components = {
user1Id: string; user1Id: string;
/** Format: id */ /** Format: id */
user2Id: string; user2Id: string;
user1: components['schemas']['User']; user1: components['schemas']['UserLite'];
user2: components['schemas']['User']; user2: components['schemas']['UserLite'];
/** Format: id */ /** Format: id */
winnerId: string | null; winnerId: string | null;
winner: components['schemas']['User'] | null; winner: components['schemas']['UserLite'] | null;
/** Format: id */ /** Format: id */
surrenderedUserId: string | null; surrenderedUserId: string | null;
/** Format: id */ /** Format: id */
@ -4584,11 +4704,11 @@ export type components = {
user1Id: string; user1Id: string;
/** Format: id */ /** Format: id */
user2Id: string; user2Id: string;
user1: components['schemas']['User']; user1: components['schemas']['UserLite'];
user2: components['schemas']['User']; user2: components['schemas']['UserLite'];
/** Format: id */ /** Format: id */
winnerId: string | null; winnerId: string | null;
winner: components['schemas']['User'] | null; winner: components['schemas']['UserLite'] | null;
/** Format: id */ /** Format: id */
surrenderedUserId: string | null; surrenderedUserId: string | null;
/** Format: id */ /** Format: id */
@ -4600,7 +4720,7 @@ export type components = {
canPutEverywhere: boolean; canPutEverywhere: boolean;
loopedBoard: boolean; loopedBoard: boolean;
timeLimitForEachTurn: number; timeLimitForEachTurn: number;
logs: unknown[][]; logs: number[][];
map: string[]; map: string[];
}; };
}; };
@ -6128,7 +6248,12 @@ export type operations = {
size: number; size: number;
comment: string | null; comment: string | null;
blurhash: string | null; blurhash: string | null;
properties: Record<string, never>; properties: {
width?: number;
height?: number;
orientation?: number;
avgColor?: string;
};
/** @example true */ /** @example true */
storedInternal: boolean | null; storedInternal: boolean | null;
/** Format: url */ /** Format: url */
@ -7189,7 +7314,12 @@ export type operations = {
/** @description OK (with results) */ /** @description OK (with results) */
200: { 200: {
content: { content: {
'application/json': Record<string, never>; 'application/json': {
[key: string]: {
count: number;
size: number;
};
};
}; };
}; };
/** @description Client error */ /** @description Client error */
@ -8185,7 +8315,162 @@ export type operations = {
/** @description OK (with results) */ /** @description OK (with results) */
200: { 200: {
content: { content: {
'application/json': Record<string, never>; 'application/json': {
email: string | null;
emailVerified: boolean;
autoAcceptFollowed: boolean;
noCrawle: boolean;
preventAiLearning: boolean;
alwaysMarkNsfw: boolean;
autoSensitive: boolean;
carefulBot: boolean;
injectFeaturedNote: boolean;
receiveAnnouncementEmail: boolean;
mutedWords: (string | string[])[];
mutedInstances: string[];
notificationRecieveConfig: {
note?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
follow?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
mention?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
reply?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
renote?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
quote?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
reaction?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
pollEnded?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
receiveFollowRequest?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
followRequestAccepted?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
roleAssigned?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
achievementEarned?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
app?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
test?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
};
isModerator: boolean;
isSilenced: boolean;
isSuspended: boolean;
isHibernated: boolean;
lastActiveDate: string | null;
moderationNote: string;
signins: components['schemas']['Signin'][];
policies: components['schemas']['RolePolicies'];
roles: components['schemas']['Role'][];
roleAssigns: ({
createdAt: string;
expiresAt: string | null;
roleId: string;
})[];
};
}; };
}; };
/** @description Client error */ /** @description Client error */
@ -8568,11 +8853,9 @@ export type operations = {
}; };
}; };
responses: { responses: {
/** @description OK (with results) */ /** @description OK (without any results) */
200: { 204: {
content: { content: never;
'application/json': unknown;
};
}; };
/** @description Client error */ /** @description Client error */
400: { 400: {
@ -15567,9 +15850,13 @@ export type operations = {
}; };
}; };
responses: { responses: {
/** @description OK (without any results) */ /** @description OK (with results) */
204: { 200: {
content: never; content: {
'application/json': {
backupCodes: string[];
};
};
}; };
/** @description Client error */ /** @description Client error */
400: { 400: {
@ -15737,7 +16024,7 @@ export type operations = {
content: { content: {
'application/json': { 'application/json': {
rp: { rp: {
id: string | null; id?: string;
}; };
user: { user: {
id: string; id: string;
@ -16048,11 +16335,11 @@ export type operations = {
'application/json': { 'application/json': {
/** Format: misskey:id */ /** Format: misskey:id */
id: string; id: string;
name: string; name?: string;
/** Format: date-time */ /** Format: date-time */
createdAt: string; createdAt: string;
/** Format: date-time */ /** Format: date-time */
lastUsedAt: string; lastUsedAt?: string;
permission: string[]; permission: string[];
}[]; }[];
}; };
@ -16122,7 +16409,7 @@ export type operations = {
name: string; name: string;
callbackUrl: string | null; callbackUrl: string | null;
permission: string[]; permission: string[];
isAuthorized: boolean; isAuthorized?: boolean;
})[]; })[];
}; };
}; };
@ -17743,7 +18030,10 @@ export type operations = {
/** @description OK (with results) */ /** @description OK (with results) */
200: { 200: {
content: { content: {
'application/json': Record<string, never>; 'application/json': {
updatedAt: string;
value: unknown;
};
}; };
}; };
/** @description Client error */ /** @description Client error */
@ -17854,7 +18144,9 @@ export type operations = {
/** @description OK (with results) */ /** @description OK (with results) */
200: { 200: {
content: { content: {
'application/json': Record<string, never>; 'application/json': {
[key: string]: string;
};
}; };
}; };
/** @description Client error */ /** @description Client error */
@ -17906,9 +18198,11 @@ export type operations = {
}; };
}; };
responses: { responses: {
/** @description OK (without any results) */ /** @description OK (with results) */
204: { 200: {
content: never; content: {
'application/json': string[];
};
}; };
/** @description Client error */ /** @description Client error */
400: { 400: {
@ -18385,7 +18679,134 @@ export type operations = {
mutedWords?: (string[] | string)[]; mutedWords?: (string[] | string)[];
hardMutedWords?: (string[] | string)[]; hardMutedWords?: (string[] | string)[];
mutedInstances?: string[]; mutedInstances?: string[];
notificationRecieveConfig?: Record<string, never>; notificationRecieveConfig?: {
note?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
follow?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
mention?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
reply?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
renote?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
quote?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
reaction?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
pollEnded?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
receiveFollowRequest?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
followRequestAccepted?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
roleAssigned?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
achievementEarned?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
app?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
test?: OneOf<[{
/** @enum {string} */
type: 'all' | 'following' | 'follower' | 'mutualFollow' | 'never';
}, {
/** @enum {string} */
type: 'list';
/** Format: misskey:id */
userListId: string;
}]>;
};
emailNotificationTypes?: string[]; emailNotificationTypes?: string[];
alsoKnownAs?: string[]; alsoKnownAs?: string[];
}; };
@ -23578,12 +23999,12 @@ export type operations = {
content: { content: {
'application/json': { 'application/json': {
/** Format: misskey:id */ /** Format: misskey:id */
id: string; id?: string;
required: boolean; required: boolean;
string: string; string?: string;
default: string; default?: string;
/** @default hello */ /** @default hello */
nullableDefault: string | null; nullableDefault?: string | null;
}; };
}; };
}; };
@ -25694,18 +26115,16 @@ export type operations = {
'application/json': { 'application/json': {
score: number; score: number;
seed: string; seed: string;
logs: unknown[]; logs: number[][];
gameMode: string; gameMode: string;
gameVersion: number; gameVersion: number;
}; };
}; };
}; };
responses: { responses: {
/** @description OK (with results) */ /** @description OK (without any results) */
200: { 204: {
content: { content: never;
'application/json': unknown;
};
}; };
/** @description Client error */ /** @description Client error */
400: { 400: {
@ -25767,7 +26186,7 @@ export type operations = {
/** Format: misskey:id */ /** Format: misskey:id */
id: string; id: string;
score: number; score: number;
user: components['schemas']['UserLite']; user?: components['schemas']['UserLite'];
}[]; }[];
}; };
}; };
@ -25819,11 +26238,9 @@ export type operations = {
}; };
}; };
responses: { responses: {
/** @description OK (with results) */ /** @description OK (without any results) */
200: { 204: {
content: { content: never;
'application/json': unknown;
};
}; };
/** @description Client error */ /** @description Client error */
400: { 400: {
@ -25940,9 +26357,13 @@ export type operations = {
/** @description OK (with results) */ /** @description OK (with results) */
200: { 200: {
content: { content: {
'application/json': unknown; 'application/json': components['schemas']['ReversiGameDetailed'];
}; };
}; };
/** @description OK (without any results) */
204: {
content: never;
};
/** @description Client error */ /** @description Client error */
400: { 400: {
content: { content: {