mirror of
https://github.com/versia-pub/server.git
synced 2026-03-13 05:49:16 +01:00
refactor: 🚨 Turn every linter rule on and fix issues (there were a LOT :3)
This commit is contained in:
parent
2e98859153
commit
a1e02d0d78
177 changed files with 1826 additions and 1248 deletions
|
|
@ -23,13 +23,14 @@ export const setupDatabase = async (
|
|||
if (
|
||||
(e as Error).message ===
|
||||
"Client has already been connected. You cannot reuse a client."
|
||||
)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
await logger.logError(LogLevel.CRITICAL, "Database", e as Error);
|
||||
await logger.logError(LogLevel.Critical, "Database", e as Error);
|
||||
|
||||
await logger.log(
|
||||
LogLevel.CRITICAL,
|
||||
LogLevel.Critical,
|
||||
"Database",
|
||||
"Failed to connect to database. Please check your configuration.",
|
||||
);
|
||||
|
|
@ -38,23 +39,23 @@ export const setupDatabase = async (
|
|||
|
||||
// Migrate the database
|
||||
info &&
|
||||
(await logger.log(LogLevel.INFO, "Database", "Migrating database..."));
|
||||
(await logger.log(LogLevel.Info, "Database", "Migrating database..."));
|
||||
|
||||
try {
|
||||
await migrate(db, {
|
||||
migrationsFolder: "./drizzle/migrations",
|
||||
});
|
||||
} catch (e) {
|
||||
await logger.logError(LogLevel.CRITICAL, "Database", e as Error);
|
||||
await logger.logError(LogLevel.Critical, "Database", e as Error);
|
||||
await logger.log(
|
||||
LogLevel.CRITICAL,
|
||||
LogLevel.Critical,
|
||||
"Database",
|
||||
"Failed to migrate database. Please check your configuration.",
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
info && (await logger.log(LogLevel.INFO, "Database", "Database migrated"));
|
||||
info && (await logger.log(LogLevel.Info, "Database", "Database migrated"));
|
||||
};
|
||||
|
||||
export const db = drizzle(client, { schema });
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import {
|
|||
uniqueIndex,
|
||||
uuid,
|
||||
} from "drizzle-orm/pg-core";
|
||||
import type { Source as APISource } from "~/types/mastodon/source";
|
||||
import type { Source as apiSource } from "~/types/mastodon/source";
|
||||
|
||||
export const CaptchaChallenges = pgTable("CaptchaChallenges", {
|
||||
id: uuid("id").default(sql`uuid_generate_v7()`).primaryKey().notNull(),
|
||||
|
|
@ -386,7 +386,7 @@ export const Users = pgTable(
|
|||
inbox: string;
|
||||
outbox: string;
|
||||
}> | null>(),
|
||||
source: jsonb("source").notNull().$type<APISource>(),
|
||||
source: jsonb("source").notNull().$type<apiSource>(),
|
||||
avatar: text("avatar").notNull(),
|
||||
header: text("header").notNull(),
|
||||
createdAt: timestamp("created_at", { precision: 3, mode: "string" })
|
||||
|
|
@ -508,100 +508,100 @@ export const ModTags = pgTable("ModTags", {
|
|||
* - Owner: Only manage their own resources
|
||||
*/
|
||||
export enum RolePermissions {
|
||||
MANAGE_NOTES = "notes",
|
||||
MANAGE_OWN_NOTES = "owner:note",
|
||||
VIEW_NOTES = "read:note",
|
||||
VIEW_NOTE_LIKES = "read:note_likes",
|
||||
VIEW_NOTE_BOOSTS = "read:note_boosts",
|
||||
MANAGE_ACCOUNTS = "accounts",
|
||||
MANAGE_OWN_ACCOUNT = "owner:account",
|
||||
VIEW_ACCOUNT_FOLLOWS = "read:account_follows",
|
||||
MANAGE_LIKES = "likes",
|
||||
MANAGE_OWN_LIKES = "owner:like",
|
||||
MANAGE_BOOSTS = "boosts",
|
||||
MANAGE_OWN_BOOSTS = "owner:boost",
|
||||
VIEW_ACCOUNTS = "read:account",
|
||||
MANAGE_EMOJIS = "emojis",
|
||||
VIEW_EMOJIS = "read:emoji",
|
||||
MANAGE_OWN_EMOJIS = "owner:emoji",
|
||||
MANAGE_MEDIA = "media",
|
||||
MANAGE_OWN_MEDIA = "owner:media",
|
||||
MANAGE_BLOCKS = "blocks",
|
||||
MANAGE_OWN_BLOCKS = "owner:block",
|
||||
MANAGE_FILTERS = "filters",
|
||||
MANAGE_OWN_FILTERS = "owner:filter",
|
||||
MANAGE_MUTES = "mutes",
|
||||
MANAGE_OWN_MUTES = "owner:mute",
|
||||
MANAGE_REPORTS = "reports",
|
||||
MANAGE_OWN_REPORTS = "owner:report",
|
||||
MANAGE_SETTINGS = "settings",
|
||||
MANAGE_OWN_SETTINGS = "owner:settings",
|
||||
MANAGE_ROLES = "roles",
|
||||
MANAGE_NOTIFICATIONS = "notifications",
|
||||
MANAGE_OWN_NOTIFICATIONS = "owner:notification",
|
||||
MANAGE_FOLLOWS = "follows",
|
||||
MANAGE_OWN_FOLLOWS = "owner:follow",
|
||||
MANAGE_OWN_APPS = "owner:app",
|
||||
SEARCH = "search",
|
||||
VIEW_PUBLIC_TIMELINES = "public_timelines",
|
||||
VIEW_PRIVATE_TIMELINES = "private_timelines",
|
||||
IGNORE_RATE_LIMITS = "ignore_rate_limits",
|
||||
IMPERSONATE = "impersonate",
|
||||
MANAGE_INSTANCE = "instance",
|
||||
MANAGE_INSTANCE_FEDERATION = "instance:federation",
|
||||
MANAGE_INSTANCE_SETTINGS = "instance:settings",
|
||||
ManageNotes = "notes",
|
||||
ManageOwnNotes = "owner:note",
|
||||
ViewNotes = "read:note",
|
||||
ViewNoteLikes = "read:note_likes",
|
||||
ViewNoteBoosts = "read:note_boosts",
|
||||
ManageAccounts = "accounts",
|
||||
ManageOwnAccount = "owner:account",
|
||||
ViewAccountFollows = "read:account_follows",
|
||||
ManageLikes = "likes",
|
||||
ManageOwnLikes = "owner:like",
|
||||
ManageBoosts = "boosts",
|
||||
ManageOwnBoosts = "owner:boost",
|
||||
ViewAccounts = "read:account",
|
||||
ManageEmojis = "emojis",
|
||||
ViewEmojis = "read:emoji",
|
||||
ManageOwnEmojis = "owner:emoji",
|
||||
ManageMedia = "media",
|
||||
ManageOwnMedia = "owner:media",
|
||||
ManageBlocks = "blocks",
|
||||
ManageOwnBlocks = "owner:block",
|
||||
ManageFilters = "filters",
|
||||
ManageOwnFilters = "owner:filter",
|
||||
ManageMutes = "mutes",
|
||||
ManageOwnMutes = "owner:mute",
|
||||
ManageReports = "reports",
|
||||
ManageOwnReports = "owner:report",
|
||||
ManageSettings = "settings",
|
||||
ManageOwnSettings = "owner:settings",
|
||||
ManageRoles = "roles",
|
||||
ManageNotifications = "notifications",
|
||||
ManageOwnNotifications = "owner:notification",
|
||||
ManageFollows = "follows",
|
||||
ManageOwnFollows = "owner:follow",
|
||||
ManageOwnApps = "owner:app",
|
||||
Search = "search",
|
||||
ViewPublicTimelines = "public_timelines",
|
||||
ViewPrimateTimelines = "private_timelines",
|
||||
IgnoreRateLimits = "ignore_rate_limits",
|
||||
Impersonate = "impersonate",
|
||||
ManageInstance = "instance",
|
||||
ManageInstanceFederation = "instance:federation",
|
||||
ManageInstanceSettings = "instance:settings",
|
||||
/** Users who do not have this permission will not be able to login! */
|
||||
OAUTH = "oauth",
|
||||
OAuth = "oauth",
|
||||
}
|
||||
|
||||
export const DEFAULT_ROLES = [
|
||||
RolePermissions.MANAGE_OWN_NOTES,
|
||||
RolePermissions.VIEW_NOTES,
|
||||
RolePermissions.VIEW_NOTE_LIKES,
|
||||
RolePermissions.VIEW_NOTE_BOOSTS,
|
||||
RolePermissions.MANAGE_OWN_ACCOUNT,
|
||||
RolePermissions.VIEW_ACCOUNT_FOLLOWS,
|
||||
RolePermissions.MANAGE_OWN_LIKES,
|
||||
RolePermissions.MANAGE_OWN_BOOSTS,
|
||||
RolePermissions.VIEW_ACCOUNTS,
|
||||
RolePermissions.MANAGE_OWN_EMOJIS,
|
||||
RolePermissions.VIEW_EMOJIS,
|
||||
RolePermissions.MANAGE_OWN_MEDIA,
|
||||
RolePermissions.MANAGE_OWN_BLOCKS,
|
||||
RolePermissions.MANAGE_OWN_FILTERS,
|
||||
RolePermissions.MANAGE_OWN_MUTES,
|
||||
RolePermissions.MANAGE_OWN_REPORTS,
|
||||
RolePermissions.MANAGE_OWN_SETTINGS,
|
||||
RolePermissions.MANAGE_OWN_NOTIFICATIONS,
|
||||
RolePermissions.MANAGE_OWN_FOLLOWS,
|
||||
RolePermissions.MANAGE_OWN_APPS,
|
||||
RolePermissions.SEARCH,
|
||||
RolePermissions.VIEW_PUBLIC_TIMELINES,
|
||||
RolePermissions.VIEW_PRIVATE_TIMELINES,
|
||||
RolePermissions.OAUTH,
|
||||
RolePermissions.ManageOwnNotes,
|
||||
RolePermissions.ViewNotes,
|
||||
RolePermissions.ViewNoteLikes,
|
||||
RolePermissions.ViewNoteBoosts,
|
||||
RolePermissions.ManageOwnAccount,
|
||||
RolePermissions.ViewAccountFollows,
|
||||
RolePermissions.ManageOwnLikes,
|
||||
RolePermissions.ManageOwnBoosts,
|
||||
RolePermissions.ViewAccounts,
|
||||
RolePermissions.ManageOwnEmojis,
|
||||
RolePermissions.ViewEmojis,
|
||||
RolePermissions.ManageOwnMedia,
|
||||
RolePermissions.ManageOwnBlocks,
|
||||
RolePermissions.ManageOwnFilters,
|
||||
RolePermissions.ManageOwnMutes,
|
||||
RolePermissions.ManageOwnReports,
|
||||
RolePermissions.ManageOwnSettings,
|
||||
RolePermissions.ManageOwnNotifications,
|
||||
RolePermissions.ManageOwnFollows,
|
||||
RolePermissions.ManageOwnApps,
|
||||
RolePermissions.Search,
|
||||
RolePermissions.ViewPublicTimelines,
|
||||
RolePermissions.ViewPrimateTimelines,
|
||||
RolePermissions.OAuth,
|
||||
];
|
||||
|
||||
export const ADMIN_ROLES = [
|
||||
...DEFAULT_ROLES,
|
||||
RolePermissions.MANAGE_NOTES,
|
||||
RolePermissions.MANAGE_ACCOUNTS,
|
||||
RolePermissions.MANAGE_LIKES,
|
||||
RolePermissions.MANAGE_BOOSTS,
|
||||
RolePermissions.MANAGE_EMOJIS,
|
||||
RolePermissions.MANAGE_MEDIA,
|
||||
RolePermissions.MANAGE_BLOCKS,
|
||||
RolePermissions.MANAGE_FILTERS,
|
||||
RolePermissions.MANAGE_MUTES,
|
||||
RolePermissions.MANAGE_REPORTS,
|
||||
RolePermissions.MANAGE_SETTINGS,
|
||||
RolePermissions.MANAGE_ROLES,
|
||||
RolePermissions.MANAGE_NOTIFICATIONS,
|
||||
RolePermissions.MANAGE_FOLLOWS,
|
||||
RolePermissions.IMPERSONATE,
|
||||
RolePermissions.IGNORE_RATE_LIMITS,
|
||||
RolePermissions.MANAGE_INSTANCE,
|
||||
RolePermissions.MANAGE_INSTANCE_FEDERATION,
|
||||
RolePermissions.MANAGE_INSTANCE_SETTINGS,
|
||||
RolePermissions.ManageNotes,
|
||||
RolePermissions.ManageAccounts,
|
||||
RolePermissions.ManageLikes,
|
||||
RolePermissions.ManageBoosts,
|
||||
RolePermissions.ManageEmojis,
|
||||
RolePermissions.ManageMedia,
|
||||
RolePermissions.ManageBlocks,
|
||||
RolePermissions.ManageFilters,
|
||||
RolePermissions.ManageMutes,
|
||||
RolePermissions.ManageReports,
|
||||
RolePermissions.ManageSettings,
|
||||
RolePermissions.ManageRoles,
|
||||
RolePermissions.ManageNotifications,
|
||||
RolePermissions.ManageFollows,
|
||||
RolePermissions.Impersonate,
|
||||
RolePermissions.IgnoreRateLimits,
|
||||
RolePermissions.ManageInstance,
|
||||
RolePermissions.ManageInstanceFederation,
|
||||
RolePermissions.ManageInstanceSettings,
|
||||
];
|
||||
|
||||
export const Roles = pgTable("Roles", {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue