Merge tag '2023.9.0' into merge-upstream
This commit is contained in:
@@ -538,6 +538,7 @@ export type Endpoints = {
|
||||
|
||||
// notifications
|
||||
'notifications/create': { req: { body: string; header?: string | null; icon?: string | null; }; res: null; };
|
||||
'notifications/test-notification': { req: NoParams; res: null; };
|
||||
'notifications/mark-all-as-read': { req: NoParams; res: null; };
|
||||
|
||||
// page-push
|
||||
@@ -625,6 +626,7 @@ export type Endpoints = {
|
||||
'users/lists/update': { req: { listId: UserList['id']; name: string; }; res: UserList; };
|
||||
'users/notes': { req: { userId: User['id']; limit?: number; sinceId?: Note['id']; untilId?: Note['id']; sinceDate?: number; untilDate?: number; }; res: Note[]; };
|
||||
'users/pages': { req: TODO; res: TODO; };
|
||||
'users/flashs': { req: TODO; res: TODO; };
|
||||
'users/recommendation': { req: TODO; res: TODO; };
|
||||
'users/relation': { req: TODO; res: TODO; };
|
||||
'users/report-abuse': { req: TODO; res: TODO; };
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export const notificationTypes = ['follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app'] as const;
|
||||
export const notificationTypes = ['note', 'follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app'] as const;
|
||||
|
||||
export const noteVisibilities = ['public', 'home', 'followers', 'specified'] as const;
|
||||
|
||||
@@ -39,4 +39,145 @@ export const permissions = [
|
||||
'write:gallery',
|
||||
'read:gallery-likes',
|
||||
'write:gallery-likes',
|
||||
'read:flash',
|
||||
'write:flash',
|
||||
'read:flash-likes',
|
||||
'write:flash-likes',
|
||||
];
|
||||
|
||||
export const moderationLogTypes = [
|
||||
'updateServerSettings',
|
||||
'suspend',
|
||||
'unsuspend',
|
||||
'updateUserNote',
|
||||
'addCustomEmoji',
|
||||
'updateCustomEmoji',
|
||||
'deleteCustomEmoji',
|
||||
'assignRole',
|
||||
'unassignRole',
|
||||
'updateRole',
|
||||
'deleteRole',
|
||||
'clearQueue',
|
||||
'promoteQueue',
|
||||
'deleteDriveFile',
|
||||
'deleteNote',
|
||||
'createGlobalAnnouncement',
|
||||
'createUserAnnouncement',
|
||||
'updateGlobalAnnouncement',
|
||||
'updateUserAnnouncement',
|
||||
'deleteGlobalAnnouncement',
|
||||
'deleteUserAnnouncement',
|
||||
'resetPassword',
|
||||
'suspendRemoteInstance',
|
||||
'unsuspendRemoteInstance',
|
||||
'markSensitiveDriveFile',
|
||||
'unmarkSensitiveDriveFile',
|
||||
] as const;
|
||||
|
||||
export type ModerationLogPayloads = {
|
||||
updateServerSettings: {
|
||||
before: any | null;
|
||||
after: any | null;
|
||||
};
|
||||
suspend: {
|
||||
targetId: string;
|
||||
};
|
||||
unsuspend: {
|
||||
targetId: string;
|
||||
};
|
||||
updateUserNote: {
|
||||
userId: string;
|
||||
before: string | null;
|
||||
after: string | null;
|
||||
};
|
||||
addCustomEmoji: {
|
||||
emojiId: string;
|
||||
emoji: any;
|
||||
};
|
||||
updateCustomEmoji: {
|
||||
emojiId: string;
|
||||
before: any;
|
||||
after: any;
|
||||
};
|
||||
deleteCustomEmoji: {
|
||||
emojiId: string;
|
||||
emoji: any;
|
||||
};
|
||||
assignRole: {
|
||||
userId: string;
|
||||
roleId: string;
|
||||
roleName: string;
|
||||
expiresAt: string | null;
|
||||
};
|
||||
unassignRole: {
|
||||
userId: string;
|
||||
roleId: string;
|
||||
roleName: string;
|
||||
};
|
||||
updateRole: {
|
||||
roleId: string;
|
||||
before: any;
|
||||
after: any;
|
||||
};
|
||||
deleteRole: {
|
||||
roleId: string;
|
||||
role: any;
|
||||
};
|
||||
clearQueue: Record<string, never>;
|
||||
promoteQueue: Record<string, never>;
|
||||
deleteDriveFile: {
|
||||
fileId: string;
|
||||
fileUserId: string | null;
|
||||
};
|
||||
deleteNote: {
|
||||
noteId: string;
|
||||
noteUserId: string;
|
||||
note: any;
|
||||
};
|
||||
createGlobalAnnouncement: {
|
||||
announcementId: string;
|
||||
announcement: any;
|
||||
};
|
||||
createUserAnnouncement: {
|
||||
announcementId: string;
|
||||
announcement: any;
|
||||
userId: string;
|
||||
};
|
||||
updateGlobalAnnouncement: {
|
||||
announcementId: string;
|
||||
before: any;
|
||||
after: any;
|
||||
};
|
||||
updateUserAnnouncement: {
|
||||
announcementId: string;
|
||||
before: any;
|
||||
after: any;
|
||||
};
|
||||
deleteGlobalAnnouncement: {
|
||||
announcementId: string;
|
||||
announcement: any;
|
||||
};
|
||||
deleteUserAnnouncement: {
|
||||
announcementId: string;
|
||||
announcement: any;
|
||||
};
|
||||
resetPassword: {
|
||||
targetId: string;
|
||||
};
|
||||
suspendRemoteInstance: {
|
||||
id: string;
|
||||
host: string;
|
||||
};
|
||||
unsuspendRemoteInstance: {
|
||||
id: string;
|
||||
host: string;
|
||||
};
|
||||
markSensitiveDriveFile: {
|
||||
fileId: string;
|
||||
fileUserId: string | null;
|
||||
};
|
||||
unmarkSensitiveDriveFile: {
|
||||
fileId: string;
|
||||
fileUserId: string | null;
|
||||
};
|
||||
};
|
||||
|
@@ -1,3 +1,5 @@
|
||||
import { ModerationLogPayloads } from './consts.js';
|
||||
|
||||
export type ID = string;
|
||||
export type DateString = string;
|
||||
|
||||
@@ -38,6 +40,7 @@ export type UserDetailed = UserLite & {
|
||||
description: string | null;
|
||||
ffVisibility: 'public' | 'followers' | 'private';
|
||||
fields: {name: string; value: string}[];
|
||||
verifiedLinks: string[];
|
||||
followersCount: number;
|
||||
followingCount: number;
|
||||
hasPendingFollowRequestFromYou: boolean;
|
||||
@@ -71,6 +74,7 @@ export type UserDetailed = UserLite & {
|
||||
updatedAt: DateString | null;
|
||||
uri: string | null;
|
||||
url: string | null;
|
||||
notify: 'normal' | 'none';
|
||||
};
|
||||
|
||||
export type UserGroup = TODO;
|
||||
@@ -106,7 +110,9 @@ export type MeDetailed = UserDetailed & {
|
||||
mutingNotificationTypes: string[];
|
||||
noCrawle: boolean;
|
||||
receiveAnnouncementEmail: boolean;
|
||||
usePasswordLessLogin: boolean;
|
||||
unreadAnnouncements: Announcement[];
|
||||
twoFactorBackupCodesStock: 'full' | 'partial' | 'none';
|
||||
[other: string]: any;
|
||||
};
|
||||
|
||||
@@ -176,6 +182,7 @@ export type Note = {
|
||||
reactions: Record<string, number>;
|
||||
renoteCount: number;
|
||||
repliesCount: number;
|
||||
clippedCount?: number;
|
||||
poll?: {
|
||||
expiresAt: DateString | null;
|
||||
multiple: boolean;
|
||||
@@ -232,7 +239,12 @@ export type Notification = {
|
||||
userId: User['id'];
|
||||
note: Note;
|
||||
} | {
|
||||
type: 'pollVote';
|
||||
type: 'note';
|
||||
user: User;
|
||||
userId: User['id'];
|
||||
note: Note;
|
||||
} | {
|
||||
type: 'pollEnded';
|
||||
user: User;
|
||||
userId: User['id'];
|
||||
note: Note;
|
||||
@@ -258,6 +270,8 @@ export type Notification = {
|
||||
header?: string | null;
|
||||
body: string;
|
||||
icon?: string | null;
|
||||
} | {
|
||||
type: 'test';
|
||||
});
|
||||
|
||||
export type MessagingMessage = {
|
||||
@@ -292,6 +306,7 @@ export type LiteInstanceMetadata = {
|
||||
maintainerEmail: string | null;
|
||||
version: string;
|
||||
name: string | null;
|
||||
shortName: string | null;
|
||||
uri: string;
|
||||
description: string | null;
|
||||
langs: string[];
|
||||
@@ -355,6 +370,9 @@ export type InstanceMetadata = LiteInstanceMetadata | DetailedInstanceMetadata;
|
||||
export type AdminInstanceMetadata = DetailedInstanceMetadata & {
|
||||
// TODO: There are more fields.
|
||||
blockedHosts: string[];
|
||||
app192IconUrl: string | null;
|
||||
app512IconUrl: string | null;
|
||||
manifestJsonOverride: string;
|
||||
};
|
||||
|
||||
export type ServerInfo = {
|
||||
@@ -558,3 +576,88 @@ export type UserSorting =
|
||||
| '+updatedAt'
|
||||
| '-updatedAt';
|
||||
export type OriginType = 'combined' | 'local' | 'remote';
|
||||
|
||||
export type ModerationLog = {
|
||||
id: ID;
|
||||
createdAt: DateString;
|
||||
userId: User['id'];
|
||||
user: UserDetailed | null;
|
||||
} & ({
|
||||
type: 'updateServerSettings';
|
||||
info: ModerationLogPayloads['updateServerSettings'];
|
||||
} | {
|
||||
type: 'suspend';
|
||||
info: ModerationLogPayloads['suspend'];
|
||||
} | {
|
||||
type: 'unsuspend';
|
||||
info: ModerationLogPayloads['unsuspend'];
|
||||
} | {
|
||||
type: 'updateUserNote';
|
||||
info: ModerationLogPayloads['updateUserNote'];
|
||||
} | {
|
||||
type: 'addCustomEmoji';
|
||||
info: ModerationLogPayloads['addCustomEmoji'];
|
||||
} | {
|
||||
type: 'updateCustomEmoji';
|
||||
info: ModerationLogPayloads['updateCustomEmoji'];
|
||||
} | {
|
||||
type: 'deleteCustomEmoji';
|
||||
info: ModerationLogPayloads['deleteCustomEmoji'];
|
||||
} | {
|
||||
type: 'assignRole';
|
||||
info: ModerationLogPayloads['assignRole'];
|
||||
} | {
|
||||
type: 'unassignRole';
|
||||
info: ModerationLogPayloads['unassignRole'];
|
||||
} | {
|
||||
type: 'updateRole';
|
||||
info: ModerationLogPayloads['updateRole'];
|
||||
} | {
|
||||
type: 'deleteRole';
|
||||
info: ModerationLogPayloads['deleteRole'];
|
||||
} | {
|
||||
type: 'clearQueue';
|
||||
info: ModerationLogPayloads['clearQueue'];
|
||||
} | {
|
||||
type: 'promoteQueue';
|
||||
info: ModerationLogPayloads['promoteQueue'];
|
||||
} | {
|
||||
type: 'deleteDriveFile';
|
||||
info: ModerationLogPayloads['deleteDriveFile'];
|
||||
} | {
|
||||
type: 'deleteNote';
|
||||
info: ModerationLogPayloads['deleteNote'];
|
||||
} | {
|
||||
type: 'createGlobalAnnouncement';
|
||||
info: ModerationLogPayloads['createGlobalAnnouncement'];
|
||||
} | {
|
||||
type: 'createUserAnnouncement';
|
||||
info: ModerationLogPayloads['createUserAnnouncement'];
|
||||
} | {
|
||||
type: 'updateGlobalAnnouncement';
|
||||
info: ModerationLogPayloads['updateGlobalAnnouncement'];
|
||||
} | {
|
||||
type: 'updateUserAnnouncement';
|
||||
info: ModerationLogPayloads['updateUserAnnouncement'];
|
||||
} | {
|
||||
type: 'deleteGlobalAnnouncement';
|
||||
info: ModerationLogPayloads['deleteGlobalAnnouncement'];
|
||||
} | {
|
||||
type: 'deleteUserAnnouncement';
|
||||
info: ModerationLogPayloads['deleteUserAnnouncement'];
|
||||
} | {
|
||||
type: 'resetPassword';
|
||||
info: ModerationLogPayloads['resetPassword'];
|
||||
} | {
|
||||
type: 'suspendRemoteInstance';
|
||||
info: ModerationLogPayloads['suspendRemoteInstance'];
|
||||
} | {
|
||||
type: 'unsuspendRemoteInstance';
|
||||
info: ModerationLogPayloads['unsuspendRemoteInstance'];
|
||||
} | {
|
||||
type: 'markSensitiveDriveFile';
|
||||
info: ModerationLogPayloads['markSensitiveDriveFile'];
|
||||
} | {
|
||||
type: 'unmarkSensitiveDriveFile';
|
||||
info: ModerationLogPayloads['unmarkSensitiveDriveFile'];
|
||||
});
|
||||
|
@@ -17,10 +17,12 @@ export const notificationTypes = consts.notificationTypes;
|
||||
export const noteVisibilities = consts.noteVisibilities;
|
||||
export const mutedNoteReasons = consts.mutedNoteReasons;
|
||||
export const ffVisibility = consts.ffVisibility;
|
||||
export const moderationLogTypes = consts.moderationLogTypes;
|
||||
|
||||
// api extractor not supported yet
|
||||
//export * as api from './api.js';
|
||||
//export * as entities from './entities.js';
|
||||
import * as api from './api.js';
|
||||
import * as entities from './entities.js';
|
||||
export { api, entities };
|
||||
import * as acct from './acct.js';
|
||||
export { api, entities, acct };
|
||||
|
Reference in New Issue
Block a user