Merge branch 'develop' into firefish-docs/develop

This commit is contained in:
naskya 2024-03-05 18:37:46 +09:00
commit 95c3e007c0
No known key found for this signature in database
GPG key ID: 712D413B3A9FED5C
279 changed files with 2099 additions and 1689 deletions

View file

@ -1,5 +1,5 @@
_lang_: Български _lang_: Български
cancel: Отмени cancel: Отказ
noNotes: Няма публикации noNotes: Няма публикации
settings: Настройки settings: Настройки
headlineFirefish: Децентрализирана социална медийна платформа с отворен код, която headlineFirefish: Децентрализирана социална медийна платформа с отворен код, която
@ -7,27 +7,27 @@ headlineFirefish: Децентрализирана социална медийн
notifications: Известия notifications: Известия
forgotPassword: Забравена парола forgotPassword: Забравена парола
uploading: Качване... uploading: Качване...
addInstance: Добави сървър addInstance: Добавяне на сървър
favorite: Добави в отметки favorite: Добавяне към отметките
delete: Изтрий delete: Изтриване
unpin: Откачи от профила unpin: Откачане от профила
copyLink: Копирай връзката copyLink: Копиране на връзката
pin: Закачи в профила pin: Закачане в профила
deleted: Изтрито deleted: Изтрито
deleteAndEditConfirm: Сигурни ли сте, че искате да изтриете тази публикация и да я deleteAndEditConfirm: Сигурен ли си, че искаш да изтриеш тази публикация и да я редактираш?
редактирате? Ще загубите всички реакции, подсилвания и отговори към нея. Ще загубиш всички реакции, подсилвания и отговори към нея.
copyUsername: Копирай потребителското име copyUsername: Копиране на потребителското име
searchUser: Търсене на потребител searchUser: Търсене на потребител
reply: Отговори reply: Отговор
showMore: Покажи още showMore: Покажи още
loadMore: Зареди още loadMore: Зареди още
followRequestAccepted: Заявка за последване приета followRequestAccepted: Заявка за последване приета
importAndExport: Импорт/Експорт на Данни importAndExport: Импорт/Експорт на Данни
import: Импортиране import: Импортиране
download: Свали download: Изтегляне
export: Експортиране export: Експортиране
files: Файлове files: Файлове
unblock: Отблокирай unblock: Отблокиране
_sensitiveMediaDetection: _sensitiveMediaDetection:
setSensitiveFlagAutomatically: Маркиране като деликатно setSensitiveFlagAutomatically: Маркиране като деликатно
searchWith: 'Търсене: {q}' searchWith: 'Търсене: {q}'
@ -35,67 +35,80 @@ smtpUser: Потребителско име
notificationType: Тип известие notificationType: Тип известие
searchResult: Резултати от търсенето searchResult: Резултати от търсенето
searchByGoogle: Търсене searchByGoogle: Търсене
markAsReadAllNotifications: Маркирай всички известия като прочетени markAsReadAllNotifications: Маркиране на всички известия като прочетени
settingGuide: Препоръчителни настройки settingGuide: Препоръчителни настройки
smtpPass: Парола smtpPass: Парола
newPasswordIs: Новата парола е "{password}" newPasswordIs: Новата парола е "{password}"
members: Членове members: Членове
help: Помощ help: Помощ
hide: Скрий hide: Скриване
group: Група group: Група
groups: Групи groups: Групи
incorrectPassword: Грешна парола. incorrectPassword: Грешна парола.
leaveGroup: Напусни групата leaveGroup: Напускане на групата
numberOfColumn: Брой колони numberOfColumn: Брой колони
passwordLessLogin: Вписване без парола passwordLessLogin: Вход без парола
newPasswordRetype: Въведи отново парола newPasswordRetype: Повтори новата парола
saveAs: Запази като... saveAs: Запазване като...
resetPassword: Нулиране на парола resetPassword: Нулиране на паролата
saveConfirm: Запазване на промените? saveConfirm: Запазване на промените?
inputNewFolderName: Въведи ново име на папка inputNewFolderName: Въведи ново име на папка
upload: Качване upload: Качване
retypedNotMatch: Въвежданията не съвпадат. retypedNotMatch: Въвежданията не съвпадат.
_ago: _ago:
weeksAgo: преди {n}с weeksAgo: преди {n}сед
secondsAgo: преди {n}сек secondsAgo: преди {n}сек
hoursAgo: преди {n}ч hoursAgo: преди {n}ч
minutesAgo: преди {n}мин minutesAgo: преди {n}мин
daysAgo: преди {n}д daysAgo: преди {n}д
monthsAgo: преди {n}м monthsAgo: преди {n}мес
yearsAgo: преди {n}г yearsAgo: преди {n}г
future: Бъдеще future: Бъдеще
justNow: Точно сега justNow: Току-що
folderName: Име на папка folderName: Име на папка
renameFile: Преименувай файл renameFile: Преименуване на файла
_widgets: _widgets:
activity: Дейност activity: Дейност
notifications: Известия notifications: Известия
timeline: Инфопоток timeline: Инфопоток
clock: Часовник
trends: Актуални
photos: Снимки
unixClock: UNIX часовник
calendar: Календар
digitalClock: Дигитален часовник
button: Бутон
slideshow: Слайдшоу
_userList:
chooseList: Избор на списък
instanceSecurity: Сигурност на сървъра instanceSecurity: Сигурност на сървъра
uploadFolder: Папка по подразбиране за качвания uploadFolder: Папка по подразбиране за качвания
instanceInfo: Информация за сървъра instanceInfo: Информация за сървъра
statistics: Статистика statistics: Статистика
fileName: Име на файл fileName: Име на файл
selectFile: Избери файл selectFile: Избор на файл
editProfile: Редактирай профил editProfile: Редактиране на профила
instances: Сървъри instances: Сървъри
selectUser: Избери потребител selectUser: Избор на потребител
createNew: Създай ново createNew: Създаване на ново
blockThisInstance: Блокирай този сървър blockThisInstance: Блокиране на този сървър
_profile: _profile:
metadata: Допълнителна информация metadata: Допълнителна информация
username: Потребителско име username: Потребителско име
name: Име name: Име
description: Биография description: Биография
metadataContent: Съдържание metadataContent: Съдържание
addAccount: Добави акаунт metadataLabel: Етикет
metadataEdit: Редактиране на допълнителната информация
changeAvatar: Промяна на профилната снимка
addAccount: Добавяне на акаунт
followRequestPending: Заявка за последване в изчакване followRequestPending: Заявка за последване в изчакване
signinHistory: История на вписванията signinHistory: История на вписванията
or: Или or: Или
noUsers: Няма потребители noUsers: Няма потребители
notes: Публикации notes: Публикации
newNoteRecived: Има нови публикации newNoteRecived: Има нови публикации
note: Публикация note: Публикуване
instanceFollowing: Последвани на сървъра instanceFollowing: Последвани на сървъра
_filters: _filters:
followersOnly: Само последователи followersOnly: Само последователи
@ -110,35 +123,60 @@ _notification:
follow: Нови последователи follow: Нови последователи
mention: Споменавания mention: Споменавания
reaction: Реакции reaction: Реакции
reply: Отговора
all: Всички
quote: Цитирания
pollEnded: Приключване на анкети
app: Известия от свързани приложения
renote: Подсилвания
pollVote: Гласувания в анкети
receiveFollowRequest: Получени заявки за следване
followRequestAccepted: Приети заявки за следване
groupInvited: Покани в групи
youGotReply: '{name} ти отговори'
fileUploaded: Файлът е качен успешно
youWereFollowed: те последва
_actions:
reply: Отговор
renote: Подсилвания
youGotQuote: '{name} те цитира'
youGotMention: '{name} те спомена'
youGotMessagingMessageFromUser: '{name} ти изпрати чат съобщение'
_channel: _channel:
notesCount: '{n} Публикации' notesCount: '{n} Публикации'
nameOnly: Само име
nameAndDescription: Име и описание
create: Създаване на канал
unfollow: Отследване unfollow: Отследване
noLists: Нямаш никакви списъци noLists: Нямаш никакви списъци
markAsReadAllUnreadNotes: Маркирай всички публикации като прочетени markAsReadAllUnreadNotes: Маркиране на всички публикации като прочетени
markAsReadAllTalkMessages: Маркирай всички съобщения като прочетени markAsReadAllTalkMessages: Маркиране на всички съобщения като прочетени
_time: _time:
second: Секунди second: Секунди
hour: Часа hour: Часа
day: Дни day: Дни
minute: Минути minute: Минути
create: Създай create: Създаване
lists: Списъци lists: Списъци
reportAbuseOf: Докладвай {name} reportAbuseOf: Докладване на {name}
reporter: Докладчик reporter: Докладчик
abuseReports: Доклади abuseReports: Доклади
logoImageUrl: URL на лого изображение logoImageUrl: URL на лого изображение
reportAbuse: Доклад reportAbuse: Докладване
latestRequestReceivedAt: Последно получена заявка latestRequestReceivedAt: Последно получена заявка
location: Местонахождение location: Местоположение
keepOriginalUploading: Запази оригиналното изображение keepOriginalUploading: Запазване на оригиналното изображение
renotesCount: Брой изпратени подсилвания renotesCount: Брой изпратени подсилвания
license: Лиценз license: Лиценз
lastUsedDate: Последно използвано на lastUsedDate: Последно използвано на
rename: Преименувай rename: Преименуване
customEmojis: Персонализирани емоджита customEmojis: Персонализирани емоджита
emoji: Емоджи emoji: Емоджи
_aboutFirefish: _aboutFirefish:
translation: Преведи Firefish translation: Преведи Firefish
source: Програмен код
contributors: Основни сътрудници
allContributors: Всички сътрудници
translatedFrom: Преведено от {x} translatedFrom: Преведено от {x}
i18nInfo: Firefish се превежда на различни езици от доброволци. Можете да помогнете i18nInfo: Firefish се превежда на различни езици от доброволци. Можете да помогнете
на адрес {link}. на адрес {link}.
@ -159,32 +197,46 @@ monthX: '{month}'
dayX: '{day}' dayX: '{day}'
registration: Регистрация registration: Регистрация
popularUsers: Популярни потребители popularUsers: Популярни потребители
details: Детайли details: Подробности
tenMinutes: 10 минути tenMinutes: 10 минути
oneDay: Един ден oneDay: Един ден
file: Файл file: Файл
oneHour: Един час oneHour: Един час
video: Видео video: Видео
createNewClip: Създай нова подборка createNewClip: Създаване на нова подборка
clips: Подборки clips: Подборки
active: Активен active: Активен
menu: Меню menu: Меню
itsOff: Изключено itsOff: Изключено
remindMeLater: Може би по-късно remindMeLater: Може би по-късно
removed: Успешно изтриване removed: Успешно изтриване
deleteAllFiles: Изтрий всички файлове deleteAllFiles: Изтриване на всички файлове
deletedNote: Изтрита публикация deletedNote: Изтрита публикация
deleteConfirm: Потвърждавате ли изтриването? deleteConfirm: Потвърждавате ли изтриването?
hasChildFilesOrFolders: Тъй като тази папка не е празна, тя не може да бъде изтрита. hasChildFilesOrFolders: Тъй като тази папка не е празна, тя не може да бъде изтрита.
nsfw: Деликатно съдържание nsfw: Деликатно
default: По подразбиране default: По подразбиране
_theme: _theme:
defaultValue: Стойност по подразбиране defaultValue: Стойност по подразбиране
keys: keys:
mention: Споменаване mention: Споменаване
renote: Подсили renote: Подсилване
link: Връзка
hashtag: Хаштаг
fg: Текст
color: Цвят color: Цвят
explore: Разгледай темите explore: Разглеждане на темите
description: Описание
manage: Управление на темите
install: Инсталиране на тема
code: Код на темата
builtinThemes: Вградени теми
func: Функции
key: Ключ
argument: Аргумент
installedThemes: Инсталирани теми
constant: Константа
addConstant: Добавяне на константа
_pages: _pages:
script: script:
blocks: blocks:
@ -200,40 +252,116 @@ _pages:
_seedRannum: _seedRannum:
arg3: Максимална стойност arg3: Максимална стойност
arg2: Минимална стойност arg2: Минимална стойност
_strPick:
arg1: Текст
_if:
arg3: Иначе
arg2: Тогава
arg1: Ако
_randomPick:
arg1: Списък
fn: Функция
_strLen:
arg1: Текст
_strReplace:
arg1: Текст
_strReverse:
arg1: Текст
_stringToNumber:
arg1: Текст
text: Текст
_splitStrByLine:
arg1: Текст
_listLen:
arg1: Списък
_dailyRandomPick:
arg1: Списък
_seedRandomPick:
arg2: Списък
_pick:
arg1: Списък
categories: categories:
value: Стойности value: Стойности
list: Списъци list: Списъци
fn: Функции
types:
string: Текст
array: Списък
blocks: blocks:
_textInput: _textInput:
default: Стойност по подразбиране default: Стойност по подразбиране
text: Заглавие
_switch: _switch:
default: Стойност по подразбиране default: Стойност по подразбиране
text: Заглавие
_textareaInput: _textareaInput:
default: Стойност по подразбиране default: Стойност по подразбиране
text: Заглавие
_numberInput: _numberInput:
default: Стойност по подразбиране default: Стойност по подразбиране
text: Заглавие
_radioButton: _radioButton:
default: Стойност по подразбиране default: Стойност по подразбиране
title: Заглавие
_if:
variable: Променлива
_counter:
text: Заглавие
inc: Стъпка
button: Бутон
if: Ако
image: Изображения
text: Текст
_post:
text: Съдържание
_button:
_action:
_dialog:
content: Съдържание
text: Заглавие
created: Страницата е създадена успешно
editPage: Редактиране на тази страница
editThisPage: Редактиране на тази страница
updated: Страницата е редактирана успешно
featured: Популярни
liked: Харесани страници
contentBlocks: Съдържание
contents: Съдържание
deleted: Страницата е изтрита успешно
newPage: Създаване на нова страница
like: Харесване
font: Шрифт
title: Заглавие
my: Моите страници
pageSetting: Настройки на страницата
_deck: _deck:
_columns: _columns:
notifications: Известия notifications: Известия
mentions: Споменавания mentions: Споменавания
tl: Инфопоток tl: Инфопоток
direct: Директни съобщения direct: Директни съобщения
list: Списък
antenna: Антена
addColumn: Добавяне на колона
_mfm: _mfm:
mention: Споменаване mention: Споменаване
search: Търсене search: Търсене
link: Връзка
hashtag: Хаштаг
url: URL адрес
font: Шрифт
_messaging: _messaging:
groups: Групи groups: Групи
dms: Лични
apps: Приложения apps: Приложения
introFirefish: Добре дошли! Firefish е децентрализирана социална медийна платформа introFirefish: Добре дошли! Firefish е децентрализирана социална медийна платформа
с отворен код, която е безплатна завинаги! 🚀 с отворен код, която е безплатна завинаги! 🚀
monthAndDay: '{day}/{month}' monthAndDay: '{day}/{month}'
search: Търсене search: Търсене
searchPlaceholder: Търсене в Firefish searchPlaceholder: Търсене във Firefish
username: Потребителско име username: Потребителско име
password: Парола password: Парола
fetchingAsApObject: Извличане от федивърса fetchingAsApObject: Извличане от Федивселената
ok: Добре ok: Добре
gotIt: Разбрах! gotIt: Разбрах!
noThankYou: Не, благодаря noThankYou: Не, благодаря
@ -243,32 +371,32 @@ noNotifications: Няма известия
instance: Сървър instance: Сървър
basicSettings: Основни Настройки basicSettings: Основни Настройки
otherSettings: Други Настройки otherSettings: Други Настройки
openInWindow: Отвори в прозорец openInWindow: Отваряне в прозорец
profile: Профил profile: Профил
timeline: Инфопоток timeline: Инфопоток
noAccountDescription: Този потребител все още не е написал своята биография. noAccountDescription: Този потребител все още не е написал своята биография.
login: Впиши се login: Вход
loggingIn: Вписване loggingIn: Вписване
logout: Отпиши се logout: Изход
signup: Регистрирай се signup: Регистрация
save: Запазване save: Запазване
users: Потребители users: Потребители
addUser: Добави потребител addUser: Добавяне на потребител
favorites: Отметки favorites: Отметки
unfavorite: Премахни от отметки unfavorite: Премахване от отметките
favorited: Добавено в отметки. favorited: Добавено към отметките.
alreadyFavorited: Вече е добавено в отметки. alreadyFavorited: Вече е добавено към отметките.
cantFavorite: Неуспешно добавяне в отметки. cantFavorite: Неуспешно добавяне към отметките.
copyContent: Копирай съдържанието copyContent: Копиране на съдържанието
deleteAndEdit: Изтрий и редактирай deleteAndEdit: Изтриване и редактиране
editNote: Редактирай публикация editNote: Редактиране на публикацията
edited: Редактирано на {date} {time} edited: Редактирано на {date} {time}
addToList: Добави в списък addToList: Добавяне към списък
sendMessage: Изпрати съобщение sendMessage: Изпращане на съобщение
jumpToPrevious: Премини към предишно jumpToPrevious: Премини към предишно
newer: по-ново newer: по-ново
older: по-старо older: по-старо
showLess: Затвори showLess: Покажи по-малко
youGotNewFollower: те последва youGotNewFollower: те последва
receiveFollowRequest: Заявка за последване получена receiveFollowRequest: Заявка за последване получена
mention: Споменаване mention: Споменаване
@ -278,74 +406,74 @@ cw: Предупреждение за съдържание
followers: Последователи followers: Последователи
following: Последвани following: Последвани
followsYou: Следва те followsYou: Следва те
createList: Създай списък createList: Създаване на списък
error: Грешка error: Грешка
manageLists: Управление на списъци manageLists: Управление на списъци
retry: Повторен опит retry: Повторен опит
follow: Следване follow: Последване
followRequest: Заявка за последване followRequest: Заявка за последване
followRequests: Заявки за последване followRequests: Заявки за последване
defaultNoteVisibility: Видимост по подразбиране defaultNoteVisibility: Видимост по подразбиране
unrenote: Върни обратно подсилване unrenote: Отмяна на подсилването
renoted: Подсилено. renoted: Подсилено.
cantRenote: Тази публикация не може да бъде подсилена. cantRenote: Тази публикация не може да бъде подсилена.
renote: Подсили renote: Подсилване
enterEmoji: Въведи емоджи enterEmoji: Въведи емоджи
sensitive: Деликатно съдържание sensitive: Деликатно
add: Добави add: Добавяне
pinned: Закачено в профила pinned: Закачено в профила
quote: Цитирай quote: Цитиране
pinnedNote: Закачена публикация pinnedNote: Закачена публикация
cantReRenote: Подсилване не може да бъде подсилено. cantReRenote: Подсилване не може да бъде подсилено.
clickToShow: Кликни за показване clickToShow: Щракни за показване
you: Ти you: Ти
reaction: Реакции reaction: Реакции
removeReaction: Премахни реакцията си removeReaction: Премахване на реакцията
enterFileName: Въведи име на файл enterFileName: Въведи име на файл
unmarkAsSensitive: Отмаркирай като деликатно unmarkAsSensitive: Отмаркиране като деликатно
markAsSensitive: Маркирай като деликатно markAsSensitive: Маркиране като деликатно
block: Блокирай block: Блокиране
emojis: Емоджита emojis: Емоджита
addEmoji: Добави addEmoji: Добавяне
emojiName: Име на емоджи emojiName: Име на емоджи
emojiUrl: URL на емоджи emojiUrl: URL адрес на емоджи
loginFailed: Неуспешно вписване loginFailed: Неуспешно вписване
flagAsCat: Котка ли си? 😺 flagAsCat: Котка ли си? 😺
flagSpeakAsCat: Говори като котка flagSpeakAsCat: Говорене като котка
youHaveNoLists: Нямаш никакви списъци youHaveNoLists: Нямаш никакви списъци
selectInstance: Избери сървър selectInstance: Избор на сървър
annotation: Коментари annotation: Коментари
latestRequestSentAt: Последно изпратена заявка latestRequestSentAt: Последно изпратена заявка
stopActivityDelivery: Спри изпращането на дейности stopActivityDelivery: Спиране на изпращането на дейности
version: Версия version: Версия
clearCachedFiles: Изтрий кеш clearCachedFiles: Изчистване на кеша
noInstances: Няма сървъри noInstances: Няма сървъри
federating: Федериране federating: Федериране
defaultValueIs: 'По подразбиране: {value}' defaultValueIs: 'По подразбиране: {value}'
noCustomEmojis: Няма емоджи noCustomEmojis: Няма емоджи
changePassword: Промени парола changePassword: Промяна на паролата
currentPassword: Настояща парола currentPassword: Текуща парола
instanceUsers: Потребители на този сървър instanceUsers: Потребители на този сървър
security: Сигурност security: Сигурност
instanceFollowers: Последователи на сървъра instanceFollowers: Последователи на сървъра
newPassword: Нова парола newPassword: Нова парола
more: Още! more: Още!
remove: Изтрий remove: Изтриване
saved: Запазено saved: Запазени
messaging: Чат messaging: Чат
birthday: Рожден ден birthday: Рожден ден
images: Изображения images: Изображения
activity: Дейност activity: Дейност
createFolder: Създай папка createFolder: Създаване на папка
renameFolder: Преименувай тази папка renameFolder: Преименуване на тази папка
selectFolders: Избери папки selectFolders: Избор на папки
selectFolder: Избери папка selectFolder: Избор на папка
selectFiles: Избери файлове selectFiles: Избор на файлове
addFile: Добави на файл addFile: Добавяне на файл
inputNewFileName: Въведи ново име на файл inputNewFileName: Въведи ново име на файл
deleteFolder: Изтрий тази папка deleteFolder: Изтриване на тази папка
emptyFolder: Тази папка е празна emptyFolder: Тази папка е празна
copyUrl: Копирай URL copyUrl: Копиране на URL адреса
pages: Страници pages: Страници
thisYear: Година thisYear: Година
thisMonth: Месец thisMonth: Месец
@ -363,27 +491,27 @@ moderation: Модерация
administrator: Администратор administrator: Администратор
lastUsed: Последно използвано lastUsed: Последно използвано
unregister: Отрегистрация unregister: Отрегистрация
share: Сподели share: Споделяне
notFound: Не е намерено notFound: Не е намерено
inputMessageHere: Въведи съобщение тук inputMessageHere: Въведи съобщение тук
createGroup: Създай група createGroup: Създаване на група
close: Затвори close: Затваряне
next: Следващо next: Следващо
title: Заглавие title: Заглавие
messagingWithGroup: Групов чат messagingWithGroup: Групов чат
enable: Включи enable: Включване
retype: Въведи отново retype: Въведи отново
noteOf: Публикация от {user} noteOf: Публикация от {user}
quoteAttached: Цитат quoteAttached: Цитат
newMessageExists: Има нови съобщения newMessageExists: Има нови съобщения
noMessagesYet: Все още няма съобщения noMessagesYet: Все още няма съобщения
language: Език language: Език
createAccount: Създай акаунт createAccount: Създаване на акаунт
existingAccount: Съществуващ акаунт existingAccount: Съществуващ акаунт
deleteAll: Изтрий всички deleteAll: Изтриване на всички
enableAll: Включване на всички enableAll: Включване на всички
disableAll: Изключване на всички disableAll: Изключване на всички
copy: Копирай copy: Копиране
reporteeOrigin: Произход на докладвания reporteeOrigin: Произход на докладвания
reporterOrigin: Произход на докладчика reporterOrigin: Произход на докладчика
clip: Подборка clip: Подборка
@ -396,7 +524,7 @@ repliedCount: Брой получени отговори
sentReactionsCount: Брой изпратени реакции sentReactionsCount: Брой изпратени реакции
yes: Да yes: Да
no: Не no: Не
alwaysMarkSensitive: Маркирай като деликатно по подразбиране alwaysMarkSensitive: Маркиране като деликатно по подразбиране
noteFavoritesCount: Брой публикации с отметки noteFavoritesCount: Брой публикации с отметки
left: Ляво left: Ляво
nNotes: '{n} Публикации' nNotes: '{n} Публикации'
@ -409,28 +537,40 @@ typingUsers: '{users} пише'
user: Потребител user: Потребител
enabled: Включено enabled: Включено
disabled: Изключено disabled: Изключено
whatIsNew: Покажи промените whatIsNew: Показване на промените
translate: Преведи translate: Превеждане
itsOn: Включено itsOn: Включено
oneWeek: Една седмица oneWeek: Една седмица
audio: Звук audio: Звук
removeQuote: Премахни цитат removeQuote: Премахване на цитата
_sfx: _sfx:
notification: Известия notification: Известия
chat: Чат
antenna: Антени
note: Нова публикация
_permissions: _permissions:
"read:favorites": Виж списъка си с отметки "read:favorites": Виж списъка си с отметки
"write:favorites": Редактирай списъка си с отметки "write:favorites": Редактирай списъка си с отметки
_visibility: _visibility:
followers: Последователи followers: Последователи
specified: Директна
localOnly: Само местни
public: Публична
publicDescription: Публикацията ще бъде видима във всички публични инфопотоци
home: Скрита
localOnlyDescription: Не е видима за отдалечени потребители
specifiedDescription: Видима само за определени потребители
followersDescription: Видима само за последователите ти и споменатите потребители
homeDescription: Публикуване само в началния инфопоток
explore: Разглеждане explore: Разглеждане
theme: Теми theme: Теми
wallpaper: Тапет wallpaper: Тапет
setWallpaper: Задай тапет setWallpaper: Задаване на тапет
removeWallpaper: Премахни тапет removeWallpaper: Премахване на тапета
themeForLightMode: Тема за използване в светъл режим themeForLightMode: Тема за използване в светъл режим
themeForDarkMode: Тема за използване в тъмен режим themeForDarkMode: Тема за използване в тъмен режим
light: Светло light: Светла
dark: Тъмно dark: Тъмна
darkThemes: Тъмни теми darkThemes: Тъмни теми
invitations: Покани invitations: Покани
invitationCode: Код на поканата invitationCode: Код на поканата
@ -443,9 +583,9 @@ weakPassword: Слаба парола
strongPassword: Силна парола strongPassword: Силна парола
passwordMatched: Съвпада passwordMatched: Съвпада
passwordNotMatched: Не съвпада passwordNotMatched: Не съвпада
signinWith: Вписване с {x} signinWith: Вход с {x}
aboutX: Относно {x} aboutX: Относно {x}
openInNewTab: Отвори в нов раздел openInNewTab: Отваряне в нов раздел
_tutorial: _tutorial:
step2_1: Първо, моля, попълнете своя профил. step2_1: Първо, моля, попълнете своя профил.
step2_2: Предоставянето на известна информация за това кой сте вие ще улесни другите step2_2: Предоставянето на известна информация за това кой сте вие ще улесни другите
@ -455,8 +595,24 @@ _tutorial:
step5_1: Инфопотоци, инфопотоци навсякъде! step5_1: Инфопотоци, инфопотоци навсякъде!
step3_1: Сега е време да последвате няколко хора! step3_1: Сега е време да последвате няколко хора!
step1_2: Нека да ви настроим. Ще бъдете готови за нула време! step1_2: Нека да ви настроим. Ще бъдете готови за нула време!
openImageInNewTab: Отваряй изображенията в нов раздел step5_3: Началният {icon} инфопоток е мястото, където можеш да видиш публикации
showOnRemote: Отвори оригиналната страница от акаунтите, които следваш.
step6_1: И така, какво е това място?
step5_7: Глобалният {icon} инфопоток е мястото, където можете да видиш публикации
от всеки друг свързан сървър.
step4_2: За първата си публикация някои хора обичат да правят публикация {introduction}
или просто „Здравей свят!“
step5_2: Вашият сървър има активирани {timelines} различни инфопотоци.
step5_4: Местният {icon} инфопоток е мястото, където можеш да видиш публикации от
всички останали на този сървър.
step5_5: Социалният {icon} инфопоток е комбинация от Началния и Местния инфопоток.
step5_6: Препоръчаният {icon} инфопоток е мястото, където можеш да видиш публикации
от сървъри, препоръчани от администраторите.
step6_4: Сега отидете, изследвайте и се забавлявайте!
step6_3: Всеки сървър работи по различни начини и не всички сървъри работят с Firefish.
Този обаче го прави! Малко е сложно, но ще разберете за нула време.
openImageInNewTab: Отваряне на изображенията в нов раздел
showOnRemote: Отваряне на първообразната страница
lightThemes: Светли теми lightThemes: Светли теми
syncDeviceDarkMode: Синхронизиране на тъмния режим с настройките на устройството syncDeviceDarkMode: Синхронизиране на тъмния режим с настройките на устройството
text: Текст text: Текст
@ -464,14 +620,241 @@ normalPassword: Средна парола
usernameInvalidFormat: Можете да използвате главни и малки букви, цифри и долни черти. usernameInvalidFormat: Можете да използвате главни и малки букви, цифри и долни черти.
signinFailed: Неуспешно вписване. Въведените потребителско име или парола са неправилни. signinFailed: Неуспешно вписване. Въведените потребителско име или парола са неправилни.
signinRequired: Моля, регистрирайте се или се впишете, преди да продължите signinRequired: Моля, регистрирайте се или се впишете, преди да продължите
start: Започни start: Започване
confirm: Потвърди confirm: Потвърждаване
failedToUpload: Неуспешно качване failedToUpload: Неуспешно качване
_preferencesBackups: _preferencesBackups:
cannotSave: Неуспешно запазване cannotSave: Неуспешно запазване
cannotLoad: Неуспешно зареждане cannotLoad: Неуспешно зареждане
saveNew: Запазване на ново резервно копие
inputName: Моля, въведи име за това резервно копие
deleteConfirm: Изтриване на резервното копие {name}?
loadFile: Зареждане от файл
save: Запазване на промените
apply: Прилагане към това устройство
list: Създадени резервни копия
saveConfirm: Запазване на резервното копие като {name}?
createdAt: 'Създадено на: {date} {time}'
updatedAt: 'Обновено на: {date} {time}'
editWidgetsExit: Готово editWidgetsExit: Готово
done: Готово done: Готово
emailRequiredForSignup: Изискване за адрес на е-поща за регистриране emailRequiredForSignup: Изискване на адрес на ел. поща за регистриране
preview: Преглед preview: Преглед
privacy: Поверителност privacy: Поверителност
about: Относно
aboutFirefish: Относно Firefish
author: Автор
software: Софтуер
category: Категория
renotes: Подсилвания
quotes: Цитирания
reactions: Реакции
attachCancel: Премахване на прикачен файл
mute: Заглушаване
unmute: Отмяна на заглушаването
selectAntenna: Избор на антена
selectList: Избор на списък
editWidgets: Редактиране на джаджите
flagAsCatDescription: Ще получиш котешки уши и ще говориш като котка!
host: Хост
perHour: За час
perDay: За ден
operations: Операции
mutedUsers: Заглушени потребители
imageUrl: URL адрес на изображение
announcements: Оповестявания
removeAreYouSure: Сигурен ли си, че искаш да премахнеш "{x}"?
fromUrl: От URL адрес
manageGroups: Управление на групи
nUsersRead: прочетено от {n}
home: Начало
registeredDate: Присъединяване
avatar: Профилна снимка
watch: Наблюдаване
antennas: Антени
manageAntennas: Управление на антени
popularTags: Популярни тагове
cacheClear: Изчистване на кеша
groupName: Име на групата
local: Местни
total: Общо
remote: Отдалечени
accountSettings: Настройки на акаунта
showInPage: Показване в страницата
install: Инсталиране
uninstall: Деинсталиране
invisibleNote: Невидима публикация
poll: Анкета
useCw: Скриване на съдържание
smtpHost: Хост
preferencesBackups: Резервни копия
emailServer: Ел. пощенски сървър
overview: Обзор
reloadToApplySetting: Тази настройка ще се приложи само след презареждане на страницата.
Презареждане сега?
markAllAsRead: Маркиране на всички като прочетени
addDescription: Добавяне на описание
userInfo: Информация за потребителя
switchAccount: Превключване на акаунт
gallery: Галерия
priority: Приоритет
unread: Непрочетени
filter: Филтриране
manageAccounts: Управление на акаунти
deleteAccount: Изтриване на акаунта
fast: Бърза
remoteOnly: Само отдалечени
move: Преместване
navbar: Навигационна лента
moveTo: Преместване на текущия акаунт в нов акаунт
moveAccount: Преместване на акаунта!
_gallery:
my: Моята галерия
like: Харесване
liked: Харесани публикации
_registry:
keys: Ключове
key: Ключ
createKey: Създаване на ключ
domain: Домейн
_weekday:
tuesday: Вторник
wednesday: Сряда
thursday: Четвъртък
saturday: Събота
monday: Понеделник
friday: Петък
sunday: Неделя
_antennaSources:
users: Публикации от конкретни потребители
userGroup: Публикации от потребители в конкретна група
instances: Публикации от всички потребители на сървър
all: Всички публикации
homeTimeline: Публикации от последвани потребители
userList: Публикации от конкретен списък с потребители
_poll:
choiceN: Избор {n}
infinite: Никога
totalVotes: '{n} гласа общо'
votesCount: '{n} гласа'
expiration: Приключване на анкетата
_timelines:
local: Местни
home: Начало
global: Глобални
recommended: Препоръчани
social: Социални
_feeds:
copyFeed: Копиране на емисия
rss: RSS
atom: Atom
jsonFeed: JSON feed
general: Общи
metadata: Метаданни
disk: Диск
featured: Представени
yearsOld: на {age} години
reload: Опресняване
invites: Покани
blockedInstances: Блокирани сървъри
inMb: В мегабайти
unfollowConfirm: Сигурен ли си, че искаш да спреш да следваш {name}?
somethingHappened: Възникна грешка
pageLoadError: Възникна грешка при зареждането на страницата.
enterListName: Въведи име за списъка
shareWithNote: Споделяне чрез публикация
flagAsBot: Маркиране на този акаунт като автоматизиран
selectChannel: Избор на канал
all: Всичко
muteAndBlock: Заглушени и блокирани
blockedUsers: Блокирани потребители
noteDeleteConfirm: Сигурен ли си, че искаш да изтриеш тази публикация?
hiddenTags: Скрити хаштагове
deleteAreYouSure: Сигурен ли си, че искаш да изтриеш "{x}"?
startMessaging: Започване на нов чат
uploadFromUrl: Качване от URL адрес
instanceName: Име на сървъра
instanceDescription: Описание на сървъра
accept: Приемане
enableLocalTimeline: Включване на местния инфопоток
enableGlobalTimeline: Включване на глобалния инфопоток
findOtherInstance: Намиране на друг сървър
removeMember: Премахване на член
isAdmin: Администратор
isModerator: Модератор
_menuDisplay:
hide: Скриване
_exportOrImport:
allNotes: Всички публикации
exploreFediverse: Разглеждане на Федивселената
recentlyUpdatedUsers: Последно активни потребители
uiLanguage: Език на потребителския интерфейс
dashboard: Табло
tags: Тагове
youHaveNoGroups: Нямаш групи
accessibility: Достъпност
email: Ел. поща
emailAddress: Адрес на ел. поща
addItem: Добавяне на елемент
visibility: Видимост
description: Описание
_relayStatus:
accepted: Прието
other: Други
channel: Канали
accountInfo: Информация за акаунта
send: Изпращане
clearCache: Изчистване на кеша
closeAccount: Затваряне на акаунта
onlineUsersCount: '{n} потребители на линия'
nUsers: '{n} Потребители'
developer: Разработчик
popularPosts: Популярни страници
info: Относно
recentPosts: Последни страници
offline: Извън линия
onlineStatus: Онлайн състояние
online: На линия
goBack: Назад
editCode: Редактиране на кода
publish: Публикувай
breakFollow: Премахване на последовател
learnMore: Научи повече
hashtags: Хаштагове
document: Документация
accounts: Акаунти
smartphone: Смартфон
isBot: Този акаунт е автоматизиран
size: Размер
tablet: Таблет
numberOfPageCache: Брой кеширани страници
localOnly: Само местни
beta: Бета
slow: Бавна
speed: Скорост
account: Акаунт
migration: Прехвърляне
moveToLabel: 'Акаунт, към който се местиш:'
withFiles: С прикачени файлове
renoteUnmute: Отмяна на заглушаването на подсилванията
selectWidget: Избор на джаджа
remoteUserCaution: Информацията от отдалечени потребители може да е непълна.
attachFile: Прикачване на файлове
unwatch: Спиране на наблюдаването
invite: Поканване
_wordMute:
mutedNotes: Заглушени публикации
_postForm:
_placeholders:
b: Какво се случва около теб?
recentlyDiscoveredUsers: Новооткрити потребители
recentlyRegisteredUsers: Новоприсъединени потребители
inviteToGroup: Поканване в група
nothing: Няма нищо за гледане тук
chooseEmoji: Избор на емоджи
switchUi: Оформление
previewNoteText: Показване на преглед
apply: Прилагане
selectAccount: Избор на акаунт
muteThread: Заглушаване на нишката
ffVisibility: Видимост на Последвани/Последователи

View file

@ -1002,8 +1002,8 @@ enableEmojiReactions: Activa reaccions amb emojis
blockThisInstance: Bloqueja aquest servidor blockThisInstance: Bloqueja aquest servidor
registration: Registra't registration: Registra't
showEmojisInReactionNotifications: Mostrar els emojis a les notificacions de les reaccions showEmojisInReactionNotifications: Mostrar els emojis a les notificacions de les reaccions
renoteMute: Silencia els impulsos renoteMute: Silencia els impulsos a les línies de temps
renoteUnmute: Treu el silenci als impulsos renoteUnmute: Treu el silenci als impulsos a les línies de temps
cacheRemoteFiles: Desa fitxers remots a la memòria cau cacheRemoteFiles: Desa fitxers remots a la memòria cau
federation: Federació federation: Federació
registeredAt: Registrat a registeredAt: Registrat a
@ -2239,3 +2239,8 @@ enableTimelineStreaming: Actualitza les línies de temps automàticament
enablePullToRefresh: Activa "Baixa per actualitzar" enablePullToRefresh: Activa "Baixa per actualitzar"
pullDownToReload: Baixa per actualitzar pullDownToReload: Baixa per actualitzar
pullToRefreshThreshold: Distancia de baixada per actualitzar pullToRefreshThreshold: Distancia de baixada per actualitzar
searchWords: Paraules / ID o adreça a URL a buscar
noSentFollowRequests: No tens cap sol·licitud de seguiment enviada
sentFollowRequests: Enviar sol·licituds de seguiment
replyMute: Silencia les respostes a les línies de temps
replyUnmute: Treu el silencia de les respostes a les línies de temps

1
locales/hu.yml Normal file
View file

@ -0,0 +1 @@
_lang_: "Magyar nyelv"

View file

@ -2021,8 +2021,8 @@ requireAdminForView: Devi avere un account amministratore per vedere questo cont
jumpToPrevious: Vai al precedente jumpToPrevious: Vai al precedente
flagShowTimelineReplies: Mostra le risposte nella timeline flagShowTimelineReplies: Mostra le risposte nella timeline
cw: Content warning cw: Content warning
renoteMute: Silenzia i boost renoteMute: Silenzia i boost nelle timeline
renoteUnmute: Non silenziare i boost renoteUnmute: Non silenziare i boost nelle timeline
enableEmojiReactions: Abilita le reazioni con emoji enableEmojiReactions: Abilita le reazioni con emoji
preferencesBackups: Backup delle preferenze preferencesBackups: Backup delle preferenze
adminCustomCssWarn: Questa impostazione dovrebbe essere usata solo se ne comprendi adminCustomCssWarn: Questa impostazione dovrebbe essere usata solo se ne comprendi
@ -2173,8 +2173,9 @@ showPreviewByDefault: Mostra sempre l'anteprima del messaggio
replaceWidgetsButtonWithReloadButton: Sostituisci il bottone dei widget con quello replaceWidgetsButtonWithReloadButton: Sostituisci il bottone dei widget con quello
di reload di reload
squareCatAvatars: Mostra avatar quadrati per gli account di gatti squareCatAvatars: Mostra avatar quadrati per gli account di gatti
searchEngine: Motore della barra di ricerca MFM searchEngine: Motore di ricerca della barra MFM
hideFollowButtons: Nascondi i bottoni di follow se in posizioni cliccabili per errore hideFollowButtons: Nascondi i bottoni di follow se sono in una posizione cliccabile
per errore
preventMisclick: Protezione dai click accidentali preventMisclick: Protezione dai click accidentali
forMobile: Mobile forMobile: Mobile
replaceChatButtonWithAccountButton: Sostituisci il bottone chat con quello di cambio replaceChatButtonWithAccountButton: Sostituisci il bottone chat con quello di cambio
@ -2197,3 +2198,17 @@ emojiModPermDescription: "Aggiungi: Permette all'utente di aggiungere emoji pers
in più permette di rimuovere le emoji personalizzate." in più permette di rimuovere le emoji personalizzate."
makePrivateConfirm: Questa operazione invierà ai server remoti un richiesta di rimozione makePrivateConfirm: Questa operazione invierà ai server remoti un richiesta di rimozione
e cambierà la visibilità a "Privato". Confermi? e cambierà la visibilità a "Privato". Confermi?
sentFollowRequests: Richieste di follow inviate
searchWords: Parole da cercare / ID o URL da mostrare
enablePullToRefresh: Abilita il "Trascina in basso per aggiornare"
pullToRefreshThreshold: Distanza di trascinamento per ricaricare
pullDownToReload: Trascina in basso per ricaricare
releaseToReload: Rilascia per ricaricare
reloading: Ricaricamento
enableTimelineStreaming: Aggiorna le timeline in automatico
noSentFollowRequests: Non hai inviato richieste di follow
replyMute: Silenzia le risposte nelle timeline
replyUnmute: Non silenziare le risposte nelle timeline
useCdn: Carica gli asset da CDN
useCdnDescription: Carica alcuni asset statici come Twemoji dal CDN JSDelivr invece
che da questo server Firefish.

View file

@ -14,8 +14,8 @@
"start:container": "pnpm run gulp && pnpm run migrate && pnpm run start", "start:container": "pnpm run gulp && pnpm run migrate && pnpm run start",
"start:test": "pnpm --filter backend run start:test", "start:test": "pnpm --filter backend run start:test",
"init": "pnpm run migrate", "init": "pnpm run migrate",
"migrate": "pnpm --filter backend run migrate", "migrate": "pnpm --filter backend run migration:run",
"revertmigration": "pnpm --filter backend run revertmigration", "revertmigration": "pnpm --filter backend run migration:revert",
"gulp": "gulp build", "gulp": "gulp build",
"watch": "pnpm run dev", "watch": "pnpm run dev",
"dev": "pnpm node ./scripts/dev.mjs", "dev": "pnpm node ./scripts/dev.mjs",

View file

@ -1,10 +0,0 @@
export class PinnedUsers1557476068003 {
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "pinnedUsers" character varying(256) array NOT NULL DEFAULT '{}'::varchar[]`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedUsers"`);
}
}

View file

@ -1,10 +0,0 @@
export class UserListJoining1558266512381 {
async up(queryRunner) {
await queryRunner.query(
`CREATE UNIQUE INDEX "IDX_90f7da835e4c10aca6853621e1" ON "user_list_joining" ("userId", "userListId") `,
);
}
async down(queryRunner) {
await queryRunner.query(`DROP INDEX "IDX_90f7da835e4c10aca6853621e1"`);
}
}

View file

@ -1,12 +0,0 @@
export class PasswordLessLogin1562422242907 {
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" ADD COLUMN "usePasswordLessLogin" boolean DEFAULT false NOT NULL`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "usePasswordLessLogin"`,
);
}
}

View file

@ -1,12 +0,0 @@
export class PageTitleHideOption1562448332510 {
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "page" ADD "hideTitleWhenPinned" boolean NOT NULL DEFAULT false`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "page" DROP COLUMN "hideTitleWhenPinned"`,
);
}
}

View file

@ -1,10 +0,0 @@
export class room1565634203341 {
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "room" jsonb NOT NULL DEFAULT '{}'`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "room"`);
}
}

View file

@ -1,14 +0,0 @@
export class CustomEmojiCategory1571220798684 {
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "emoji" ADD "category" character varying(128)`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "emoji" DROP COLUMN "category"`,
undefined,
);
}
}

View file

@ -1,17 +0,0 @@
export class TalkFederationId1576269851876 {
constructor() {
this.name = "TalkFederationId1576269851876";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "messaging_message" ADD "uri" character varying(512)`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "messaging_message" DROP COLUMN "uri"`,
undefined,
);
}
}

View file

@ -1,17 +0,0 @@
export class ProxyRemoteFiles1576869585998 {
constructor() {
this.name = "ProxyRemoteFiles1576869585998";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "proxyRemoteFiles" boolean NOT NULL DEFAULT false`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "proxyRemoteFiles"`,
undefined,
);
}
}

View file

@ -1,14 +0,0 @@
export class v12131580543501339 {
constructor() {
this.name = "v12131580543501339";
}
async up(queryRunner) {
await queryRunner.query(
`CREATE INDEX "IDX_NOTE_TAGS" ON "note" USING gin ("tags")`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(`DROP INDEX "IDX_NOTE_TAGS"`, undefined);
}
}

View file

@ -1,17 +0,0 @@
export class driveUserFolderIdIndex1581708415836 {
constructor() {
this.name = "driveUserFolderIdIndex1581708415836";
}
async up(queryRunner) {
await queryRunner.query(
`CREATE INDEX "IDX_55720b33a61a7c806a8215b825" ON "drive_file" ("userId", "folderId", "id") `,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`DROP INDEX "IDX_55720b33a61a7c806a8215b825"`,
undefined,
);
}
}

View file

@ -1,17 +0,0 @@
export class antennaExclude1582210532752 {
constructor() {
this.name = "antennaExclude1582210532752";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "antenna" ADD "excludeKeywords" jsonb NOT NULL DEFAULT '[]'`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "antenna" DROP COLUMN "excludeKeywords"`,
undefined,
);
}
}

View file

@ -1,14 +0,0 @@
export class apUrl1585772678853 {
constructor() {
this.name = "apUrl1585772678853";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "note" ADD "url" character varying(512)`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "url"`, undefined);
}
}

View file

@ -1,17 +0,0 @@
export class AddObjectStorageUseProxy1586624197029 {
constructor() {
this.name = "AddObjectStorageUseProxy1586624197029";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "objectStorageUseProxy" boolean NOT NULL DEFAULT true`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "objectStorageUseProxy"`,
undefined,
);
}
}

View file

@ -1,17 +0,0 @@
export class pageAiScript1586708940386 {
constructor() {
this.name = "pageAiScript1586708940386";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "page" ADD "script" character varying(16384) NOT NULL DEFAULT ''`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "page" DROP COLUMN "script"`,
undefined,
);
}
}

View file

@ -1,13 +0,0 @@
export class blurhash1595075960584 {
constructor() {
this.name = "blurhash1595075960584";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "drive_file" ADD "blurhash" character varying(128)`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "blurhash"`);
}
}

View file

@ -1,13 +0,0 @@
export class instanceIconUrl1595676934834 {
constructor() {
this.name = "instanceIconUrl1595676934834";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "instance" ADD "iconUrl" character varying(256) DEFAULT null`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "iconUrl"`);
}
}

View file

@ -1,15 +0,0 @@
export class channel21596786425167 {
constructor() {
this.name = "channel21596786425167";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "channel_following" ADD "readCursor" TIMESTAMP WITH TIME ZONE NOT NULL`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "channel_following" DROP COLUMN "readCursor"`,
);
}
}

View file

@ -1,15 +0,0 @@
export class objectStorageSetPublicRead1597230137744 {
constructor() {
this.name = "objectStorageSetPublicRead1597230137744";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "objectStorageSetPublicRead" boolean NOT NULL DEFAULT false`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "objectStorageSetPublicRead"`,
);
}
}

View file

@ -1,13 +0,0 @@
export class addSensitiveIndex1597385880794 {
constructor() {
this.name = "addSensitiveIndex1597385880794";
}
async up(queryRunner) {
await queryRunner.query(
`CREATE INDEX "IDX_a7eba67f8b3fa27271e85d2e26" ON "drive_file" ("isSensitive") `,
);
}
async down(queryRunner) {
await queryRunner.query(`DROP INDEX "IDX_a7eba67f8b3fa27271e85d2e26"`);
}
}

View file

@ -1,13 +0,0 @@
export class instanceThemeColor1603776877564 {
constructor() {
this.name = "instanceThemeColor1603776877564";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "instance" ADD "themeColor" character varying(64) DEFAULT null`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "themeColor"`);
}
}

View file

@ -1,13 +0,0 @@
export class instanceFavicon1603781553011 {
constructor() {
this.name = "instanceFavicon1603781553011";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "instance" ADD "faviconUrl" character varying(256) DEFAULT null`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "faviconUrl"`);
}
}

View file

@ -1,15 +0,0 @@
export class deleteAutoWatch1604821689616 {
constructor() {
this.name = "deleteAutoWatch1604821689616";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "autoWatch"`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "autoWatch" boolean NOT NULL DEFAULT false`,
);
}
}

View file

@ -1,13 +0,0 @@
export class clipDescription1605408848373 {
constructor() {
this.name = "clipDescription1605408848373";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "clip" ADD "description" character varying(2048) DEFAULT null`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "clip" DROP COLUMN "description"`);
}
}

View file

@ -1,13 +0,0 @@
export class instancePinnedClip1607151207216 {
constructor() {
this.name = "instancePinnedClip1607151207216";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "pinnedClipId" character varying(32)`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedClipId"`);
}
}

View file

@ -1,15 +0,0 @@
export class registry31610283021566 {
constructor() {
this.name = "registry31610283021566";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "registry_item" ALTER COLUMN "value" DROP NOT NULL`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "registry_item" ALTER COLUMN "value" SET NOT NULL`,
);
}
}

View file

@ -1,15 +0,0 @@
export class objectStorageS3ForcePathStyle1611547387175 {
constructor() {
this.name = "objectStorageS3ForcePathStyle1611547387175";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "objectStorageS3ForcePathStyle" boolean NOT NULL DEFAULT true`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "objectStorageS3ForcePathStyle"`,
);
}
}

View file

@ -1,15 +0,0 @@
export class announcementEmail1612619156584 {
constructor() {
this.name = "announcementEmail1612619156584";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "receiveAnnouncementEmail" boolean NOT NULL DEFAULT true`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "receiveAnnouncementEmail"`,
);
}
}

View file

@ -1,13 +0,0 @@
export class userLang1613181457597 {
constructor() {
this.name = "userLang1613181457597";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "lang" character varying(32)`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "lang"`);
}
}

View file

@ -1,15 +0,0 @@
export class userHideOnlineStatus1618639857000 {
constructor() {
this.name = "userHideOnlineStatus1618639857000";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user" ADD "hideOnlineStatus" boolean NOT NULL DEFAULT false`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user" DROP COLUMN "hideOnlineStatus"`,
);
}
}

View file

@ -1,13 +0,0 @@
export class ad21620364649428 {
constructor() {
this.name = "ad21620364649428";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "ad" ADD "ratio" integer NOT NULL DEFAULT '1'`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "ad" DROP COLUMN "ratio"`);
}
}

View file

@ -1,13 +0,0 @@
export class deeplIntegration1629024377804 {
constructor() {
this.name = "deeplIntegration1629024377804";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "deeplAuthKey" character varying(128)`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "deeplAuthKey"`);
}
}

View file

@ -1,15 +0,0 @@
export class fixChannelUserId1629288472000 {
constructor() {
this.name = "fixChannelUserId1629288472000";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "channel" ALTER COLUMN "userId" DROP NOT NULL;`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "channel" ALTER COLUMN "userId" SET NOT NULL;`,
);
}
}

View file

@ -1,13 +0,0 @@
export class deeplIntegration21629778475000 {
constructor() {
this.name = "deeplIntegration21629778475000";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "deeplIsPro" boolean NOT NULL DEFAULT false`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "deeplIsPro"`);
}
}

View file

@ -1,15 +0,0 @@
export class emailRequiredForSignup1633068642000 {
constructor() {
this.name = "emailRequiredForSignup1633068642000";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "emailRequiredForSignup" boolean NOT NULL DEFAULT false`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "emailRequiredForSignup"`,
);
}
}

View file

@ -1,15 +0,0 @@
export class userPublicReactions1634486652000 {
constructor() {
this.name = "userPublicReactions1634486652000";
}
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "publicReactions" boolean NOT NULL DEFAULT false`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "publicReactions"`,
);
}
}

View file

@ -1,9 +0,0 @@
export class deleteLog1634902659689 {
constructor() {
this.name = "deleteLog1634902659689";
}
async up(queryRunner) {
await queryRunner.query(`DROP TABLE "log"`);
}
async down(queryRunner) {}
}

View file

@ -1,13 +0,0 @@
export class removeViaMobile1636697408073 {
name = "removeViaMobile1636697408073";
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "viaMobile"`);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "note" ADD "viaMobile" boolean NOT NULL DEFAULT false`,
);
}
}

View file

@ -1,15 +0,0 @@
export class forwardedReport1637320813000 {
name = "forwardedReport1637320813000";
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "abuse_user_report" ADD "forwarded" boolean NOT NULL DEFAULT false`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "abuse_user_report" DROP COLUMN "forwarded"`,
);
}
}

View file

@ -1,15 +0,0 @@
export class driveFileWebpublicType1642613870898 {
name = "driveFileWebpublicType1642613870898";
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "drive_file" ADD "webpublicType" character varying(128)`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "drive_file" DROP COLUMN "webpublicType"`,
);
}
}

View file

@ -1,13 +0,0 @@
export class instanceThemeColor1644395759931 {
name = "instanceThemeColor1644395759931";
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "themeColor" character varying(512)`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "themeColor"`);
}
}

View file

@ -1,15 +0,0 @@
export class removeMaxNoteTextLength1645340161439 {
name = "removeMaxNoteTextLength1645340161439";
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "maxNoteTextLength"`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "maxNoteTextLength" integer NOT NULL DEFAULT '500'`,
);
}
}

View file

@ -1,15 +0,0 @@
export class userModerationNote1656772790599 {
name = "userModerationNote1656772790599";
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "moderationNote" character varying(8192) NOT NULL DEFAULT ''`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "moderationNote"`,
);
}
}

View file

@ -1,15 +0,0 @@
export class activeEmailValidation1657346559800 {
name = "activeEmailValidation1657346559800";
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "enableActiveEmailValidation" boolean NOT NULL DEFAULT true`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "enableActiveEmailValidation"`,
);
}
}

View file

@ -1,10 +0,0 @@
export class CustomMOTD1658939464003 {
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "customMOTD" character varying(256) array NOT NULL DEFAULT '{}'::varchar[]`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "customMOTD"`);
}
}

View file

@ -1,12 +0,0 @@
export class CustomSplashIcons1658941974648 {
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "customSplashIcons" character varying(256) array NOT NULL DEFAULT '{}'::varchar[]`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "customSplashIcons"`,
);
}
}

View file

@ -1,13 +0,0 @@
export class GuestTimeline1660068273737 {
name = "GuestTimeline1660068273737";
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "enableGuestTimeline" boolean NOT NULL DEFAULT false`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "enableGuestTimeline"`,
);
}
}

View file

@ -1,10 +0,0 @@
export class Page1668828368510 {
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "page" ADD "isPublic" boolean NOT NULL DEFAULT true`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "isPublic"`);
}
}

View file

@ -1,15 +0,0 @@
export class FixFirefishAgain1668831378728 {
name = "FixFirefishAgain1668831378728";
async up(queryRunner) {
await queryRunner.query(
`UPDATE "meta" SET "useStarForReactionFallback" = TRUE`,
);
}
async down(queryRunner) {
await queryRunner.query(
`UPDATE "meta" SET "useStarForReactionFallback" = FALSE`,
);
}
}

View file

@ -1,15 +0,0 @@
export class whetherPushNotifyToSendReadMessage1669138716634 {
name = "whetherPushNotifyToSendReadMessage1669138716634";
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "sw_subscription" ADD "sendReadMessage" boolean NOT NULL DEFAULT false`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "sw_subscription" DROP COLUMN "sendReadMessage"`,
);
}
}

View file

@ -1,15 +0,0 @@
export class PollChoiceLength1673336077243 {
name = "PollChoiceLength1673336077243";
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "poll" ALTER COLUMN "choices" TYPE character varying(256) array`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "poll" ALTER COLUMN "choices" TYPE character varying(128) array`,
);
}
}

View file

@ -1,15 +0,0 @@
export class DriveComment1677935903517 {
name = "DriveComment1677935903517";
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "drive_file" ALTER "comment" TYPE character varying(8192)`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "drive_file" ALTER "comment" TYPE character varying(512)`,
);
}
}

View file

@ -1,13 +0,0 @@
export class addPropsForCustomEmoji1678945242650 {
name = "addPropsForCustomEmoji1678945242650";
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "emoji" ADD "license" character varying(1024)`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "emoji" DROP COLUMN "license"`);
}
}

View file

@ -1,13 +0,0 @@
export class InstanceSilence1682891890317 {
name = "InstanceSilence1682891890317";
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "silencedHosts" character varying(256) array NOT NULL DEFAULT '{}'`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "silencedHosts"`);
}
}

View file

@ -1,15 +0,0 @@
export class AddHiddenPosts1682891891317 {
name = "AddHiddenPosts1682891891317";
async up(queryRunner) {
await queryRunner.query(
`ALTER TYPE note_visibility_enum ADD VALUE IF NOT EXISTS 'hidden'`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TYPE note_visibility_enum REMOVE VALUE IF EXISTS 'hidden'`,
);
}
}

View file

@ -1,15 +0,0 @@
export class PreventAiLearning1683682889948 {
name = "PreventAiLearning1683682889948";
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "preventAiLearning" boolean NOT NULL DEFAULT true`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "preventAiLearning"`,
);
}
}

View file

@ -1,16 +0,0 @@
export class ExperimentalFeatures1683980686995 {
name = "ExperimentalFeatures1683980686995";
async up(queryRunner) {
await queryRunner.query(`
ALTER TABLE "meta"
ADD "experimentalFeatures" jsonb NOT NULL DEFAULT '{}'
`);
}
async down(queryRunner) {
await queryRunner.query(`
ALTER TABLE "meta" DROP COLUMN "experimentalFeatures"
`);
}
}

View file

@ -1,15 +0,0 @@
export class RemoveShowTimelineReplies1684206886988 {
name = "RemoveShowTimelineReplies1684206886988";
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user" DROP COLUMN "showTimelineReplies"`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user" ADD "showTimelineReplies" boolean NOT NULL DEFAULT false`,
);
}
}

View file

@ -1,15 +0,0 @@
export class DonationLink1689136347561 {
name = "DonationLink1689136347561";
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" ADD "donationLink" character varying(256)`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "DonationLink1689136347561"`,
);
}
}

View file

@ -1,13 +0,0 @@
export class AddPostLang1695334243217 {
name = "AddPostLang1695334243217";
async up(queryRunner) {
await queryRunner.query(
`ALTER TABLE "note" ADD "lang" character varying(10)`,
);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "lang"`);
}
}

View file

@ -1,13 +0,0 @@
export class MoreUrls1699305365258 {
name = "MoreUrls1699305365258";
async up(queryRunner) {
queryRunner.query(
`ALTER TABLE "meta" ADD "moreUrls" jsonb NOT NULL DEFAULT '[]'`,
);
}
async down(queryRunner) {
queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "moreUrls"`);
}
}

View file

@ -1,13 +0,0 @@
export class DropUserProfileLanguage1708452631156 {
name = "DropUserProfileLanguage1708452631156";
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "lang"`);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" ADD COLUMN "lang" character varying(32)`,
);
}
}

View file

@ -1,11 +0,0 @@
export class FixNoteUrlIndex1709129810501 {
name = "FixNoteUrlIndex1709129810501";
async up(queryRunner) {
await queryRunner.query(`DROP INDEX "IDX_note_url"`);
await queryRunner.query(`CREATE INDEX "IDX_note_url" ON "note" ("url")`);
}
async down(queryRunner) {
/* You don't revert this migration */
}
}

View file

@ -6,8 +6,9 @@
"scripts": { "scripts": {
"start": "pnpm node ./built/index.js", "start": "pnpm node ./built/index.js",
"start:test": "NODE_ENV=test pnpm node ./built/index.js", "start:test": "NODE_ENV=test pnpm node ./built/index.js",
"migrate": "typeorm migration:run -d ormconfig.js", "migration:run": "typeorm migration:run --dataSource ./built/ormconfig.js",
"revertmigration": "typeorm migration:revert -d ormconfig.js", "migration:revert": "typeorm migration:revert --dataSource ./built/ormconfig.js",
"migration:new": "pnpm node ./scripts/create-migration.mjs",
"check:connect": "node ./check_connect.js", "check:connect": "node ./check_connect.js",
"build": "pnpm swc src --out-dir built --source-maps false --copy-files --strip-leading-paths", "build": "pnpm swc src --out-dir built --source-maps false --copy-files --strip-leading-paths",
"build:debug": "pnpm swc src --out-dir built --source-maps true --copy-files --strip-leading-paths", "build:debug": "pnpm swc src --out-dir built --source-maps true --copy-files --strip-leading-paths",

View file

@ -0,0 +1,11 @@
import { execa } from "execa";
(async () => {
await execa(
"pnpm",
["typeorm", "migration:create", `src/migration/${process.argv[2]}`],
{
stdio: "inherit",
},
);
})();

View file

@ -1,5 +1,7 @@
export class Init1000000000000 { import { MigrationInterface, QueryRunner } from "typeorm";
async up(queryRunner) {
export class Init1000000000000 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`CREATE TYPE "log_level_enum" AS ENUM('error', 'warning', 'info', 'success', 'debug')`, `CREATE TYPE "log_level_enum" AS ENUM('error', 'warning', 'info', 'success', 'debug')`,
); );
@ -712,7 +714,7 @@ export class Init1000000000000 {
`ALTER TABLE "user_profile" ADD CONSTRAINT "FK_51cb79b5555effaf7d69ba1cff9" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, `ALTER TABLE "user_profile" ADD CONSTRAINT "FK_51cb79b5555effaf7d69ba1cff9" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "user_profile" DROP CONSTRAINT "FK_51cb79b5555effaf7d69ba1cff9"`, `ALTER TABLE "user_profile" DROP CONSTRAINT "FK_51cb79b5555effaf7d69ba1cff9"`,
); );

View file

@ -1,5 +1,7 @@
export class Pages1556348509290 { import { MigrationInterface, QueryRunner } from "typeorm";
async up(queryRunner) {
export class Pages1556348509290 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`CREATE TYPE "page_visibility_enum" AS ENUM('public', 'followers', 'specified')`, `CREATE TYPE "page_visibility_enum" AS ENUM('public', 'followers', 'specified')`,
); );
@ -31,7 +33,7 @@ export class Pages1556348509290 {
`ALTER TABLE "page" ADD CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10" FOREIGN KEY ("eyeCatchingImageId") REFERENCES "drive_file"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, `ALTER TABLE "page" ADD CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10" FOREIGN KEY ("eyeCatchingImageId") REFERENCES "drive_file"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "page" DROP CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10"`, `ALTER TABLE "page" DROP CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10"`,
); );

View file

@ -1,5 +1,7 @@
export class UserProfile1556746559567 { import { MigrationInterface, QueryRunner } from "typeorm";
async up(queryRunner) {
export class UserProfile1556746559567 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "user_profile" ALTER COLUMN "githubId" TYPE VARCHAR(64) USING "githubId"::VARCHAR(64)`, `ALTER TABLE "user_profile" ALTER COLUMN "githubId" TYPE VARCHAR(64) USING "githubId"::VARCHAR(64)`,
); );
@ -7,7 +9,7 @@ export class UserProfile1556746559567 {
`ALTER TABLE "user_profile" ALTER COLUMN "discordExpiresDate" TYPE VARCHAR(64) USING "discordExpiresDate"::VARCHAR(64)`, `ALTER TABLE "user_profile" ALTER COLUMN "discordExpiresDate" TYPE VARCHAR(64) USING "discordExpiresDate"::VARCHAR(64)`,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`UPDATE "user_profile" SET github = FALSE, discord = FALSE`, `UPDATE "user_profile" SET github = FALSE, discord = FALSE`,
); );

View file

@ -0,0 +1,12 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class PinnedUsers1557476068003 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "meta" ADD "pinnedUsers" character varying(256) array NOT NULL DEFAULT '{}'::varchar[]`,
);
}
async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedUsers"`);
}
}

View file

@ -1,5 +1,7 @@
export class AddSomeUrls1557761316509 { import { MigrationInterface, QueryRunner } from "typeorm";
async up(queryRunner) {
export class AddSomeUrls1557761316509 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "meta" ADD "ToSUrl" character varying(512)`, `ALTER TABLE "meta" ADD "ToSUrl" character varying(512)`,
); );
@ -10,7 +12,7 @@ export class AddSomeUrls1557761316509 {
`ALTER TABLE "meta" ADD "feedbackUrl" character varying(512) DEFAULT 'https://codeberg.org/firefish/firefish/issues'`, `ALTER TABLE "meta" ADD "feedbackUrl" character varying(512) DEFAULT 'https://codeberg.org/firefish/firefish/issues'`,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "feedbackUrl"`); await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "feedbackUrl"`);
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "repositoryUrl"`); await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "repositoryUrl"`);
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "ToSUrl"`); await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "ToSUrl"`);

View file

@ -1,5 +1,7 @@
export class ObjectStorageSetting1557932705754 { import { MigrationInterface, QueryRunner } from "typeorm";
async up(queryRunner) {
export class ObjectStorageSetting1557932705754 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "meta" ADD "useObjectStorage" boolean NOT NULL DEFAULT false`, `ALTER TABLE "meta" ADD "useObjectStorage" boolean NOT NULL DEFAULT false`,
); );
@ -31,7 +33,7 @@ export class ObjectStorageSetting1557932705754 {
`ALTER TABLE "meta" ADD "objectStorageUseSSL" boolean NOT NULL DEFAULT true`, `ALTER TABLE "meta" ADD "objectStorageUseSSL" boolean NOT NULL DEFAULT true`,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "objectStorageUseSSL"`, `ALTER TABLE "meta" DROP COLUMN "objectStorageUseSSL"`,
); );

View file

@ -1,5 +1,7 @@
export class PageLike1558072954435 { import { MigrationInterface, QueryRunner } from "typeorm";
async up(queryRunner) {
export class PageLike1558072954435 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`CREATE TABLE "page_like" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "pageId" character varying(32) NOT NULL, CONSTRAINT "PK_813f034843af992d3ae0f43c64c" PRIMARY KEY ("id"))`, `CREATE TABLE "page_like" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "pageId" character varying(32) NOT NULL, CONSTRAINT "PK_813f034843af992d3ae0f43c64c" PRIMARY KEY ("id"))`,
); );
@ -19,7 +21,7 @@ export class PageLike1558072954435 {
`ALTER TABLE "page_like" ADD CONSTRAINT "FK_cf8782626dced3176038176a847" FOREIGN KEY ("pageId") REFERENCES "page"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, `ALTER TABLE "page_like" ADD CONSTRAINT "FK_cf8782626dced3176038176a847" FOREIGN KEY ("pageId") REFERENCES "page"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "page_like" DROP CONSTRAINT "FK_cf8782626dced3176038176a847"`, `ALTER TABLE "page_like" DROP CONSTRAINT "FK_cf8782626dced3176038176a847"`,
); );

View file

@ -1,5 +1,7 @@
export class UserGroup1558103093633 { import { MigrationInterface, QueryRunner } from "typeorm";
async up(queryRunner) {
export class UserGroup1558103093633 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`CREATE TABLE "user_group" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(256) NOT NULL, "userId" character varying(32) NOT NULL, "isPrivate" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_3c29fba6fe013ec8724378ce7c9" PRIMARY KEY ("id"))`, `CREATE TABLE "user_group" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(256) NOT NULL, "userId" character varying(32) NOT NULL, "isPrivate" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_3c29fba6fe013ec8724378ce7c9" PRIMARY KEY ("id"))`,
); );
@ -46,7 +48,7 @@ export class UserGroup1558103093633 {
`ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_67dc758bc0566985d1b3d399865" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, `ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_67dc758bc0566985d1b3d399865" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "user_group_joining" DROP CONSTRAINT "FK_67dc758bc0566985d1b3d399865"`, `ALTER TABLE "user_group_joining" DROP CONSTRAINT "FK_67dc758bc0566985d1b3d399865"`,
); );

View file

@ -1,5 +1,7 @@
export class UserGroupInvite1558257926829 { import { MigrationInterface, QueryRunner } from "typeorm";
async up(queryRunner) {
export class UserGroupInvite1558257926829 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`CREATE TABLE "user_group_invite" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_3893884af0d3a5f4d01e7921a97" PRIMARY KEY ("id"))`, `CREATE TABLE "user_group_invite" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_3893884af0d3a5f4d01e7921a97" PRIMARY KEY ("id"))`,
); );
@ -22,7 +24,7 @@ export class UserGroupInvite1558257926829 {
`ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_e10924607d058004304611a436a" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, `ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_e10924607d058004304611a436a" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "user_group_invite" DROP CONSTRAINT "FK_e10924607d058004304611a436a"`, `ALTER TABLE "user_group_invite" DROP CONSTRAINT "FK_e10924607d058004304611a436a"`,
); );

View file

@ -0,0 +1,12 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class UserListJoining1558266512381 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`CREATE UNIQUE INDEX "IDX_90f7da835e4c10aca6853621e1" ON "user_list_joining" ("userId", "userListId") `,
);
}
async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP INDEX "IDX_90f7da835e4c10aca6853621e1"`);
}
}

View file

@ -1,5 +1,7 @@
export class webauthn1561706992953 { import { MigrationInterface, QueryRunner } from "typeorm";
async up(queryRunner) {
export class webauthn1561706992953 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`CREATE TABLE "attestation_challenge" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "challenge" character varying(64) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "registrationChallenge" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_d0ba6786e093f1bcb497572a6b5" PRIMARY KEY ("id", "userId"))`, `CREATE TABLE "attestation_challenge" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "challenge" character varying(64) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "registrationChallenge" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_d0ba6786e093f1bcb497572a6b5" PRIMARY KEY ("id", "userId"))`,
); );
@ -28,7 +30,7 @@ export class webauthn1561706992953 {
`ALTER TABLE "user_security_key" ADD CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, `ALTER TABLE "user_security_key" ADD CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "user_security_key" DROP CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447"`, `ALTER TABLE "user_security_key" DROP CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447"`,
); );

View file

@ -1,5 +1,7 @@
export class ChartIndexes1561873850023 { import { MigrationInterface, QueryRunner } from "typeorm";
async up(queryRunner) {
export class ChartIndexes1561873850023 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`CREATE INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc" ON "__chart__active_users" ("date") `, `CREATE INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc" ON "__chart__active_users" ("date") `,
); );
@ -271,7 +273,7 @@ export class ChartIndexes1561873850023 {
`CREATE INDEX "IDX_a770a57c70e668cc61590c9161" ON "__chart__users" ("span", "date", "group") `, `CREATE INDEX "IDX_a770a57c70e668cc61590c9161" ON "__chart__users" ("span", "date", "group") `,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP INDEX "IDX_a770a57c70e668cc61590c9161"`); await queryRunner.query(`DROP INDEX "IDX_a770a57c70e668cc61590c9161"`);
await queryRunner.query(`DROP INDEX "IDX_337e9599f278bd7537fe30876f"`); await queryRunner.query(`DROP INDEX "IDX_337e9599f278bd7537fe30876f"`);
await queryRunner.query(`DROP INDEX "IDX_f091abb24193d50c653c6b77fc"`); await queryRunner.query(`DROP INDEX "IDX_f091abb24193d50c653c6b77fc"`);

View file

@ -0,0 +1,14 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class PasswordLessLogin1562422242907 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "user_profile" ADD COLUMN "usePasswordLessLogin" boolean DEFAULT false NOT NULL`,
);
}
async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "usePasswordLessLogin"`,
);
}
}

View file

@ -1,5 +1,7 @@
export class PinnedPage1562444565093 { import { MigrationInterface, QueryRunner } from "typeorm";
async up(queryRunner) {
export class PinnedPage1562444565093 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "user_profile" ADD "pinnedPageId" character varying(32)`, `ALTER TABLE "user_profile" ADD "pinnedPageId" character varying(32)`,
); );
@ -10,7 +12,7 @@ export class PinnedPage1562444565093 {
`ALTER TABLE "user_profile" ADD CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27" FOREIGN KEY ("pinnedPageId") REFERENCES "page"("id") ON DELETE SET NULL ON UPDATE NO ACTION`, `ALTER TABLE "user_profile" ADD CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27" FOREIGN KEY ("pinnedPageId") REFERENCES "page"("id") ON DELETE SET NULL ON UPDATE NO ACTION`,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "user_profile" DROP CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27"`, `ALTER TABLE "user_profile" DROP CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27"`,
); );

View file

@ -0,0 +1,14 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class PageTitleHideOption1562448332510 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "page" ADD "hideTitleWhenPinned" boolean NOT NULL DEFAULT false`,
);
}
async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "page" DROP COLUMN "hideTitleWhenPinned"`,
);
}
}

View file

@ -1,5 +1,7 @@
export class ModerationLog1562869971568 { import { MigrationInterface, QueryRunner } from "typeorm";
async up(queryRunner) {
export class ModerationLog1562869971568 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`CREATE TABLE "moderation_log" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "type" character varying(128) NOT NULL, "info" jsonb NOT NULL, CONSTRAINT "PK_d0adca6ecfd068db83e4526cc26" PRIMARY KEY ("id"))`, `CREATE TABLE "moderation_log" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "type" character varying(128) NOT NULL, "info" jsonb NOT NULL, CONSTRAINT "PK_d0adca6ecfd068db83e4526cc26" PRIMARY KEY ("id"))`,
); );
@ -10,7 +12,7 @@ export class ModerationLog1562869971568 {
`ALTER TABLE "moderation_log" ADD CONSTRAINT "FK_a08ad074601d204e0f69da9a954" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, `ALTER TABLE "moderation_log" ADD CONSTRAINT "FK_a08ad074601d204e0f69da9a954" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "moderation_log" DROP CONSTRAINT "FK_a08ad074601d204e0f69da9a954"`, `ALTER TABLE "moderation_log" DROP CONSTRAINT "FK_a08ad074601d204e0f69da9a954"`,
); );

View file

@ -1,10 +1,12 @@
export class UsedUsername1563757595828 { import { MigrationInterface, QueryRunner } from "typeorm";
async up(queryRunner) {
export class UsedUsername1563757595828 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`CREATE TABLE "used_username" ("username" character varying(128) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_78fd79d2d24c6ac2f4cc9a31a5d" PRIMARY KEY ("username"))`, `CREATE TABLE "used_username" ("username" character varying(128) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_78fd79d2d24c6ac2f4cc9a31a5d" PRIMARY KEY ("username"))`,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP TABLE "used_username"`); await queryRunner.query(`DROP TABLE "used_username"`);
} }
} }

View file

@ -0,0 +1,12 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class room1565634203341 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "room" jsonb NOT NULL DEFAULT '{}'`,
);
}
async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "room"`);
}
}

View file

@ -0,0 +1,16 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class CustomEmojiCategory1571220798684 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "emoji" ADD "category" character varying(128)`,
undefined,
);
}
async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "emoji" DROP COLUMN "category"`,
undefined,
);
}
}

View file

@ -1,5 +1,7 @@
export class nodeinfo1572760203493 { import { MigrationInterface, QueryRunner } from "typeorm";
async up(queryRunner) {
export class nodeinfo1572760203493 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "instance" DROP COLUMN "system"`, `ALTER TABLE "instance" DROP COLUMN "system"`,
undefined, undefined,
@ -37,7 +39,7 @@ export class nodeinfo1572760203493 {
undefined, undefined,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "instance" DROP COLUMN "infoUpdatedAt"`, `ALTER TABLE "instance" DROP COLUMN "infoUpdatedAt"`,
undefined, undefined,

View file

@ -0,0 +1,16 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class TalkFederationId1576269851876 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "messaging_message" ADD "uri" character varying(512)`,
undefined,
);
}
async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "messaging_message" DROP COLUMN "uri"`,
undefined,
);
}
}

View file

@ -0,0 +1,16 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class ProxyRemoteFiles1576869585998 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "meta" ADD "proxyRemoteFiles" boolean NOT NULL DEFAULT false`,
undefined,
);
}
async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "proxyRemoteFiles"`,
undefined,
);
}
}

View file

@ -1,8 +1,7 @@
export class v121579267006611 { import { MigrationInterface, QueryRunner } from "typeorm";
constructor() {
this.name = "v121579267006611"; export class v121579267006611 implements MigrationInterface {
} async up(queryRunner: QueryRunner): Promise<void> {
async up(queryRunner) {
await queryRunner.query( await queryRunner.query(
`CREATE TABLE "announcement" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "text" character varying(8192) NOT NULL, "title" character varying(256) NOT NULL, "imageUrl" character varying(1024), CONSTRAINT "PK_e0ef0550174fd1099a308fd18a0" PRIMARY KEY ("id"))`, `CREATE TABLE "announcement" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "text" character varying(8192) NOT NULL, "title" character varying(256) NOT NULL, "imageUrl" character varying(1024), CONSTRAINT "PK_e0ef0550174fd1099a308fd18a0" PRIMARY KEY ("id"))`,
undefined, undefined,
@ -48,7 +47,7 @@ export class v121579267006611 {
undefined, undefined,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "announcement_read" DROP CONSTRAINT "FK_603a7b1e7aa0533c6c88e9bfafe"`, `ALTER TABLE "announcement_read" DROP CONSTRAINT "FK_603a7b1e7aa0533c6c88e9bfafe"`,
undefined, undefined,

View file

@ -1,14 +1,13 @@
export class v1221579270193251 { import { MigrationInterface, QueryRunner } from "typeorm";
constructor() {
this.name = "v1221579270193251"; export class v1221579270193251 implements MigrationInterface {
} async up(queryRunner: QueryRunner): Promise<void> {
async up(queryRunner) {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "announcement_read" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`, `ALTER TABLE "announcement_read" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`,
undefined, undefined,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "announcement_read" DROP COLUMN "createdAt"`, `ALTER TABLE "announcement_read" DROP COLUMN "createdAt"`,
undefined, undefined,

View file

@ -1,14 +1,13 @@
export class v1231579282808087 { import { MigrationInterface, QueryRunner } from "typeorm";
constructor() {
this.name = "v1231579282808087"; export class v1231579282808087 implements MigrationInterface {
} async up(queryRunner: QueryRunner): Promise<void> {
async up(queryRunner) {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "announcement" ADD "updatedAt" TIMESTAMP WITH TIME ZONE`, `ALTER TABLE "announcement" ADD "updatedAt" TIMESTAMP WITH TIME ZONE`,
undefined, undefined,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "announcement" DROP COLUMN "updatedAt"`, `ALTER TABLE "announcement" DROP COLUMN "updatedAt"`,
undefined, undefined,

View file

@ -1,8 +1,7 @@
export class v1241579544426412 { import { MigrationInterface, QueryRunner } from "typeorm";
constructor() {
this.name = "v1241579544426412"; export class v1241579544426412 implements MigrationInterface {
} async up(queryRunner: QueryRunner): Promise<void> {
async up(queryRunner) {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "notification" ADD "followRequestId" character varying(32)`, `ALTER TABLE "notification" ADD "followRequestId" character varying(32)`,
undefined, undefined,
@ -12,7 +11,7 @@ export class v1241579544426412 {
undefined, undefined,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "notification" DROP CONSTRAINT "FK_bd7fab507621e635b32cd31892c"`, `ALTER TABLE "notification" DROP CONSTRAINT "FK_bd7fab507621e635b32cd31892c"`,
undefined, undefined,

View file

@ -1,8 +1,7 @@
export class v1251579977526288 { import { MigrationInterface, QueryRunner } from "typeorm";
constructor() {
this.name = "v1251579977526288"; export class v1251579977526288 implements MigrationInterface {
} async up(queryRunner: QueryRunner): Promise<void> {
async up(queryRunner) {
await queryRunner.query( await queryRunner.query(
`CREATE TABLE "clip" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "isPublic" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_f0685dac8d4dd056d7255670b75" PRIMARY KEY ("id"))`, `CREATE TABLE "clip" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "isPublic" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_f0685dac8d4dd056d7255670b75" PRIMARY KEY ("id"))`,
undefined, undefined,
@ -85,7 +84,7 @@ export class v1251579977526288 {
undefined, undefined,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "antenna_note" DROP CONSTRAINT "FK_0d775946662d2575dfd2068a5f5"`, `ALTER TABLE "antenna_note" DROP CONSTRAINT "FK_0d775946662d2575dfd2068a5f5"`,
undefined, undefined,

View file

@ -1,8 +1,7 @@
export class v1261579993013959 { import { MigrationInterface, QueryRunner } from "typeorm";
constructor() {
this.name = "v1261579993013959"; export class v1261579993013959 implements MigrationInterface {
} async up(queryRunner: QueryRunner): Promise<void> {
async up(queryRunner) {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "antenna" DROP COLUMN "hasNewNote"`, `ALTER TABLE "antenna" DROP COLUMN "hasNewNote"`,
undefined, undefined,
@ -16,7 +15,7 @@ export class v1261579993013959 {
undefined, undefined,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`DROP INDEX "IDX_9937ea48d7ae97ffb4f3f063a4"`, `DROP INDEX "IDX_9937ea48d7ae97ffb4f3f063a4"`,
undefined, undefined,

View file

@ -1,8 +1,7 @@
export class v1271580069531114 { import { MigrationInterface, QueryRunner } from "typeorm";
constructor() {
this.name = "v1271580069531114"; export class v1271580069531114 implements MigrationInterface {
} async up(queryRunner: QueryRunner): Promise<void> {
async up(queryRunner) {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "antenna" ADD "users" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[]`, `ALTER TABLE "antenna" ADD "users" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[]`,
undefined, undefined,
@ -25,7 +24,7 @@ export class v1271580069531114 {
); );
await queryRunner.query(`DROP TYPE "antenna_src_enum_old"`, undefined); await queryRunner.query(`DROP TYPE "antenna_src_enum_old"`, undefined);
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`CREATE TYPE "antenna_src_enum_old" AS ENUM('home', 'all', 'list')`, `CREATE TYPE "antenna_src_enum_old" AS ENUM('home', 'all', 'list')`,
undefined, undefined,

View file

@ -1,8 +1,7 @@
export class v1281580148575182 { import { MigrationInterface, QueryRunner } from "typeorm";
constructor() {
this.name = "v1281580148575182"; export class v1281580148575182 implements MigrationInterface {
} async up(queryRunner: QueryRunner): Promise<void> {
async up(queryRunner) {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "note" DROP CONSTRAINT "FK_ec5c201576192ba8904c345c5cc"`, `ALTER TABLE "note" DROP CONSTRAINT "FK_ec5c201576192ba8904c345c5cc"`,
undefined, undefined,
@ -12,7 +11,7 @@ export class v1281580148575182 {
undefined, undefined,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "note" ADD "appId" character varying(32)`, `ALTER TABLE "note" ADD "appId" character varying(32)`,
undefined, undefined,

View file

@ -1,14 +1,13 @@
export class v1291580154400017 { import { MigrationInterface, QueryRunner } from "typeorm";
constructor() {
this.name = "v1291580154400017"; export class v1291580154400017 implements MigrationInterface {
} async up(queryRunner: QueryRunner): Promise<void> {
async up(queryRunner) {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "antenna" ADD "withReplies" boolean NOT NULL DEFAULT false`, `ALTER TABLE "antenna" ADD "withReplies" boolean NOT NULL DEFAULT false`,
undefined, undefined,
); );
} }
async down(queryRunner) { async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query( await queryRunner.query(
`ALTER TABLE "antenna" DROP COLUMN "withReplies"`, `ALTER TABLE "antenna" DROP COLUMN "withReplies"`,
undefined, undefined,

Some files were not shown because too many files have changed in this diff Show more