aboutsummaryrefslogtreecommitdiffhomepage
path: root/frontend/app/.server/api/schema.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/app/.server/api/schema.d.ts')
-rw-r--r--frontend/app/.server/api/schema.d.ts858
1 files changed, 447 insertions, 411 deletions
diff --git a/frontend/app/.server/api/schema.d.ts b/frontend/app/.server/api/schema.d.ts
index 1afed69..0736e43 100644
--- a/frontend/app/.server/api/schema.d.ts
+++ b/frontend/app/.server/api/schema.d.ts
@@ -4,421 +4,457 @@
*/
export interface paths {
- "/login": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- get?: never;
- put?: never;
- /** User login */
- post: operations["postLogin"];
- delete?: never;
- options?: never;
- head?: never;
- patch?: never;
- trace?: never;
- };
- "/token": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- /** Get a short-lived access token */
- get: operations["getToken"];
- put?: never;
- post?: never;
- delete?: never;
- options?: never;
- head?: never;
- patch?: never;
- trace?: never;
- };
- "/games": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- /** List games */
- get: operations["getGames"];
- put?: never;
- post?: never;
- delete?: never;
- options?: never;
- head?: never;
- patch?: never;
- trace?: never;
- };
- "/games/{game_id}": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- /** Get a game */
- get: operations["getGame"];
- put?: never;
- post?: never;
- delete?: never;
- options?: never;
- head?: never;
- patch?: never;
- trace?: never;
- };
+ "/login": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ get?: never;
+ put?: never;
+ /** User login */
+ post: operations["postLogin"];
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
+ trace?: never;
+ };
+ "/token": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** Get a short-lived access token */
+ get: operations["getToken"];
+ put?: never;
+ post?: never;
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
+ trace?: never;
+ };
+ "/games": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** List games */
+ get: operations["getGames"];
+ put?: never;
+ post?: never;
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
+ trace?: never;
+ };
+ "/games/{game_id}": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** Get a game */
+ get: operations["getGame"];
+ put?: never;
+ post?: never;
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
+ trace?: never;
+ };
}
export type webhooks = Record<string, never>;
export interface components {
- schemas: {
- Error: {
- /** @example Invalid request */
- message: string;
- };
- User: {
- /** @example 123 */
- user_id: number;
- /** @example john */
- username: string;
- /** @example John Doe */
- display_name: string;
- /** @example /images/john.jpg */
- icon_path?: string;
- /** @example false */
- is_admin: boolean;
- };
- Game: {
- /** @example 1 */
- game_id: number;
- /**
- * @example 1v1
- * @enum {string}
- */
- game_type: "1v1" | "multiplayer";
- /**
- * @example closed
- * @enum {string}
- */
- state: "closed" | "waiting" | "starting" | "gaming" | "finished";
- /** @example Game 1 */
- display_name: string;
- /** @example 360 */
- duration_seconds: number;
- /** @example 946684800 */
- started_at?: number;
- problem: components["schemas"]["Problem"];
- players: components["schemas"]["User"][];
- exec_steps: components["schemas"]["ExecStep"][];
- };
- ExecStep: {
- /** @example 1 */
- testcase_id: number | null;
- /** @example Test case 1 */
- label: string;
- };
- Problem: {
- /** @example 1 */
- problem_id: number;
- /** @example Problem 1 */
- title: string;
- /** @example This is a problem */
- description: string;
- };
- GamePlayerMessage: components["schemas"]["GamePlayerMessageS2C"] | components["schemas"]["GamePlayerMessageC2S"];
- GamePlayerMessageS2C: components["schemas"]["GamePlayerMessageS2CStart"] | components["schemas"]["GamePlayerMessageS2CExecResult"] | components["schemas"]["GamePlayerMessageS2CSubmitResult"];
- GamePlayerMessageS2CStart: {
- /** @constant */
- type: "player:s2c:start";
- data: components["schemas"]["GamePlayerMessageS2CStartPayload"];
- };
- GamePlayerMessageS2CStartPayload: {
- /** @example 946684800 */
- start_at: number;
- };
- GamePlayerMessageS2CExecResult: {
- /** @constant */
- type: "player:s2c:execresult";
- data: components["schemas"]["GamePlayerMessageS2CExecResultPayload"];
- };
- GamePlayerMessageS2CExecResultPayload: {
- /** @example 1 */
- testcase_id: number | null;
- /**
- * @example success
- * @enum {string}
- */
- status: "success" | "wrong_answer" | "timeout" | "runtime_error" | "internal_error" | "compile_error";
- /** @example Hello, world! */
- stdout: string;
- /** @example */
- stderr: string;
- };
- GamePlayerMessageS2CSubmitResult: {
- /** @constant */
- type: "player:s2c:submitresult";
- data: components["schemas"]["GamePlayerMessageS2CSubmitResultPayload"];
- };
- GamePlayerMessageS2CSubmitResultPayload: {
- /**
- * @example success
- * @enum {string}
- */
- status: "success" | "wrong_answer" | "timeout" | "runtime_error" | "internal_error" | "compile_error";
- /** @example 100 */
- score: number | null;
- };
- GamePlayerMessageC2S: components["schemas"]["GamePlayerMessageC2SCode"] | components["schemas"]["GamePlayerMessageC2SSubmit"];
- GamePlayerMessageC2SCode: {
- /** @constant */
- type: "player:c2s:code";
- data: components["schemas"]["GamePlayerMessageC2SCodePayload"];
- };
- GamePlayerMessageC2SCodePayload: {
- /** @example print('Hello, world!') */
- code: string;
- };
- GamePlayerMessageC2SSubmit: {
- /** @constant */
- type: "player:c2s:submit";
- data: components["schemas"]["GamePlayerMessageC2SSubmitPayload"];
- };
- GamePlayerMessageC2SSubmitPayload: {
- /** @example print('Hello, world!') */
- code: string;
- };
- GameWatcherMessage: components["schemas"]["GameWatcherMessageS2C"];
- GameWatcherMessageS2C: components["schemas"]["GameWatcherMessageS2CStart"] | components["schemas"]["GameWatcherMessageS2CCode"] | components["schemas"]["GameWatcherMessageS2CSubmit"] | components["schemas"]["GameWatcherMessageS2CExecResult"] | components["schemas"]["GameWatcherMessageS2CSubmitResult"];
- GameWatcherMessageS2CStart: {
- /** @constant */
- type: "watcher:s2c:start";
- data: components["schemas"]["GameWatcherMessageS2CStartPayload"];
- };
- GameWatcherMessageS2CStartPayload: {
- /** @example 946684800 */
- start_at: number;
- };
- GameWatcherMessageS2CCode: {
- /** @constant */
- type: "watcher:s2c:code";
- data: components["schemas"]["GameWatcherMessageS2CCodePayload"];
- };
- GameWatcherMessageS2CCodePayload: {
- /** @example 1 */
- player_id: number;
- /** @example print('Hello, world!') */
- code: string;
- };
- GameWatcherMessageS2CSubmit: {
- /** @constant */
- type: "watcher:s2c:submit";
- data: components["schemas"]["GameWatcherMessageS2CSubmitPayload"];
- };
- GameWatcherMessageS2CSubmitPayload: {
- /** @example 1 */
- player_id: number;
- };
- GameWatcherMessageS2CExecResult: {
- /** @constant */
- type: "watcher:s2c:execresult";
- data: components["schemas"]["GameWatcherMessageS2CExecResultPayload"];
- };
- GameWatcherMessageS2CExecResultPayload: {
- /** @example 1 */
- player_id: number;
- /** @example 1 */
- testcase_id: number | null;
- /**
- * @example success
- * @enum {string}
- */
- status: "success" | "wrong_answer" | "timeout" | "runtime_error" | "internal_error" | "compile_error";
- /** @example Hello, world! */
- stdout: string;
- /** @example */
- stderr: string;
- };
- GameWatcherMessageS2CSubmitResult: {
- /** @constant */
- type: "watcher:s2c:submitresult";
- data: components["schemas"]["GameWatcherMessageS2CSubmitResultPayload"];
- };
- GameWatcherMessageS2CSubmitResultPayload: {
- /** @example 1 */
- player_id: number;
- /**
- * @example success
- * @enum {string}
- */
- status: "success" | "wrong_answer" | "timeout" | "runtime_error" | "internal_error" | "compile_error";
- /** @example 100 */
- score: number | null;
- };
- };
- responses: {
- /** @description Bad request */
- BadRequest: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": components["schemas"]["Error"];
- };
- };
- /** @description Unauthorized */
- Unauthorized: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": components["schemas"]["Error"];
- };
- };
- /** @description Forbidden */
- Forbidden: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": components["schemas"]["Error"];
- };
- };
- /** @description Not found */
- NotFound: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": components["schemas"]["Error"];
- };
- };
- };
- parameters: {
- header_authorization: string;
- path_game_id: number;
- };
- requestBodies: never;
- headers: never;
- pathItems: never;
+ schemas: {
+ Error: {
+ /** @example Invalid request */
+ message: string;
+ };
+ User: {
+ /** @example 123 */
+ user_id: number;
+ /** @example john */
+ username: string;
+ /** @example John Doe */
+ display_name: string;
+ /** @example /images/john.jpg */
+ icon_path?: string;
+ /** @example false */
+ is_admin: boolean;
+ };
+ Game: {
+ /** @example 1 */
+ game_id: number;
+ /**
+ * @example 1v1
+ * @enum {string}
+ */
+ game_type: "1v1" | "multiplayer";
+ /**
+ * @example closed
+ * @enum {string}
+ */
+ state: "closed" | "waiting" | "starting" | "gaming" | "finished";
+ /** @example Game 1 */
+ display_name: string;
+ /** @example 360 */
+ duration_seconds: number;
+ /** @example 946684800 */
+ started_at?: number;
+ problem: components["schemas"]["Problem"];
+ players: components["schemas"]["User"][];
+ exec_steps: components["schemas"]["ExecStep"][];
+ };
+ ExecStep: {
+ /** @example 1 */
+ testcase_id: number | null;
+ /** @example Test case 1 */
+ label: string;
+ };
+ Problem: {
+ /** @example 1 */
+ problem_id: number;
+ /** @example Problem 1 */
+ title: string;
+ /** @example This is a problem */
+ description: string;
+ };
+ GamePlayerMessage:
+ | components["schemas"]["GamePlayerMessageS2C"]
+ | components["schemas"]["GamePlayerMessageC2S"];
+ GamePlayerMessageS2C:
+ | components["schemas"]["GamePlayerMessageS2CStart"]
+ | components["schemas"]["GamePlayerMessageS2CExecResult"]
+ | components["schemas"]["GamePlayerMessageS2CSubmitResult"];
+ GamePlayerMessageS2CStart: {
+ /** @constant */
+ type: "player:s2c:start";
+ data: components["schemas"]["GamePlayerMessageS2CStartPayload"];
+ };
+ GamePlayerMessageS2CStartPayload: {
+ /** @example 946684800 */
+ start_at: number;
+ };
+ GamePlayerMessageS2CExecResult: {
+ /** @constant */
+ type: "player:s2c:execresult";
+ data: components["schemas"]["GamePlayerMessageS2CExecResultPayload"];
+ };
+ GamePlayerMessageS2CExecResultPayload: {
+ /** @example 1 */
+ testcase_id: number | null;
+ /**
+ * @example success
+ * @enum {string}
+ */
+ status:
+ | "success"
+ | "wrong_answer"
+ | "timeout"
+ | "runtime_error"
+ | "internal_error"
+ | "compile_error";
+ /** @example Hello, world! */
+ stdout: string;
+ /** @example */
+ stderr: string;
+ };
+ GamePlayerMessageS2CSubmitResult: {
+ /** @constant */
+ type: "player:s2c:submitresult";
+ data: components["schemas"]["GamePlayerMessageS2CSubmitResultPayload"];
+ };
+ GamePlayerMessageS2CSubmitResultPayload: {
+ /**
+ * @example success
+ * @enum {string}
+ */
+ status:
+ | "success"
+ | "wrong_answer"
+ | "timeout"
+ | "runtime_error"
+ | "internal_error"
+ | "compile_error";
+ /** @example 100 */
+ score: number | null;
+ };
+ GamePlayerMessageC2S:
+ | components["schemas"]["GamePlayerMessageC2SCode"]
+ | components["schemas"]["GamePlayerMessageC2SSubmit"];
+ GamePlayerMessageC2SCode: {
+ /** @constant */
+ type: "player:c2s:code";
+ data: components["schemas"]["GamePlayerMessageC2SCodePayload"];
+ };
+ GamePlayerMessageC2SCodePayload: {
+ /** @example print('Hello, world!') */
+ code: string;
+ };
+ GamePlayerMessageC2SSubmit: {
+ /** @constant */
+ type: "player:c2s:submit";
+ data: components["schemas"]["GamePlayerMessageC2SSubmitPayload"];
+ };
+ GamePlayerMessageC2SSubmitPayload: {
+ /** @example print('Hello, world!') */
+ code: string;
+ };
+ GameWatcherMessage: components["schemas"]["GameWatcherMessageS2C"];
+ GameWatcherMessageS2C:
+ | components["schemas"]["GameWatcherMessageS2CStart"]
+ | components["schemas"]["GameWatcherMessageS2CCode"]
+ | components["schemas"]["GameWatcherMessageS2CSubmit"]
+ | components["schemas"]["GameWatcherMessageS2CExecResult"]
+ | components["schemas"]["GameWatcherMessageS2CSubmitResult"];
+ GameWatcherMessageS2CStart: {
+ /** @constant */
+ type: "watcher:s2c:start";
+ data: components["schemas"]["GameWatcherMessageS2CStartPayload"];
+ };
+ GameWatcherMessageS2CStartPayload: {
+ /** @example 946684800 */
+ start_at: number;
+ };
+ GameWatcherMessageS2CCode: {
+ /** @constant */
+ type: "watcher:s2c:code";
+ data: components["schemas"]["GameWatcherMessageS2CCodePayload"];
+ };
+ GameWatcherMessageS2CCodePayload: {
+ /** @example 1 */
+ player_id: number;
+ /** @example print('Hello, world!') */
+ code: string;
+ };
+ GameWatcherMessageS2CSubmit: {
+ /** @constant */
+ type: "watcher:s2c:submit";
+ data: components["schemas"]["GameWatcherMessageS2CSubmitPayload"];
+ };
+ GameWatcherMessageS2CSubmitPayload: {
+ /** @example 1 */
+ player_id: number;
+ };
+ GameWatcherMessageS2CExecResult: {
+ /** @constant */
+ type: "watcher:s2c:execresult";
+ data: components["schemas"]["GameWatcherMessageS2CExecResultPayload"];
+ };
+ GameWatcherMessageS2CExecResultPayload: {
+ /** @example 1 */
+ player_id: number;
+ /** @example 1 */
+ testcase_id: number | null;
+ /**
+ * @example success
+ * @enum {string}
+ */
+ status:
+ | "success"
+ | "wrong_answer"
+ | "timeout"
+ | "runtime_error"
+ | "internal_error"
+ | "compile_error";
+ /** @example Hello, world! */
+ stdout: string;
+ /** @example */
+ stderr: string;
+ };
+ GameWatcherMessageS2CSubmitResult: {
+ /** @constant */
+ type: "watcher:s2c:submitresult";
+ data: components["schemas"]["GameWatcherMessageS2CSubmitResultPayload"];
+ };
+ GameWatcherMessageS2CSubmitResultPayload: {
+ /** @example 1 */
+ player_id: number;
+ /**
+ * @example success
+ * @enum {string}
+ */
+ status:
+ | "success"
+ | "wrong_answer"
+ | "timeout"
+ | "runtime_error"
+ | "internal_error"
+ | "compile_error";
+ /** @example 100 */
+ score: number | null;
+ };
+ };
+ responses: {
+ /** @description Bad request */
+ BadRequest: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": components["schemas"]["Error"];
+ };
+ };
+ /** @description Unauthorized */
+ Unauthorized: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": components["schemas"]["Error"];
+ };
+ };
+ /** @description Forbidden */
+ Forbidden: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": components["schemas"]["Error"];
+ };
+ };
+ /** @description Not found */
+ NotFound: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": components["schemas"]["Error"];
+ };
+ };
+ };
+ parameters: {
+ header_authorization: string;
+ path_game_id: number;
+ };
+ requestBodies: never;
+ headers: never;
+ pathItems: never;
}
export type $defs = Record<string, never>;
export interface operations {
- postLogin: {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody: {
- content: {
- "application/json": {
- /** @example john */
- username: string;
- /** @example password123 */
- password: string;
- };
- };
- };
- responses: {
- /** @description Successfully authenticated */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- /** @example xxxxx.xxxxx.xxxxx */
- token: string;
- };
- };
- };
- 401: components["responses"]["Unauthorized"];
- };
- };
- getToken: {
- parameters: {
- query?: never;
- header: {
- Authorization: components["parameters"]["header_authorization"];
- };
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successfully authenticated */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- /** @example xxxxx.xxxxx.xxxxx */
- token: string;
- };
- };
- };
- 401: components["responses"]["Unauthorized"];
- };
- };
- getGames: {
- parameters: {
- query?: never;
- header: {
- Authorization: components["parameters"]["header_authorization"];
- };
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description List of games */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- games: components["schemas"]["Game"][];
- };
- };
- };
- 401: components["responses"]["Unauthorized"];
- 403: components["responses"]["Forbidden"];
- };
- };
- getGame: {
- parameters: {
- query?: never;
- header: {
- Authorization: components["parameters"]["header_authorization"];
- };
- path: {
- game_id: components["parameters"]["path_game_id"];
- };
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description A game */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- game: components["schemas"]["Game"];
- };
- };
- };
- 401: components["responses"]["Unauthorized"];
- 403: components["responses"]["Forbidden"];
- 404: components["responses"]["NotFound"];
- };
- };
+ postLogin: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody: {
+ content: {
+ "application/json": {
+ /** @example john */
+ username: string;
+ /** @example password123 */
+ password: string;
+ };
+ };
+ };
+ responses: {
+ /** @description Successfully authenticated */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ /** @example xxxxx.xxxxx.xxxxx */
+ token: string;
+ };
+ };
+ };
+ 401: components["responses"]["Unauthorized"];
+ };
+ };
+ getToken: {
+ parameters: {
+ query?: never;
+ header: {
+ Authorization: components["parameters"]["header_authorization"];
+ };
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description Successfully authenticated */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ /** @example xxxxx.xxxxx.xxxxx */
+ token: string;
+ };
+ };
+ };
+ 401: components["responses"]["Unauthorized"];
+ };
+ };
+ getGames: {
+ parameters: {
+ query?: never;
+ header: {
+ Authorization: components["parameters"]["header_authorization"];
+ };
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description List of games */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ games: components["schemas"]["Game"][];
+ };
+ };
+ };
+ 401: components["responses"]["Unauthorized"];
+ 403: components["responses"]["Forbidden"];
+ };
+ };
+ getGame: {
+ parameters: {
+ query?: never;
+ header: {
+ Authorization: components["parameters"]["header_authorization"];
+ };
+ path: {
+ game_id: components["parameters"]["path_game_id"];
+ };
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description A game */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ game: components["schemas"]["Game"];
+ };
+ };
+ };
+ 401: components["responses"]["Unauthorized"];
+ 403: components["responses"]["Forbidden"];
+ 404: components["responses"]["NotFound"];
+ };
+ };
}