From ed28de95a5742ae590f31121fffa78b4f7db4d66 Mon Sep 17 00:00:00 2001 From: TomatoCake <60300461+DEVTomatoCake@users.noreply.github.com> Date: Sat, 17 Aug 2024 12:33:32 +0200 Subject: [PATCH 1/3] Add utf8mb4 "engine" property to all entitys --- src/util/entities/Application.ts | 8 ++++---- src/util/entities/Attachment.ts | 8 ++++---- src/util/entities/AuditLog.ts | 8 ++++---- src/util/entities/BackupCodes.ts | 8 ++++---- src/util/entities/Badge.ts | 8 ++++---- src/util/entities/Ban.ts | 8 ++++---- src/util/entities/Categories.ts | 2 +- src/util/entities/Channel.ts | 2 +- src/util/entities/ClientRelease.ts | 8 ++++---- src/util/entities/Config.ts | 8 ++++---- src/util/entities/ConnectedAccount.ts | 8 ++++---- src/util/entities/ConnectionConfigEntity.ts | 8 ++++---- src/util/entities/EmbedCache.ts | 8 ++++---- src/util/entities/Emoji.ts | 8 ++++---- src/util/entities/Encryption.ts | 8 ++++---- src/util/entities/Guild.ts | 8 ++++---- src/util/entities/Invite.ts | 8 ++++---- src/util/entities/Member.ts | 2 +- src/util/entities/Message.ts | 2 +- src/util/entities/Migration.ts | 8 ++++---- src/util/entities/Note.ts | 8 ++++---- src/util/entities/RateLimit.ts | 8 ++++---- src/util/entities/ReadState.ts | 8 ++++---- src/util/entities/Recipient.ts | 8 ++++---- src/util/entities/Relationship.ts | 8 ++++---- src/util/entities/Role.ts | 8 ++++---- src/util/entities/SecurityKey.ts | 8 ++++---- src/util/entities/Session.ts | 2 +- src/util/entities/Sticker.ts | 8 ++++---- src/util/entities/StickerPack.ts | 8 ++++---- src/util/entities/Team.ts | 8 ++++---- src/util/entities/TeamMember.ts | 8 ++++---- src/util/entities/Template.ts | 8 ++++---- src/util/entities/User.ts | 2 +- src/util/entities/UserSettings.ts | 8 ++++---- src/util/entities/ValidRegistrationTokens.ts | 8 ++++---- src/util/entities/VoiceState.ts | 8 ++++---- src/util/entities/Webhook.ts | 2 +- 38 files changed, 131 insertions(+), 131 deletions(-) diff --git a/src/util/entities/Application.ts b/src/util/entities/Application.ts index 962b2a8e..1ecd4475 100644 --- a/src/util/entities/Application.ts +++ b/src/util/entities/Application.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -21,7 +21,7 @@ import { BaseClass } from "./BaseClass"; import { Team } from "./Team"; import { User } from "./User"; -@Entity("applications") +@Entity({name: "applications", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Application extends BaseClass { @Column() name: string; diff --git a/src/util/entities/Attachment.ts b/src/util/entities/Attachment.ts index d60ac41c..68d8aa54 100644 --- a/src/util/entities/Attachment.ts +++ b/src/util/entities/Attachment.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -28,7 +28,7 @@ import { URL } from "url"; import { deleteFile } from "../util/cdn"; import { BaseClass } from "./BaseClass"; -@Entity("attachments") +@Entity({name: "attachments", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Attachment extends BaseClass { @Column() filename: string; // name of file attached diff --git a/src/util/entities/AuditLog.ts b/src/util/entities/AuditLog.ts index b375f771..6ac2802b 100644 --- a/src/util/entities/AuditLog.ts +++ b/src/util/entities/AuditLog.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -111,7 +111,7 @@ export enum AuditLogEvents { ROUTE_UPDATE = 226, } -@Entity("audit_logs") +@Entity({name: "audit_logs", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class AuditLog extends BaseClass { @JoinColumn({ name: "target_id" }) @ManyToOne(() => User) diff --git a/src/util/entities/BackupCodes.ts b/src/util/entities/BackupCodes.ts index 61e8f12a..638bcd04 100644 --- a/src/util/entities/BackupCodes.ts +++ b/src/util/entities/BackupCodes.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -21,7 +21,7 @@ import { BaseClass } from "./BaseClass"; import { User } from "./User"; import crypto from "crypto"; -@Entity("backup_codes") +@Entity({name: "backup_codes", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class BackupCode extends BaseClass { @JoinColumn({ name: "user_id" }) @ManyToOne(() => User, { onDelete: "CASCADE" }) diff --git a/src/util/entities/Badge.ts b/src/util/entities/Badge.ts index 9535e207..d403c655 100644 --- a/src/util/entities/Badge.ts +++ b/src/util/entities/Badge.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -19,7 +19,7 @@ import { Column, Entity } from "typeorm"; import { BaseClassWithoutId } from "./BaseClass"; -@Entity("badges") +@Entity({name: "badges", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Badge extends BaseClassWithoutId { @Column({ primary: true }) id: string; diff --git a/src/util/entities/Ban.ts b/src/util/entities/Ban.ts index 1693cd40..2535f3e3 100644 --- a/src/util/entities/Ban.ts +++ b/src/util/entities/Ban.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -21,7 +21,7 @@ import { BaseClass } from "./BaseClass"; import { Guild } from "./Guild"; import { User } from "./User"; -@Entity("bans") +@Entity({name: "bans", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Ban extends BaseClass { @Column({ nullable: true }) @RelationId((ban: Ban) => ban.user) diff --git a/src/util/entities/Categories.ts b/src/util/entities/Categories.ts index 13d969de..d3eada5a 100644 --- a/src/util/entities/Categories.ts +++ b/src/util/entities/Categories.ts @@ -33,7 +33,7 @@ import { BaseClassWithoutId, PrimaryIdColumn } from "./BaseClass"; // }] // Also populate discord default categories -@Entity("categories") +@Entity({name: "categories", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Categories extends BaseClassWithoutId { // Not using snowflake diff --git a/src/util/entities/Channel.ts b/src/util/entities/Channel.ts index 71ccf49e..e3856e8d 100644 --- a/src/util/entities/Channel.ts +++ b/src/util/entities/Channel.ts @@ -69,7 +69,7 @@ export enum ChannelType { UNHANDLED = 255, // unhandled unowned pass-through channel type } -@Entity("channels") +@Entity({name: "channels", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Channel extends BaseClass { @Column() created_at: Date; diff --git a/src/util/entities/ClientRelease.ts b/src/util/entities/ClientRelease.ts index cfbc3a9b..2282b1ff 100644 --- a/src/util/entities/ClientRelease.ts +++ b/src/util/entities/ClientRelease.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -19,7 +19,7 @@ import { Column, Entity } from "typeorm"; import { BaseClass } from "./BaseClass"; -@Entity("client_release") +@Entity({name: "client_release", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Release extends BaseClass { @Column() name: string; diff --git a/src/util/entities/Config.ts b/src/util/entities/Config.ts index 3c436ff0..efe8c563 100644 --- a/src/util/entities/Config.ts +++ b/src/util/entities/Config.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -19,7 +19,7 @@ import { Column, Entity } from "typeorm"; import { BaseClassWithoutId, PrimaryIdColumn } from "./BaseClass"; -@Entity("config") +@Entity({name: "config", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class ConfigEntity extends BaseClassWithoutId { @PrimaryIdColumn() key: string; diff --git a/src/util/entities/ConnectedAccount.ts b/src/util/entities/ConnectedAccount.ts index 6e089de1..78dec432 100644 --- a/src/util/entities/ConnectedAccount.ts +++ b/src/util/entities/ConnectedAccount.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -26,7 +26,7 @@ export type PublicConnectedAccount = Pick< "name" | "type" | "verified" >; -@Entity("connected_accounts") +@Entity({name: "connected_accounts", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class ConnectedAccount extends BaseClass { @Column() external_id: string; diff --git a/src/util/entities/ConnectionConfigEntity.ts b/src/util/entities/ConnectionConfigEntity.ts index e4b7cea8..0c367c1c 100644 --- a/src/util/entities/ConnectionConfigEntity.ts +++ b/src/util/entities/ConnectionConfigEntity.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -19,7 +19,7 @@ import { Column, Entity } from "typeorm"; import { BaseClassWithoutId, PrimaryIdColumn } from "./BaseClass"; -@Entity("connection_config") +@Entity({name: "connection_config", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class ConnectionConfigEntity extends BaseClassWithoutId { @PrimaryIdColumn() key: string; diff --git a/src/util/entities/EmbedCache.ts b/src/util/entities/EmbedCache.ts index 8ff2a457..f2dcd893 100644 --- a/src/util/entities/EmbedCache.ts +++ b/src/util/entities/EmbedCache.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -20,7 +20,7 @@ import { BaseClass } from "./BaseClass"; import { Entity, Column } from "typeorm"; import { Embed } from "./Message"; -@Entity("embed_cache") +@Entity({name: "embed_cache", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class EmbedCache extends BaseClass { @Column() url: string; diff --git a/src/util/entities/Emoji.ts b/src/util/entities/Emoji.ts index 4d851698..65d54d5e 100644 --- a/src/util/entities/Emoji.ts +++ b/src/util/entities/Emoji.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -21,7 +21,7 @@ import { User } from "."; import { BaseClass } from "./BaseClass"; import { Guild } from "./Guild"; -@Entity("emojis") +@Entity({name: "emojis", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Emoji extends BaseClass { @Column() animated: boolean; diff --git a/src/util/entities/Encryption.ts b/src/util/entities/Encryption.ts index 8325bdee..97f9052c 100644 --- a/src/util/entities/Encryption.ts +++ b/src/util/entities/Encryption.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -19,7 +19,7 @@ import { Column, Entity } from "typeorm"; import { BaseClass } from "./BaseClass"; -@Entity("security_settings") +@Entity({name: "security_settings", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class SecuritySettings extends BaseClass { @Column({ nullable: true }) guild_id: string; diff --git a/src/util/entities/Guild.ts b/src/util/entities/Guild.ts index fcd6b729..7a918220 100644 --- a/src/util/entities/Guild.ts +++ b/src/util/entities/Guild.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -66,7 +66,7 @@ export const PublicGuildRelations = [ // "members.user", ]; -@Entity("guilds") +@Entity({name: "guilds", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Guild extends BaseClass { @Column({ nullable: true }) @RelationId((guild: Guild) => guild.afk_channel) diff --git a/src/util/entities/Invite.ts b/src/util/entities/Invite.ts index f7e54fbe..a7b17a8a 100644 --- a/src/util/entities/Invite.ts +++ b/src/util/entities/Invite.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -25,7 +25,7 @@ import { User } from "./User"; export const PublicInviteRelation = ["inviter", "guild", "channel"]; -@Entity("invites") +@Entity({name: "invites", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Invite extends BaseClassWithoutId { @PrimaryIdColumn() code: string; diff --git a/src/util/entities/Member.ts b/src/util/entities/Member.ts index 3ef778ac..f43d5a92 100644 --- a/src/util/entities/Member.ts +++ b/src/util/entities/Member.ts @@ -65,7 +65,7 @@ export const MemberPrivateProjection: (keyof Member)[] = [ "user", ]; -@Entity("members") +@Entity({name: "members", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) @Index(["id", "guild_id"], { unique: true }) export class Member extends BaseClassWithoutId { @PrimaryGeneratedColumn() diff --git a/src/util/entities/Message.ts b/src/util/entities/Message.ts index 1dd89dc1..f340bbc0 100644 --- a/src/util/entities/Message.ts +++ b/src/util/entities/Message.ts @@ -68,7 +68,7 @@ export enum MessageType { UNHANDLED = 255, } -@Entity("messages") +@Entity({name: "messages", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) @Index(["channel_id", "id"], { unique: true }) export class Message extends BaseClass { @Column({ nullable: true }) diff --git a/src/util/entities/Migration.ts b/src/util/entities/Migration.ts index 5c4e951d..742e3621 100644 --- a/src/util/entities/Migration.ts +++ b/src/util/entities/Migration.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -30,7 +30,7 @@ export const PrimaryIdAutoGenerated = process.env.DATABASE?.startsWith( ? ObjectIdColumn : PrimaryGeneratedColumn; -@Entity("migrations") +@Entity({name: "migrations", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Migration extends BaseEntity { @PrimaryIdAutoGenerated() id: number; diff --git a/src/util/entities/Note.ts b/src/util/entities/Note.ts index 196f6861..d220367f 100644 --- a/src/util/entities/Note.ts +++ b/src/util/entities/Note.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -20,7 +20,7 @@ import { Column, Entity, JoinColumn, ManyToOne, Unique } from "typeorm"; import { BaseClass } from "./BaseClass"; import { User } from "./User"; -@Entity("notes") +@Entity({name: "notes", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) @Unique(["owner", "target"]) export class Note extends BaseClass { @JoinColumn({ name: "owner_id" }) diff --git a/src/util/entities/RateLimit.ts b/src/util/entities/RateLimit.ts index 8d00f59a..836a8af5 100644 --- a/src/util/entities/RateLimit.ts +++ b/src/util/entities/RateLimit.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -19,7 +19,7 @@ import { Column, Entity } from "typeorm"; import { BaseClass } from "./BaseClass"; -@Entity("rate_limits") +@Entity({name: "rate_limits", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class RateLimit extends BaseClass { @Column() // no relation as it also executor_id: string; diff --git a/src/util/entities/ReadState.ts b/src/util/entities/ReadState.ts index 1b280d12..7d367ecc 100644 --- a/src/util/entities/ReadState.ts +++ b/src/util/entities/ReadState.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -32,7 +32,7 @@ import { User } from "./User"; // notification cursor and public read receipt need to be forwards-only (the former to prevent re-pinging when marked as unread, and the latter to be acceptable as a legal acknowledgement in criminal proceedings), and private read marker needs to be advance-rewind capable // public read receipt ≥ notification cursor ≥ private fully read marker -@Entity("read_states") +@Entity({name: "read_states", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) @Index(["channel_id", "user_id"], { unique: true }) export class ReadState extends BaseClass { @Column() diff --git a/src/util/entities/Recipient.ts b/src/util/entities/Recipient.ts index 797349e5..5e2cd800 100644 --- a/src/util/entities/Recipient.ts +++ b/src/util/entities/Recipient.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -19,7 +19,7 @@ import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { BaseClass } from "./BaseClass"; -@Entity("recipients") +@Entity({name: "recipients", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Recipient extends BaseClass { @Column() @RelationId((recipient: Recipient) => recipient.channel) diff --git a/src/util/entities/Relationship.ts b/src/util/entities/Relationship.ts index 740095c2..6472aaa1 100644 --- a/src/util/entities/Relationship.ts +++ b/src/util/entities/Relationship.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -34,7 +34,7 @@ export enum RelationshipType { friends = 1, } -@Entity("relationships") +@Entity({name: "relationships", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) @Index(["from_id", "to_id"], { unique: true }) export class Relationship extends BaseClass { @Column({}) diff --git a/src/util/entities/Role.ts b/src/util/entities/Role.ts index 2783a279..8a752047 100644 --- a/src/util/entities/Role.ts +++ b/src/util/entities/Role.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -21,7 +21,7 @@ import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { BaseClass } from "./BaseClass"; import { Guild } from "./Guild"; -@Entity("roles") +@Entity({name: "roles", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Role extends BaseClass { @Column() @RelationId((role: Role) => role.guild) diff --git a/src/util/entities/SecurityKey.ts b/src/util/entities/SecurityKey.ts index fd7a4c5e..652bbb39 100644 --- a/src/util/entities/SecurityKey.ts +++ b/src/util/entities/SecurityKey.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -20,7 +20,7 @@ import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { BaseClass } from "./BaseClass"; import { User } from "./User"; -@Entity("security_keys") +@Entity({name: "security_keys", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class SecurityKey extends BaseClass { @Column({ nullable: true }) @RelationId((key: SecurityKey) => key.user) diff --git a/src/util/entities/Session.ts b/src/util/entities/Session.ts index 15f8faa2..1fbdd2bb 100644 --- a/src/util/entities/Session.ts +++ b/src/util/entities/Session.ts @@ -24,7 +24,7 @@ import { Activity } from "../interfaces/Activity"; //TODO we need to remove all sessions on server start because if the server crashes without closing websockets it won't delete them -@Entity("sessions") +@Entity({name: "sessions", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Session extends BaseClass { @Column({ nullable: true }) @RelationId((session: Session) => session.user) diff --git a/src/util/entities/Sticker.ts b/src/util/entities/Sticker.ts index e9294f92..95eeb32a 100644 --- a/src/util/entities/Sticker.ts +++ b/src/util/entities/Sticker.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -33,7 +33,7 @@ export enum StickerFormatType { LOTTIE = 3, } -@Entity("stickers") +@Entity({name: "stickers", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Sticker extends BaseClass { @Column() name: string; diff --git a/src/util/entities/StickerPack.ts b/src/util/entities/StickerPack.ts index 61ab1287..257fb6e4 100644 --- a/src/util/entities/StickerPack.ts +++ b/src/util/entities/StickerPack.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -27,7 +27,7 @@ import { import { Sticker } from "."; import { BaseClass } from "./BaseClass"; -@Entity("sticker_packs") +@Entity({name: "sticker_packs", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class StickerPack extends BaseClass { @Column() name: string; diff --git a/src/util/entities/Team.ts b/src/util/entities/Team.ts index 7bedc4af..e98344c8 100644 --- a/src/util/entities/Team.ts +++ b/src/util/entities/Team.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -28,7 +28,7 @@ import { BaseClass } from "./BaseClass"; import { TeamMember } from "./TeamMember"; import { User } from "./User"; -@Entity("teams") +@Entity({name: "teams", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Team extends BaseClass { @Column({ nullable: true }) icon?: string; diff --git a/src/util/entities/TeamMember.ts b/src/util/entities/TeamMember.ts index 539da957..54c90a5a 100644 --- a/src/util/entities/TeamMember.ts +++ b/src/util/entities/TeamMember.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -25,7 +25,7 @@ export enum TeamMemberState { ACCEPTED = 2, } -@Entity("team_members") +@Entity({name: "team_members", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class TeamMember extends BaseClass { @Column({ type: "int" }) membership_state: TeamMemberState; diff --git a/src/util/entities/Template.ts b/src/util/entities/Template.ts index c417f1f0..4cf98651 100644 --- a/src/util/entities/Template.ts +++ b/src/util/entities/Template.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -21,7 +21,7 @@ import { BaseClass } from "./BaseClass"; import { Guild } from "./Guild"; import { User } from "./User"; -@Entity("templates") +@Entity({name: "templates", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Template extends BaseClass { @Column({ unique: true }) code: string; diff --git a/src/util/entities/User.ts b/src/util/entities/User.ts index b299bcfc..e2290d0b 100644 --- a/src/util/entities/User.ts +++ b/src/util/entities/User.ts @@ -86,7 +86,7 @@ export interface UserPrivate extends Pick { locale: string; } -@Entity("users") +@Entity({name: "users", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class User extends BaseClass { @Column() username: string; // username max length 32, min 2 (should be configurable) diff --git a/src/util/entities/UserSettings.ts b/src/util/entities/UserSettings.ts index d3efe79b..0df2ff86 100644 --- a/src/util/entities/UserSettings.ts +++ b/src/util/entities/UserSettings.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -19,7 +19,7 @@ import { Column, Entity, PrimaryGeneratedColumn } from "typeorm"; import { BaseClassWithoutId } from "./BaseClass"; -@Entity("user_settings") +@Entity({name: "user_settings", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class UserSettings extends BaseClassWithoutId { @PrimaryGeneratedColumn() index: string; diff --git a/src/util/entities/ValidRegistrationTokens.ts b/src/util/entities/ValidRegistrationTokens.ts index 94fd1542..77da100a 100644 --- a/src/util/entities/ValidRegistrationTokens.ts +++ b/src/util/entities/ValidRegistrationTokens.ts @@ -1,24 +1,24 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ import { BaseEntity, Column, Entity, PrimaryColumn } from "typeorm"; -@Entity("valid_registration_tokens") +@Entity({name: "valid_registration_tokens", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class ValidRegistrationToken extends BaseEntity { @PrimaryColumn() token: string; diff --git a/src/util/entities/VoiceState.ts b/src/util/entities/VoiceState.ts index 84b0ca71..3678fa1a 100644 --- a/src/util/entities/VoiceState.ts +++ b/src/util/entities/VoiceState.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -24,7 +24,7 @@ import { Member } from "./Member"; import { User } from "./User"; //https://gist.github.com/vassjozsef/e482c65df6ee1facaace8b3c9ff66145#file-voice_state-ex -@Entity("voice_states") +@Entity({name: "voice_states", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class VoiceState extends BaseClass { @Column({ nullable: true }) @RelationId((voice_state: VoiceState) => voice_state.guild) diff --git a/src/util/entities/Webhook.ts b/src/util/entities/Webhook.ts index 9539d6e8..5d50333e 100644 --- a/src/util/entities/Webhook.ts +++ b/src/util/entities/Webhook.ts @@ -29,7 +29,7 @@ export enum WebhookType { Application = 3, } -@Entity("webhooks") +@Entity({name: "webhooks", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) export class Webhook extends BaseClass { @Column({ type: "int" }) type: WebhookType; From 99c75d3ae42180d96552ed1be363f65412ebb21b Mon Sep 17 00:00:00 2001 From: TomatoCake <60300461+DEVTomatoCake@users.noreply.github.com> Date: Sat, 17 Aug 2024 14:54:17 +0200 Subject: [PATCH 2/3] Run prettier for @Entity() --- src/util/entities/Application.ts | 5 ++++- src/util/entities/Attachment.ts | 5 ++++- src/util/entities/AuditLog.ts | 5 ++++- src/util/entities/BackupCodes.ts | 5 ++++- src/util/entities/Badge.ts | 5 ++++- src/util/entities/Ban.ts | 5 ++++- src/util/entities/Categories.ts | 5 ++++- src/util/entities/Channel.ts | 5 ++++- src/util/entities/ClientRelease.ts | 5 ++++- src/util/entities/Config.ts | 5 ++++- src/util/entities/ConnectedAccount.ts | 5 ++++- src/util/entities/ConnectionConfigEntity.ts | 5 ++++- src/util/entities/EmbedCache.ts | 5 ++++- src/util/entities/Emoji.ts | 5 ++++- src/util/entities/Encryption.ts | 5 ++++- src/util/entities/Guild.ts | 5 ++++- src/util/entities/Invite.ts | 5 ++++- src/util/entities/Member.ts | 5 ++++- src/util/entities/Message.ts | 5 ++++- src/util/entities/Migration.ts | 5 ++++- src/util/entities/Note.ts | 5 ++++- src/util/entities/RateLimit.ts | 5 ++++- src/util/entities/ReadState.ts | 5 ++++- src/util/entities/Recipient.ts | 5 ++++- src/util/entities/Relationship.ts | 5 ++++- src/util/entities/Role.ts | 5 ++++- src/util/entities/SecurityKey.ts | 5 ++++- src/util/entities/Session.ts | 5 ++++- src/util/entities/Sticker.ts | 5 ++++- src/util/entities/StickerPack.ts | 5 ++++- src/util/entities/Team.ts | 5 ++++- src/util/entities/TeamMember.ts | 5 ++++- src/util/entities/Template.ts | 5 ++++- src/util/entities/User.ts | 5 ++++- src/util/entities/UserSettings.ts | 5 ++++- src/util/entities/ValidRegistrationTokens.ts | 5 ++++- src/util/entities/VoiceState.ts | 5 ++++- src/util/entities/Webhook.ts | 5 ++++- 38 files changed, 152 insertions(+), 38 deletions(-) diff --git a/src/util/entities/Application.ts b/src/util/entities/Application.ts index 1ecd4475..c60a6547 100644 --- a/src/util/entities/Application.ts +++ b/src/util/entities/Application.ts @@ -21,7 +21,10 @@ import { BaseClass } from "./BaseClass"; import { Team } from "./Team"; import { User } from "./User"; -@Entity({name: "applications", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "applications", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Application extends BaseClass { @Column() name: string; diff --git a/src/util/entities/Attachment.ts b/src/util/entities/Attachment.ts index 68d8aa54..f5124154 100644 --- a/src/util/entities/Attachment.ts +++ b/src/util/entities/Attachment.ts @@ -28,7 +28,10 @@ import { URL } from "url"; import { deleteFile } from "../util/cdn"; import { BaseClass } from "./BaseClass"; -@Entity({name: "attachments", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "attachments", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Attachment extends BaseClass { @Column() filename: string; // name of file attached diff --git a/src/util/entities/AuditLog.ts b/src/util/entities/AuditLog.ts index 6ac2802b..b8a02d75 100644 --- a/src/util/entities/AuditLog.ts +++ b/src/util/entities/AuditLog.ts @@ -111,7 +111,10 @@ export enum AuditLogEvents { ROUTE_UPDATE = 226, } -@Entity({name: "audit_logs", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "audit_logs", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class AuditLog extends BaseClass { @JoinColumn({ name: "target_id" }) @ManyToOne(() => User) diff --git a/src/util/entities/BackupCodes.ts b/src/util/entities/BackupCodes.ts index 638bcd04..b4c6f395 100644 --- a/src/util/entities/BackupCodes.ts +++ b/src/util/entities/BackupCodes.ts @@ -21,7 +21,10 @@ import { BaseClass } from "./BaseClass"; import { User } from "./User"; import crypto from "crypto"; -@Entity({name: "backup_codes", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "backup_codes", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class BackupCode extends BaseClass { @JoinColumn({ name: "user_id" }) @ManyToOne(() => User, { onDelete: "CASCADE" }) diff --git a/src/util/entities/Badge.ts b/src/util/entities/Badge.ts index d403c655..e716525a 100644 --- a/src/util/entities/Badge.ts +++ b/src/util/entities/Badge.ts @@ -19,7 +19,10 @@ import { Column, Entity } from "typeorm"; import { BaseClassWithoutId } from "./BaseClass"; -@Entity({name: "badges", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "badges", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Badge extends BaseClassWithoutId { @Column({ primary: true }) id: string; diff --git a/src/util/entities/Ban.ts b/src/util/entities/Ban.ts index 2535f3e3..407569fc 100644 --- a/src/util/entities/Ban.ts +++ b/src/util/entities/Ban.ts @@ -21,7 +21,10 @@ import { BaseClass } from "./BaseClass"; import { Guild } from "./Guild"; import { User } from "./User"; -@Entity({name: "bans", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "bans", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Ban extends BaseClass { @Column({ nullable: true }) @RelationId((ban: Ban) => ban.user) diff --git a/src/util/entities/Categories.ts b/src/util/entities/Categories.ts index d3eada5a..9fa64335 100644 --- a/src/util/entities/Categories.ts +++ b/src/util/entities/Categories.ts @@ -33,7 +33,10 @@ import { BaseClassWithoutId, PrimaryIdColumn } from "./BaseClass"; // }] // Also populate discord default categories -@Entity({name: "categories", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "categories", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Categories extends BaseClassWithoutId { // Not using snowflake diff --git a/src/util/entities/Channel.ts b/src/util/entities/Channel.ts index e3856e8d..66eaa0eb 100644 --- a/src/util/entities/Channel.ts +++ b/src/util/entities/Channel.ts @@ -69,7 +69,10 @@ export enum ChannelType { UNHANDLED = 255, // unhandled unowned pass-through channel type } -@Entity({name: "channels", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "channels", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Channel extends BaseClass { @Column() created_at: Date; diff --git a/src/util/entities/ClientRelease.ts b/src/util/entities/ClientRelease.ts index 2282b1ff..f6577b2c 100644 --- a/src/util/entities/ClientRelease.ts +++ b/src/util/entities/ClientRelease.ts @@ -19,7 +19,10 @@ import { Column, Entity } from "typeorm"; import { BaseClass } from "./BaseClass"; -@Entity({name: "client_release", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "client_release", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Release extends BaseClass { @Column() name: string; diff --git a/src/util/entities/Config.ts b/src/util/entities/Config.ts index efe8c563..9a3fd55e 100644 --- a/src/util/entities/Config.ts +++ b/src/util/entities/Config.ts @@ -19,7 +19,10 @@ import { Column, Entity } from "typeorm"; import { BaseClassWithoutId, PrimaryIdColumn } from "./BaseClass"; -@Entity({name: "config", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "config", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class ConfigEntity extends BaseClassWithoutId { @PrimaryIdColumn() key: string; diff --git a/src/util/entities/ConnectedAccount.ts b/src/util/entities/ConnectedAccount.ts index 78dec432..f0ee62fe 100644 --- a/src/util/entities/ConnectedAccount.ts +++ b/src/util/entities/ConnectedAccount.ts @@ -26,7 +26,10 @@ export type PublicConnectedAccount = Pick< "name" | "type" | "verified" >; -@Entity({name: "connected_accounts", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "connected_accounts", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class ConnectedAccount extends BaseClass { @Column() external_id: string; diff --git a/src/util/entities/ConnectionConfigEntity.ts b/src/util/entities/ConnectionConfigEntity.ts index 0c367c1c..19d11627 100644 --- a/src/util/entities/ConnectionConfigEntity.ts +++ b/src/util/entities/ConnectionConfigEntity.ts @@ -19,7 +19,10 @@ import { Column, Entity } from "typeorm"; import { BaseClassWithoutId, PrimaryIdColumn } from "./BaseClass"; -@Entity({name: "connection_config", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "connection_config", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class ConnectionConfigEntity extends BaseClassWithoutId { @PrimaryIdColumn() key: string; diff --git a/src/util/entities/EmbedCache.ts b/src/util/entities/EmbedCache.ts index f2dcd893..853fa73d 100644 --- a/src/util/entities/EmbedCache.ts +++ b/src/util/entities/EmbedCache.ts @@ -20,7 +20,10 @@ import { BaseClass } from "./BaseClass"; import { Entity, Column } from "typeorm"; import { Embed } from "./Message"; -@Entity({name: "embed_cache", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "embed_cache", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class EmbedCache extends BaseClass { @Column() url: string; diff --git a/src/util/entities/Emoji.ts b/src/util/entities/Emoji.ts index 65d54d5e..ac44b8f7 100644 --- a/src/util/entities/Emoji.ts +++ b/src/util/entities/Emoji.ts @@ -21,7 +21,10 @@ import { User } from "."; import { BaseClass } from "./BaseClass"; import { Guild } from "./Guild"; -@Entity({name: "emojis", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "emojis", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Emoji extends BaseClass { @Column() animated: boolean; diff --git a/src/util/entities/Encryption.ts b/src/util/entities/Encryption.ts index 97f9052c..3ef933fb 100644 --- a/src/util/entities/Encryption.ts +++ b/src/util/entities/Encryption.ts @@ -19,7 +19,10 @@ import { Column, Entity } from "typeorm"; import { BaseClass } from "./BaseClass"; -@Entity({name: "security_settings", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "security_settings", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class SecuritySettings extends BaseClass { @Column({ nullable: true }) guild_id: string; diff --git a/src/util/entities/Guild.ts b/src/util/entities/Guild.ts index 7a918220..8517ca36 100644 --- a/src/util/entities/Guild.ts +++ b/src/util/entities/Guild.ts @@ -66,7 +66,10 @@ export const PublicGuildRelations = [ // "members.user", ]; -@Entity({name: "guilds", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "guilds", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Guild extends BaseClass { @Column({ nullable: true }) @RelationId((guild: Guild) => guild.afk_channel) diff --git a/src/util/entities/Invite.ts b/src/util/entities/Invite.ts index a7b17a8a..6ab75302 100644 --- a/src/util/entities/Invite.ts +++ b/src/util/entities/Invite.ts @@ -25,7 +25,10 @@ import { User } from "./User"; export const PublicInviteRelation = ["inviter", "guild", "channel"]; -@Entity({name: "invites", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "invites", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Invite extends BaseClassWithoutId { @PrimaryIdColumn() code: string; diff --git a/src/util/entities/Member.ts b/src/util/entities/Member.ts index f43d5a92..0ca1a15b 100644 --- a/src/util/entities/Member.ts +++ b/src/util/entities/Member.ts @@ -65,7 +65,10 @@ export const MemberPrivateProjection: (keyof Member)[] = [ "user", ]; -@Entity({name: "members", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "members", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) @Index(["id", "guild_id"], { unique: true }) export class Member extends BaseClassWithoutId { @PrimaryGeneratedColumn() diff --git a/src/util/entities/Message.ts b/src/util/entities/Message.ts index f340bbc0..ba6b1ac7 100644 --- a/src/util/entities/Message.ts +++ b/src/util/entities/Message.ts @@ -68,7 +68,10 @@ export enum MessageType { UNHANDLED = 255, } -@Entity({name: "messages", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "messages", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) @Index(["channel_id", "id"], { unique: true }) export class Message extends BaseClass { @Column({ nullable: true }) diff --git a/src/util/entities/Migration.ts b/src/util/entities/Migration.ts index 742e3621..cd572c03 100644 --- a/src/util/entities/Migration.ts +++ b/src/util/entities/Migration.ts @@ -30,7 +30,10 @@ export const PrimaryIdAutoGenerated = process.env.DATABASE?.startsWith( ? ObjectIdColumn : PrimaryGeneratedColumn; -@Entity({name: "migrations", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "migrations", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Migration extends BaseEntity { @PrimaryIdAutoGenerated() id: number; diff --git a/src/util/entities/Note.ts b/src/util/entities/Note.ts index d220367f..4821d2d9 100644 --- a/src/util/entities/Note.ts +++ b/src/util/entities/Note.ts @@ -20,7 +20,10 @@ import { Column, Entity, JoinColumn, ManyToOne, Unique } from "typeorm"; import { BaseClass } from "./BaseClass"; import { User } from "./User"; -@Entity({name: "notes", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "notes", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) @Unique(["owner", "target"]) export class Note extends BaseClass { @JoinColumn({ name: "owner_id" }) diff --git a/src/util/entities/RateLimit.ts b/src/util/entities/RateLimit.ts index 836a8af5..f0f597e0 100644 --- a/src/util/entities/RateLimit.ts +++ b/src/util/entities/RateLimit.ts @@ -19,7 +19,10 @@ import { Column, Entity } from "typeorm"; import { BaseClass } from "./BaseClass"; -@Entity({name: "rate_limits", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "rate_limits", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class RateLimit extends BaseClass { @Column() // no relation as it also executor_id: string; diff --git a/src/util/entities/ReadState.ts b/src/util/entities/ReadState.ts index 7d367ecc..8e555de6 100644 --- a/src/util/entities/ReadState.ts +++ b/src/util/entities/ReadState.ts @@ -32,7 +32,10 @@ import { User } from "./User"; // notification cursor and public read receipt need to be forwards-only (the former to prevent re-pinging when marked as unread, and the latter to be acceptable as a legal acknowledgement in criminal proceedings), and private read marker needs to be advance-rewind capable // public read receipt ≥ notification cursor ≥ private fully read marker -@Entity({name: "read_states", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "read_states", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) @Index(["channel_id", "user_id"], { unique: true }) export class ReadState extends BaseClass { @Column() diff --git a/src/util/entities/Recipient.ts b/src/util/entities/Recipient.ts index 5e2cd800..fecb051f 100644 --- a/src/util/entities/Recipient.ts +++ b/src/util/entities/Recipient.ts @@ -19,7 +19,10 @@ import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { BaseClass } from "./BaseClass"; -@Entity({name: "recipients", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "recipients", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Recipient extends BaseClass { @Column() @RelationId((recipient: Recipient) => recipient.channel) diff --git a/src/util/entities/Relationship.ts b/src/util/entities/Relationship.ts index 6472aaa1..3aa057e7 100644 --- a/src/util/entities/Relationship.ts +++ b/src/util/entities/Relationship.ts @@ -34,7 +34,10 @@ export enum RelationshipType { friends = 1, } -@Entity({name: "relationships", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "relationships", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) @Index(["from_id", "to_id"], { unique: true }) export class Relationship extends BaseClass { @Column({}) diff --git a/src/util/entities/Role.ts b/src/util/entities/Role.ts index 8a752047..f4509827 100644 --- a/src/util/entities/Role.ts +++ b/src/util/entities/Role.ts @@ -21,7 +21,10 @@ import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { BaseClass } from "./BaseClass"; import { Guild } from "./Guild"; -@Entity({name: "roles", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "roles", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Role extends BaseClass { @Column() @RelationId((role: Role) => role.guild) diff --git a/src/util/entities/SecurityKey.ts b/src/util/entities/SecurityKey.ts index 652bbb39..f0b156c9 100644 --- a/src/util/entities/SecurityKey.ts +++ b/src/util/entities/SecurityKey.ts @@ -20,7 +20,10 @@ import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { BaseClass } from "./BaseClass"; import { User } from "./User"; -@Entity({name: "security_keys", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "security_keys", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class SecurityKey extends BaseClass { @Column({ nullable: true }) @RelationId((key: SecurityKey) => key.user) diff --git a/src/util/entities/Session.ts b/src/util/entities/Session.ts index 1fbdd2bb..b7657d97 100644 --- a/src/util/entities/Session.ts +++ b/src/util/entities/Session.ts @@ -24,7 +24,10 @@ import { Activity } from "../interfaces/Activity"; //TODO we need to remove all sessions on server start because if the server crashes without closing websockets it won't delete them -@Entity({name: "sessions", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "sessions", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Session extends BaseClass { @Column({ nullable: true }) @RelationId((session: Session) => session.user) diff --git a/src/util/entities/Sticker.ts b/src/util/entities/Sticker.ts index 95eeb32a..5b17c9b8 100644 --- a/src/util/entities/Sticker.ts +++ b/src/util/entities/Sticker.ts @@ -33,7 +33,10 @@ export enum StickerFormatType { LOTTIE = 3, } -@Entity({name: "stickers", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "stickers", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Sticker extends BaseClass { @Column() name: string; diff --git a/src/util/entities/StickerPack.ts b/src/util/entities/StickerPack.ts index 257fb6e4..5f7bf671 100644 --- a/src/util/entities/StickerPack.ts +++ b/src/util/entities/StickerPack.ts @@ -27,7 +27,10 @@ import { import { Sticker } from "."; import { BaseClass } from "./BaseClass"; -@Entity({name: "sticker_packs", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "sticker_packs", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class StickerPack extends BaseClass { @Column() name: string; diff --git a/src/util/entities/Team.ts b/src/util/entities/Team.ts index e98344c8..7c804260 100644 --- a/src/util/entities/Team.ts +++ b/src/util/entities/Team.ts @@ -28,7 +28,10 @@ import { BaseClass } from "./BaseClass"; import { TeamMember } from "./TeamMember"; import { User } from "./User"; -@Entity({name: "teams", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "teams", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Team extends BaseClass { @Column({ nullable: true }) icon?: string; diff --git a/src/util/entities/TeamMember.ts b/src/util/entities/TeamMember.ts index 54c90a5a..5b82d30e 100644 --- a/src/util/entities/TeamMember.ts +++ b/src/util/entities/TeamMember.ts @@ -25,7 +25,10 @@ export enum TeamMemberState { ACCEPTED = 2, } -@Entity({name: "team_members", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "team_members", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class TeamMember extends BaseClass { @Column({ type: "int" }) membership_state: TeamMemberState; diff --git a/src/util/entities/Template.ts b/src/util/entities/Template.ts index 4cf98651..3d5c1764 100644 --- a/src/util/entities/Template.ts +++ b/src/util/entities/Template.ts @@ -21,7 +21,10 @@ import { BaseClass } from "./BaseClass"; import { Guild } from "./Guild"; import { User } from "./User"; -@Entity({name: "templates", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "templates", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Template extends BaseClass { @Column({ unique: true }) code: string; diff --git a/src/util/entities/User.ts b/src/util/entities/User.ts index e2290d0b..43c4aea6 100644 --- a/src/util/entities/User.ts +++ b/src/util/entities/User.ts @@ -86,7 +86,10 @@ export interface UserPrivate extends Pick { locale: string; } -@Entity({name: "users", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "users", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class User extends BaseClass { @Column() username: string; // username max length 32, min 2 (should be configurable) diff --git a/src/util/entities/UserSettings.ts b/src/util/entities/UserSettings.ts index 0df2ff86..1f27630d 100644 --- a/src/util/entities/UserSettings.ts +++ b/src/util/entities/UserSettings.ts @@ -19,7 +19,10 @@ import { Column, Entity, PrimaryGeneratedColumn } from "typeorm"; import { BaseClassWithoutId } from "./BaseClass"; -@Entity({name: "user_settings", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "user_settings", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class UserSettings extends BaseClassWithoutId { @PrimaryGeneratedColumn() index: string; diff --git a/src/util/entities/ValidRegistrationTokens.ts b/src/util/entities/ValidRegistrationTokens.ts index 77da100a..737adfc1 100644 --- a/src/util/entities/ValidRegistrationTokens.ts +++ b/src/util/entities/ValidRegistrationTokens.ts @@ -18,7 +18,10 @@ import { BaseEntity, Column, Entity, PrimaryColumn } from "typeorm"; -@Entity({name: "valid_registration_tokens", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "valid_registration_tokens", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class ValidRegistrationToken extends BaseEntity { @PrimaryColumn() token: string; diff --git a/src/util/entities/VoiceState.ts b/src/util/entities/VoiceState.ts index 3678fa1a..de0a52d3 100644 --- a/src/util/entities/VoiceState.ts +++ b/src/util/entities/VoiceState.ts @@ -24,7 +24,10 @@ import { Member } from "./Member"; import { User } from "./User"; //https://gist.github.com/vassjozsef/e482c65df6ee1facaace8b3c9ff66145#file-voice_state-ex -@Entity({name: "voice_states", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "voice_states", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class VoiceState extends BaseClass { @Column({ nullable: true }) @RelationId((voice_state: VoiceState) => voice_state.guild) diff --git a/src/util/entities/Webhook.ts b/src/util/entities/Webhook.ts index 5d50333e..7005bf64 100644 --- a/src/util/entities/Webhook.ts +++ b/src/util/entities/Webhook.ts @@ -29,7 +29,10 @@ export enum WebhookType { Application = 3, } -@Entity({name: "webhooks", engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"}) +@Entity({ + name: "webhooks", + engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", +}) export class Webhook extends BaseClass { @Column({ type: "int" }) type: WebhookType; From dfbbef3637af1e3777c200d0c2b05757404dd2f5 Mon Sep 17 00:00:00 2001 From: TomatoCake <60300461+DEVTomatoCake@users.noreply.github.com> Date: Sun, 18 Aug 2024 17:58:24 +0200 Subject: [PATCH 3/3] "engine" const value shared --- src/util/entities/Application.ts | 3 ++- src/util/entities/Attachment.ts | 3 ++- src/util/entities/AuditLog.ts | 3 ++- src/util/entities/BackupCodes.ts | 3 ++- src/util/entities/Badge.ts | 3 ++- src/util/entities/Ban.ts | 3 ++- src/util/entities/Categories.ts | 3 ++- src/util/entities/Channel.ts | 3 ++- src/util/entities/ClientRelease.ts | 3 ++- src/util/entities/Config.ts | 3 ++- src/util/entities/ConnectedAccount.ts | 3 ++- src/util/entities/ConnectionConfigEntity.ts | 3 ++- src/util/entities/EmbedCache.ts | 3 ++- src/util/entities/Emoji.ts | 3 ++- src/util/entities/Encryption.ts | 3 ++- src/util/entities/Guild.ts | 3 ++- src/util/entities/Invite.ts | 3 ++- src/util/entities/Member.ts | 3 ++- src/util/entities/Message.ts | 3 ++- src/util/entities/Migration.ts | 3 ++- src/util/entities/Note.ts | 3 ++- src/util/entities/RateLimit.ts | 3 ++- src/util/entities/ReadState.ts | 3 ++- src/util/entities/Recipient.ts | 3 ++- src/util/entities/Relationship.ts | 3 ++- src/util/entities/Role.ts | 3 ++- src/util/entities/SecurityKey.ts | 3 ++- src/util/entities/Session.ts | 3 ++- src/util/entities/Sticker.ts | 3 ++- src/util/entities/StickerPack.ts | 3 ++- src/util/entities/Team.ts | 3 ++- src/util/entities/TeamMember.ts | 3 ++- src/util/entities/Template.ts | 3 ++- src/util/entities/User.ts | 3 ++- src/util/entities/UserSettings.ts | 3 ++- src/util/entities/ValidRegistrationTokens.ts | 3 ++- src/util/entities/VoiceState.ts | 3 ++- src/util/entities/Webhook.ts | 3 ++- src/util/util/Database.ts | 9 ++++++--- 39 files changed, 82 insertions(+), 41 deletions(-) diff --git a/src/util/entities/Application.ts b/src/util/entities/Application.ts index c60a6547..4ed75f27 100644 --- a/src/util/entities/Application.ts +++ b/src/util/entities/Application.ts @@ -20,10 +20,11 @@ import { Column, Entity, JoinColumn, ManyToOne, OneToOne } from "typeorm"; import { BaseClass } from "./BaseClass"; import { Team } from "./Team"; import { User } from "./User"; +import { dbEngine } from "../util/Database"; @Entity({ name: "applications", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Application extends BaseClass { @Column() diff --git a/src/util/entities/Attachment.ts b/src/util/entities/Attachment.ts index f5124154..e489609d 100644 --- a/src/util/entities/Attachment.ts +++ b/src/util/entities/Attachment.ts @@ -27,10 +27,11 @@ import { import { URL } from "url"; import { deleteFile } from "../util/cdn"; import { BaseClass } from "./BaseClass"; +import { dbEngine } from "../util/Database"; @Entity({ name: "attachments", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Attachment extends BaseClass { @Column() diff --git a/src/util/entities/AuditLog.ts b/src/util/entities/AuditLog.ts index b8a02d75..49c836c3 100644 --- a/src/util/entities/AuditLog.ts +++ b/src/util/entities/AuditLog.ts @@ -20,6 +20,7 @@ import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { BaseClass } from "./BaseClass"; import { ChannelPermissionOverwrite } from "./Channel"; import { User } from "./User"; +import { dbEngine } from "../util/Database"; export enum AuditLogEvents { // guild level @@ -113,7 +114,7 @@ export enum AuditLogEvents { @Entity({ name: "audit_logs", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class AuditLog extends BaseClass { @JoinColumn({ name: "target_id" }) diff --git a/src/util/entities/BackupCodes.ts b/src/util/entities/BackupCodes.ts index b4c6f395..9afc181a 100644 --- a/src/util/entities/BackupCodes.ts +++ b/src/util/entities/BackupCodes.ts @@ -20,10 +20,11 @@ import { Column, Entity, JoinColumn, ManyToOne } from "typeorm"; import { BaseClass } from "./BaseClass"; import { User } from "./User"; import crypto from "crypto"; +import { dbEngine } from "../util/Database"; @Entity({ name: "backup_codes", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class BackupCode extends BaseClass { @JoinColumn({ name: "user_id" }) diff --git a/src/util/entities/Badge.ts b/src/util/entities/Badge.ts index e716525a..4b98006a 100644 --- a/src/util/entities/Badge.ts +++ b/src/util/entities/Badge.ts @@ -18,10 +18,11 @@ import { Column, Entity } from "typeorm"; import { BaseClassWithoutId } from "./BaseClass"; +import { dbEngine } from "../util/Database"; @Entity({ name: "badges", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Badge extends BaseClassWithoutId { @Column({ primary: true }) diff --git a/src/util/entities/Ban.ts b/src/util/entities/Ban.ts index 407569fc..ed5f47e1 100644 --- a/src/util/entities/Ban.ts +++ b/src/util/entities/Ban.ts @@ -20,10 +20,11 @@ import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { BaseClass } from "./BaseClass"; import { Guild } from "./Guild"; import { User } from "./User"; +import { dbEngine } from "../util/Database"; @Entity({ name: "bans", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Ban extends BaseClass { @Column({ nullable: true }) diff --git a/src/util/entities/Categories.ts b/src/util/entities/Categories.ts index 9fa64335..990e7fdd 100644 --- a/src/util/entities/Categories.ts +++ b/src/util/entities/Categories.ts @@ -18,6 +18,7 @@ import { Column, Entity } from "typeorm"; import { BaseClassWithoutId, PrimaryIdColumn } from "./BaseClass"; +import { dbEngine } from "../util/Database"; // TODO: categories: // [{ @@ -35,7 +36,7 @@ import { BaseClassWithoutId, PrimaryIdColumn } from "./BaseClass"; @Entity({ name: "categories", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Categories extends BaseClassWithoutId { // Not using snowflake diff --git a/src/util/entities/Channel.ts b/src/util/entities/Channel.ts index 66eaa0eb..3b841c8f 100644 --- a/src/util/entities/Channel.ts +++ b/src/util/entities/Channel.ts @@ -44,6 +44,7 @@ import { Recipient } from "./Recipient"; import { PublicUserProjection, User } from "./User"; import { VoiceState } from "./VoiceState"; import { Webhook } from "./Webhook"; +import { dbEngine } from "../util/Database"; export enum ChannelType { GUILD_TEXT = 0, // a text channel within a guild @@ -71,7 +72,7 @@ export enum ChannelType { @Entity({ name: "channels", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Channel extends BaseClass { @Column() diff --git a/src/util/entities/ClientRelease.ts b/src/util/entities/ClientRelease.ts index f6577b2c..aa697939 100644 --- a/src/util/entities/ClientRelease.ts +++ b/src/util/entities/ClientRelease.ts @@ -18,10 +18,11 @@ import { Column, Entity } from "typeorm"; import { BaseClass } from "./BaseClass"; +import { dbEngine } from "../util/Database"; @Entity({ name: "client_release", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Release extends BaseClass { @Column() diff --git a/src/util/entities/Config.ts b/src/util/entities/Config.ts index 9a3fd55e..8d725a12 100644 --- a/src/util/entities/Config.ts +++ b/src/util/entities/Config.ts @@ -18,10 +18,11 @@ import { Column, Entity } from "typeorm"; import { BaseClassWithoutId, PrimaryIdColumn } from "./BaseClass"; +import { dbEngine } from "../util/Database"; @Entity({ name: "config", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class ConfigEntity extends BaseClassWithoutId { @PrimaryIdColumn() diff --git a/src/util/entities/ConnectedAccount.ts b/src/util/entities/ConnectedAccount.ts index f0ee62fe..0c9eb402 100644 --- a/src/util/entities/ConnectedAccount.ts +++ b/src/util/entities/ConnectedAccount.ts @@ -20,6 +20,7 @@ import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { ConnectedAccountTokenData } from "../interfaces"; import { BaseClass } from "./BaseClass"; import { User } from "./User"; +import { dbEngine } from "../util/Database"; export type PublicConnectedAccount = Pick< ConnectedAccount, @@ -28,7 +29,7 @@ export type PublicConnectedAccount = Pick< @Entity({ name: "connected_accounts", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class ConnectedAccount extends BaseClass { @Column() diff --git a/src/util/entities/ConnectionConfigEntity.ts b/src/util/entities/ConnectionConfigEntity.ts index 19d11627..9d4dde60 100644 --- a/src/util/entities/ConnectionConfigEntity.ts +++ b/src/util/entities/ConnectionConfigEntity.ts @@ -18,10 +18,11 @@ import { Column, Entity } from "typeorm"; import { BaseClassWithoutId, PrimaryIdColumn } from "./BaseClass"; +import { dbEngine } from "../util/Database"; @Entity({ name: "connection_config", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class ConnectionConfigEntity extends BaseClassWithoutId { @PrimaryIdColumn() diff --git a/src/util/entities/EmbedCache.ts b/src/util/entities/EmbedCache.ts index 853fa73d..8d68b0ac 100644 --- a/src/util/entities/EmbedCache.ts +++ b/src/util/entities/EmbedCache.ts @@ -19,10 +19,11 @@ import { BaseClass } from "./BaseClass"; import { Entity, Column } from "typeorm"; import { Embed } from "./Message"; +import { dbEngine } from "../util/Database"; @Entity({ name: "embed_cache", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class EmbedCache extends BaseClass { @Column() diff --git a/src/util/entities/Emoji.ts b/src/util/entities/Emoji.ts index ac44b8f7..198d5faf 100644 --- a/src/util/entities/Emoji.ts +++ b/src/util/entities/Emoji.ts @@ -20,10 +20,11 @@ import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { User } from "."; import { BaseClass } from "./BaseClass"; import { Guild } from "./Guild"; +import { dbEngine } from "../util/Database"; @Entity({ name: "emojis", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Emoji extends BaseClass { @Column() diff --git a/src/util/entities/Encryption.ts b/src/util/entities/Encryption.ts index 3ef933fb..21e77b48 100644 --- a/src/util/entities/Encryption.ts +++ b/src/util/entities/Encryption.ts @@ -18,10 +18,11 @@ import { Column, Entity } from "typeorm"; import { BaseClass } from "./BaseClass"; +import { dbEngine } from "../util/Database"; @Entity({ name: "security_settings", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class SecuritySettings extends BaseClass { @Column({ nullable: true }) diff --git a/src/util/entities/Guild.ts b/src/util/entities/Guild.ts index 8517ca36..4e49ce9b 100644 --- a/src/util/entities/Guild.ts +++ b/src/util/entities/Guild.ts @@ -37,6 +37,7 @@ import { Template } from "./Template"; import { User } from "./User"; import { VoiceState } from "./VoiceState"; import { Webhook } from "./Webhook"; +import { dbEngine } from "../util/Database"; // TODO: application_command_count, application_command_counts: {1: 0, 2: 0, 3: 0} // TODO: guild_scheduled_events @@ -68,7 +69,7 @@ export const PublicGuildRelations = [ @Entity({ name: "guilds", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Guild extends BaseClass { @Column({ nullable: true }) diff --git a/src/util/entities/Invite.ts b/src/util/entities/Invite.ts index 6ab75302..e1b8cabd 100644 --- a/src/util/entities/Invite.ts +++ b/src/util/entities/Invite.ts @@ -22,12 +22,13 @@ import { Channel } from "./Channel"; import { Guild } from "./Guild"; import { Member } from "./Member"; import { User } from "./User"; +import { dbEngine } from "../util/Database"; export const PublicInviteRelation = ["inviter", "guild", "channel"]; @Entity({ name: "invites", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Invite extends BaseClassWithoutId { @PrimaryIdColumn() diff --git a/src/util/entities/Member.ts b/src/util/entities/Member.ts index 0ca1a15b..62ab9398 100644 --- a/src/util/entities/Member.ts +++ b/src/util/entities/Member.ts @@ -48,6 +48,7 @@ import { Guild } from "./Guild"; import { Message } from "./Message"; import { Role } from "./Role"; import { PublicUser, User } from "./User"; +import { dbEngine } from "../util/Database"; export const MemberPrivateProjection: (keyof Member)[] = [ "id", @@ -67,7 +68,7 @@ export const MemberPrivateProjection: (keyof Member)[] = [ @Entity({ name: "members", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) @Index(["id", "guild_id"], { unique: true }) export class Member extends BaseClassWithoutId { diff --git a/src/util/entities/Message.ts b/src/util/entities/Message.ts index ba6b1ac7..9dc2949d 100644 --- a/src/util/entities/Message.ts +++ b/src/util/entities/Message.ts @@ -39,6 +39,7 @@ import { Guild } from "./Guild"; import { Webhook } from "./Webhook"; import { Sticker } from "./Sticker"; import { Attachment } from "./Attachment"; +import { dbEngine } from "../util/Database"; export enum MessageType { DEFAULT = 0, @@ -70,7 +71,7 @@ export enum MessageType { @Entity({ name: "messages", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) @Index(["channel_id", "id"], { unique: true }) export class Message extends BaseClass { diff --git a/src/util/entities/Migration.ts b/src/util/entities/Migration.ts index cd572c03..f0ee3e07 100644 --- a/src/util/entities/Migration.ts +++ b/src/util/entities/Migration.ts @@ -23,6 +23,7 @@ import { PrimaryGeneratedColumn, BaseEntity, } from "typeorm"; +import { dbEngine } from "../util/Database"; export const PrimaryIdAutoGenerated = process.env.DATABASE?.startsWith( "mongodb", @@ -32,7 +33,7 @@ export const PrimaryIdAutoGenerated = process.env.DATABASE?.startsWith( @Entity({ name: "migrations", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Migration extends BaseEntity { @PrimaryIdAutoGenerated() diff --git a/src/util/entities/Note.ts b/src/util/entities/Note.ts index 4821d2d9..9773c802 100644 --- a/src/util/entities/Note.ts +++ b/src/util/entities/Note.ts @@ -19,10 +19,11 @@ import { Column, Entity, JoinColumn, ManyToOne, Unique } from "typeorm"; import { BaseClass } from "./BaseClass"; import { User } from "./User"; +import { dbEngine } from "../util/Database"; @Entity({ name: "notes", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) @Unique(["owner", "target"]) export class Note extends BaseClass { diff --git a/src/util/entities/RateLimit.ts b/src/util/entities/RateLimit.ts index f0f597e0..ba2b7931 100644 --- a/src/util/entities/RateLimit.ts +++ b/src/util/entities/RateLimit.ts @@ -18,10 +18,11 @@ import { Column, Entity } from "typeorm"; import { BaseClass } from "./BaseClass"; +import { dbEngine } from "../util/Database"; @Entity({ name: "rate_limits", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class RateLimit extends BaseClass { @Column() // no relation as it also diff --git a/src/util/entities/ReadState.ts b/src/util/entities/ReadState.ts index 8e555de6..9f362547 100644 --- a/src/util/entities/ReadState.ts +++ b/src/util/entities/ReadState.ts @@ -27,6 +27,7 @@ import { import { BaseClass } from "./BaseClass"; import { Channel } from "./Channel"; import { User } from "./User"; +import { dbEngine } from "../util/Database"; // for read receipts // notification cursor and public read receipt need to be forwards-only (the former to prevent re-pinging when marked as unread, and the latter to be acceptable as a legal acknowledgement in criminal proceedings), and private read marker needs to be advance-rewind capable @@ -34,7 +35,7 @@ import { User } from "./User"; @Entity({ name: "read_states", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) @Index(["channel_id", "user_id"], { unique: true }) export class ReadState extends BaseClass { diff --git a/src/util/entities/Recipient.ts b/src/util/entities/Recipient.ts index fecb051f..26896220 100644 --- a/src/util/entities/Recipient.ts +++ b/src/util/entities/Recipient.ts @@ -18,10 +18,11 @@ import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { BaseClass } from "./BaseClass"; +import { dbEngine } from "../util/Database"; @Entity({ name: "recipients", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Recipient extends BaseClass { @Column() diff --git a/src/util/entities/Relationship.ts b/src/util/entities/Relationship.ts index 3aa057e7..d8dfc289 100644 --- a/src/util/entities/Relationship.ts +++ b/src/util/entities/Relationship.ts @@ -26,6 +26,7 @@ import { } from "typeorm"; import { BaseClass } from "./BaseClass"; import { User } from "./User"; +import { dbEngine } from "../util/Database"; export enum RelationshipType { outgoing = 4, @@ -36,7 +37,7 @@ export enum RelationshipType { @Entity({ name: "relationships", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) @Index(["from_id", "to_id"], { unique: true }) export class Relationship extends BaseClass { diff --git a/src/util/entities/Role.ts b/src/util/entities/Role.ts index f4509827..c5df6068 100644 --- a/src/util/entities/Role.ts +++ b/src/util/entities/Role.ts @@ -20,10 +20,11 @@ import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { BaseClass } from "./BaseClass"; import { Guild } from "./Guild"; +import { dbEngine } from "../util/Database"; @Entity({ name: "roles", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Role extends BaseClass { @Column() diff --git a/src/util/entities/SecurityKey.ts b/src/util/entities/SecurityKey.ts index f0b156c9..efe46c81 100644 --- a/src/util/entities/SecurityKey.ts +++ b/src/util/entities/SecurityKey.ts @@ -19,10 +19,11 @@ import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { BaseClass } from "./BaseClass"; import { User } from "./User"; +import { dbEngine } from "../util/Database"; @Entity({ name: "security_keys", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class SecurityKey extends BaseClass { @Column({ nullable: true }) diff --git a/src/util/entities/Session.ts b/src/util/entities/Session.ts index b7657d97..5c3d5a4f 100644 --- a/src/util/entities/Session.ts +++ b/src/util/entities/Session.ts @@ -21,12 +21,13 @@ import { BaseClass } from "./BaseClass"; import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { ClientStatus, Status } from "../interfaces/Status"; import { Activity } from "../interfaces/Activity"; +import { dbEngine } from "../util/Database"; //TODO we need to remove all sessions on server start because if the server crashes without closing websockets it won't delete them @Entity({ name: "sessions", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Session extends BaseClass { @Column({ nullable: true }) diff --git a/src/util/entities/Sticker.ts b/src/util/entities/Sticker.ts index 5b17c9b8..78b6d207 100644 --- a/src/util/entities/Sticker.ts +++ b/src/util/entities/Sticker.ts @@ -20,6 +20,7 @@ import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { BaseClass } from "./BaseClass"; import { Guild } from "./Guild"; import { User } from "./User"; +import { dbEngine } from "../util/Database"; export enum StickerType { STANDARD = 1, @@ -35,7 +36,7 @@ export enum StickerFormatType { @Entity({ name: "stickers", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Sticker extends BaseClass { @Column() diff --git a/src/util/entities/StickerPack.ts b/src/util/entities/StickerPack.ts index 5f7bf671..43d27d60 100644 --- a/src/util/entities/StickerPack.ts +++ b/src/util/entities/StickerPack.ts @@ -26,10 +26,11 @@ import { } from "typeorm"; import { Sticker } from "."; import { BaseClass } from "./BaseClass"; +import { dbEngine } from "../util/Database"; @Entity({ name: "sticker_packs", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class StickerPack extends BaseClass { @Column() diff --git a/src/util/entities/Team.ts b/src/util/entities/Team.ts index 7c804260..6b3fa554 100644 --- a/src/util/entities/Team.ts +++ b/src/util/entities/Team.ts @@ -27,10 +27,11 @@ import { import { BaseClass } from "./BaseClass"; import { TeamMember } from "./TeamMember"; import { User } from "./User"; +import { dbEngine } from "../util/Database"; @Entity({ name: "teams", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Team extends BaseClass { @Column({ nullable: true }) diff --git a/src/util/entities/TeamMember.ts b/src/util/entities/TeamMember.ts index 5b82d30e..2cd04710 100644 --- a/src/util/entities/TeamMember.ts +++ b/src/util/entities/TeamMember.ts @@ -19,6 +19,7 @@ import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { BaseClass } from "./BaseClass"; import { User } from "./User"; +import { dbEngine } from "../util/Database"; export enum TeamMemberState { INVITED = 1, @@ -27,7 +28,7 @@ export enum TeamMemberState { @Entity({ name: "team_members", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class TeamMember extends BaseClass { @Column({ type: "int" }) diff --git a/src/util/entities/Template.ts b/src/util/entities/Template.ts index 3d5c1764..faf6454a 100644 --- a/src/util/entities/Template.ts +++ b/src/util/entities/Template.ts @@ -20,10 +20,11 @@ import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; import { BaseClass } from "./BaseClass"; import { Guild } from "./Guild"; import { User } from "./User"; +import { dbEngine } from "../util/Database"; @Entity({ name: "templates", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Template extends BaseClass { @Column({ unique: true }) diff --git a/src/util/entities/User.ts b/src/util/entities/User.ts index 43c4aea6..0323de52 100644 --- a/src/util/entities/User.ts +++ b/src/util/entities/User.ts @@ -34,6 +34,7 @@ import { Relationship } from "./Relationship"; import { SecurityKey } from "./SecurityKey"; import { Session } from "./Session"; import { UserSettings } from "./UserSettings"; +import { dbEngine } from "../util/Database"; export enum PublicUserEnum { username, @@ -88,7 +89,7 @@ export interface UserPrivate extends Pick { @Entity({ name: "users", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class User extends BaseClass { @Column() diff --git a/src/util/entities/UserSettings.ts b/src/util/entities/UserSettings.ts index 1f27630d..cbb1cbcf 100644 --- a/src/util/entities/UserSettings.ts +++ b/src/util/entities/UserSettings.ts @@ -18,10 +18,11 @@ import { Column, Entity, PrimaryGeneratedColumn } from "typeorm"; import { BaseClassWithoutId } from "./BaseClass"; +import { dbEngine } from "../util/Database"; @Entity({ name: "user_settings", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class UserSettings extends BaseClassWithoutId { @PrimaryGeneratedColumn() diff --git a/src/util/entities/ValidRegistrationTokens.ts b/src/util/entities/ValidRegistrationTokens.ts index 737adfc1..70945765 100644 --- a/src/util/entities/ValidRegistrationTokens.ts +++ b/src/util/entities/ValidRegistrationTokens.ts @@ -17,10 +17,11 @@ */ import { BaseEntity, Column, Entity, PrimaryColumn } from "typeorm"; +import { dbEngine } from "../util/Database"; @Entity({ name: "valid_registration_tokens", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class ValidRegistrationToken extends BaseEntity { @PrimaryColumn() diff --git a/src/util/entities/VoiceState.ts b/src/util/entities/VoiceState.ts index de0a52d3..83a0af63 100644 --- a/src/util/entities/VoiceState.ts +++ b/src/util/entities/VoiceState.ts @@ -22,11 +22,12 @@ import { Channel } from "./Channel"; import { Guild } from "./Guild"; import { Member } from "./Member"; import { User } from "./User"; +import { dbEngine } from "../util/Database"; //https://gist.github.com/vassjozsef/e482c65df6ee1facaace8b3c9ff66145#file-voice_state-ex @Entity({ name: "voice_states", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class VoiceState extends BaseClass { @Column({ nullable: true }) diff --git a/src/util/entities/Webhook.ts b/src/util/entities/Webhook.ts index 7005bf64..473352c8 100644 --- a/src/util/entities/Webhook.ts +++ b/src/util/entities/Webhook.ts @@ -22,6 +22,7 @@ import { BaseClass } from "./BaseClass"; import { Channel } from "./Channel"; import { Guild } from "./Guild"; import { User } from "./User"; +import { dbEngine } from "../util/Database"; export enum WebhookType { Incoming = 1, @@ -31,7 +32,7 @@ export enum WebhookType { @Entity({ name: "webhooks", - engine: "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", + engine: dbEngine, }) export class Webhook extends BaseClass { @Column({ type: "int" }) diff --git a/src/util/util/Database.ts b/src/util/util/Database.ts index 3a45eea0..af0960cd 100644 --- a/src/util/util/Database.ts +++ b/src/util/util/Database.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors - + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -134,3 +134,6 @@ export { DataSourceOptions, DatabaseType, dbConnection }; export async function closeDatabase() { await dbConnection?.destroy(); } + +export const dbEngine = + "InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci";