Feat: メッセージの送受信 / New: ユーザーのiconプロパティ / New: logエンティティ・リポジトリ / Chg: コミュニティリポジトリのスキーマのiconをoptionalに / Del: 不要なimport / Fix: Vue起動前のindex.htmlの背景色をVueと同期 / Enhance: Service Workerを改善 / Fix: 最初に開いたページが動作しない問題 / Feat: 上部の通知モーダル / Feat: 閉じることができないエラーのモーダルに再読み込みボタンを追加 / Fix: はみ出す挙動などのCSSを修正

This commit is contained in:
2026-05-31 13:54:55 +09:00
parent beb0e25ad9
commit cbf18aec8f
37 changed files with 1174 additions and 83 deletions
@@ -0,0 +1,17 @@
import InputError 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";
import Message from "../../modules/message";
import YetInitializationError from "../../modules/error/yet_init";
import AuthError from "../../modules/error/auth";
export default interface MessageDelete {
"message/delete": {
body: {
id: string;
};
response: Success | InputError | AuthError | DatabaseError | YetInitializationError | UnknownError;
};
}
@@ -0,0 +1,21 @@
import InputError 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";
import Message from "../../modules/message";
import YetInitializationError from "../../modules/error/yet_init";
import AuthError from "../../modules/error/auth";
export default interface MessageList {
"message/list": {
body: {
channel: string;
limit?: number;
until?: string | Date;
};
response: (Success & {
messages: Message[];
}) | InputError | AuthError | DatabaseError | YetInitializationError | UnknownError;
};
}
@@ -0,0 +1,20 @@
import InputError 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";
import Message from "../../modules/message";
import YetInitializationError from "../../modules/error/yet_init";
import AuthError from "../../modules/error/auth";
export default interface MessageSend {
"message/send": {
body: {
message: string;
channel: string;
};
response: (Success & {
id: string;
}) | InputError | AuthError | DatabaseError | YetInitializationError | UnknownError;
};
}
+7 -1
View File
@@ -7,6 +7,9 @@ import CommunityEdit from "./api/community/edit";
import CommunityGet from "./api/community/get";
import CommunityList from "./api/community/list";
import Me from "./api/me";
import MessageDelete from "./api/message/delete";
import MessageList from "./api/message/list";
import MessageSend from "./api/message/send";
import PrimarySignin from "./api/primary/signin";
import PrimarySignup from "./api/primary/signup";
import ServerInfo from "./api/server-info";
@@ -27,6 +30,9 @@ type ApiMap =
ChannelCreate &
ChannelEdit &
ChannelGet &
ChannelList;
ChannelList &
MessageDelete &
MessageSend &
MessageList;
export default ApiMap;
@@ -4,5 +4,5 @@ export default interface Channel {
description: string;
community: string;
createdBy: string;
createdAt: Date;
createdAt: string;
}
@@ -4,5 +4,5 @@ export default interface Community {
description: string;
icon: string | null;
createdBy: string;
createdAt: Date;
createdAt: string;
}
@@ -0,0 +1,9 @@
import UserSchema from "./user";
export default interface Message {
id: string;
message: string;
channel: string;
createdBy: Pick<UserSchema, "id" | "userid" | "username" | "icon">;
createdAt: string;
}
@@ -1,6 +1,8 @@
export default interface UserSchema {
id: string;
userid: string;
username: string;
icon: string | null;
profile: string;
email: string;
password: string;