364 lines
10 KiB
JavaScript
364 lines
10 KiB
JavaScript
function _ts_decorate(decorators, target, key, desc) {
|
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
}
|
|
function _ts_metadata(k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
}
|
|
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";
|
|
export let UserProfile = class UserProfile {
|
|
userId;
|
|
user;
|
|
location;
|
|
birthday;
|
|
description;
|
|
fields;
|
|
mentions;
|
|
lang;
|
|
url;
|
|
email;
|
|
emailVerifyCode;
|
|
emailVerified;
|
|
emailNotificationTypes;
|
|
publicReactions;
|
|
allowCalls;
|
|
symbolFileId;
|
|
ffVisibility;
|
|
twoFactorTempSecret;
|
|
twoFactorSecret;
|
|
twoFactorEnabled;
|
|
securityKeysAvailable;
|
|
usePasswordLessLogin;
|
|
password;
|
|
moderationNote;
|
|
// TODO: そのうち消す
|
|
clientData;
|
|
// TODO: そのうち消す
|
|
room;
|
|
autoAcceptFollowed;
|
|
noCrawle;
|
|
preventAiLearning;
|
|
alwaysMarkNsfw;
|
|
carefulBot;
|
|
injectFeaturedNote;
|
|
receiveAnnouncementEmail;
|
|
pinnedPageId;
|
|
pinnedPage;
|
|
integrations;
|
|
enableWordMute;
|
|
mutedWords;
|
|
mutedInstances;
|
|
mutingNotificationTypes;
|
|
pronouns;
|
|
//#region Denormalized fields
|
|
userHost;
|
|
//#endregion
|
|
constructor(data){
|
|
if (data == null) return;
|
|
for (const [k, v] of Object.entries(data)){
|
|
this[k] = v;
|
|
}
|
|
}
|
|
};
|
|
_ts_decorate([
|
|
PrimaryColumn(id()),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "userId", void 0);
|
|
_ts_decorate([
|
|
OneToOne((type)=>User, {
|
|
onDelete: "CASCADE"
|
|
}),
|
|
JoinColumn(),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "user", void 0);
|
|
_ts_decorate([
|
|
Column("varchar", {
|
|
length: 128,
|
|
nullable: true,
|
|
comment: "The location of the User."
|
|
}),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "location", void 0);
|
|
_ts_decorate([
|
|
Column("char", {
|
|
length: 10,
|
|
nullable: true,
|
|
comment: "The birthday (YYYY-MM-DD) of the User."
|
|
}),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "birthday", void 0);
|
|
_ts_decorate([
|
|
Column("varchar", {
|
|
length: 2048,
|
|
nullable: true,
|
|
comment: "The description (bio) of the User."
|
|
}),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "description", void 0);
|
|
_ts_decorate([
|
|
Column("jsonb", {
|
|
default: []
|
|
}),
|
|
_ts_metadata("design:type", Array)
|
|
], UserProfile.prototype, "fields", void 0);
|
|
_ts_decorate([
|
|
Column("jsonb", {
|
|
default: []
|
|
}),
|
|
_ts_metadata("design:type", typeof IMentionedRemoteUsers === "undefined" ? Object : IMentionedRemoteUsers)
|
|
], UserProfile.prototype, "mentions", void 0);
|
|
_ts_decorate([
|
|
Column("varchar", {
|
|
length: 32,
|
|
nullable: true
|
|
}),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "lang", void 0);
|
|
_ts_decorate([
|
|
Column("varchar", {
|
|
length: 512,
|
|
nullable: true,
|
|
comment: "Remote URL of the user."
|
|
}),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "url", void 0);
|
|
_ts_decorate([
|
|
Column("varchar", {
|
|
length: 128,
|
|
nullable: true,
|
|
comment: "The email address of the User."
|
|
}),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "email", void 0);
|
|
_ts_decorate([
|
|
Column("varchar", {
|
|
length: 128,
|
|
nullable: true
|
|
}),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "emailVerifyCode", void 0);
|
|
_ts_decorate([
|
|
Column("boolean", {
|
|
default: false
|
|
}),
|
|
_ts_metadata("design:type", Boolean)
|
|
], UserProfile.prototype, "emailVerified", void 0);
|
|
_ts_decorate([
|
|
Column("jsonb", {
|
|
default: [
|
|
"follow",
|
|
"receiveFollowRequest",
|
|
"groupInvited"
|
|
]
|
|
}),
|
|
_ts_metadata("design:type", Array)
|
|
], UserProfile.prototype, "emailNotificationTypes", void 0);
|
|
_ts_decorate([
|
|
Column("boolean", {
|
|
default: false
|
|
}),
|
|
_ts_metadata("design:type", Boolean)
|
|
], UserProfile.prototype, "publicReactions", void 0);
|
|
_ts_decorate([
|
|
Column("boolean", {
|
|
default: false
|
|
}),
|
|
_ts_metadata("design:type", Boolean)
|
|
], UserProfile.prototype, "allowCalls", void 0);
|
|
_ts_decorate([
|
|
Column({
|
|
...id(),
|
|
nullable: true
|
|
}),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "symbolFileId", void 0);
|
|
_ts_decorate([
|
|
Column("enum", {
|
|
enum: ffVisibility,
|
|
default: "public"
|
|
}),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "ffVisibility", void 0);
|
|
_ts_decorate([
|
|
Column("varchar", {
|
|
length: 128,
|
|
nullable: true
|
|
}),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "twoFactorTempSecret", void 0);
|
|
_ts_decorate([
|
|
Column("varchar", {
|
|
length: 128,
|
|
nullable: true
|
|
}),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "twoFactorSecret", void 0);
|
|
_ts_decorate([
|
|
Column("boolean", {
|
|
default: false
|
|
}),
|
|
_ts_metadata("design:type", Boolean)
|
|
], UserProfile.prototype, "twoFactorEnabled", void 0);
|
|
_ts_decorate([
|
|
Column("boolean", {
|
|
default: false
|
|
}),
|
|
_ts_metadata("design:type", Boolean)
|
|
], UserProfile.prototype, "securityKeysAvailable", void 0);
|
|
_ts_decorate([
|
|
Column("boolean", {
|
|
default: false
|
|
}),
|
|
_ts_metadata("design:type", Boolean)
|
|
], UserProfile.prototype, "usePasswordLessLogin", void 0);
|
|
_ts_decorate([
|
|
Column("varchar", {
|
|
length: 128,
|
|
nullable: true,
|
|
comment: "The password hash of the User. It will be null if the origin of the user is local."
|
|
}),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "password", void 0);
|
|
_ts_decorate([
|
|
Column("varchar", {
|
|
length: 8192,
|
|
default: ""
|
|
}),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "moderationNote", void 0);
|
|
_ts_decorate([
|
|
Column("jsonb", {
|
|
default: {},
|
|
comment: "The client-specific data of the User."
|
|
}),
|
|
_ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
|
|
], UserProfile.prototype, "clientData", void 0);
|
|
_ts_decorate([
|
|
Column("jsonb", {
|
|
default: {},
|
|
comment: "The room data of the User."
|
|
}),
|
|
_ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
|
|
], UserProfile.prototype, "room", void 0);
|
|
_ts_decorate([
|
|
Column("boolean", {
|
|
default: false
|
|
}),
|
|
_ts_metadata("design:type", Boolean)
|
|
], UserProfile.prototype, "autoAcceptFollowed", void 0);
|
|
_ts_decorate([
|
|
Column("boolean", {
|
|
default: false,
|
|
comment: "Whether reject index by crawler."
|
|
}),
|
|
_ts_metadata("design:type", Boolean)
|
|
], UserProfile.prototype, "noCrawle", void 0);
|
|
_ts_decorate([
|
|
Column("boolean", {
|
|
default: true
|
|
}),
|
|
_ts_metadata("design:type", Boolean)
|
|
], UserProfile.prototype, "preventAiLearning", void 0);
|
|
_ts_decorate([
|
|
Column("boolean", {
|
|
default: false
|
|
}),
|
|
_ts_metadata("design:type", Boolean)
|
|
], UserProfile.prototype, "alwaysMarkNsfw", void 0);
|
|
_ts_decorate([
|
|
Column("boolean", {
|
|
default: false
|
|
}),
|
|
_ts_metadata("design:type", Boolean)
|
|
], UserProfile.prototype, "carefulBot", void 0);
|
|
_ts_decorate([
|
|
Column("boolean", {
|
|
default: true
|
|
}),
|
|
_ts_metadata("design:type", Boolean)
|
|
], UserProfile.prototype, "injectFeaturedNote", void 0);
|
|
_ts_decorate([
|
|
Column("boolean", {
|
|
default: true
|
|
}),
|
|
_ts_metadata("design:type", Boolean)
|
|
], UserProfile.prototype, "receiveAnnouncementEmail", void 0);
|
|
_ts_decorate([
|
|
Column({
|
|
...id(),
|
|
nullable: true
|
|
}),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "pinnedPageId", void 0);
|
|
_ts_decorate([
|
|
OneToOne((type)=>Page, {
|
|
onDelete: "SET NULL"
|
|
}),
|
|
JoinColumn(),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "pinnedPage", void 0);
|
|
_ts_decorate([
|
|
Column("jsonb", {
|
|
default: {}
|
|
}),
|
|
_ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
|
|
], UserProfile.prototype, "integrations", void 0);
|
|
_ts_decorate([
|
|
Index(),
|
|
Column("boolean", {
|
|
default: false,
|
|
select: false
|
|
}),
|
|
_ts_metadata("design:type", Boolean)
|
|
], UserProfile.prototype, "enableWordMute", void 0);
|
|
_ts_decorate([
|
|
Column("jsonb", {
|
|
default: []
|
|
}),
|
|
_ts_metadata("design:type", Array)
|
|
], UserProfile.prototype, "mutedWords", void 0);
|
|
_ts_decorate([
|
|
Column("jsonb", {
|
|
default: [],
|
|
comment: "List of instances muted by the user."
|
|
}),
|
|
_ts_metadata("design:type", Array)
|
|
], UserProfile.prototype, "mutedInstances", void 0);
|
|
_ts_decorate([
|
|
Column("enum", {
|
|
enum: notificationTypes,
|
|
array: true,
|
|
default: []
|
|
}),
|
|
_ts_metadata("design:type", Array)
|
|
], UserProfile.prototype, "mutingNotificationTypes", void 0);
|
|
_ts_decorate([
|
|
Column("jsonb", {
|
|
default: {},
|
|
comment: "Language map of user pronouns"
|
|
}),
|
|
_ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
|
|
], UserProfile.prototype, "pronouns", void 0);
|
|
_ts_decorate([
|
|
Index(),
|
|
Column("varchar", {
|
|
length: 512,
|
|
nullable: true,
|
|
comment: "[Denormalized]"
|
|
}),
|
|
_ts_metadata("design:type", Object)
|
|
], UserProfile.prototype, "userHost", void 0);
|
|
UserProfile = _ts_decorate([
|
|
Entity(),
|
|
_ts_metadata("design:type", Function),
|
|
_ts_metadata("design:paramtypes", [
|
|
typeof Partial === "undefined" ? Object : Partial
|
|
])
|
|
], UserProfile);
|