fix(frontend): ジョブキューインスペクタの型エラー解消 (#16020)

* fix(frontend): ジョブキューインスペクタの型エラー解消

* fix

* fix

* fix

* fix
This commit is contained in:
かっこかり
2025-05-22 12:06:07 +09:00
committed by GitHub
parent c7318f5803
commit 000ed1f51f
18 changed files with 501 additions and 95 deletions

View File

@@ -79,11 +79,15 @@ import type {
AdminQueueDeliverDelayedResponse,
AdminQueueInboxDelayedResponse,
AdminQueueJobsRequest,
AdminQueueJobsResponse,
AdminQueuePromoteJobsRequest,
AdminQueueQueueStatsRequest,
AdminQueueQueueStatsResponse,
AdminQueueQueuesResponse,
AdminQueueRemoveJobRequest,
AdminQueueRetryJobRequest,
AdminQueueShowJobRequest,
AdminQueueShowJobResponse,
AdminQueueStatsResponse,
AdminRelaysAddRequest,
AdminRelaysAddResponse,
@@ -694,13 +698,13 @@ export type Endpoints = {
'admin/queue/clear': { req: AdminQueueClearRequest; res: EmptyResponse };
'admin/queue/deliver-delayed': { req: EmptyRequest; res: AdminQueueDeliverDelayedResponse };
'admin/queue/inbox-delayed': { req: EmptyRequest; res: AdminQueueInboxDelayedResponse };
'admin/queue/jobs': { req: AdminQueueJobsRequest; res: EmptyResponse };
'admin/queue/jobs': { req: AdminQueueJobsRequest; res: AdminQueueJobsResponse };
'admin/queue/promote-jobs': { req: AdminQueuePromoteJobsRequest; res: EmptyResponse };
'admin/queue/queue-stats': { req: AdminQueueQueueStatsRequest; res: EmptyResponse };
'admin/queue/queues': { req: EmptyRequest; res: EmptyResponse };
'admin/queue/queue-stats': { req: AdminQueueQueueStatsRequest; res: AdminQueueQueueStatsResponse };
'admin/queue/queues': { req: EmptyRequest; res: AdminQueueQueuesResponse };
'admin/queue/remove-job': { req: AdminQueueRemoveJobRequest; res: EmptyResponse };
'admin/queue/retry-job': { req: AdminQueueRetryJobRequest; res: EmptyResponse };
'admin/queue/show-job': { req: AdminQueueShowJobRequest; res: EmptyResponse };
'admin/queue/show-job': { req: AdminQueueShowJobRequest; res: AdminQueueShowJobResponse };
'admin/queue/stats': { req: EmptyRequest; res: AdminQueueStatsResponse };
'admin/relays/add': { req: AdminRelaysAddRequest; res: AdminRelaysAddResponse };
'admin/relays/list': { req: EmptyRequest; res: AdminRelaysListResponse };

View File

@@ -82,11 +82,15 @@ export type AdminQueueClearRequest = operations['admin___queue___clear']['reques
export type AdminQueueDeliverDelayedResponse = operations['admin___queue___deliver-delayed']['responses']['200']['content']['application/json'];
export type AdminQueueInboxDelayedResponse = operations['admin___queue___inbox-delayed']['responses']['200']['content']['application/json'];
export type AdminQueueJobsRequest = operations['admin___queue___jobs']['requestBody']['content']['application/json'];
export type AdminQueueJobsResponse = operations['admin___queue___jobs']['responses']['200']['content']['application/json'];
export type AdminQueuePromoteJobsRequest = operations['admin___queue___promote-jobs']['requestBody']['content']['application/json'];
export type AdminQueueQueueStatsRequest = operations['admin___queue___queue-stats']['requestBody']['content']['application/json'];
export type AdminQueueQueueStatsResponse = operations['admin___queue___queue-stats']['responses']['200']['content']['application/json'];
export type AdminQueueQueuesResponse = operations['admin___queue___queues']['responses']['200']['content']['application/json'];
export type AdminQueueRemoveJobRequest = operations['admin___queue___remove-job']['requestBody']['content']['application/json'];
export type AdminQueueRetryJobRequest = operations['admin___queue___retry-job']['requestBody']['content']['application/json'];
export type AdminQueueShowJobRequest = operations['admin___queue___show-job']['requestBody']['content']['application/json'];
export type AdminQueueShowJobResponse = operations['admin___queue___show-job']['responses']['200']['content']['application/json'];
export type AdminQueueStatsResponse = operations['admin___queue___stats']['responses']['200']['content']['application/json'];
export type AdminRelaysAddRequest = operations['admin___relays___add']['requestBody']['content']['application/json'];
export type AdminRelaysAddResponse = operations['admin___relays___add']['responses']['200']['content']['application/json'];

View File

@@ -29,6 +29,8 @@ export type Page = components['schemas']['Page'];
export type PageBlock = components['schemas']['PageBlock'];
export type Channel = components['schemas']['Channel'];
export type QueueCount = components['schemas']['QueueCount'];
export type QueueMetrics = components['schemas']['QueueMetrics'];
export type QueueJob = components['schemas']['QueueJob'];
export type Antenna = components['schemas']['Antenna'];
export type Clip = components['schemas']['Clip'];
export type FederationInstance = components['schemas']['FederationInstance'];

View File

@@ -4946,6 +4946,32 @@ export type components = {
failed: number;
delayed: number;
};
QueueMetrics: {
meta: {
count: number;
prevTS: number;
prevCount: number;
};
data: number[];
count: number;
};
QueueJob: {
id: string;
name: string;
data: Record<string, never>;
opts: Record<string, never>;
timestamp: number;
processedOn?: number;
processedBy?: string;
finishedOn?: number;
progress: Record<string, never>;
attempts: number;
delay: number;
failedReason: string;
stacktrace: string[];
returnValue: Record<string, never>;
isFailed: boolean;
};
Antenna: {
/** Format: id */
id: string;
@@ -9049,9 +9075,11 @@ export type operations = {
};
};
responses: {
/** @description OK (without any results) */
204: {
content: never;
/** @description OK (with results) */
200: {
content: {
'application/json': components['schemas']['QueueJob'][];
};
};
/** @description Client error */
400: {
@@ -9153,9 +9181,43 @@ export type operations = {
};
};
responses: {
/** @description OK (without any results) */
204: {
content: never;
/** @description OK (with results) */
200: {
content: {
'application/json': {
/** @enum {string} */
name: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver';
qualifiedName: string;
counts: {
[key: string]: number;
};
isPaused: boolean;
metrics: {
completed: components['schemas']['QueueMetrics'];
failed: components['schemas']['QueueMetrics'];
};
db: {
version: string;
/** @enum {string} */
mode: 'cluster' | 'standalone' | 'sentinel';
runId: string;
processId: string;
port: number;
os: string;
uptime: number;
memory: {
total: number;
used: number;
fragmentationRatio: number;
peak: number;
};
clients: {
blocked: number;
connected: number;
};
};
};
};
};
/** @description Client error */
400: {
@@ -9197,9 +9259,22 @@ export type operations = {
*/
admin___queue___queues: {
responses: {
/** @description OK (without any results) */
204: {
content: never;
/** @description OK (with results) */
200: {
content: {
'application/json': ({
/** @enum {string} */
name: 'system' | 'endedPollNotification' | 'deliver' | 'inbox' | 'db' | 'relationship' | 'objectStorage' | 'userWebhookDeliver' | 'systemWebhookDeliver';
counts: {
[key: string]: number;
};
isPaused: boolean;
metrics: {
completed: components['schemas']['QueueMetrics'];
failed: components['schemas']['QueueMetrics'];
};
})[];
};
};
/** @description Client error */
400: {
@@ -9356,9 +9431,11 @@ export type operations = {
};
};
responses: {
/** @description OK (without any results) */
204: {
content: never;
/** @description OK (with results) */
200: {
content: {
'application/json': components['schemas']['QueueJob'];
};
};
/** @description Client error */
400: {

View File

@@ -169,6 +169,18 @@ export const moderationLogTypes = [
'deleteChatRoom',
] as const;
export const queueTypes = [
'system',
'endedPollNotification',
'deliver',
'inbox',
'db',
'relationship',
'objectStorage',
'userWebhookDeliver',
'systemWebhookDeliver',
] as const;
// See: packages/backend/src/core/ReversiService.ts@L410
export const reversiUpdateKeys = [
'map',

View File

@@ -13,6 +13,7 @@ export const mutedNoteReasons = consts.mutedNoteReasons;
export const followingVisibilities = consts.followingVisibilities;
export const followersVisibilities = consts.followersVisibilities;
export const moderationLogTypes = consts.moderationLogTypes;
export const queueTypes = consts.queueTypes;
export const reversiUpdateKeys = consts.reversiUpdateKeys;
// api extractor not supported yet