Merge tag '2023.9.0' into merge-upstream
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Column, Entity, PrimaryColumn, Index } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
|
||||
@Entity('abuse_report_resolver')
|
||||
export class MiAbuseReportResolver {
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('abuse_user_report')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Entity, PrimaryColumn, Index, Column, ManyToOne, JoinColumn } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiApp } from './App.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Entity, Index, Column, PrimaryColumn } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
|
||||
@Entity('ad')
|
||||
export class MiAd {
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Entity, Index, Column, PrimaryColumn, ManyToOne, JoinColumn } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('announcement')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiAnnouncement } from './Announcement.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiUserList } from './UserList.js';
|
||||
|
||||
@@ -41,8 +41,8 @@ export class MiAntenna {
|
||||
})
|
||||
public name: string;
|
||||
|
||||
@Column('enum', { enum: ['home', 'all', 'users', 'list'] })
|
||||
public src: 'home' | 'all' | 'users' | 'list';
|
||||
@Column('enum', { enum: ['home', 'all', 'users', 'list', 'users_blacklist'] })
|
||||
public src: 'home' | 'all' | 'users' | 'list' | 'users_blacklist';
|
||||
|
||||
@Column({
|
||||
...id(),
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Entity, PrimaryColumn, Column, Index, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('app')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Entity, PrimaryColumn, Index, Column, ManyToOne, JoinColumn } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiApp } from './App.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('blocking')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiDriveFile } from './DriveFile.js';
|
||||
|
||||
@@ -94,4 +94,9 @@ export class MiChannel {
|
||||
comment: 'The count of users.',
|
||||
})
|
||||
public usersCount: number;
|
||||
|
||||
@Column('boolean', {
|
||||
default: false,
|
||||
})
|
||||
public isSensitive: boolean;
|
||||
}
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiChannel } from './Channel.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiChannel } from './Channel.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('clip')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiClip } from './Clip.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Entity, Index, JoinColumn, Column, ManyToOne, PrimaryColumn } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiNote } from './Note.js';
|
||||
import { MiClip } from './Clip.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiDriveFolder } from './DriveFolder.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { JoinColumn, ManyToOne, Entity, PrimaryColumn, Index, Column } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('drive_folder')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, Column } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
|
||||
@Entity('emoji')
|
||||
@Index(['name', 'host'], { unique: true })
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('flash')
|
||||
@@ -61,4 +61,13 @@ export class MiFlash {
|
||||
default: 0,
|
||||
})
|
||||
public likedCount: number;
|
||||
|
||||
/**
|
||||
* public ... 公開
|
||||
* private ... プロフィールには表示しない
|
||||
*/
|
||||
@Column('varchar', {
|
||||
length: 512, default: 'public',
|
||||
})
|
||||
public visibility: 'public' | 'private';
|
||||
}
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiFlash } from './Flash.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('follow_request')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('following')
|
||||
@@ -45,6 +45,13 @@ export class MiFollowing {
|
||||
@JoinColumn()
|
||||
public follower: MiUser | null;
|
||||
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 32,
|
||||
nullable: true,
|
||||
})
|
||||
public notify: 'normal' | null;
|
||||
|
||||
//#region Denormalized fields
|
||||
@Index()
|
||||
@Column('varchar', {
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiGalleryPost } from './GalleryPost.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import type { MiDriveFile } from './DriveFile.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Entity, PrimaryColumn, Index, Column } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import type { MiUser } from './User.js';
|
||||
|
||||
@Entity('hashtag')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Entity, PrimaryColumn, Index, Column } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
|
||||
@Entity('instance')
|
||||
export class MiInstance {
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Entity, Column, PrimaryColumn, ManyToOne, JoinColumn } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('meta')
|
||||
@@ -20,6 +20,11 @@ export class MiMeta {
|
||||
})
|
||||
public name: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 64, nullable: true,
|
||||
})
|
||||
public shortName: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 1024, nullable: true,
|
||||
})
|
||||
@@ -107,6 +112,18 @@ export class MiMeta {
|
||||
})
|
||||
public iconUrl: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 1024,
|
||||
nullable: true,
|
||||
})
|
||||
public app192IconUrl: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 1024,
|
||||
nullable: true,
|
||||
})
|
||||
public app512IconUrl: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 1024,
|
||||
nullable: true,
|
||||
@@ -126,7 +143,7 @@ export class MiMeta {
|
||||
public infoImageUrl: string | null;
|
||||
|
||||
@Column('boolean', {
|
||||
default: true,
|
||||
default: false,
|
||||
})
|
||||
public cacheRemoteFiles: boolean;
|
||||
|
||||
@@ -444,6 +461,12 @@ export class MiMeta {
|
||||
})
|
||||
public serverRules: string[];
|
||||
|
||||
@Column('varchar', {
|
||||
length: 8192,
|
||||
default: '{}',
|
||||
})
|
||||
public manifestJsonOverride: string;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 1024, array: true, default: '{ "admin", "administrator", "root", "system", "maintainer", "host", "mod", "moderator", "owner", "superuser", "staff", "auth", "i", "me", "everyone", "all", "mention", "mentions", "example", "user", "users", "account", "accounts", "official", "help", "helps", "support", "supports", "info", "information", "informations", "announce", "announces", "announcement", "announcements", "notice", "notification", "notifications", "dev", "developer", "developers", "tech", "misskey" }',
|
||||
})
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('moderation_log')
|
@@ -5,7 +5,7 @@
|
||||
|
||||
import { Entity, Index, JoinColumn, Column, ManyToOne, PrimaryColumn } from 'typeorm';
|
||||
import { mutedNoteReasons } from '@/types.js';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiNote } from './Note.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('muting')
|
@@ -4,8 +4,8 @@
|
||||
*/
|
||||
|
||||
import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { noteVisibilities } from '../../types.js';
|
||||
import { noteVisibilities } from '@/types.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiChannel } from './Channel.js';
|
||||
import type { MiDriveFile } from './DriveFile.js';
|
||||
@@ -107,6 +107,11 @@ export class MiNote {
|
||||
})
|
||||
public repliesCount: number;
|
||||
|
||||
@Column('smallint', {
|
||||
default: 0,
|
||||
})
|
||||
public clippedCount: number;
|
||||
|
||||
@Column('jsonb', {
|
||||
default: {},
|
||||
})
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiNote } from './Note.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiNote } from './Note.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('note_thread_muting')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiNote } from './Note.js';
|
||||
import type { MiChannel } from './Channel.js';
|
@@ -22,17 +22,6 @@ export type MiNotification = {
|
||||
|
||||
/**
|
||||
* 通知の種類。
|
||||
* follow - フォローされた
|
||||
* mention - 投稿で自分が言及された
|
||||
* reply - 投稿に返信された
|
||||
* renote - 投稿がRenoteされた
|
||||
* quote - 投稿が引用Renoteされた
|
||||
* reaction - 投稿にリアクションされた
|
||||
* pollEnded - 自分のアンケートもしくは自分が投票したアンケートが終了した
|
||||
* receiveFollowRequest - フォローリクエストされた
|
||||
* followRequestAccepted - 自分の送ったフォローリクエストが承認された
|
||||
* achievementEarned - 実績を獲得
|
||||
* app - アプリ通知
|
||||
*/
|
||||
type: typeof notificationTypes[number];
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiDriveFile } from './DriveFile.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiPage } from './Page.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, Column, ManyToOne, JoinColumn } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('password_reset_request')
|
@@ -4,8 +4,8 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, OneToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { noteVisibilities } from '../../types.js';
|
||||
import { noteVisibilities } from '@/types.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiNote } from './Note.js';
|
||||
import type { MiUser } from './User.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiNote } from './Note.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, OneToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiNote } from './Note.js';
|
||||
import type { MiUser } from './User.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiNote } from './Note.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, Column, ManyToOne, JoinColumn, OneToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('registration_ticket')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
// TODO: 同じdomain、同じscope、同じkeyのレコードは二つ以上存在しないように制約付けたい
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, Column } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
|
||||
@Entity('relay')
|
||||
export class MiRelay {
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('renote_muting')
|
@@ -5,7 +5,7 @@
|
||||
|
||||
import { Module } from '@nestjs/common';
|
||||
import { DI } from '@/di-symbols.js';
|
||||
import { MiUser, MiNote, MiAnnouncement, MiAnnouncementRead, MiApp, MiNoteFavorite, MiNoteThreadMuting, MiNoteReaction, MiNoteUnread, MiPoll, MiPollVote, MiUserProfile, MiUserKeypair, MiUserPending, MiUserSecurityKey, MiUserPublickey, MiUserList, MiUserListJoining, MiUserNotePining, MiUserIp, MiUsedUsername, MiFollowing, MiFollowRequest, MiInstance, MiEmoji, MiDriveFile, MiDriveFolder, MiMeta, MiMuting, MiRenoteMuting, MiBlocking, MiSwSubscription, MiHashtag, MiAbuseUserReport, MiRegistrationTicket, MiAuthSession, MiAccessToken, MiSignin, MiPage, MiPageLike, MiGalleryPost, MiGalleryLike, MiModerationLog, MiClip, MiClipNote, MiAntenna, MiPromoNote, MiPromoRead, MiRelay, MiMutedNote, MiChannel, MiChannelFollowing, MiChannelFavorite, MiRegistryItem, MiWebhook, MiAd, MiPasswordResetRequest, MiRetentionAggregation, MiFlashLike, MiFlash, MiRole, MiRoleAssignment, MiClipFavorite, MiUserMemo, MiUserListFavorite, MiAbuseReportResolver } from './index.js';
|
||||
import { MiAbuseReportResolver, MiAbuseUserReport, MiAccessToken, MiAd, MiAnnouncement, MiAnnouncementRead, MiAntenna, MiApp, MiAuthSession, MiBlocking, MiChannel, MiChannelFavorite, MiChannelFollowing, MiClip, MiClipFavorite, MiClipNote, MiDriveFile, MiDriveFolder, MiEmoji, MiFlash, MiFlashLike, MiFollowRequest, MiFollowing, MiGalleryLike, MiGalleryPost, MiHashtag, MiInstance, MiMeta, MiModerationLog, MiMutedNote, MiMuting, MiNote, MiNoteFavorite, MiNoteReaction, MiNoteThreadMuting, MiNoteUnread, MiPage, MiPageLike, MiPasswordResetRequest, MiPoll, MiPollVote, MiPromoNote, MiPromoRead, MiRegistrationTicket, MiRegistryItem, MiRelay, MiRenoteMuting, MiRetentionAggregation, MiRole, MiRoleAssignment, MiSignin, MiSwSubscription, MiUsedUsername, MiUser, MiUserIp, MiUserKeypair, MiUserList, MiUserListFavorite, MiUserListJoining, MiUserMemo, MiUserNotePining, MiUserPending, MiUserProfile, MiUserPublickey, MiUserSecurityKey, MiWebhook } from './_.js';
|
||||
import type { DataSource } from 'typeorm';
|
||||
import type { Provider } from '@nestjs/common';
|
||||
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Entity, PrimaryColumn, Index, Column } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import type { MiUser } from './User.js';
|
||||
|
||||
@Entity('retention_aggregation')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Entity, Column, PrimaryColumn } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
|
||||
type CondFormulaValueAnd = {
|
||||
type: 'and';
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiRole } from './Role.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('signin')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('sw_subscription')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Entity, Column, Index, OneToOne, JoinColumn, PrimaryColumn } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiDriveFile } from './DriveFile.js';
|
||||
|
||||
@Entity('user')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Entity, Index, Column, PrimaryGeneratedColumn } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import type { MiUser } from './User.js';
|
||||
|
||||
@Entity('user_ip')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, JoinColumn, Column, OneToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('user_keypair')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('user_list')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiUserList } from './UserList.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiUserList } from './UserList.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { Column, Entity, Index, JoinColumn, ManyToOne, PrimaryColumn } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('user_memo')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiNote } from './Note.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, Column } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
|
||||
@Entity('user_pending')
|
||||
export class MiUserPending {
|
@@ -5,7 +5,7 @@
|
||||
|
||||
import { Entity, Column, Index, OneToOne, JoinColumn, PrimaryColumn } from 'typeorm';
|
||||
import { obsoleteNotificationTypes, ffVisibility, notificationTypes } from '@/types.js';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
import { MiPage } from './Page.js';
|
||||
|
||||
@@ -48,6 +48,12 @@ export class MiUserProfile {
|
||||
value: string;
|
||||
}[];
|
||||
|
||||
@Column('varchar', {
|
||||
array: true,
|
||||
default: '{}',
|
||||
})
|
||||
public verifiedLinks: string[];
|
||||
|
||||
@Column('varchar', {
|
||||
length: 32, nullable: true,
|
||||
})
|
||||
@@ -96,16 +102,16 @@ export class MiUserProfile {
|
||||
})
|
||||
public twoFactorTempSecret: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
nullable: true, array: true,
|
||||
})
|
||||
public twoFactorBackupSecret: string[] | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true,
|
||||
})
|
||||
public twoFactorSecret: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
nullable: true, array: true,
|
||||
})
|
||||
public twoFactorBackupSecret: string[] | null;
|
||||
|
||||
@Column('boolean', {
|
||||
default: false,
|
||||
})
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, OneToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('user_publickey')
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, JoinColumn, Column, ManyToOne, Index } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
@Entity('user_security_key')
|
||||
@@ -52,19 +52,19 @@ export class MiUserSecurityKey {
|
||||
comment: 'The type of Backup Eligibility in authenticator data',
|
||||
length: 32, nullable: true,
|
||||
})
|
||||
public credentialDeviceType?: string;
|
||||
public credentialDeviceType: string | null;
|
||||
|
||||
@Column('boolean', {
|
||||
comment: 'Whether or not the credential has been backed up',
|
||||
nullable: true,
|
||||
})
|
||||
public credentialBackedUp?: boolean;
|
||||
public credentialBackedUp: boolean | null;
|
||||
|
||||
@Column('varchar', {
|
||||
comment: 'The type of the credential returned by the browser',
|
||||
length: 32, array: true, nullable: true,
|
||||
})
|
||||
public transports?: string[];
|
||||
public transports: string[] | null;
|
||||
|
||||
constructor(data: Partial<MiUserSecurityKey>) {
|
||||
if (data == null) return;
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
|
||||
import { id } from '../id.js';
|
||||
import { id } from './util/id.js';
|
||||
import { MiUser } from './User.js';
|
||||
|
||||
export const webhookEventTypes = ['mention', 'unfollow', 'follow', 'followed', 'note', 'reply', 'renote', 'reaction'] as const;
|
@@ -3,72 +3,72 @@
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
import { MiAbuseReportResolver } from '@/models/entities/AbuseReportResolver.js';
|
||||
import { MiAbuseUserReport } from '@/models/entities/AbuseUserReport.js';
|
||||
import { MiAccessToken } from '@/models/entities/AccessToken.js';
|
||||
import { MiAd } from '@/models/entities/Ad.js';
|
||||
import { MiAnnouncement } from '@/models/entities/Announcement.js';
|
||||
import { MiAnnouncementRead } from '@/models/entities/AnnouncementRead.js';
|
||||
import { MiAntenna } from '@/models/entities/Antenna.js';
|
||||
import { MiApp } from '@/models/entities/App.js';
|
||||
import { MiAuthSession } from '@/models/entities/AuthSession.js';
|
||||
import { MiBlocking } from '@/models/entities/Blocking.js';
|
||||
import { MiChannelFollowing } from '@/models/entities/ChannelFollowing.js';
|
||||
import { MiChannelFavorite } from '@/models/entities/ChannelFavorite.js';
|
||||
import { MiClip } from '@/models/entities/Clip.js';
|
||||
import { MiClipNote } from '@/models/entities/ClipNote.js';
|
||||
import { MiClipFavorite } from '@/models/entities/ClipFavorite.js';
|
||||
import { MiDriveFile } from '@/models/entities/DriveFile.js';
|
||||
import { MiDriveFolder } from '@/models/entities/DriveFolder.js';
|
||||
import { MiEmoji } from '@/models/entities/Emoji.js';
|
||||
import { MiFollowing } from '@/models/entities/Following.js';
|
||||
import { MiFollowRequest } from '@/models/entities/FollowRequest.js';
|
||||
import { MiGalleryLike } from '@/models/entities/GalleryLike.js';
|
||||
import { MiGalleryPost } from '@/models/entities/GalleryPost.js';
|
||||
import { MiHashtag } from '@/models/entities/Hashtag.js';
|
||||
import { MiInstance } from '@/models/entities/Instance.js';
|
||||
import { MiMeta } from '@/models/entities/Meta.js';
|
||||
import { MiModerationLog } from '@/models/entities/ModerationLog.js';
|
||||
import { MiMutedNote } from '@/models/entities/MutedNote.js';
|
||||
import { MiMuting } from '@/models/entities/Muting.js';
|
||||
import { MiRenoteMuting } from '@/models/entities/RenoteMuting.js';
|
||||
import { MiNote } from '@/models/entities/Note.js';
|
||||
import { MiNoteFavorite } from '@/models/entities/NoteFavorite.js';
|
||||
import { MiNoteReaction } from '@/models/entities/NoteReaction.js';
|
||||
import { MiNoteThreadMuting } from '@/models/entities/NoteThreadMuting.js';
|
||||
import { MiNoteUnread } from '@/models/entities/NoteUnread.js';
|
||||
import { MiPage } from '@/models/entities/Page.js';
|
||||
import { MiPageLike } from '@/models/entities/PageLike.js';
|
||||
import { MiPasswordResetRequest } from '@/models/entities/PasswordResetRequest.js';
|
||||
import { MiPoll } from '@/models/entities/Poll.js';
|
||||
import { MiPollVote } from '@/models/entities/PollVote.js';
|
||||
import { MiPromoNote } from '@/models/entities/PromoNote.js';
|
||||
import { MiPromoRead } from '@/models/entities/PromoRead.js';
|
||||
import { MiRegistrationTicket } from '@/models/entities/RegistrationTicket.js';
|
||||
import { MiRegistryItem } from '@/models/entities/RegistryItem.js';
|
||||
import { MiRelay } from '@/models/entities/Relay.js';
|
||||
import { MiSignin } from '@/models/entities/Signin.js';
|
||||
import { MiSwSubscription } from '@/models/entities/SwSubscription.js';
|
||||
import { MiUsedUsername } from '@/models/entities/UsedUsername.js';
|
||||
import { MiUser } from '@/models/entities/User.js';
|
||||
import { MiUserIp } from '@/models/entities/UserIp.js';
|
||||
import { MiUserKeypair } from '@/models/entities/UserKeypair.js';
|
||||
import { MiUserList } from '@/models/entities/UserList.js';
|
||||
import { MiUserListJoining } from '@/models/entities/UserListJoining.js';
|
||||
import { MiUserNotePining } from '@/models/entities/UserNotePining.js';
|
||||
import { MiUserPending } from '@/models/entities/UserPending.js';
|
||||
import { MiUserProfile } from '@/models/entities/UserProfile.js';
|
||||
import { MiUserPublickey } from '@/models/entities/UserPublickey.js';
|
||||
import { MiUserSecurityKey } from '@/models/entities/UserSecurityKey.js';
|
||||
import { MiUserMemo } from '@/models/entities/UserMemo.js';
|
||||
import { MiWebhook } from '@/models/entities/Webhook.js';
|
||||
import { MiChannel } from '@/models/entities/Channel.js';
|
||||
import { MiRetentionAggregation } from '@/models/entities/RetentionAggregation.js';
|
||||
import { MiRole } from '@/models/entities/Role.js';
|
||||
import { MiRoleAssignment } from '@/models/entities/RoleAssignment.js';
|
||||
import { MiFlash } from '@/models/entities/Flash.js';
|
||||
import { MiFlashLike } from '@/models/entities/FlashLike.js';
|
||||
import { MiUserListFavorite } from './entities/UserListFavorite.js';
|
||||
import { MiAbuseReportResolver } from '@/models/AbuseReportResolver.js';
|
||||
import { MiAbuseUserReport } from '@/models/AbuseUserReport.js';
|
||||
import { MiAccessToken } from '@/models/AccessToken.js';
|
||||
import { MiAd } from '@/models/Ad.js';
|
||||
import { MiAnnouncement } from '@/models/Announcement.js';
|
||||
import { MiAnnouncementRead } from '@/models/AnnouncementRead.js';
|
||||
import { MiAntenna } from '@/models/Antenna.js';
|
||||
import { MiApp } from '@/models/App.js';
|
||||
import { MiAuthSession } from '@/models/AuthSession.js';
|
||||
import { MiBlocking } from '@/models/Blocking.js';
|
||||
import { MiChannelFollowing } from '@/models/ChannelFollowing.js';
|
||||
import { MiChannelFavorite } from '@/models/ChannelFavorite.js';
|
||||
import { MiClip } from '@/models/Clip.js';
|
||||
import { MiClipNote } from '@/models/ClipNote.js';
|
||||
import { MiClipFavorite } from '@/models/ClipFavorite.js';
|
||||
import { MiDriveFile } from '@/models/DriveFile.js';
|
||||
import { MiDriveFolder } from '@/models/DriveFolder.js';
|
||||
import { MiEmoji } from '@/models/Emoji.js';
|
||||
import { MiFollowing } from '@/models/Following.js';
|
||||
import { MiFollowRequest } from '@/models/FollowRequest.js';
|
||||
import { MiGalleryLike } from '@/models/GalleryLike.js';
|
||||
import { MiGalleryPost } from '@/models/GalleryPost.js';
|
||||
import { MiHashtag } from '@/models/Hashtag.js';
|
||||
import { MiInstance } from '@/models/Instance.js';
|
||||
import { MiMeta } from '@/models/Meta.js';
|
||||
import { MiModerationLog } from '@/models/ModerationLog.js';
|
||||
import { MiMutedNote } from '@/models/MutedNote.js';
|
||||
import { MiMuting } from '@/models/Muting.js';
|
||||
import { MiRenoteMuting } from '@/models/RenoteMuting.js';
|
||||
import { MiNote } from '@/models/Note.js';
|
||||
import { MiNoteFavorite } from '@/models/NoteFavorite.js';
|
||||
import { MiNoteReaction } from '@/models/NoteReaction.js';
|
||||
import { MiNoteThreadMuting } from '@/models/NoteThreadMuting.js';
|
||||
import { MiNoteUnread } from '@/models/NoteUnread.js';
|
||||
import { MiPage } from '@/models/Page.js';
|
||||
import { MiPageLike } from '@/models/PageLike.js';
|
||||
import { MiPasswordResetRequest } from '@/models/PasswordResetRequest.js';
|
||||
import { MiPoll } from '@/models/Poll.js';
|
||||
import { MiPollVote } from '@/models/PollVote.js';
|
||||
import { MiPromoNote } from '@/models/PromoNote.js';
|
||||
import { MiPromoRead } from '@/models/PromoRead.js';
|
||||
import { MiRegistrationTicket } from '@/models/RegistrationTicket.js';
|
||||
import { MiRegistryItem } from '@/models/RegistryItem.js';
|
||||
import { MiRelay } from '@/models/Relay.js';
|
||||
import { MiSignin } from '@/models/Signin.js';
|
||||
import { MiSwSubscription } from '@/models/SwSubscription.js';
|
||||
import { MiUsedUsername } from '@/models/UsedUsername.js';
|
||||
import { MiUser } from '@/models/User.js';
|
||||
import { MiUserIp } from '@/models/UserIp.js';
|
||||
import { MiUserKeypair } from '@/models/UserKeypair.js';
|
||||
import { MiUserList } from '@/models/UserList.js';
|
||||
import { MiUserListJoining } from '@/models/UserListJoining.js';
|
||||
import { MiUserNotePining } from '@/models/UserNotePining.js';
|
||||
import { MiUserPending } from '@/models/UserPending.js';
|
||||
import { MiUserProfile } from '@/models/UserProfile.js';
|
||||
import { MiUserPublickey } from '@/models/UserPublickey.js';
|
||||
import { MiUserSecurityKey } from '@/models/UserSecurityKey.js';
|
||||
import { MiUserMemo } from '@/models/UserMemo.js';
|
||||
import { MiWebhook } from '@/models/Webhook.js';
|
||||
import { MiChannel } from '@/models/Channel.js';
|
||||
import { MiRetentionAggregation } from '@/models/RetentionAggregation.js';
|
||||
import { MiRole } from '@/models/Role.js';
|
||||
import { MiRoleAssignment } from '@/models/RoleAssignment.js';
|
||||
import { MiFlash } from '@/models/Flash.js';
|
||||
import { MiFlashLike } from '@/models/FlashLike.js';
|
||||
import { MiUserListFavorite } from '@/models/UserListFavorite.js';
|
||||
import type { Repository } from 'typeorm';
|
||||
|
||||
export {
|
@@ -47,7 +47,7 @@ export const packedAntennaSchema = {
|
||||
src: {
|
||||
type: 'string',
|
||||
optional: false, nullable: false,
|
||||
enum: ['home', 'all', 'users', 'list'],
|
||||
enum: ['home', 'all', 'users', 'list', 'users_blacklist'],
|
||||
},
|
||||
userListId: {
|
||||
type: 'string',
|
||||
|
@@ -72,5 +72,9 @@ export const packedChannelSchema = {
|
||||
type: 'string',
|
||||
optional: false, nullable: false,
|
||||
},
|
||||
isSensitive: {
|
||||
type: 'boolean',
|
||||
optional: false, nullable: false,
|
||||
},
|
||||
},
|
||||
} as const;
|
||||
|
@@ -139,6 +139,10 @@ export const packedNoteSchema = {
|
||||
type: 'string',
|
||||
optional: false, nullable: true,
|
||||
},
|
||||
isSensitive: {
|
||||
type: 'boolean',
|
||||
optional: true, nullable: false,
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@@ -173,6 +173,15 @@ export const packedUserDetailedNotMeOnlySchema = {
|
||||
},
|
||||
},
|
||||
},
|
||||
verifiedLinks: {
|
||||
type: 'array',
|
||||
nullable: false, optional: false,
|
||||
items: {
|
||||
type: 'string',
|
||||
nullable: false, optional: false,
|
||||
format: 'url',
|
||||
},
|
||||
},
|
||||
followersCount: {
|
||||
type: 'number',
|
||||
nullable: false, optional: false,
|
||||
@@ -268,6 +277,10 @@ export const packedUserDetailedNotMeOnlySchema = {
|
||||
type: 'string',
|
||||
nullable: false, optional: true,
|
||||
},
|
||||
notify: {
|
||||
type: 'string',
|
||||
nullable: false, optional: true,
|
||||
},
|
||||
//#endregion
|
||||
},
|
||||
} as const;
|
||||
@@ -325,7 +338,7 @@ export const packedMeDetailedOnlySchema = {
|
||||
type: 'boolean',
|
||||
nullable: false, optional: false,
|
||||
},
|
||||
twoFactorBackupCodes: {
|
||||
twoFactorBackupCodesStock: {
|
||||
type: 'string',
|
||||
enum: ['full', 'partial', 'none'],
|
||||
nullable: false, optional: false,
|
||||
|
Reference in New Issue
Block a user