New: LICENSEファイル / Del: package.json.license / Feat: setup/initializationでVAPIDを生成 / Fix: 全てのエンドポイントでsuccessをレスポンス / Chg: input_noneエラーを廃止。入力がない場合は{}として解決する / Feat: フロントエンドでserver-infoを読み込む

This commit is contained in:
2026-03-22 20:48:28 +09:00
parent 841553a1ef
commit 60a87d4709
21 changed files with 828 additions and 54 deletions
+2 -2
View File
@@ -1,4 +1,4 @@
import { InputError, InputNoneError } from "../../modules/error/input";
import InputError from "../../modules/error/input";
import ErrorBase from "../../modules/error";
import DatabaseError from "../../modules/error/database";
import Success from "../../modules/response/success";
@@ -10,6 +10,6 @@ export default interface Me {
"me": {
body: never;
response: (Success & Omit<UserSchema, "password" | "email">)
| DatabaseError | InputError | InputNoneError | YetInitializationError | UnknownError;
| DatabaseError | InputError | YetInitializationError | UnknownError;
};
}
@@ -1,4 +1,4 @@
import { InputError, InputNoneError } from "../../modules/error/input";
import InputError from "../../modules/error/input";
import ErrorBase from "../../modules/error";
import DatabaseError from "../../modules/error/database";
import Success from "../../modules/response/success";
@@ -15,6 +15,6 @@ export default interface PrimarySignin {
bad: "client",
code: "auth_input_wrong",
message: "ユーザー名かパスワードが違います。",
}> | InputError | InputNoneError | YetInitializationError | UnknownError;
}> | InputError | YetInitializationError | UnknownError;
};
}
@@ -1,4 +1,4 @@
import { InputError, InputNoneError } from "../../modules/error/input";
import InputError from "../../modules/error/input";
import ErrorBase from "../../modules/error";
import DatabaseError from "../../modules/error/database";
import Success from "../../modules/response/success";
@@ -9,6 +9,6 @@ import UnknownError from "../../modules/error/unknown";
export default interface PrimarySignup {
"primary/signup": {
body: Pick<UserSchema, "userid" | "email" | "password">;
response: Success | DatabaseError | InputError | InputNoneError | YetInitializationError | UnknownError;
response: Success | DatabaseError | InputError | YetInitializationError | UnknownError;
};
}
+11 -11
View File
@@ -1,16 +1,16 @@
import { InputError, InputNoneError } from "../../modules/error/input";
import ErrorBase from "../../modules/error";
import DatabaseError from "../../modules/error/database";
import UnknownError from "../../modules/error/unknown";
import { InputError, InputNoneError } from "../modules/error/input";
import ErrorBase from "../modules/error";
import DatabaseError from "../modules/error/database";
import UnknownError from "../modules/error/unknown";
import Success from "../modules/response/success";
export default interface ServerInfo {
"server-info": {
body: {
name: string;
description: string;
requiredInvitationCode: boolean;
force?: "use_force_initialization";
};
response: Success | DatabaseError | UnknownError;
body: never;
response: (Success & {
isInitialized: boolean;
isFirstAdminExists: boolean;
userCount: number;
}) | DatabaseError | UnknownError;
};
}
@@ -1,10 +1,10 @@
import { InputError, InputNoneError } from "../../modules/error/input";
import InputError from "../../modules/error/input";
import ErrorBase from "../../modules/error";
import DatabaseError from "../../modules/error/database";
import Success from "../../modules/response/success";
import YetInitializationError from "../../modules/error/yet_init";
import { UserSchema } from "../primary/signup";
import UnknownError from "../../modules/error/unknown";
import UserSchema from "../../modules/user";
export default interface SetupCreateAdmin {
"setup/create-admin": {
@@ -13,6 +13,6 @@ export default interface SetupCreateAdmin {
bad: "client",
code: "first_admin_already_exists",
message: "最初の管理者ユーザーは既に存在します。",
}> | InputError | InputNoneError | YetInitializationError | UnknownError;
}> | InputError | YetInitializationError | UnknownError;
};
}
@@ -1,4 +1,4 @@
import { InputError, InputNoneError } from "../../modules/error/input";
import InputError from "../../modules/error/input";
import ErrorBase from "../../modules/error";
import DatabaseError from "../../modules/error/database";
import Success from "../../modules/response/success";
@@ -16,6 +16,6 @@ export default interface SetupInitialization {
bad: "client",
code: "already_initialization",
message: "既に初期設定が行われています。",
}> | InputError | InputNoneError | UnknownError;
}> | InputError | UnknownError;
};
}
@@ -1,6 +1,6 @@
import ErrorBase from ".";
export type InputError = ErrorBase<{
type InputError = ErrorBase<{
bad: "client";
code: "input_wrong";
message: "入力に問題があります。";
@@ -11,8 +11,4 @@ export type InputError = ErrorBase<{
}[];
}>;
export type InputNoneError = ErrorBase<{
bad: "client",
code: "input_none",
message: "入力がありません。",
}>;
export default InputError;
@@ -1,3 +1,5 @@
import ErrorBase from ".";
type YetInitializationError = ErrorBase<{
bad: "client";
code: "yet_initialization";