egirlskey/packages/backend/src/types.ts

294 lines
6 KiB
TypeScript
Raw Normal View History

/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-License-Identifier: AGPL-3.0-only
*/
/**
* note - 稿
* follow -
* mention - 稿
* reply - 稿
* renote - 稿Renoteされた
* quote - 稿Renoteされた
* reaction - 稿
* pollEnded -
* receiveFollowRequest -
* followRequestAccepted -
* roleAssigned -
* achievementEarned -
* app -
* test -
*/
export const notificationTypes = [
'note',
'follow',
'mention',
'reply',
'renote',
'quote',
'reaction',
'pollEnded',
'receiveFollowRequest',
'followRequestAccepted',
'roleAssigned',
'achievementEarned',
'app',
'test'] as const;
export const obsoleteNotificationTypes = ['pollVote', 'groupInvited'] as const;
2020-05-26 05:33:55 +00:00
export const noteVisibilities = ['public', 'home', 'followers', 'specified'] as const;
export const mutedNoteReasons = ['word', 'manual', 'spam', 'other'] as const;
export const followingVisibilities = ['public', 'followers', 'private'] as const;
export const followersVisibilities = ['public', 'followers', 'private'] as const;
export const moderationLogTypes = [
'updateServerSettings',
'suspend',
2023-10-18 00:41:36 +00:00
'approve',
'unsuspend',
'updateUserNote',
'addCustomEmoji',
2023-09-24 01:57:24 +00:00
'updateCustomEmoji',
'deleteCustomEmoji',
'assignRole',
'unassignRole',
2023-09-25 01:29:12 +00:00
'createRole',
'updateRole',
'deleteRole',
'clearQueue',
'promoteQueue',
'deleteDriveFile',
'deleteNote',
'createGlobalAnnouncement',
'createUserAnnouncement',
2023-09-24 01:46:09 +00:00
'updateGlobalAnnouncement',
'updateUserAnnouncement',
'deleteGlobalAnnouncement',
'deleteUserAnnouncement',
2023-09-23 11:50:02 +00:00
'resetPassword',
'suspendRemoteInstance',
'unsuspendRemoteInstance',
2023-09-24 06:40:38 +00:00
'markSensitiveDriveFile',
'unmarkSensitiveDriveFile',
2023-09-25 07:03:43 +00:00
'resolveAbuseReport',
2023-09-28 01:02:05 +00:00
'createInvitation',
2023-09-29 04:26:11 +00:00
'createAd',
'updateAd',
'deleteAd',
'createAvatarDecoration',
'updateAvatarDecoration',
'deleteAvatarDecoration',
2023-11-19 01:18:57 +00:00
'unsetUserAvatar',
'unsetUserBanner',
] as const;
export type ModerationLogPayloads = {
updateServerSettings: {
before: any | null;
after: any | null;
};
suspend: {
2023-09-25 01:29:12 +00:00
userId: string;
userUsername: string;
userHost: string | null;
};
2023-10-18 00:41:36 +00:00
approve: {
userId: string;
userUsername: string;
userHost: string | null;
};
unsuspend: {
2023-09-25 01:29:12 +00:00
userId: string;
userUsername: string;
userHost: string | null;
};
updateUserNote: {
userId: string;
2023-09-25 01:29:12 +00:00
userUsername: string;
userHost: string | null;
before: string | null;
after: string | null;
};
addCustomEmoji: {
emojiId: string;
2023-09-24 01:57:24 +00:00
emoji: any;
};
updateCustomEmoji: {
emojiId: string;
before: any;
after: any;
};
deleteCustomEmoji: {
emojiId: string;
emoji: any;
};
assignRole: {
userId: string;
2023-09-25 01:29:12 +00:00
userUsername: string;
userHost: string | null;
roleId: string;
roleName: string;
expiresAt: string | null;
};
unassignRole: {
userId: string;
2023-09-25 01:29:12 +00:00
userUsername: string;
userHost: string | null;
roleId: string;
roleName: string;
};
2023-09-25 01:29:12 +00:00
createRole: {
roleId: string;
role: any;
};
updateRole: {
roleId: string;
before: any;
after: any;
};
deleteRole: {
roleId: string;
2023-09-24 01:33:30 +00:00
role: any;
};
clearQueue: Record<string, never>;
promoteQueue: Record<string, never>;
deleteDriveFile: {
fileId: string;
fileUserId: string | null;
2023-09-25 01:29:12 +00:00
fileUserUsername: string | null;
fileUserHost: string | null;
};
deleteNote: {
noteId: string;
noteUserId: string;
2023-09-25 01:29:12 +00:00
noteUserUsername: string;
noteUserHost: string | null;
note: any;
};
createGlobalAnnouncement: {
announcementId: string;
announcement: any;
};
createUserAnnouncement: {
announcementId: string;
announcement: any;
userId: string;
2023-09-25 01:29:12 +00:00
userUsername: string;
userHost: string | null;
};
2023-09-24 01:46:09 +00:00
updateGlobalAnnouncement: {
announcementId: string;
before: any;
after: any;
};
updateUserAnnouncement: {
announcementId: string;
before: any;
after: any;
2023-09-25 01:29:12 +00:00
userId: string;
userUsername: string;
userHost: string | null;
2023-09-24 01:46:09 +00:00
};
deleteGlobalAnnouncement: {
announcementId: string;
announcement: any;
};
deleteUserAnnouncement: {
announcementId: string;
announcement: any;
2023-10-04 10:55:35 +00:00
userId: string;
userUsername: string;
userHost: string | null;
2023-09-24 01:46:09 +00:00
};
2023-09-23 11:50:02 +00:00
resetPassword: {
2023-09-25 01:29:12 +00:00
userId: string;
userUsername: string;
userHost: string | null;
2023-09-23 11:50:02 +00:00
};
suspendRemoteInstance: {
id: string;
host: string;
};
unsuspendRemoteInstance: {
id: string;
host: string;
};
2023-09-24 06:40:38 +00:00
markSensitiveDriveFile: {
fileId: string;
fileUserId: string | null;
2023-09-25 01:29:12 +00:00
fileUserUsername: string | null;
fileUserHost: string | null;
2023-09-24 06:40:38 +00:00
};
unmarkSensitiveDriveFile: {
fileId: string;
fileUserId: string | null;
2023-09-25 01:29:12 +00:00
fileUserUsername: string | null;
fileUserHost: string | null;
2023-09-24 06:40:38 +00:00
};
2023-09-25 07:03:43 +00:00
resolveAbuseReport: {
reportId: string;
report: any;
forwarded: boolean;
};
2023-09-28 01:02:05 +00:00
createInvitation: {
invitations: any[];
};
2023-09-29 04:26:11 +00:00
createAd: {
adId: string;
ad: any;
};
updateAd: {
adId: string;
before: any;
after: any;
};
deleteAd: {
adId: string;
ad: any;
};
createAvatarDecoration: {
avatarDecorationId: string;
avatarDecoration: any;
};
updateAvatarDecoration: {
avatarDecorationId: string;
before: any;
after: any;
};
deleteAvatarDecoration: {
avatarDecorationId: string;
avatarDecoration: any;
};
2023-11-19 01:18:57 +00:00
unsetUserAvatar: {
userId: string;
userUsername: string;
userHost: string | null;
fileId: string;
};
unsetUserBanner: {
userId: string;
userUsername: string;
userHost: string | null;
fileId: string;
};
};
2023-09-29 02:29:54 +00:00
export type Serialized<T> = {
[K in keyof T]:
T[K] extends Date
? string
: T[K] extends (Date | null)
? (string | null)
: T[K] extends Record<string, any>
? Serialized<T[K]>
: T[K];
};
export type FilterUnionByProperty<
Union,
Property extends string | number | symbol,
Condition
> = Union extends Record<Property, Condition> ? Union : never;