なんかもうめっちゃ変えた

This commit is contained in:
syuilo
2022-09-18 03:27:08 +09:00
committed by GitHub
parent d9ab03f086
commit b75184ec8e
946 changed files with 41219 additions and 28839 deletions

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
export class AbuseUserReport {
@@ -52,7 +52,7 @@ export class AbuseUserReport {
public resolved: boolean;
@Column('boolean', {
default: false
default: false,
})
public forwarded: boolean;

View File

@@ -1,7 +1,7 @@
import { Entity, PrimaryColumn, Index, Column, ManyToOne, JoinColumn } from 'typeorm';
import { User } from './user.js';
import { App } from './app.js';
import { id } from '../id.js';
import { User } from './User.js';
import { App } from './App.js';
@Entity()
export class AccessToken {

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { Announcement } from './announcement.js';
import { id } from '../id.js';
import { User } from './User.js';
import { Announcement } from './Announcement.js';
@Entity()
@Index(['userId', 'announcementId'], { unique: true })

View File

@@ -1,8 +1,8 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { UserList } from './user-list.js';
import { UserGroupJoining } from './user-group-joining.js';
import { User } from './User.js';
import { UserList } from './UserList.js';
import { UserGroupJoining } from './UserGroupJoining.js';
@Entity()
export class Antenna {

View File

@@ -1,7 +1,7 @@
import { Entity, Index, JoinColumn, Column, ManyToOne, PrimaryColumn } from 'typeorm';
import { Note } from './note.js';
import { Antenna } from './antenna.js';
import { id } from '../id.js';
import { Note } from './Note.js';
import { Antenna } from './Antenna.js';
@Entity()
@Index(['noteId', 'antennaId'], { unique: true })

View File

@@ -1,6 +1,6 @@
import { Entity, PrimaryColumn, Column, Index, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
export class App {

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, JoinColumn, Column, ManyToOne, Index } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
export class AttestationChallenge {

View File

@@ -1,7 +1,7 @@
import { Entity, PrimaryColumn, Index, Column, ManyToOne, JoinColumn } from 'typeorm';
import { User } from './user.js';
import { App } from './app.js';
import { id } from '../id.js';
import { User } from './User.js';
import { App } from './App.js';
@Entity()
export class AuthSession {

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
@Index(['blockerId', 'blockeeId'], { unique: true })

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { DriveFile } from './drive-file.js';
import { User } from './User.js';
import { DriveFile } from './DriveFile.js';
@Entity()
export class Channel {

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { Channel } from './channel.js';
import { User } from './User.js';
import { Channel } from './Channel.js';
@Entity()
@Index(['followerId', 'followeeId'], { unique: true })

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { Note } from './note.js';
import { Channel } from './channel.js';
import { id } from '../id.js';
import { Note } from './Note.js';
import { Channel } from './Channel.js';
@Entity()
@Index(['channelId', 'noteId'], { unique: true })

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
export class Clip {

View File

@@ -1,7 +1,7 @@
import { Entity, Index, JoinColumn, Column, ManyToOne, PrimaryColumn } from 'typeorm';
import { Note } from './note.js';
import { Clip } from './clip.js';
import { id } from '../id.js';
import { Note } from './Note.js';
import { Clip } from './Clip.js';
@Entity()
@Index(['noteId', 'clipId'], { unique: true })

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { id } from '../id.js';
import { User } from './user.js';
import { DriveFolder } from './drive-folder.js';
import { User } from './User.js';
import { DriveFolder } from './DriveFolder.js';
@Entity()
@Index(['userId', 'folderId', 'id'])

View File

@@ -1,6 +1,6 @@
import { JoinColumn, ManyToOne, Entity, PrimaryColumn, Index, Column } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
export class DriveFolder {

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
@Index(['followerId', 'followeeId'], { unique: true })

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
@Index(['followerId', 'followeeId'], { unique: true })

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { GalleryPost } from './gallery-post.js';
import { User } from './User.js';
import { GalleryPost } from './GalleryPost.js';
@Entity()
@Index(['userId', 'postId'], { unique: true })

View File

@@ -1,7 +1,7 @@
import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { DriveFile } from './drive-file.js';
import { User } from './User.js';
import type { DriveFile } from './DriveFile.js';
@Entity()
export class GalleryPost {

View File

@@ -1,6 +1,6 @@
import { Entity, PrimaryColumn, Index, Column } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import type { User } from './User.js';
@Entity()
export class Hashtag {

View File

@@ -1,8 +1,8 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { DriveFile } from './drive-file.js';
import { id } from '../id.js';
import { UserGroup } from './user-group.js';
import { User } from './User.js';
import { DriveFile } from './DriveFile.js';
import { UserGroup } from './UserGroup.js';
@Entity()
export class MessagingMessage {

View File

@@ -1,7 +1,7 @@
import { Entity, Column, PrimaryColumn, ManyToOne, JoinColumn } from 'typeorm';
import { id } from '../id.js';
import { User } from './user.js';
import { Clip } from './clip.js';
import { User } from './User.js';
import type { Clip } from './Clip.js';
@Entity()
export class Meta {

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
export class ModerationLog {

View File

@@ -1,8 +1,8 @@
import { Entity, Index, JoinColumn, Column, ManyToOne, PrimaryColumn } from 'typeorm';
import { Note } from './note.js';
import { User } from './user.js';
import { id } from '../id.js';
import { mutedNoteReasons } from '../../types.js';
import { Note } from './Note.js';
import { User } from './User.js';
@Entity()
@Index(['noteId', 'userId'], { unique: true })

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
@Index(['muterId', 'muteeId'], { unique: true })

View File

@@ -1,9 +1,9 @@
import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { DriveFile } from './drive-file.js';
import { id } from '../id.js';
import { noteVisibilities } from '../../types.js';
import { Channel } from './channel.js';
import { User } from './User.js';
import { Channel } from './Channel.js';
import type { DriveFile } from './DriveFile.js';
@Entity()
@Index('IDX_NOTE_TAGS', { synchronize: false })

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { Note } from './note.js';
import { User } from './user.js';
import { id } from '../id.js';
import { Note } from './Note.js';
import { User } from './User.js';
@Entity()
@Index(['userId', 'noteId'], { unique: true })

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { Note } from './note.js';
import { id } from '../id.js';
import { User } from './User.js';
import { Note } from './Note.js';
@Entity()
@Index(['userId', 'noteId'], { unique: true })

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { Note } from './note.js';
import { id } from '../id.js';
import { User } from './User.js';
import { Note } from './Note.js';
@Entity()
@Index(['userId', 'threadId'], { unique: true })

View File

@@ -1,8 +1,8 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { Note } from './note.js';
import { id } from '../id.js';
import { Channel } from './channel.js';
import { User } from './User.js';
import { Note } from './Note.js';
import type { Channel } from './Channel.js';
@Entity()
@Index(['userId', 'noteId'], { unique: true })

View File

@@ -1,11 +1,11 @@
import { Entity, Index, JoinColumn, ManyToOne, Column, PrimaryColumn } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { Note } from './note.js';
import { FollowRequest } from './follow-request.js';
import { UserGroupInvitation } from './user-group-invitation.js';
import { AccessToken } from './access-token.js';
import { notificationTypes } from '@/types.js';
import { id } from '../id.js';
import { User } from './User.js';
import { Note } from './Note.js';
import { FollowRequest } from './FollowRequest.js';
import { UserGroupInvitation } from './UserGroupInvitation.js';
import { AccessToken } from './AccessToken.js';
@Entity()
export class Notification {

View File

@@ -1,7 +1,7 @@
import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { DriveFile } from './drive-file.js';
import { User } from './User.js';
import { DriveFile } from './DriveFile.js';
@Entity()
@Index(['userId', 'name'], { unique: true })

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { Page } from './page.js';
import { User } from './User.js';
import { Page } from './Page.js';
@Entity()
@Index(['userId', 'pageId'], { unique: true })

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, Index, Column, ManyToOne, JoinColumn } from 'typeorm';
import { id } from '../id.js';
import { User } from './user.js';
import { User } from './User.js';
@Entity()
export class PasswordResetRequest {

View File

@@ -1,8 +1,8 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, OneToOne } from 'typeorm';
import { id } from '../id.js';
import { Note } from './note.js';
import { User } from './user.js';
import { noteVisibilities } from '../../types.js';
import { Note } from './Note.js';
import type { User } from './User.js';
@Entity()
export class Poll {

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { Note } from './note.js';
import { id } from '../id.js';
import { User } from './User.js';
import { Note } from './Note.js';
@Entity()
@Index(['userId', 'noteId', 'choice'], { unique: true })

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, OneToOne } from 'typeorm';
import { Note } from './note.js';
import { User } from './user.js';
import { id } from '../id.js';
import { Note } from './Note.js';
import type { User } from './User.js';
@Entity()
export class PromoNote {

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { Note } from './note.js';
import { User } from './user.js';
import { id } from '../id.js';
import { Note } from './Note.js';
import { User } from './User.js';
@Entity()
@Index(['userId', 'noteId'], { unique: true })

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
// TODO: 同じdomain、同じscope、同じkeyのレコードは二つ以上存在しないように制約付けたい
@Entity()

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
export class Signin {

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
export class SwSubscription {

View File

@@ -1,6 +1,6 @@
import { Entity, Column, Index, OneToOne, JoinColumn, PrimaryColumn } from 'typeorm';
import { id } from '../id.js';
import { DriveFile } from './drive-file.js';
import { DriveFile } from './DriveFile.js';
@Entity()
@Index(['usernameLower', 'host'], { unique: true })
@@ -246,3 +246,10 @@ export type CacheableLocalUser = ILocalUser;
export type CacheableRemoteUser = IRemoteUser;
export type CacheableUser = CacheableLocalUser | CacheableRemoteUser;
export const localUsernameSchema = { type: 'string', pattern: /^\w{1,20}$/.toString().slice(1, -1) } as const;
export const passwordSchema = { type: 'string', minLength: 1 } as const;
export const nameSchema = { type: 'string', minLength: 1, maxLength: 50 } as const;
export const descriptionSchema = { type: 'string', minLength: 1, maxLength: 500 } as const;
export const locationSchema = { type: 'string', minLength: 1, maxLength: 50 } as const;
export const birthdaySchema = { type: 'string', pattern: /^([0-9]{4})-([0-9]{2})-([0-9]{2})$/.toString().slice(1, -1) } as const;

View File

@@ -1,6 +1,6 @@
import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
export class UserGroup {

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { UserGroup } from './user-group.js';
import { id } from '../id.js';
import { User } from './User.js';
import { UserGroup } from './UserGroup.js';
@Entity()
@Index(['userId', 'userGroupId'], { unique: true })

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { UserGroup } from './user-group.js';
import { id } from '../id.js';
import { User } from './User.js';
import { UserGroup } from './UserGroup.js';
@Entity()
@Index(['userId', 'userGroupId'], { unique: true })

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne, PrimaryGeneratedColumn } from 'typeorm';
import { id } from '../id.js';
import { Note } from './note.js';
import { User } from './user.js';
import { Note } from './Note.js';
import type { User } from './User.js';
@Entity()
@Index(['userId', 'ip'], { unique: true })

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, JoinColumn, Column, OneToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
export class UserKeypair {

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
export class UserList {

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { UserList } from './user-list.js';
import { id } from '../id.js';
import { User } from './User.js';
import { UserList } from './UserList.js';
@Entity()
@Index(['userId', 'userListId'], { unique: true })

View File

@@ -1,7 +1,7 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { Note } from './note.js';
import { User } from './user.js';
import { id } from '../id.js';
import { Note } from './Note.js';
import { User } from './User.js';
@Entity()
@Index(['userId', 'noteId'], { unique: true })

View File

@@ -1,8 +1,8 @@
import { Entity, Column, Index, OneToOne, JoinColumn, PrimaryColumn } from 'typeorm';
import { ffVisibility, notificationTypes } from '@/types.js';
import { id } from '../id.js';
import { User } from './user.js';
import { Page } from './page.js';
import { User } from './User.js';
import { Page } from './Page.js';
// TODO: このテーブルで管理している情報すべてレジストリで管理するようにしても良いかも
// ただ、「emailVerified が true なユーザーを find する」のようなクエリは書けなくなるからウーン

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, OneToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
export class UserPublickey {

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, JoinColumn, Column, ManyToOne, Index } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
@Entity()
export class UserSecurityKey {

View File

@@ -1,6 +1,6 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { id } from '../id.js';
import { User } from './User.js';
export const webhookEventTypes = ['mention', 'unfollow', 'follow', 'followed', 'note', 'reply', 'renote', 'reaction'] as const;

View File

@@ -1,52 +0,0 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.js';
import { Note } from './note.js';
import { id } from '../id.js';
@Entity()
@Index(['userId', 'noteId'], { unique: true })
export class NoteWatching {
@PrimaryColumn(id())
public id: string;
@Index()
@Column('timestamp with time zone', {
comment: 'The created date of the NoteWatching.',
})
public createdAt: Date;
@Index()
@Column({
...id(),
comment: 'The watcher ID.',
})
public userId: User['id'];
@ManyToOne(type => User, {
onDelete: 'CASCADE',
})
@JoinColumn()
public user: User | null;
@Index()
@Column({
...id(),
comment: 'The target Note ID.',
})
public noteId: Note['id'];
@ManyToOne(type => Note, {
onDelete: 'CASCADE',
})
@JoinColumn()
public note: Note | null;
//#region Denormalized fields
@Index()
@Column({
...id(),
comment: '[Denormalized]',
})
public noteUserId: Note['userId'];
//#endregion
}