From 34ea3cf226126e1cbddaf0969f9920ec7b261984 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 31 Oct 2021 23:18:55 +0900 Subject: [PATCH 01/69] add some locales Resolve #7940 --- locales/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/locales/index.js b/locales/index.js index 35f9972ff7..a0181cd7aa 100644 --- a/locales/index.js +++ b/locales/index.js @@ -19,9 +19,11 @@ const languages = [ 'da-DK', 'de-DE', 'en-US', + 'eo-UY', 'es-ES', 'fr-FR', 'id-ID', + 'it-IT', 'ja-JP', 'ja-KS', 'kab-KAB', -- 2.43.0 From 1c38c7010d9a9604df979faa867cd8f9e7d825c9 Mon Sep 17 00:00:00 2001 From: marihachi Date: Mon, 1 Nov 2021 23:47:13 +0900 Subject: [PATCH 02/69] refactor: Introduce list of MFM Functions (#7882) * introduce list of MFM Functions * add note --- src/client/components/mfm.ts | 3 ++- src/mfm/fn-name-list.ts | 23 ++++++++++++++++++++ src/remote/activitypub/misc/get-note-html.ts | 3 ++- src/remote/activitypub/renderer/person.ts | 3 ++- src/services/note/create.ts | 7 +++--- 5 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 src/mfm/fn-name-list.ts diff --git a/src/client/components/mfm.ts b/src/client/components/mfm.ts index f3411cadc3..ad6e711f6f 100644 --- a/src/client/components/mfm.ts +++ b/src/client/components/mfm.ts @@ -11,6 +11,7 @@ import MkGoogle from '@client/components/google.vue'; import MkSparkle from '@client/components/sparkle.vue'; import MkA from '@client/components/global/a.vue'; import { host } from '@client/config'; +import { fnNameList } from '@/mfm/fn-name-list'; export default defineComponent({ props: { @@ -46,7 +47,7 @@ export default defineComponent({ render() { if (this.text == null || this.text == '') return; - const ast = (this.plain ? mfm.parsePlain : mfm.parse)(this.text); + const ast = (this.plain ? mfm.parsePlain : mfm.parse)(this.text, { fnNameList }); const validTime = (t: string | null | undefined) => { if (t == null) return null; diff --git a/src/mfm/fn-name-list.ts b/src/mfm/fn-name-list.ts new file mode 100644 index 0000000000..1203bfffde --- /dev/null +++ b/src/mfm/fn-name-list.ts @@ -0,0 +1,23 @@ +// NOTE: client/components/autocomplete.vueにも関数のリスト(MFM_TAGS)があるので統合? + +const fnNameList = [ + 'tada', + 'jelly', + 'twitch', + 'shake', + 'spin', + 'jump', + 'bounce', + 'flip', + 'x2', + 'x3', + 'x4', + 'font', + 'blur', + 'rainbow', + 'sparkle', +]; + +export { + fnNameList +}; diff --git a/src/remote/activitypub/misc/get-note-html.ts b/src/remote/activitypub/misc/get-note-html.ts index 043335a5be..a24ec43a69 100644 --- a/src/remote/activitypub/misc/get-note-html.ts +++ b/src/remote/activitypub/misc/get-note-html.ts @@ -1,9 +1,10 @@ import * as mfm from 'mfm-js'; +import { fnNameList } from '@/mfm/fn-name-list'; import { Note } from '@/models/entities/note'; import { toHtml } from '../../../mfm/to-html'; export default function(note: Note) { - let html = note.text ? toHtml(mfm.parse(note.text), JSON.parse(note.mentionedRemoteUsers)) : null; + let html = note.text ? toHtml(mfm.parse(note.text, { fnNameList }), JSON.parse(note.mentionedRemoteUsers)) : null; if (html == null) html = '

.

'; return html; diff --git a/src/remote/activitypub/renderer/person.ts b/src/remote/activitypub/renderer/person.ts index f2a283a870..7e94abddfc 100644 --- a/src/remote/activitypub/renderer/person.ts +++ b/src/remote/activitypub/renderer/person.ts @@ -11,6 +11,7 @@ import { IIdentifier } from '../models/identifier'; import renderHashtag from './hashtag'; import { DriveFiles, UserProfiles } from '@/models/index'; import { getUserKeypair } from '@/misc/keypair-store'; +import { fnNameList } from '@/mfm/fn-name-list'; export async function renderPerson(user: ILocalUser) { const id = `${config.url}/users/${user.id}`; @@ -66,7 +67,7 @@ export async function renderPerson(user: ILocalUser) { url: `${config.url}/@${user.username}`, preferredUsername: user.username, name: user.name, - summary: profile.description ? toHtml(mfm.parse(profile.description)) : null, + summary: profile.description ? toHtml(mfm.parse(profile.description, { fnNameList })) : null, icon: avatar ? renderImage(avatar) : null, image: banner ? renderImage(banner) : null, tag, diff --git a/src/services/note/create.ts b/src/services/note/create.ts index 69d854ab1a..98819c69a4 100644 --- a/src/services/note/create.ts +++ b/src/services/note/create.ts @@ -34,6 +34,7 @@ import { deliverToRelays } from '../relay'; import { Channel } from '@/models/entities/channel'; import { normalizeForSearch } from '@/misc/normalize-for-search'; import { getAntennas } from '@/misc/antenna-cache'; +import { fnNameList } from '@/mfm/fn-name-list'; type NotificationType = 'reply' | 'renote' | 'quote' | 'mention'; @@ -182,10 +183,10 @@ export default async (user: { id: User['id']; username: User['username']; host: // Parse MFM if needed if (!tags || !emojis || !mentionedUsers) { - const tokens = data.text ? mfm.parse(data.text)! : []; - const cwTokens = data.cw ? mfm.parse(data.cw)! : []; + const tokens = data.text ? mfm.parse(data.text, { fnNameList })! : []; + const cwTokens = data.cw ? mfm.parse(data.cw, { fnNameList })! : []; const choiceTokens = data.poll && data.poll.choices - ? concat(data.poll.choices.map(choice => mfm.parse(choice)!)) + ? concat(data.poll.choices.map(choice => mfm.parse(choice, { fnNameList })!)) : []; const combinedTokens = tokens.concat(cwTokens).concat(choiceTokens); -- 2.43.0 From e2862ed097a7de54a1a617f55dffee52a00010fc Mon Sep 17 00:00:00 2001 From: tamaina Date: Fri, 5 Nov 2021 00:09:13 +0900 Subject: [PATCH 03/69] =?UTF-8?q?enhane:=20=E5=AE=8C=E5=85=A8=E3=83=AD?= =?UTF-8?q?=E3=82=B0=E3=82=A2=E3=82=A6=E3=83=88=E6=99=82=E3=81=AB=E3=81=99?= =?UTF-8?q?=E3=81=B9=E3=81=A6=E3=81=AE=E3=82=BF=E3=83=96=E3=81=8C=E3=82=A6?= =?UTF-8?q?=E3=82=A7=E3=83=AB=E3=82=AB=E3=83=A0=E3=83=9A=E3=83=BC=E3=82=B8?= =?UTF-8?q?=E3=81=B8=E7=A7=BB=E5=8B=95=E3=81=99=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB=20(#7928)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * enhane: unison-reloadに指定したパスに移動できるように * null * null * null * add comments --- src/client/account.ts | 6 ++++-- src/client/init.ts | 5 ++++- src/client/scripts/unison-reload.ts | 13 +++++++++---- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/client/account.ts b/src/client/account.ts index a3fe082a22..a2165ebed1 100644 --- a/src/client/account.ts +++ b/src/client/account.ts @@ -61,7 +61,7 @@ export async function signout() { document.cookie = `igi=; path=/`; if (accounts.length > 0) login(accounts[0].token); - else unisonReload(); + else unisonReload('/'); } export async function getAccounts(): Promise<{ id: Account['id'], token: Account['token'] }[]> { @@ -122,7 +122,9 @@ export async function login(token: Account['token'], redirect?: string) { await addAccount(me.id, token); if (redirect) { - reloadChannel.postMessage('reload'); + // 他のタブは再読み込みするだけ + reloadChannel.postMessage(null); + // このページはredirectで指定された先に移動 location.href = redirect; return; } diff --git a/src/client/init.ts b/src/client/init.ts index 654e176398..81d17f0d27 100644 --- a/src/client/init.ts +++ b/src/client/init.ts @@ -93,7 +93,10 @@ if (defaultStore.state.reportError && !_DEV_) { document.addEventListener('touchend', () => {}, { passive: true }); // 一斉リロード -reloadChannel.addEventListener('message', () => location.reload()); +reloadChannel.addEventListener('message', path => { + if (path !== null) location.href = path; + else location.reload(); +}); //#region SEE: https://css-tricks.com/the-trick-to-viewport-units-on-mobile/ // TODO: いつの日にか消したい diff --git a/src/client/scripts/unison-reload.ts b/src/client/scripts/unison-reload.ts index 92556aefaa..59af584c1b 100644 --- a/src/client/scripts/unison-reload.ts +++ b/src/client/scripts/unison-reload.ts @@ -1,10 +1,15 @@ // SafariがBroadcastChannel未実装なのでライブラリを使う import { BroadcastChannel } from 'broadcast-channel'; -export const reloadChannel = new BroadcastChannel<'reload'>('reload'); +export const reloadChannel = new BroadcastChannel('reload'); // BroadcastChannelを用いて、クライアントが一斉にreloadするようにします。 -export function unisonReload() { - reloadChannel.postMessage('reload'); - location.reload(); +export function unisonReload(path?: string) { + if (path !== undefined) { + reloadChannel.postMessage(path); + location.href = path; + } else { + reloadChannel.postMessage(null); + location.reload(); + } } -- 2.43.0 From 9b18104343bc25fec766299b5caf6a4b65ef1cc7 Mon Sep 17 00:00:00 2001 From: Johann150 Date: Fri, 5 Nov 2021 02:48:37 +0100 Subject: [PATCH 04/69] limit menu list size (#7950) This can be an issue for example when adding an object to the room. --- src/client/components/ui/menu.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/client/components/ui/menu.vue b/src/client/components/ui/menu.vue index aaef527f1a..5b3a0ae7c2 100644 --- a/src/client/components/ui/menu.vue +++ b/src/client/components/ui/menu.vue @@ -147,6 +147,8 @@ export default defineComponent({ .rrevdjwt { padding: 8px 0; min-width: 200px; + max-height: 90vh; + overflow: auto; &.center { > .item { -- 2.43.0 From f30df92597c49c10bfc16d3c444263978705e643 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 5 Nov 2021 10:49:30 +0900 Subject: [PATCH 05/69] Update CHANGELOG.md --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6847049bb5..3e7ebcab1e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,13 @@ --> +## 12.x.x (unreleased) + +### Improvements + +### Bugfixes +- クライアント: 長いメニューが画面からはみ出す問題を修正 + ## 12.95.0 (2021/10/31) ### Improvements -- 2.43.0 From 37b535df300db5b6e66365855cfbfa663e4f3fb3 Mon Sep 17 00:00:00 2001 From: Johann150 Date: Fri, 5 Nov 2021 02:49:50 +0100 Subject: [PATCH 06/69] fix missing i18n string (#7945) --- src/client/pages/explore.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/pages/explore.vue b/src/client/pages/explore.vue index a77b4e53c3..5a23d34d27 100644 --- a/src/client/pages/explore.vue +++ b/src/client/pages/explore.vue @@ -70,7 +70,7 @@ - + -- 2.43.0 From 3db7551ad356a40562864aa2afd3dd645084a51d Mon Sep 17 00:00:00 2001 From: Johann150 Date: Fri, 5 Nov 2021 03:54:26 +0100 Subject: [PATCH 07/69] fix html conversion issue with code blocks (#7943) --- src/mfm/from-html.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mfm/from-html.ts b/src/mfm/from-html.ts index 14279f3383..de6aa3d0cc 100644 --- a/src/mfm/from-html.ts +++ b/src/mfm/from-html.ts @@ -147,7 +147,7 @@ export function fromHtml(html: string, hashtagNames?: string[]): string | null { // block code (
)
 			case 'pre': {
 				if (node.childNodes.length === 1 && node.childNodes[0].nodeName === 'code') {
-					text += '```\n';
+					text += '\n```\n';
 					text += getText(node.childNodes[0]);
 					text += '\n```\n';
 				} else {
-- 
2.43.0


From 575a8bd9c84edcbf222a0327d3d5f575afe8c4d0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E3=82=B7=E3=82=A2=E3=83=8E=E3=83=B3?=
 
Date: Fri, 5 Nov 2021 11:55:00 +0900
Subject: [PATCH 08/69] =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AD?=
 =?UTF-8?q?=E3=83=BC=E3=83=AB=E3=83=91=E3=83=8D=E3=83=AB=E3=81=AE=E3=82=B8?=
 =?UTF-8?q?=E3=83=A7=E3=83=96=E3=82=AD=E3=83=A5=E3=83=BC=E3=81=AB=E5=80=8B?=
 =?UTF-8?q?=E3=80=85=E3=81=AE=E3=82=B8=E3=83=A7=E3=83=96=E3=81=8C=E8=A1=A8?=
 =?UTF-8?q?=E7=A4=BA=E3=81=95=E3=82=8C=E3=81=AA=E3=81=84=E3=81=AE=E3=82=92?=
 =?UTF-8?q?=E4=BF=AE=E6=AD=A3=20(#7941)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/client/pages/admin/queue.chart.vue | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/client/pages/admin/queue.chart.vue b/src/client/pages/admin/queue.chart.vue
index 084181a606..38cd0b10ef 100644
--- a/src/client/pages/admin/queue.chart.vue
+++ b/src/client/pages/admin/queue.chart.vue
@@ -55,8 +55,8 @@ export default defineComponent({
 		const jobs = ref([]);
 
 		onMounted(() => {
-			os.api(props.domain === 'inbox' ? 'admin/queue/inbox-delayed' : props.domain === 'deliver' ? 'admin/queue/deliver-delayed' : null, {}).then(jobs => {
-				jobs.value = jobs;
+			os.api(props.domain === 'inbox' ? 'admin/queue/inbox-delayed' : props.domain === 'deliver' ? 'admin/queue/deliver-delayed' : null, {}).then(result => {
+				jobs.value = result;
 			});
 
 			const onStats = (stats) => {
-- 
2.43.0


From ae6f0d49c289369a9d3329729b15d821f715f320 Mon Sep 17 00:00:00 2001
From: syuilo 
Date: Fri, 5 Nov 2021 12:22:52 +0900
Subject: [PATCH 09/69] Update CHANGELOG.md

---
 CHANGELOG.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3e7ebcab1e..8fb7c306c5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,9 @@
 
 ### Bugfixes
 - クライアント: 長いメニューが画面からはみ出す問題を修正
+- クライアント: コントロールパネルのジョブキューに個々のジョブが表示されないのを修正
+- クライアント: fix missing i18n string
+- fix html conversion issue with code blocks
 
 ## 12.95.0 (2021/10/31)
 
-- 
2.43.0


From c625a3fa5b7374dc99a17f514e14c994ae388f8a Mon Sep 17 00:00:00 2001
From: syuilo 
Date: Fri, 5 Nov 2021 12:32:35 +0900
Subject: [PATCH 10/69] Update abuses.vue

---
 src/client/pages/admin/abuses.vue | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/client/pages/admin/abuses.vue b/src/client/pages/admin/abuses.vue
index 29da8cc2c5..fb99347f34 100644
--- a/src/client/pages/admin/abuses.vue
+++ b/src/client/pages/admin/abuses.vue
@@ -10,7 +10,7 @@
 					
 				
 				
-					
+					
 					
 					
 					
-- 
2.43.0


From a674657bcb27c6b9048ed4b7f748ad871dc13c72 Mon Sep 17 00:00:00 2001
From: Robin B 
Date: Fri, 5 Nov 2021 04:32:47 +0100
Subject: [PATCH 11/69] fix(client): Add missing localization string (#7944)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* 欠けるi18nストリングの追加

* Update ja-JP.yml

Co-authored-by: syuilo 
---
 locales/ja-JP.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index 1326369f83..866364def5 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -620,6 +620,8 @@ reportAbuse: "通報"
 reportAbuseOf: "{name}を通報する"
 fillAbuseReportDescription: "通報理由の詳細を記入してください。対象のノートがある場合はそのURLも記入してください。"
 abuseReported: "内容が送信されました。ご報告ありがとうございました。"
+reporteeOrigin: "通報先"
+reporterOrigin: "通報元"
 send: "送信"
 abuseMarkAsResolved: "対応済みにする"
 openInNewTab: "新しいタブで開く"
-- 
2.43.0


From 863054214652378c11f0596591eff0b259cfc5d1 Mon Sep 17 00:00:00 2001
From: syuilo 
Date: Fri, 5 Nov 2021 16:18:52 +0900
Subject: [PATCH 12/69] =?UTF-8?q?=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1?=
 =?UTF-8?q?=E3=83=B3=E3=83=88=E3=82=92misskey-hub=E3=81=AB=E7=A7=BB?=
 =?UTF-8?q?=E8=A1=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 CONTRIBUTING.md                               |   4 -
 crowdin.yml                                   |   3 -
 locales/ja-JP.yml                             |   8 -
 package.json                                  |   3 -
 src/client/components/launch-pad.vue          |   4 +-
 src/client/components/updated.vue             |   2 +-
 src/client/pages/about-misskey.vue            |   2 +-
 src/client/pages/doc.vue                      | 240 ------------
 src/client/pages/docs.vue                     | 152 --------
 src/client/pages/share.vue                    |   2 +-
 src/client/pages/timeline.tutorial.vue        |   2 +-
 src/client/pages/welcome.entrance.a.vue       |   2 +-
 src/client/pages/welcome.entrance.b.vue       |   2 +-
 src/client/pages/welcome.entrance.c.vue       |   2 +-
 src/client/router.ts                          |   2 -
 src/client/ui/desktop.vue                     |   2 +-
 src/client/ui/visitor/a.vue                   |   2 +-
 src/client/ui/visitor/b.vue                   |   2 +-
 src/client/ui/zen.vue                         |   2 +-
 src/docs/ar-SA/admin/disable-timelines.md     |   8 -
 src/docs/ar-SA/admin/faq.md                   |   5 -
 src/docs/ar-SA/advanced/aiscript.md           |   7 -
 src/docs/ar-SA/advanced/api.md                |  58 ---
 src/docs/ar-SA/advanced/create-plugin.md      |  74 ----
 src/docs/ar-SA/advanced/develop-bot.md        |   6 -
 src/docs/ar-SA/advanced/reversi-bot.md        | 160 --------
 src/docs/ar-SA/advanced/share-page.md         |  54 ---
 src/docs/ar-SA/advanced/stream.md             | 350 -----------------
 src/docs/ar-SA/aiscript.md                    |   4 -
 src/docs/ar-SA/api.md                         |  58 ---
 src/docs/ar-SA/create-plugin.md               |  74 ----
 src/docs/ar-SA/custom-emoji.md                |   2 -
 src/docs/ar-SA/deck.md                        |  18 -
 src/docs/ar-SA/features/antenna.md            |   4 -
 src/docs/ar-SA/features/custom-emoji.md       |   2 -
 src/docs/ar-SA/features/deck.md               |  18 -
 src/docs/ar-SA/features/drive.md              |  17 -
 src/docs/ar-SA/features/favorite.md           |   4 -
 src/docs/ar-SA/features/follow.md             |   2 -
 src/docs/ar-SA/features/keyboard-shortcut.md  |  66 ----
 src/docs/ar-SA/features/mfm.md                |  12 -
 src/docs/ar-SA/features/mute-and-block.md     |  41 --
 src/docs/ar-SA/features/mute.md               |  13 -
 src/docs/ar-SA/features/note.md               |  54 ---
 src/docs/ar-SA/features/pages.md              |  10 -
 src/docs/ar-SA/features/reaction.md           |  11 -
 src/docs/ar-SA/features/silence.md            |   6 -
 src/docs/ar-SA/features/theme.md              |  68 ----
 src/docs/ar-SA/features/timeline.md           |  31 --
 src/docs/ar-SA/features/widgets.md            |   7 -
 src/docs/ar-SA/features/word-mute.md          |  20 -
 src/docs/ar-SA/follow.md                      |   2 -
 src/docs/ar-SA/general/apps.md                |   6 -
 src/docs/ar-SA/general/changelog.md           |   5 -
 src/docs/ar-SA/general/faq.md                 |  28 --
 src/docs/ar-SA/general/glossary.md            |  89 -----
 src/docs/ar-SA/general/links.md               |  12 -
 src/docs/ar-SA/general/misskey.md             |  87 -----
 src/docs/ar-SA/general/report-issue.md        |   8 -
 src/docs/ar-SA/general/troubleshooting.md     |  40 --
 src/docs/ar-SA/keyboard-shortcut.md           |  68 ----
 src/docs/ar-SA/mfm.md                         |   2 -
 src/docs/ar-SA/mute.md                        |  13 -
 src/docs/ar-SA/pages.md                       |  10 -
 src/docs/ar-SA/reaction.md                    |  11 -
 src/docs/ar-SA/reversi-bot.md                 | 160 --------
 src/docs/ar-SA/stream.md                      | 354 ------------------
 src/docs/ar-SA/theme.md                       |  68 ----
 src/docs/ar-SA/timelines.md                   |  15 -
 src/docs/cs-CZ/admin/disable-timelines.md     |   8 -
 src/docs/cs-CZ/admin/faq.md                   |   5 -
 src/docs/cs-CZ/advanced/aiscript.md           |   7 -
 src/docs/cs-CZ/advanced/api.md                |  58 ---
 src/docs/cs-CZ/advanced/create-plugin.md      |  74 ----
 src/docs/cs-CZ/advanced/develop-bot.md        |   6 -
 src/docs/cs-CZ/advanced/reversi-bot.md        | 160 --------
 src/docs/cs-CZ/advanced/share-page.md         |  54 ---
 src/docs/cs-CZ/advanced/stream.md             | 350 -----------------
 src/docs/cs-CZ/aiscript.md                    |   4 -
 src/docs/cs-CZ/api.md                         |  58 ---
 src/docs/cs-CZ/create-plugin.md               |  74 ----
 src/docs/cs-CZ/custom-emoji.md                |   2 -
 src/docs/cs-CZ/deck.md                        |  18 -
 src/docs/cs-CZ/features/antenna.md            |   4 -
 src/docs/cs-CZ/features/custom-emoji.md       |   2 -
 src/docs/cs-CZ/features/deck.md               |  18 -
 src/docs/cs-CZ/features/drive.md              |  17 -
 src/docs/cs-CZ/features/favorite.md           |   4 -
 src/docs/cs-CZ/features/follow.md             |   2 -
 src/docs/cs-CZ/features/keyboard-shortcut.md  |  66 ----
 src/docs/cs-CZ/features/mfm.md                |  12 -
 src/docs/cs-CZ/features/mute-and-block.md     |  41 --
 src/docs/cs-CZ/features/mute.md               |  13 -
 src/docs/cs-CZ/features/note.md               |  54 ---
 src/docs/cs-CZ/features/pages.md              |  10 -
 src/docs/cs-CZ/features/reaction.md           |  11 -
 src/docs/cs-CZ/features/silence.md            |   6 -
 src/docs/cs-CZ/features/theme.md              |  68 ----
 src/docs/cs-CZ/features/timeline.md           |  31 --
 src/docs/cs-CZ/features/widgets.md            |   7 -
 src/docs/cs-CZ/features/word-mute.md          |  20 -
 src/docs/cs-CZ/follow.md                      |   2 -
 src/docs/cs-CZ/general/apps.md                |   6 -
 src/docs/cs-CZ/general/changelog.md           |   5 -
 src/docs/cs-CZ/general/faq.md                 |  28 --
 src/docs/cs-CZ/general/glossary.md            |  89 -----
 src/docs/cs-CZ/general/links.md               |  12 -
 src/docs/cs-CZ/general/misskey.md             |  87 -----
 src/docs/cs-CZ/general/report-issue.md        |   8 -
 src/docs/cs-CZ/general/troubleshooting.md     |  40 --
 src/docs/cs-CZ/keyboard-shortcut.md           |  68 ----
 src/docs/cs-CZ/mfm.md                         |   2 -
 src/docs/cs-CZ/mute.md                        |  13 -
 src/docs/cs-CZ/pages.md                       |  10 -
 src/docs/cs-CZ/reaction.md                    |  11 -
 src/docs/cs-CZ/reversi-bot.md                 | 160 --------
 src/docs/cs-CZ/stream.md                      | 354 ------------------
 src/docs/cs-CZ/theme.md                       |  68 ----
 src/docs/cs-CZ/timelines.md                   |  15 -
 src/docs/da-DK/admin/disable-timelines.md     |   8 -
 src/docs/da-DK/admin/faq.md                   |   5 -
 src/docs/da-DK/advanced/aiscript.md           |   7 -
 src/docs/da-DK/advanced/api.md                |  58 ---
 src/docs/da-DK/advanced/create-plugin.md      |  74 ----
 src/docs/da-DK/advanced/develop-bot.md        |   6 -
 src/docs/da-DK/advanced/reversi-bot.md        | 160 --------
 src/docs/da-DK/advanced/share-page.md         |  54 ---
 src/docs/da-DK/advanced/stream.md             | 350 -----------------
 src/docs/da-DK/aiscript.md                    |   4 -
 src/docs/da-DK/api.md                         |  58 ---
 src/docs/da-DK/create-plugin.md               |  74 ----
 src/docs/da-DK/custom-emoji.md                |   2 -
 src/docs/da-DK/deck.md                        |  18 -
 src/docs/da-DK/features/antenna.md            |   4 -
 src/docs/da-DK/features/custom-emoji.md       |   2 -
 src/docs/da-DK/features/deck.md               |  18 -
 src/docs/da-DK/features/drive.md              |  17 -
 src/docs/da-DK/features/favorite.md           |   4 -
 src/docs/da-DK/features/follow.md             |   2 -
 src/docs/da-DK/features/keyboard-shortcut.md  |  66 ----
 src/docs/da-DK/features/mfm.md                |  12 -
 src/docs/da-DK/features/mute-and-block.md     |  41 --
 src/docs/da-DK/features/mute.md               |  13 -
 src/docs/da-DK/features/note.md               |  54 ---
 src/docs/da-DK/features/pages.md              |  10 -
 src/docs/da-DK/features/reaction.md           |  11 -
 src/docs/da-DK/features/silence.md            |   6 -
 src/docs/da-DK/features/theme.md              |  68 ----
 src/docs/da-DK/features/timeline.md           |  31 --
 src/docs/da-DK/features/widgets.md            |   7 -
 src/docs/da-DK/features/word-mute.md          |  20 -
 src/docs/da-DK/follow.md                      |   2 -
 src/docs/da-DK/general/apps.md                |   6 -
 src/docs/da-DK/general/changelog.md           |   5 -
 src/docs/da-DK/general/faq.md                 |  28 --
 src/docs/da-DK/general/glossary.md            |  89 -----
 src/docs/da-DK/general/links.md               |  12 -
 src/docs/da-DK/general/misskey.md             |  87 -----
 src/docs/da-DK/general/report-issue.md        |   8 -
 src/docs/da-DK/general/troubleshooting.md     |  40 --
 src/docs/da-DK/keyboard-shortcut.md           |  68 ----
 src/docs/da-DK/mfm.md                         |   2 -
 src/docs/da-DK/mute.md                        |  13 -
 src/docs/da-DK/pages.md                       |  10 -
 src/docs/da-DK/reaction.md                    |  11 -
 src/docs/da-DK/reversi-bot.md                 | 160 --------
 src/docs/da-DK/stream.md                      | 354 ------------------
 src/docs/da-DK/theme.md                       |  68 ----
 src/docs/da-DK/timelines.md                   |  15 -
 src/docs/de-DE/admin/disable-timelines.md     |   8 -
 src/docs/de-DE/admin/faq.md                   |   5 -
 src/docs/de-DE/advanced/aiscript.md           |   7 -
 src/docs/de-DE/advanced/api.md                |  58 ---
 src/docs/de-DE/advanced/create-plugin.md      |  74 ----
 src/docs/de-DE/advanced/develop-bot.md        |   6 -
 src/docs/de-DE/advanced/reversi-bot.md        | 160 --------
 src/docs/de-DE/advanced/share-page.md         |  54 ---
 src/docs/de-DE/advanced/stream.md             | 350 -----------------
 src/docs/de-DE/aiscript.md                    |   4 -
 src/docs/de-DE/api.md                         |  58 ---
 src/docs/de-DE/create-plugin.md               |  74 ----
 src/docs/de-DE/custom-emoji.md                |   2 -
 src/docs/de-DE/deck.md                        |  18 -
 src/docs/de-DE/features/antenna.md            |   4 -
 src/docs/de-DE/features/custom-emoji.md       |   2 -
 src/docs/de-DE/features/deck.md               |  18 -
 src/docs/de-DE/features/drive.md              |  17 -
 src/docs/de-DE/features/favorite.md           |   4 -
 src/docs/de-DE/features/follow.md             |   2 -
 src/docs/de-DE/features/keyboard-shortcut.md  |  66 ----
 src/docs/de-DE/features/mfm.md                |  12 -
 src/docs/de-DE/features/mute-and-block.md     |  41 --
 src/docs/de-DE/features/mute.md               |  13 -
 src/docs/de-DE/features/note.md               |  54 ---
 src/docs/de-DE/features/pages.md              |  10 -
 src/docs/de-DE/features/reaction.md           |  11 -
 src/docs/de-DE/features/silence.md            |   6 -
 src/docs/de-DE/features/theme.md              |  68 ----
 src/docs/de-DE/features/timeline.md           |  31 --
 src/docs/de-DE/features/widgets.md            |   7 -
 src/docs/de-DE/features/word-mute.md          |  20 -
 src/docs/de-DE/follow.md                      |   2 -
 src/docs/de-DE/general/apps.md                |   6 -
 src/docs/de-DE/general/changelog.md           |   5 -
 src/docs/de-DE/general/faq.md                 |  28 --
 src/docs/de-DE/general/glossary.md            |  89 -----
 src/docs/de-DE/general/links.md               |  12 -
 src/docs/de-DE/general/misskey.md             |  87 -----
 src/docs/de-DE/general/report-issue.md        |   8 -
 src/docs/de-DE/general/troubleshooting.md     |  40 --
 src/docs/de-DE/keyboard-shortcut.md           |  68 ----
 src/docs/de-DE/mfm.md                         |   2 -
 src/docs/de-DE/mute.md                        |  13 -
 src/docs/de-DE/pages.md                       |  10 -
 src/docs/de-DE/reaction.md                    |  11 -
 src/docs/de-DE/reversi-bot.md                 | 160 --------
 src/docs/de-DE/stream.md                      | 354 ------------------
 src/docs/de-DE/theme.md                       |  68 ----
 src/docs/de-DE/timelines.md                   |  15 -
 src/docs/en-US/admin/disable-timelines.md     |   8 -
 src/docs/en-US/admin/faq.md                   |   5 -
 src/docs/en-US/advanced/aiscript.md           |   7 -
 src/docs/en-US/advanced/api.md                |  58 ---
 src/docs/en-US/advanced/create-plugin.md      |  74 ----
 src/docs/en-US/advanced/develop-bot.md        |   6 -
 src/docs/en-US/advanced/reversi-bot.md        | 160 --------
 src/docs/en-US/advanced/share-page.md         |  54 ---
 src/docs/en-US/advanced/stream.md             | 350 -----------------
 src/docs/en-US/aiscript.md                    |   4 -
 src/docs/en-US/api.md                         |  58 ---
 src/docs/en-US/create-plugin.md               |  74 ----
 src/docs/en-US/custom-emoji.md                |   2 -
 src/docs/en-US/deck.md                        |  18 -
 src/docs/en-US/features/antenna.md            |   4 -
 src/docs/en-US/features/custom-emoji.md       |   2 -
 src/docs/en-US/features/deck.md               |  18 -
 src/docs/en-US/features/drive.md              |  17 -
 src/docs/en-US/features/favorite.md           |   4 -
 src/docs/en-US/features/follow.md             |   2 -
 src/docs/en-US/features/keyboard-shortcut.md  |  66 ----
 src/docs/en-US/features/mfm.md                |  12 -
 src/docs/en-US/features/mute-and-block.md     |  41 --
 src/docs/en-US/features/mute.md               |  13 -
 src/docs/en-US/features/note.md               |  54 ---
 src/docs/en-US/features/pages.md              |  10 -
 src/docs/en-US/features/reaction.md           |  11 -
 src/docs/en-US/features/silence.md            |   6 -
 src/docs/en-US/features/theme.md              |  68 ----
 src/docs/en-US/features/timeline.md           |  31 --
 src/docs/en-US/features/widgets.md            |   7 -
 src/docs/en-US/features/word-mute.md          |  20 -
 src/docs/en-US/follow.md                      |   2 -
 src/docs/en-US/general/apps.md                |   6 -
 src/docs/en-US/general/changelog.md           |   5 -
 src/docs/en-US/general/faq.md                 |  28 --
 src/docs/en-US/general/glossary.md            |  89 -----
 src/docs/en-US/general/links.md               |  12 -
 src/docs/en-US/general/misskey.md             |  86 -----
 src/docs/en-US/general/report-issue.md        |   8 -
 src/docs/en-US/general/troubleshooting.md     |  40 --
 src/docs/en-US/keyboard-shortcut.md           |  68 ----
 src/docs/en-US/mfm.md                         |   2 -
 src/docs/en-US/mute.md                        |  13 -
 src/docs/en-US/pages.md                       |  10 -
 src/docs/en-US/reaction.md                    |  11 -
 src/docs/en-US/reversi-bot.md                 | 160 --------
 src/docs/en-US/stream.md                      | 354 ------------------
 src/docs/en-US/theme.md                       |  68 ----
 src/docs/en-US/timelines.md                   |  15 -
 src/docs/eo-UY/admin/disable-timelines.md     |   8 -
 src/docs/eo-UY/admin/faq.md                   |   5 -
 src/docs/eo-UY/advanced/aiscript.md           |   7 -
 src/docs/eo-UY/advanced/api.md                |  58 ---
 src/docs/eo-UY/advanced/create-plugin.md      |  74 ----
 src/docs/eo-UY/advanced/develop-bot.md        |   6 -
 src/docs/eo-UY/advanced/reversi-bot.md        | 160 --------
 src/docs/eo-UY/advanced/share-page.md         |  54 ---
 src/docs/eo-UY/advanced/stream.md             | 350 -----------------
 src/docs/eo-UY/aiscript.md                    |   4 -
 src/docs/eo-UY/api.md                         |  58 ---
 src/docs/eo-UY/create-plugin.md               |  74 ----
 src/docs/eo-UY/custom-emoji.md                |   2 -
 src/docs/eo-UY/deck.md                        |  18 -
 src/docs/eo-UY/features/antenna.md            |   4 -
 src/docs/eo-UY/features/custom-emoji.md       |   2 -
 src/docs/eo-UY/features/deck.md               |  18 -
 src/docs/eo-UY/features/drive.md              |  17 -
 src/docs/eo-UY/features/favorite.md           |   4 -
 src/docs/eo-UY/features/follow.md             |   2 -
 src/docs/eo-UY/features/keyboard-shortcut.md  |  66 ----
 src/docs/eo-UY/features/mfm.md                |  12 -
 src/docs/eo-UY/features/mute-and-block.md     |  41 --
 src/docs/eo-UY/features/mute.md               |  13 -
 src/docs/eo-UY/features/note.md               |  54 ---
 src/docs/eo-UY/features/pages.md              |  10 -
 src/docs/eo-UY/features/reaction.md           |  11 -
 src/docs/eo-UY/features/silence.md            |   6 -
 src/docs/eo-UY/features/theme.md              |  68 ----
 src/docs/eo-UY/features/timeline.md           |  31 --
 src/docs/eo-UY/features/widgets.md            |   7 -
 src/docs/eo-UY/features/word-mute.md          |  20 -
 src/docs/eo-UY/follow.md                      |   2 -
 src/docs/eo-UY/general/apps.md                |   6 -
 src/docs/eo-UY/general/changelog.md           |   5 -
 src/docs/eo-UY/general/faq.md                 |  28 --
 src/docs/eo-UY/general/glossary.md            |  89 -----
 src/docs/eo-UY/general/links.md               |  12 -
 src/docs/eo-UY/general/misskey.md             |  87 -----
 src/docs/eo-UY/general/report-issue.md        |   8 -
 src/docs/eo-UY/general/troubleshooting.md     |  40 --
 src/docs/eo-UY/keyboard-shortcut.md           |  68 ----
 src/docs/eo-UY/mfm.md                         |   2 -
 src/docs/eo-UY/mute.md                        |  13 -
 src/docs/eo-UY/pages.md                       |  10 -
 src/docs/eo-UY/reaction.md                    |  11 -
 src/docs/eo-UY/reversi-bot.md                 | 160 --------
 src/docs/eo-UY/stream.md                      | 354 ------------------
 src/docs/eo-UY/theme.md                       |  68 ----
 src/docs/eo-UY/timelines.md                   |  15 -
 src/docs/es-ES/admin/disable-timelines.md     |   8 -
 src/docs/es-ES/admin/faq.md                   |   5 -
 src/docs/es-ES/advanced/aiscript.md           |   7 -
 src/docs/es-ES/advanced/api.md                |  58 ---
 src/docs/es-ES/advanced/create-plugin.md      |  74 ----
 src/docs/es-ES/advanced/develop-bot.md        |   6 -
 src/docs/es-ES/advanced/reversi-bot.md        | 160 --------
 src/docs/es-ES/advanced/share-page.md         |  54 ---
 src/docs/es-ES/advanced/stream.md             | 350 -----------------
 src/docs/es-ES/aiscript.md                    |   4 -
 src/docs/es-ES/api.md                         |  58 ---
 src/docs/es-ES/create-plugin.md               |  74 ----
 src/docs/es-ES/custom-emoji.md                |   2 -
 src/docs/es-ES/deck.md                        |  18 -
 src/docs/es-ES/features/antenna.md            |   4 -
 src/docs/es-ES/features/custom-emoji.md       |   2 -
 src/docs/es-ES/features/deck.md               |  18 -
 src/docs/es-ES/features/drive.md              |  17 -
 src/docs/es-ES/features/favorite.md           |   4 -
 src/docs/es-ES/features/follow.md             |   2 -
 src/docs/es-ES/features/keyboard-shortcut.md  |  66 ----
 src/docs/es-ES/features/mfm.md                |  12 -
 src/docs/es-ES/features/mute-and-block.md     |  41 --
 src/docs/es-ES/features/mute.md               |  13 -
 src/docs/es-ES/features/note.md               |  54 ---
 src/docs/es-ES/features/pages.md              |  10 -
 src/docs/es-ES/features/reaction.md           |  11 -
 src/docs/es-ES/features/silence.md            |   6 -
 src/docs/es-ES/features/theme.md              |  68 ----
 src/docs/es-ES/features/timeline.md           |  31 --
 src/docs/es-ES/features/widgets.md            |   7 -
 src/docs/es-ES/features/word-mute.md          |  20 -
 src/docs/es-ES/follow.md                      |   2 -
 src/docs/es-ES/general/apps.md                |   6 -
 src/docs/es-ES/general/changelog.md           |   5 -
 src/docs/es-ES/general/faq.md                 |  28 --
 src/docs/es-ES/general/glossary.md            |  89 -----
 src/docs/es-ES/general/links.md               |  12 -
 src/docs/es-ES/general/misskey.md             |  87 -----
 src/docs/es-ES/general/report-issue.md        |   8 -
 src/docs/es-ES/general/troubleshooting.md     |  40 --
 src/docs/es-ES/keyboard-shortcut.md           |  68 ----
 src/docs/es-ES/mfm.md                         |   2 -
 src/docs/es-ES/mute.md                        |  13 -
 src/docs/es-ES/pages.md                       |  10 -
 src/docs/es-ES/reaction.md                    |  11 -
 src/docs/es-ES/reversi-bot.md                 | 160 --------
 src/docs/es-ES/stream.md                      | 354 ------------------
 src/docs/es-ES/theme.md                       |  68 ----
 src/docs/es-ES/timelines.md                   |  15 -
 src/docs/fr-FR/admin/disable-timelines.md     |   8 -
 src/docs/fr-FR/admin/faq.md                   |   5 -
 src/docs/fr-FR/advanced/aiscript.md           |   7 -
 src/docs/fr-FR/advanced/api.md                |  58 ---
 src/docs/fr-FR/advanced/create-plugin.md      |  74 ----
 src/docs/fr-FR/advanced/develop-bot.md        |   6 -
 src/docs/fr-FR/advanced/reversi-bot.md        | 160 --------
 src/docs/fr-FR/advanced/share-page.md         |  54 ---
 src/docs/fr-FR/advanced/stream.md             | 350 -----------------
 src/docs/fr-FR/aiscript.md                    |   4 -
 src/docs/fr-FR/api.md                         |  58 ---
 src/docs/fr-FR/create-plugin.md               |  74 ----
 src/docs/fr-FR/custom-emoji.md                |   2 -
 src/docs/fr-FR/deck.md                        |  18 -
 src/docs/fr-FR/features/antenna.md            |   4 -
 src/docs/fr-FR/features/custom-emoji.md       |   2 -
 src/docs/fr-FR/features/deck.md               |  18 -
 src/docs/fr-FR/features/drive.md              |  17 -
 src/docs/fr-FR/features/favorite.md           |   4 -
 src/docs/fr-FR/features/follow.md             |   2 -
 src/docs/fr-FR/features/keyboard-shortcut.md  |  66 ----
 src/docs/fr-FR/features/mfm.md                |  12 -
 src/docs/fr-FR/features/mute-and-block.md     |  41 --
 src/docs/fr-FR/features/mute.md               |  13 -
 src/docs/fr-FR/features/note.md               |  54 ---
 src/docs/fr-FR/features/pages.md              |  10 -
 src/docs/fr-FR/features/reaction.md           |  11 -
 src/docs/fr-FR/features/silence.md            |   6 -
 src/docs/fr-FR/features/theme.md              |  68 ----
 src/docs/fr-FR/features/timeline.md           |  31 --
 src/docs/fr-FR/features/widgets.md            |   7 -
 src/docs/fr-FR/features/word-mute.md          |  20 -
 src/docs/fr-FR/follow.md                      |   2 -
 src/docs/fr-FR/general/apps.md                |   6 -
 src/docs/fr-FR/general/changelog.md           |   5 -
 src/docs/fr-FR/general/faq.md                 |  28 --
 src/docs/fr-FR/general/glossary.md            |  89 -----
 src/docs/fr-FR/general/links.md               |  12 -
 src/docs/fr-FR/general/misskey.md             |  87 -----
 src/docs/fr-FR/general/report-issue.md        |   8 -
 src/docs/fr-FR/general/troubleshooting.md     |  40 --
 src/docs/fr-FR/keyboard-shortcut.md           |  68 ----
 src/docs/fr-FR/mfm.md                         |   2 -
 src/docs/fr-FR/mute.md                        |  13 -
 src/docs/fr-FR/pages.md                       |  10 -
 src/docs/fr-FR/reaction.md                    |  11 -
 src/docs/fr-FR/reversi-bot.md                 | 160 --------
 src/docs/fr-FR/stream.md                      | 354 ------------------
 src/docs/fr-FR/theme.md                       |  68 ----
 src/docs/fr-FR/timelines.md                   |  15 -
 src/docs/ht-HT/admin/disable-timelines.md     |   8 -
 src/docs/ht-HT/admin/faq.md                   |   5 -
 src/docs/ht-HT/advanced/aiscript.md           |   7 -
 src/docs/ht-HT/advanced/api.md                |  58 ---
 src/docs/ht-HT/advanced/create-plugin.md      |  74 ----
 src/docs/ht-HT/advanced/develop-bot.md        |   6 -
 src/docs/ht-HT/advanced/reversi-bot.md        | 160 --------
 src/docs/ht-HT/advanced/share-page.md         |  54 ---
 src/docs/ht-HT/advanced/stream.md             | 350 -----------------
 src/docs/ht-HT/aiscript.md                    |   4 -
 src/docs/ht-HT/api.md                         |  58 ---
 src/docs/ht-HT/create-plugin.md               |  74 ----
 src/docs/ht-HT/custom-emoji.md                |   2 -
 src/docs/ht-HT/deck.md                        |  18 -
 src/docs/ht-HT/features/antenna.md            |   4 -
 src/docs/ht-HT/features/custom-emoji.md       |   2 -
 src/docs/ht-HT/features/deck.md               |  18 -
 src/docs/ht-HT/features/drive.md              |  17 -
 src/docs/ht-HT/features/favorite.md           |   4 -
 src/docs/ht-HT/features/follow.md             |   2 -
 src/docs/ht-HT/features/keyboard-shortcut.md  |  66 ----
 src/docs/ht-HT/features/mfm.md                |  12 -
 src/docs/ht-HT/features/mute-and-block.md     |  41 --
 src/docs/ht-HT/features/mute.md               |  13 -
 src/docs/ht-HT/features/note.md               |  54 ---
 src/docs/ht-HT/features/pages.md              |  10 -
 src/docs/ht-HT/features/reaction.md           |  11 -
 src/docs/ht-HT/features/silence.md            |   6 -
 src/docs/ht-HT/features/theme.md              |  68 ----
 src/docs/ht-HT/features/timeline.md           |  31 --
 src/docs/ht-HT/features/widgets.md            |   7 -
 src/docs/ht-HT/features/word-mute.md          |  20 -
 src/docs/ht-HT/follow.md                      |   2 -
 src/docs/ht-HT/general/apps.md                |   6 -
 src/docs/ht-HT/general/changelog.md           |   5 -
 src/docs/ht-HT/general/faq.md                 |  28 --
 src/docs/ht-HT/general/glossary.md            |  89 -----
 src/docs/ht-HT/general/links.md               |  12 -
 src/docs/ht-HT/general/misskey.md             |  87 -----
 src/docs/ht-HT/general/report-issue.md        |   8 -
 src/docs/ht-HT/general/troubleshooting.md     |  40 --
 src/docs/ht-HT/keyboard-shortcut.md           |  68 ----
 src/docs/ht-HT/mfm.md                         |   2 -
 src/docs/ht-HT/mute.md                        |  13 -
 src/docs/ht-HT/pages.md                       |  10 -
 src/docs/ht-HT/reaction.md                    |  11 -
 src/docs/ht-HT/reversi-bot.md                 | 160 --------
 src/docs/ht-HT/stream.md                      | 354 ------------------
 src/docs/ht-HT/theme.md                       |  68 ----
 src/docs/ht-HT/timelines.md                   |  15 -
 src/docs/id-ID/admin/disable-timelines.md     |   8 -
 src/docs/id-ID/admin/faq.md                   |   5 -
 src/docs/id-ID/advanced/aiscript.md           |   7 -
 src/docs/id-ID/advanced/api.md                |  58 ---
 src/docs/id-ID/advanced/create-plugin.md      |  74 ----
 src/docs/id-ID/advanced/develop-bot.md        |   6 -
 src/docs/id-ID/advanced/reversi-bot.md        | 160 --------
 src/docs/id-ID/advanced/share-page.md         |  54 ---
 src/docs/id-ID/advanced/stream.md             | 350 -----------------
 src/docs/id-ID/aiscript.md                    |   4 -
 src/docs/id-ID/api.md                         |  58 ---
 src/docs/id-ID/create-plugin.md               |  74 ----
 src/docs/id-ID/custom-emoji.md                |   2 -
 src/docs/id-ID/deck.md                        |  18 -
 src/docs/id-ID/features/antenna.md            |   4 -
 src/docs/id-ID/features/custom-emoji.md       |   2 -
 src/docs/id-ID/features/deck.md               |  18 -
 src/docs/id-ID/features/drive.md              |  17 -
 src/docs/id-ID/features/favorite.md           |   4 -
 src/docs/id-ID/features/follow.md             |   2 -
 src/docs/id-ID/features/keyboard-shortcut.md  |  66 ----
 src/docs/id-ID/features/mfm.md                |  12 -
 src/docs/id-ID/features/mute-and-block.md     |  41 --
 src/docs/id-ID/features/mute.md               |  13 -
 src/docs/id-ID/features/note.md               |  54 ---
 src/docs/id-ID/features/pages.md              |  10 -
 src/docs/id-ID/features/reaction.md           |  11 -
 src/docs/id-ID/features/silence.md            |   6 -
 src/docs/id-ID/features/theme.md              |  68 ----
 src/docs/id-ID/features/timeline.md           |  31 --
 src/docs/id-ID/features/widgets.md            |   7 -
 src/docs/id-ID/features/word-mute.md          |  20 -
 src/docs/id-ID/follow.md                      |   2 -
 src/docs/id-ID/general/apps.md                |   6 -
 src/docs/id-ID/general/changelog.md           |   5 -
 src/docs/id-ID/general/faq.md                 |  28 --
 src/docs/id-ID/general/glossary.md            |  89 -----
 src/docs/id-ID/general/links.md               |  12 -
 src/docs/id-ID/general/misskey.md             |  87 -----
 src/docs/id-ID/general/report-issue.md        |   8 -
 src/docs/id-ID/general/troubleshooting.md     |  40 --
 src/docs/id-ID/keyboard-shortcut.md           |  68 ----
 src/docs/id-ID/mfm.md                         |   2 -
 src/docs/id-ID/mute.md                        |  13 -
 src/docs/id-ID/pages.md                       |  14 -
 src/docs/id-ID/reaction.md                    |  11 -
 src/docs/id-ID/reversi-bot.md                 | 160 --------
 src/docs/id-ID/stream.md                      | 354 ------------------
 src/docs/id-ID/theme.md                       |  68 ----
 src/docs/id-ID/timelines.md                   |  15 -
 src/docs/it-IT/admin/disable-timelines.md     |   8 -
 src/docs/it-IT/admin/faq.md                   |   5 -
 src/docs/it-IT/advanced/aiscript.md           |   7 -
 src/docs/it-IT/advanced/api.md                |  58 ---
 src/docs/it-IT/advanced/create-plugin.md      |  74 ----
 src/docs/it-IT/advanced/develop-bot.md        |   6 -
 src/docs/it-IT/advanced/reversi-bot.md        | 160 --------
 src/docs/it-IT/advanced/share-page.md         |  54 ---
 src/docs/it-IT/advanced/stream.md             | 350 -----------------
 src/docs/it-IT/aiscript.md                    |   4 -
 src/docs/it-IT/api.md                         |  58 ---
 src/docs/it-IT/create-plugin.md               |  74 ----
 src/docs/it-IT/custom-emoji.md                |   2 -
 src/docs/it-IT/deck.md                        |  18 -
 src/docs/it-IT/features/antenna.md            |   4 -
 src/docs/it-IT/features/custom-emoji.md       |   2 -
 src/docs/it-IT/features/deck.md               |  18 -
 src/docs/it-IT/features/drive.md              |  17 -
 src/docs/it-IT/features/favorite.md           |   4 -
 src/docs/it-IT/features/follow.md             |   2 -
 src/docs/it-IT/features/keyboard-shortcut.md  |  66 ----
 src/docs/it-IT/features/mfm.md                |  12 -
 src/docs/it-IT/features/mute-and-block.md     |  41 --
 src/docs/it-IT/features/mute.md               |  13 -
 src/docs/it-IT/features/note.md               |  54 ---
 src/docs/it-IT/features/pages.md              |  10 -
 src/docs/it-IT/features/reaction.md           |  11 -
 src/docs/it-IT/features/silence.md            |   6 -
 src/docs/it-IT/features/theme.md              |  68 ----
 src/docs/it-IT/features/timeline.md           |  31 --
 src/docs/it-IT/features/widgets.md            |   7 -
 src/docs/it-IT/features/word-mute.md          |  20 -
 src/docs/it-IT/follow.md                      |   2 -
 src/docs/it-IT/general/apps.md                |   6 -
 src/docs/it-IT/general/changelog.md           |   5 -
 src/docs/it-IT/general/faq.md                 |  28 --
 src/docs/it-IT/general/glossary.md            |  89 -----
 src/docs/it-IT/general/links.md               |  12 -
 src/docs/it-IT/general/misskey.md             |  87 -----
 src/docs/it-IT/general/report-issue.md        |   8 -
 src/docs/it-IT/general/troubleshooting.md     |  40 --
 src/docs/it-IT/keyboard-shortcut.md           |  68 ----
 src/docs/it-IT/mfm.md                         |   2 -
 src/docs/it-IT/mute.md                        |  13 -
 src/docs/it-IT/pages.md                       |  10 -
 src/docs/it-IT/reaction.md                    |  11 -
 src/docs/it-IT/reversi-bot.md                 | 160 --------
 src/docs/it-IT/stream.md                      | 354 ------------------
 src/docs/it-IT/theme.md                       |  68 ----
 src/docs/it-IT/timelines.md                   |  15 -
 src/docs/ja-JP/admin/disable-timelines.md     |  11 -
 src/docs/ja-JP/admin/faq.md                   |   5 -
 src/docs/ja-JP/advanced/aiscript.md           |   7 -
 src/docs/ja-JP/advanced/api.md                |  62 ---
 src/docs/ja-JP/advanced/create-plugin.md      |  90 -----
 src/docs/ja-JP/advanced/develop-bot.md        |   7 -
 src/docs/ja-JP/advanced/reversi-bot.md        | 177 ---------
 src/docs/ja-JP/advanced/share-page.md         |  56 ---
 src/docs/ja-JP/advanced/stream.md             | 354 ------------------
 src/docs/ja-JP/features/antenna.md            |   4 -
 src/docs/ja-JP/features/custom-emoji.md       |   5 -
 src/docs/ja-JP/features/deck.md               |  20 -
 src/docs/ja-JP/features/drive.md              |  19 -
 src/docs/ja-JP/features/favorite.md           |   6 -
 src/docs/ja-JP/features/follow.md             |   3 -
 src/docs/ja-JP/features/keyboard-shortcut.md  |  66 ----
 src/docs/ja-JP/features/mfm.md                |  13 -
 src/docs/ja-JP/features/mute-and-block.md     |  43 ---
 src/docs/ja-JP/features/note.md               |  62 ---
 src/docs/ja-JP/features/pages.md              |  10 -
 src/docs/ja-JP/features/reaction.md           |  14 -
 src/docs/ja-JP/features/silence.md            |   7 -
 src/docs/ja-JP/features/theme.md              |  74 ----
 src/docs/ja-JP/features/timeline.md           |  33 --
 src/docs/ja-JP/features/widgets.md            |   8 -
 src/docs/ja-JP/features/word-mute.md          |  20 -
 src/docs/ja-JP/general/apps.md                |   6 -
 src/docs/ja-JP/general/changelog.md           |   5 -
 src/docs/ja-JP/general/faq.md                 |  33 --
 src/docs/ja-JP/general/glossary.md            |  99 -----
 src/docs/ja-JP/general/links.md               |  12 -
 src/docs/ja-JP/general/misskey.md             | 121 ------
 src/docs/ja-JP/general/report-issue.md        |  10 -
 src/docs/ja-JP/general/troubleshooting.md     |  45 ---
 src/docs/ja-KS/admin/disable-timelines.md     |   8 -
 src/docs/ja-KS/admin/faq.md                   |   5 -
 src/docs/ja-KS/advanced/aiscript.md           |   7 -
 src/docs/ja-KS/advanced/api.md                |  58 ---
 src/docs/ja-KS/advanced/create-plugin.md      |  74 ----
 src/docs/ja-KS/advanced/develop-bot.md        |   6 -
 src/docs/ja-KS/advanced/reversi-bot.md        | 160 --------
 src/docs/ja-KS/advanced/share-page.md         |  54 ---
 src/docs/ja-KS/advanced/stream.md             | 350 -----------------
 src/docs/ja-KS/aiscript.md                    |   4 -
 src/docs/ja-KS/api.md                         |  58 ---
 src/docs/ja-KS/create-plugin.md               |  74 ----
 src/docs/ja-KS/custom-emoji.md                |   2 -
 src/docs/ja-KS/deck.md                        |  18 -
 src/docs/ja-KS/features/antenna.md            |   4 -
 src/docs/ja-KS/features/custom-emoji.md       |   2 -
 src/docs/ja-KS/features/deck.md               |  18 -
 src/docs/ja-KS/features/drive.md              |  17 -
 src/docs/ja-KS/features/favorite.md           |   4 -
 src/docs/ja-KS/features/follow.md             |   2 -
 src/docs/ja-KS/features/keyboard-shortcut.md  |  66 ----
 src/docs/ja-KS/features/mfm.md                |  12 -
 src/docs/ja-KS/features/mute-and-block.md     |  41 --
 src/docs/ja-KS/features/mute.md               |  13 -
 src/docs/ja-KS/features/note.md               |  54 ---
 src/docs/ja-KS/features/pages.md              |  10 -
 src/docs/ja-KS/features/reaction.md           |  11 -
 src/docs/ja-KS/features/silence.md            |   6 -
 src/docs/ja-KS/features/theme.md              |  68 ----
 src/docs/ja-KS/features/timeline.md           |  31 --
 src/docs/ja-KS/features/widgets.md            |   7 -
 src/docs/ja-KS/features/word-mute.md          |  20 -
 src/docs/ja-KS/follow.md                      |   2 -
 src/docs/ja-KS/general/apps.md                |   6 -
 src/docs/ja-KS/general/changelog.md           |   5 -
 src/docs/ja-KS/general/faq.md                 |  28 --
 src/docs/ja-KS/general/glossary.md            |  89 -----
 src/docs/ja-KS/general/links.md               |  12 -
 src/docs/ja-KS/general/misskey.md             |  87 -----
 src/docs/ja-KS/general/report-issue.md        |   8 -
 src/docs/ja-KS/general/troubleshooting.md     |  40 --
 src/docs/ja-KS/keyboard-shortcut.md           |  68 ----
 src/docs/ja-KS/mfm.md                         |   2 -
 src/docs/ja-KS/mute.md                        |  13 -
 src/docs/ja-KS/pages.md                       |  10 -
 src/docs/ja-KS/reaction.md                    |  11 -
 src/docs/ja-KS/reversi-bot.md                 | 160 --------
 src/docs/ja-KS/stream.md                      | 354 ------------------
 src/docs/ja-KS/theme.md                       |  68 ----
 src/docs/ja-KS/timelines.md                   |  15 -
 src/docs/jbo-EN/admin/disable-timelines.md    |   8 -
 src/docs/jbo-EN/admin/faq.md                  |   5 -
 src/docs/jbo-EN/advanced/aiscript.md          |   7 -
 src/docs/jbo-EN/advanced/api.md               |  58 ---
 src/docs/jbo-EN/advanced/create-plugin.md     |  74 ----
 src/docs/jbo-EN/advanced/develop-bot.md       |   6 -
 src/docs/jbo-EN/advanced/reversi-bot.md       | 160 --------
 src/docs/jbo-EN/advanced/share-page.md        |  54 ---
 src/docs/jbo-EN/advanced/stream.md            | 350 -----------------
 src/docs/jbo-EN/aiscript.md                   |   4 -
 src/docs/jbo-EN/api.md                        |  58 ---
 src/docs/jbo-EN/create-plugin.md              |  74 ----
 src/docs/jbo-EN/custom-emoji.md               |   2 -
 src/docs/jbo-EN/deck.md                       |  18 -
 src/docs/jbo-EN/features/antenna.md           |   4 -
 src/docs/jbo-EN/features/custom-emoji.md      |   2 -
 src/docs/jbo-EN/features/deck.md              |  18 -
 src/docs/jbo-EN/features/drive.md             |  17 -
 src/docs/jbo-EN/features/favorite.md          |   4 -
 src/docs/jbo-EN/features/follow.md            |   2 -
 src/docs/jbo-EN/features/keyboard-shortcut.md |  66 ----
 src/docs/jbo-EN/features/mfm.md               |  12 -
 src/docs/jbo-EN/features/mute-and-block.md    |  41 --
 src/docs/jbo-EN/features/mute.md              |  13 -
 src/docs/jbo-EN/features/note.md              |  54 ---
 src/docs/jbo-EN/features/pages.md             |  10 -
 src/docs/jbo-EN/features/reaction.md          |  11 -
 src/docs/jbo-EN/features/silence.md           |   6 -
 src/docs/jbo-EN/features/theme.md             |  68 ----
 src/docs/jbo-EN/features/timeline.md          |  31 --
 src/docs/jbo-EN/features/widgets.md           |   7 -
 src/docs/jbo-EN/features/word-mute.md         |  20 -
 src/docs/jbo-EN/follow.md                     |   2 -
 src/docs/jbo-EN/general/apps.md               |   6 -
 src/docs/jbo-EN/general/changelog.md          |   5 -
 src/docs/jbo-EN/general/faq.md                |  28 --
 src/docs/jbo-EN/general/glossary.md           |  89 -----
 src/docs/jbo-EN/general/links.md              |  12 -
 src/docs/jbo-EN/general/misskey.md            |  87 -----
 src/docs/jbo-EN/general/report-issue.md       |   8 -
 src/docs/jbo-EN/general/troubleshooting.md    |  40 --
 src/docs/jbo-EN/keyboard-shortcut.md          |  68 ----
 src/docs/jbo-EN/mfm.md                        |   2 -
 src/docs/jbo-EN/mute.md                       |  13 -
 src/docs/jbo-EN/pages.md                      |  10 -
 src/docs/jbo-EN/reaction.md                   |  11 -
 src/docs/jbo-EN/reversi-bot.md                | 160 --------
 src/docs/jbo-EN/stream.md                     | 354 ------------------
 src/docs/jbo-EN/theme.md                      |  68 ----
 src/docs/jbo-EN/timelines.md                  |  15 -
 src/docs/kab-KAB/admin/disable-timelines.md   |   8 -
 src/docs/kab-KAB/admin/faq.md                 |   5 -
 src/docs/kab-KAB/advanced/aiscript.md         |   7 -
 src/docs/kab-KAB/advanced/api.md              |  58 ---
 src/docs/kab-KAB/advanced/create-plugin.md    |  74 ----
 src/docs/kab-KAB/advanced/develop-bot.md      |   6 -
 src/docs/kab-KAB/advanced/reversi-bot.md      | 160 --------
 src/docs/kab-KAB/advanced/share-page.md       |  54 ---
 src/docs/kab-KAB/advanced/stream.md           | 350 -----------------
 src/docs/kab-KAB/aiscript.md                  |   4 -
 src/docs/kab-KAB/api.md                       |  58 ---
 src/docs/kab-KAB/create-plugin.md             |  74 ----
 src/docs/kab-KAB/custom-emoji.md              |   2 -
 src/docs/kab-KAB/deck.md                      |  18 -
 src/docs/kab-KAB/features/antenna.md          |   4 -
 src/docs/kab-KAB/features/custom-emoji.md     |   2 -
 src/docs/kab-KAB/features/deck.md             |  18 -
 src/docs/kab-KAB/features/drive.md            |  17 -
 src/docs/kab-KAB/features/favorite.md         |   4 -
 src/docs/kab-KAB/features/follow.md           |   2 -
 .../kab-KAB/features/keyboard-shortcut.md     |  66 ----
 src/docs/kab-KAB/features/mfm.md              |  12 -
 src/docs/kab-KAB/features/mute-and-block.md   |  41 --
 src/docs/kab-KAB/features/mute.md             |  13 -
 src/docs/kab-KAB/features/note.md             |  54 ---
 src/docs/kab-KAB/features/pages.md            |  10 -
 src/docs/kab-KAB/features/reaction.md         |  11 -
 src/docs/kab-KAB/features/silence.md          |   6 -
 src/docs/kab-KAB/features/theme.md            |  68 ----
 src/docs/kab-KAB/features/timeline.md         |  31 --
 src/docs/kab-KAB/features/widgets.md          |   7 -
 src/docs/kab-KAB/features/word-mute.md        |  20 -
 src/docs/kab-KAB/follow.md                    |   2 -
 src/docs/kab-KAB/general/apps.md              |   6 -
 src/docs/kab-KAB/general/changelog.md         |   5 -
 src/docs/kab-KAB/general/faq.md               |  28 --
 src/docs/kab-KAB/general/glossary.md          |  89 -----
 src/docs/kab-KAB/general/links.md             |  12 -
 src/docs/kab-KAB/general/misskey.md           |  87 -----
 src/docs/kab-KAB/general/report-issue.md      |   8 -
 src/docs/kab-KAB/general/troubleshooting.md   |  40 --
 src/docs/kab-KAB/keyboard-shortcut.md         |  68 ----
 src/docs/kab-KAB/mfm.md                       |   2 -
 src/docs/kab-KAB/mute.md                      |  13 -
 src/docs/kab-KAB/pages.md                     |  10 -
 src/docs/kab-KAB/reaction.md                  |  11 -
 src/docs/kab-KAB/reversi-bot.md               | 160 --------
 src/docs/kab-KAB/stream.md                    | 354 ------------------
 src/docs/kab-KAB/theme.md                     |  68 ----
 src/docs/kab-KAB/timelines.md                 |  15 -
 src/docs/kn-IN/admin/disable-timelines.md     |   8 -
 src/docs/kn-IN/admin/faq.md                   |   5 -
 src/docs/kn-IN/advanced/aiscript.md           |   7 -
 src/docs/kn-IN/advanced/api.md                |  58 ---
 src/docs/kn-IN/advanced/create-plugin.md      |  74 ----
 src/docs/kn-IN/advanced/develop-bot.md        |   6 -
 src/docs/kn-IN/advanced/reversi-bot.md        | 160 --------
 src/docs/kn-IN/advanced/share-page.md         |  54 ---
 src/docs/kn-IN/advanced/stream.md             | 350 -----------------
 src/docs/kn-IN/aiscript.md                    |   4 -
 src/docs/kn-IN/api.md                         |  58 ---
 src/docs/kn-IN/create-plugin.md               |  74 ----
 src/docs/kn-IN/custom-emoji.md                |   2 -
 src/docs/kn-IN/deck.md                        |  18 -
 src/docs/kn-IN/features/antenna.md            |   4 -
 src/docs/kn-IN/features/custom-emoji.md       |   2 -
 src/docs/kn-IN/features/deck.md               |  18 -
 src/docs/kn-IN/features/drive.md              |  17 -
 src/docs/kn-IN/features/favorite.md           |   4 -
 src/docs/kn-IN/features/follow.md             |   2 -
 src/docs/kn-IN/features/keyboard-shortcut.md  |  66 ----
 src/docs/kn-IN/features/mfm.md                |  12 -
 src/docs/kn-IN/features/mute-and-block.md     |  41 --
 src/docs/kn-IN/features/mute.md               |  13 -
 src/docs/kn-IN/features/note.md               |  54 ---
 src/docs/kn-IN/features/pages.md              |  10 -
 src/docs/kn-IN/features/reaction.md           |  11 -
 src/docs/kn-IN/features/silence.md            |   6 -
 src/docs/kn-IN/features/theme.md              |  68 ----
 src/docs/kn-IN/features/timeline.md           |  31 --
 src/docs/kn-IN/features/widgets.md            |   7 -
 src/docs/kn-IN/features/word-mute.md          |  20 -
 src/docs/kn-IN/follow.md                      |   2 -
 src/docs/kn-IN/general/apps.md                |   6 -
 src/docs/kn-IN/general/changelog.md           |   5 -
 src/docs/kn-IN/general/faq.md                 |  28 --
 src/docs/kn-IN/general/glossary.md            |  89 -----
 src/docs/kn-IN/general/links.md               |  12 -
 src/docs/kn-IN/general/misskey.md             |  87 -----
 src/docs/kn-IN/general/report-issue.md        |   8 -
 src/docs/kn-IN/general/troubleshooting.md     |  40 --
 src/docs/kn-IN/keyboard-shortcut.md           |  68 ----
 src/docs/kn-IN/mfm.md                         |   2 -
 src/docs/kn-IN/mute.md                        |  13 -
 src/docs/kn-IN/pages.md                       |  10 -
 src/docs/kn-IN/reaction.md                    |  11 -
 src/docs/kn-IN/reversi-bot.md                 | 160 --------
 src/docs/kn-IN/stream.md                      | 354 ------------------
 src/docs/kn-IN/theme.md                       |  68 ----
 src/docs/kn-IN/timelines.md                   |  15 -
 src/docs/ko-KR/admin/disable-timelines.md     |   8 -
 src/docs/ko-KR/admin/faq.md                   |   5 -
 src/docs/ko-KR/advanced/aiscript.md           |   7 -
 src/docs/ko-KR/advanced/api.md                |  58 ---
 src/docs/ko-KR/advanced/create-plugin.md      |  74 ----
 src/docs/ko-KR/advanced/develop-bot.md        |   6 -
 src/docs/ko-KR/advanced/reversi-bot.md        | 160 --------
 src/docs/ko-KR/advanced/share-page.md         |  54 ---
 src/docs/ko-KR/advanced/stream.md             | 350 -----------------
 src/docs/ko-KR/aiscript.md                    |   4 -
 src/docs/ko-KR/api.md                         |  58 ---
 src/docs/ko-KR/create-plugin.md               |  74 ----
 src/docs/ko-KR/custom-emoji.md                |   2 -
 src/docs/ko-KR/deck.md                        |  18 -
 src/docs/ko-KR/features/antenna.md            |   4 -
 src/docs/ko-KR/features/custom-emoji.md       |   2 -
 src/docs/ko-KR/features/deck.md               |  18 -
 src/docs/ko-KR/features/drive.md              |  17 -
 src/docs/ko-KR/features/favorite.md           |   4 -
 src/docs/ko-KR/features/follow.md             |   2 -
 src/docs/ko-KR/features/keyboard-shortcut.md  |  66 ----
 src/docs/ko-KR/features/mfm.md                |  12 -
 src/docs/ko-KR/features/mute-and-block.md     |  41 --
 src/docs/ko-KR/features/mute.md               |  13 -
 src/docs/ko-KR/features/note.md               |  54 ---
 src/docs/ko-KR/features/pages.md              |  10 -
 src/docs/ko-KR/features/reaction.md           |  11 -
 src/docs/ko-KR/features/silence.md            |   6 -
 src/docs/ko-KR/features/theme.md              |  68 ----
 src/docs/ko-KR/features/timeline.md           |  31 --
 src/docs/ko-KR/features/widgets.md            |   7 -
 src/docs/ko-KR/features/word-mute.md          |  20 -
 src/docs/ko-KR/follow.md                      |   2 -
 src/docs/ko-KR/general/apps.md                |   6 -
 src/docs/ko-KR/general/changelog.md           |   5 -
 src/docs/ko-KR/general/faq.md                 |  28 --
 src/docs/ko-KR/general/glossary.md            |  89 -----
 src/docs/ko-KR/general/links.md               |  12 -
 src/docs/ko-KR/general/misskey.md             |  87 -----
 src/docs/ko-KR/general/report-issue.md        |   8 -
 src/docs/ko-KR/general/troubleshooting.md     |  40 --
 src/docs/ko-KR/keyboard-shortcut.md           |  68 ----
 src/docs/ko-KR/mfm.md                         |   2 -
 src/docs/ko-KR/mute.md                        |  13 -
 src/docs/ko-KR/pages.md                       |  10 -
 src/docs/ko-KR/reaction.md                    |  11 -
 src/docs/ko-KR/reversi-bot.md                 | 160 --------
 src/docs/ko-KR/stream.md                      | 354 ------------------
 src/docs/ko-KR/theme.md                       |  68 ----
 src/docs/ko-KR/timelines.md                   |  15 -
 src/docs/nl-NL/admin/disable-timelines.md     |   8 -
 src/docs/nl-NL/admin/faq.md                   |   5 -
 src/docs/nl-NL/advanced/aiscript.md           |   7 -
 src/docs/nl-NL/advanced/api.md                |  58 ---
 src/docs/nl-NL/advanced/create-plugin.md      |  74 ----
 src/docs/nl-NL/advanced/develop-bot.md        |   6 -
 src/docs/nl-NL/advanced/reversi-bot.md        | 160 --------
 src/docs/nl-NL/advanced/share-page.md         |  54 ---
 src/docs/nl-NL/advanced/stream.md             | 350 -----------------
 src/docs/nl-NL/aiscript.md                    |   4 -
 src/docs/nl-NL/api.md                         |  58 ---
 src/docs/nl-NL/create-plugin.md               |  74 ----
 src/docs/nl-NL/custom-emoji.md                |   2 -
 src/docs/nl-NL/deck.md                        |  18 -
 src/docs/nl-NL/features/antenna.md            |   4 -
 src/docs/nl-NL/features/custom-emoji.md       |   2 -
 src/docs/nl-NL/features/deck.md               |  18 -
 src/docs/nl-NL/features/drive.md              |  17 -
 src/docs/nl-NL/features/favorite.md           |   4 -
 src/docs/nl-NL/features/follow.md             |   2 -
 src/docs/nl-NL/features/keyboard-shortcut.md  |  66 ----
 src/docs/nl-NL/features/mfm.md                |  12 -
 src/docs/nl-NL/features/mute-and-block.md     |  41 --
 src/docs/nl-NL/features/mute.md               |  13 -
 src/docs/nl-NL/features/note.md               |  54 ---
 src/docs/nl-NL/features/pages.md              |  10 -
 src/docs/nl-NL/features/reaction.md           |  11 -
 src/docs/nl-NL/features/silence.md            |   6 -
 src/docs/nl-NL/features/theme.md              |  68 ----
 src/docs/nl-NL/features/timeline.md           |  31 --
 src/docs/nl-NL/features/widgets.md            |   7 -
 src/docs/nl-NL/features/word-mute.md          |  20 -
 src/docs/nl-NL/follow.md                      |   2 -
 src/docs/nl-NL/general/apps.md                |   6 -
 src/docs/nl-NL/general/changelog.md           |   5 -
 src/docs/nl-NL/general/faq.md                 |  28 --
 src/docs/nl-NL/general/glossary.md            |  89 -----
 src/docs/nl-NL/general/links.md               |  12 -
 src/docs/nl-NL/general/misskey.md             |  87 -----
 src/docs/nl-NL/general/report-issue.md        |   8 -
 src/docs/nl-NL/general/troubleshooting.md     |  40 --
 src/docs/nl-NL/keyboard-shortcut.md           |  68 ----
 src/docs/nl-NL/mfm.md                         |   2 -
 src/docs/nl-NL/mute.md                        |  13 -
 src/docs/nl-NL/pages.md                       |  10 -
 src/docs/nl-NL/reaction.md                    |  11 -
 src/docs/nl-NL/reversi-bot.md                 | 160 --------
 src/docs/nl-NL/stream.md                      | 354 ------------------
 src/docs/nl-NL/theme.md                       |  68 ----
 src/docs/nl-NL/timelines.md                   |  15 -
 src/docs/no-NO/admin/disable-timelines.md     |   8 -
 src/docs/no-NO/admin/faq.md                   |   5 -
 src/docs/no-NO/advanced/aiscript.md           |   7 -
 src/docs/no-NO/advanced/api.md                |  58 ---
 src/docs/no-NO/advanced/create-plugin.md      |  74 ----
 src/docs/no-NO/advanced/develop-bot.md        |   6 -
 src/docs/no-NO/advanced/reversi-bot.md        | 160 --------
 src/docs/no-NO/advanced/share-page.md         |  54 ---
 src/docs/no-NO/advanced/stream.md             | 350 -----------------
 src/docs/no-NO/aiscript.md                    |   4 -
 src/docs/no-NO/api.md                         |  58 ---
 src/docs/no-NO/create-plugin.md               |  74 ----
 src/docs/no-NO/custom-emoji.md                |   2 -
 src/docs/no-NO/deck.md                        |  18 -
 src/docs/no-NO/features/antenna.md            |   4 -
 src/docs/no-NO/features/custom-emoji.md       |   2 -
 src/docs/no-NO/features/deck.md               |  18 -
 src/docs/no-NO/features/drive.md              |  17 -
 src/docs/no-NO/features/favorite.md           |   4 -
 src/docs/no-NO/features/follow.md             |   2 -
 src/docs/no-NO/features/keyboard-shortcut.md  |  66 ----
 src/docs/no-NO/features/mfm.md                |  12 -
 src/docs/no-NO/features/mute-and-block.md     |  41 --
 src/docs/no-NO/features/mute.md               |  13 -
 src/docs/no-NO/features/note.md               |  54 ---
 src/docs/no-NO/features/pages.md              |  10 -
 src/docs/no-NO/features/reaction.md           |  11 -
 src/docs/no-NO/features/silence.md            |   6 -
 src/docs/no-NO/features/theme.md              |  68 ----
 src/docs/no-NO/features/timeline.md           |  31 --
 src/docs/no-NO/features/widgets.md            |   7 -
 src/docs/no-NO/features/word-mute.md          |  20 -
 src/docs/no-NO/follow.md                      |   2 -
 src/docs/no-NO/general/apps.md                |   6 -
 src/docs/no-NO/general/changelog.md           |   5 -
 src/docs/no-NO/general/faq.md                 |  28 --
 src/docs/no-NO/general/glossary.md            |  89 -----
 src/docs/no-NO/general/links.md               |  12 -
 src/docs/no-NO/general/misskey.md             |  87 -----
 src/docs/no-NO/general/report-issue.md        |   8 -
 src/docs/no-NO/general/troubleshooting.md     |  40 --
 src/docs/no-NO/keyboard-shortcut.md           |  68 ----
 src/docs/no-NO/mfm.md                         |   2 -
 src/docs/no-NO/mute.md                        |  13 -
 src/docs/no-NO/pages.md                       |  10 -
 src/docs/no-NO/reaction.md                    |  11 -
 src/docs/no-NO/reversi-bot.md                 | 160 --------
 src/docs/no-NO/stream.md                      | 354 ------------------
 src/docs/no-NO/theme.md                       |  68 ----
 src/docs/no-NO/timelines.md                   |  15 -
 src/docs/pl-PL/admin/disable-timelines.md     |   8 -
 src/docs/pl-PL/admin/faq.md                   |   5 -
 src/docs/pl-PL/advanced/aiscript.md           |   7 -
 src/docs/pl-PL/advanced/api.md                |  58 ---
 src/docs/pl-PL/advanced/create-plugin.md      |  74 ----
 src/docs/pl-PL/advanced/develop-bot.md        |   6 -
 src/docs/pl-PL/advanced/reversi-bot.md        | 160 --------
 src/docs/pl-PL/advanced/share-page.md         |  54 ---
 src/docs/pl-PL/advanced/stream.md             | 350 -----------------
 src/docs/pl-PL/aiscript.md                    |   4 -
 src/docs/pl-PL/api.md                         |  58 ---
 src/docs/pl-PL/create-plugin.md               |  74 ----
 src/docs/pl-PL/custom-emoji.md                |   2 -
 src/docs/pl-PL/deck.md                        |  18 -
 src/docs/pl-PL/features/antenna.md            |   4 -
 src/docs/pl-PL/features/custom-emoji.md       |   2 -
 src/docs/pl-PL/features/deck.md               |  18 -
 src/docs/pl-PL/features/drive.md              |  17 -
 src/docs/pl-PL/features/favorite.md           |   4 -
 src/docs/pl-PL/features/follow.md             |   2 -
 src/docs/pl-PL/features/keyboard-shortcut.md  |  66 ----
 src/docs/pl-PL/features/mfm.md                |  12 -
 src/docs/pl-PL/features/mute-and-block.md     |  41 --
 src/docs/pl-PL/features/mute.md               |  13 -
 src/docs/pl-PL/features/note.md               |  54 ---
 src/docs/pl-PL/features/pages.md              |  10 -
 src/docs/pl-PL/features/reaction.md           |  11 -
 src/docs/pl-PL/features/silence.md            |   6 -
 src/docs/pl-PL/features/theme.md              |  68 ----
 src/docs/pl-PL/features/timeline.md           |  31 --
 src/docs/pl-PL/features/widgets.md            |   7 -
 src/docs/pl-PL/features/word-mute.md          |  20 -
 src/docs/pl-PL/follow.md                      |   2 -
 src/docs/pl-PL/general/apps.md                |   6 -
 src/docs/pl-PL/general/changelog.md           |   5 -
 src/docs/pl-PL/general/faq.md                 |  28 --
 src/docs/pl-PL/general/glossary.md            |  89 -----
 src/docs/pl-PL/general/links.md               |  12 -
 src/docs/pl-PL/general/misskey.md             |  87 -----
 src/docs/pl-PL/general/report-issue.md        |   8 -
 src/docs/pl-PL/general/troubleshooting.md     |  40 --
 src/docs/pl-PL/keyboard-shortcut.md           |  68 ----
 src/docs/pl-PL/mfm.md                         |   2 -
 src/docs/pl-PL/mute.md                        |  13 -
 src/docs/pl-PL/pages.md                       |  10 -
 src/docs/pl-PL/reaction.md                    |  11 -
 src/docs/pl-PL/reversi-bot.md                 | 160 --------
 src/docs/pl-PL/stream.md                      | 354 ------------------
 src/docs/pl-PL/theme.md                       |  68 ----
 src/docs/pl-PL/timelines.md                   |  15 -
 src/docs/pt-PT/admin/disable-timelines.md     |   8 -
 src/docs/pt-PT/admin/faq.md                   |   5 -
 src/docs/pt-PT/advanced/aiscript.md           |   7 -
 src/docs/pt-PT/advanced/api.md                |  58 ---
 src/docs/pt-PT/advanced/create-plugin.md      |  74 ----
 src/docs/pt-PT/advanced/develop-bot.md        |   6 -
 src/docs/pt-PT/advanced/reversi-bot.md        | 160 --------
 src/docs/pt-PT/advanced/share-page.md         |  54 ---
 src/docs/pt-PT/advanced/stream.md             | 350 -----------------
 src/docs/pt-PT/aiscript.md                    |   4 -
 src/docs/pt-PT/api.md                         |  58 ---
 src/docs/pt-PT/create-plugin.md               |  74 ----
 src/docs/pt-PT/custom-emoji.md                |   2 -
 src/docs/pt-PT/deck.md                        |  18 -
 src/docs/pt-PT/features/antenna.md            |   4 -
 src/docs/pt-PT/features/custom-emoji.md       |   2 -
 src/docs/pt-PT/features/deck.md               |  18 -
 src/docs/pt-PT/features/drive.md              |  17 -
 src/docs/pt-PT/features/favorite.md           |   4 -
 src/docs/pt-PT/features/follow.md             |   2 -
 src/docs/pt-PT/features/keyboard-shortcut.md  |  66 ----
 src/docs/pt-PT/features/mfm.md                |  12 -
 src/docs/pt-PT/features/mute-and-block.md     |  41 --
 src/docs/pt-PT/features/mute.md               |  13 -
 src/docs/pt-PT/features/note.md               |  54 ---
 src/docs/pt-PT/features/pages.md              |  10 -
 src/docs/pt-PT/features/reaction.md           |  11 -
 src/docs/pt-PT/features/silence.md            |   6 -
 src/docs/pt-PT/features/theme.md              |  68 ----
 src/docs/pt-PT/features/timeline.md           |  31 --
 src/docs/pt-PT/features/widgets.md            |   7 -
 src/docs/pt-PT/features/word-mute.md          |  20 -
 src/docs/pt-PT/follow.md                      |   2 -
 src/docs/pt-PT/general/apps.md                |   6 -
 src/docs/pt-PT/general/changelog.md           |   5 -
 src/docs/pt-PT/general/faq.md                 |  28 --
 src/docs/pt-PT/general/glossary.md            |  89 -----
 src/docs/pt-PT/general/links.md               |  12 -
 src/docs/pt-PT/general/misskey.md             |  87 -----
 src/docs/pt-PT/general/report-issue.md        |   8 -
 src/docs/pt-PT/general/troubleshooting.md     |  40 --
 src/docs/pt-PT/keyboard-shortcut.md           |  68 ----
 src/docs/pt-PT/mfm.md                         |   2 -
 src/docs/pt-PT/mute.md                        |  13 -
 src/docs/pt-PT/pages.md                       |  10 -
 src/docs/pt-PT/reaction.md                    |  11 -
 src/docs/pt-PT/reversi-bot.md                 | 160 --------
 src/docs/pt-PT/stream.md                      | 354 ------------------
 src/docs/pt-PT/theme.md                       |  68 ----
 src/docs/pt-PT/timelines.md                   |  15 -
 src/docs/ru-RU/admin/disable-timelines.md     |   8 -
 src/docs/ru-RU/admin/faq.md                   |   5 -
 src/docs/ru-RU/advanced/aiscript.md           |   7 -
 src/docs/ru-RU/advanced/api.md                |  58 ---
 src/docs/ru-RU/advanced/create-plugin.md      |  74 ----
 src/docs/ru-RU/advanced/develop-bot.md        |   6 -
 src/docs/ru-RU/advanced/reversi-bot.md        | 160 --------
 src/docs/ru-RU/advanced/share-page.md         |  54 ---
 src/docs/ru-RU/advanced/stream.md             | 350 -----------------
 src/docs/ru-RU/aiscript.md                    |   4 -
 src/docs/ru-RU/api.md                         |  58 ---
 src/docs/ru-RU/create-plugin.md               |  74 ----
 src/docs/ru-RU/custom-emoji.md                |   2 -
 src/docs/ru-RU/deck.md                        |  18 -
 src/docs/ru-RU/features/antenna.md            |   4 -
 src/docs/ru-RU/features/custom-emoji.md       |   2 -
 src/docs/ru-RU/features/deck.md               |  18 -
 src/docs/ru-RU/features/drive.md              |  17 -
 src/docs/ru-RU/features/favorite.md           |   4 -
 src/docs/ru-RU/features/follow.md             |   2 -
 src/docs/ru-RU/features/keyboard-shortcut.md  |  66 ----
 src/docs/ru-RU/features/mfm.md                |  12 -
 src/docs/ru-RU/features/mute-and-block.md     |  41 --
 src/docs/ru-RU/features/mute.md               |  13 -
 src/docs/ru-RU/features/note.md               |  54 ---
 src/docs/ru-RU/features/pages.md              |  10 -
 src/docs/ru-RU/features/reaction.md           |  11 -
 src/docs/ru-RU/features/silence.md            |   6 -
 src/docs/ru-RU/features/theme.md              |  68 ----
 src/docs/ru-RU/features/timeline.md           |  31 --
 src/docs/ru-RU/features/widgets.md            |   7 -
 src/docs/ru-RU/features/word-mute.md          |  20 -
 src/docs/ru-RU/follow.md                      |   2 -
 src/docs/ru-RU/general/apps.md                |   6 -
 src/docs/ru-RU/general/changelog.md           |   5 -
 src/docs/ru-RU/general/faq.md                 |  28 --
 src/docs/ru-RU/general/glossary.md            |  89 -----
 src/docs/ru-RU/general/links.md               |  12 -
 src/docs/ru-RU/general/misskey.md             | 142 -------
 src/docs/ru-RU/general/report-issue.md        |   8 -
 src/docs/ru-RU/general/troubleshooting.md     |  40 --
 src/docs/ru-RU/keyboard-shortcut.md           |  68 ----
 src/docs/ru-RU/mfm.md                         |   2 -
 src/docs/ru-RU/mute.md                        |  13 -
 src/docs/ru-RU/pages.md                       |  10 -
 src/docs/ru-RU/reaction.md                    |  11 -
 src/docs/ru-RU/reversi-bot.md                 | 160 --------
 src/docs/ru-RU/stream.md                      | 354 ------------------
 src/docs/ru-RU/theme.md                       |  68 ----
 src/docs/ru-RU/timelines.md                   |  15 -
 src/docs/th-TH/admin/disable-timelines.md     |   8 -
 src/docs/th-TH/admin/faq.md                   |   5 -
 src/docs/th-TH/advanced/aiscript.md           |   7 -
 src/docs/th-TH/advanced/api.md                |  58 ---
 src/docs/th-TH/advanced/create-plugin.md      |  74 ----
 src/docs/th-TH/advanced/develop-bot.md        |   6 -
 src/docs/th-TH/advanced/reversi-bot.md        | 160 --------
 src/docs/th-TH/advanced/share-page.md         |  54 ---
 src/docs/th-TH/advanced/stream.md             | 350 -----------------
 src/docs/th-TH/aiscript.md                    |   4 -
 src/docs/th-TH/api.md                         |  58 ---
 src/docs/th-TH/create-plugin.md               |  74 ----
 src/docs/th-TH/custom-emoji.md                |   2 -
 src/docs/th-TH/deck.md                        |  18 -
 src/docs/th-TH/features/antenna.md            |   4 -
 src/docs/th-TH/features/custom-emoji.md       |   2 -
 src/docs/th-TH/features/deck.md               |  18 -
 src/docs/th-TH/features/drive.md              |  17 -
 src/docs/th-TH/features/favorite.md           |   4 -
 src/docs/th-TH/features/follow.md             |   2 -
 src/docs/th-TH/features/keyboard-shortcut.md  |  66 ----
 src/docs/th-TH/features/mfm.md                |  12 -
 src/docs/th-TH/features/mute-and-block.md     |  41 --
 src/docs/th-TH/features/mute.md               |  13 -
 src/docs/th-TH/features/note.md               |  54 ---
 src/docs/th-TH/features/pages.md              |  10 -
 src/docs/th-TH/features/reaction.md           |  11 -
 src/docs/th-TH/features/silence.md            |   6 -
 src/docs/th-TH/features/theme.md              |  68 ----
 src/docs/th-TH/features/timeline.md           |  31 --
 src/docs/th-TH/features/widgets.md            |   7 -
 src/docs/th-TH/features/word-mute.md          |  20 -
 src/docs/th-TH/follow.md                      |   2 -
 src/docs/th-TH/general/apps.md                |   6 -
 src/docs/th-TH/general/changelog.md           |   5 -
 src/docs/th-TH/general/faq.md                 |  28 --
 src/docs/th-TH/general/glossary.md            |  89 -----
 src/docs/th-TH/general/links.md               |  12 -
 src/docs/th-TH/general/misskey.md             |  87 -----
 src/docs/th-TH/general/report-issue.md        |   8 -
 src/docs/th-TH/general/troubleshooting.md     |  40 --
 src/docs/th-TH/keyboard-shortcut.md           |  68 ----
 src/docs/th-TH/mfm.md                         |   2 -
 src/docs/th-TH/mute.md                        |  13 -
 src/docs/th-TH/pages.md                       |  10 -
 src/docs/th-TH/reaction.md                    |  11 -
 src/docs/th-TH/reversi-bot.md                 | 160 --------
 src/docs/th-TH/stream.md                      | 354 ------------------
 src/docs/th-TH/theme.md                       |  68 ----
 src/docs/th-TH/timelines.md                   |  15 -
 src/docs/ug-CN/admin/disable-timelines.md     |   8 -
 src/docs/ug-CN/admin/faq.md                   |   5 -
 src/docs/ug-CN/advanced/aiscript.md           |   7 -
 src/docs/ug-CN/advanced/api.md                |  58 ---
 src/docs/ug-CN/advanced/create-plugin.md      |  74 ----
 src/docs/ug-CN/advanced/develop-bot.md        |   6 -
 src/docs/ug-CN/advanced/reversi-bot.md        | 160 --------
 src/docs/ug-CN/advanced/share-page.md         |  54 ---
 src/docs/ug-CN/advanced/stream.md             | 350 -----------------
 src/docs/ug-CN/aiscript.md                    |   4 -
 src/docs/ug-CN/api.md                         |  58 ---
 src/docs/ug-CN/create-plugin.md               |  74 ----
 src/docs/ug-CN/custom-emoji.md                |   2 -
 src/docs/ug-CN/deck.md                        |  18 -
 src/docs/ug-CN/features/antenna.md            |   4 -
 src/docs/ug-CN/features/custom-emoji.md       |   2 -
 src/docs/ug-CN/features/deck.md               |  18 -
 src/docs/ug-CN/features/drive.md              |  17 -
 src/docs/ug-CN/features/favorite.md           |   4 -
 src/docs/ug-CN/features/follow.md             |   2 -
 src/docs/ug-CN/features/keyboard-shortcut.md  |  66 ----
 src/docs/ug-CN/features/mfm.md                |  12 -
 src/docs/ug-CN/features/mute-and-block.md     |  41 --
 src/docs/ug-CN/features/mute.md               |  13 -
 src/docs/ug-CN/features/note.md               |  54 ---
 src/docs/ug-CN/features/pages.md              |  10 -
 src/docs/ug-CN/features/reaction.md           |  11 -
 src/docs/ug-CN/features/silence.md            |   6 -
 src/docs/ug-CN/features/theme.md              |  68 ----
 src/docs/ug-CN/features/timeline.md           |  31 --
 src/docs/ug-CN/features/widgets.md            |   7 -
 src/docs/ug-CN/features/word-mute.md          |  20 -
 src/docs/ug-CN/follow.md                      |   2 -
 src/docs/ug-CN/general/apps.md                |   6 -
 src/docs/ug-CN/general/changelog.md           |   5 -
 src/docs/ug-CN/general/faq.md                 |  28 --
 src/docs/ug-CN/general/glossary.md            |  89 -----
 src/docs/ug-CN/general/links.md               |  12 -
 src/docs/ug-CN/general/misskey.md             |  87 -----
 src/docs/ug-CN/general/report-issue.md        |   8 -
 src/docs/ug-CN/general/troubleshooting.md     |  40 --
 src/docs/ug-CN/keyboard-shortcut.md           |  68 ----
 src/docs/ug-CN/mfm.md                         |   2 -
 src/docs/ug-CN/mute.md                        |  13 -
 src/docs/ug-CN/pages.md                       |  10 -
 src/docs/ug-CN/reaction.md                    |  11 -
 src/docs/ug-CN/reversi-bot.md                 | 160 --------
 src/docs/ug-CN/stream.md                      | 354 ------------------
 src/docs/ug-CN/theme.md                       |  68 ----
 src/docs/ug-CN/timelines.md                   |  15 -
 src/docs/uk-UA/admin/disable-timelines.md     |   8 -
 src/docs/uk-UA/admin/faq.md                   |   5 -
 src/docs/uk-UA/advanced/aiscript.md           |   7 -
 src/docs/uk-UA/advanced/api.md                |  58 ---
 src/docs/uk-UA/advanced/create-plugin.md      |  74 ----
 src/docs/uk-UA/advanced/develop-bot.md        |   6 -
 src/docs/uk-UA/advanced/reversi-bot.md        | 160 --------
 src/docs/uk-UA/advanced/share-page.md         |  54 ---
 src/docs/uk-UA/advanced/stream.md             | 350 -----------------
 src/docs/uk-UA/aiscript.md                    |   4 -
 src/docs/uk-UA/api.md                         |  58 ---
 src/docs/uk-UA/create-plugin.md               |  74 ----
 src/docs/uk-UA/custom-emoji.md                |   2 -
 src/docs/uk-UA/deck.md                        |  18 -
 src/docs/uk-UA/features/antenna.md            |   4 -
 src/docs/uk-UA/features/custom-emoji.md       |   2 -
 src/docs/uk-UA/features/deck.md               |  18 -
 src/docs/uk-UA/features/drive.md              |  17 -
 src/docs/uk-UA/features/favorite.md           |   4 -
 src/docs/uk-UA/features/follow.md             |   2 -
 src/docs/uk-UA/features/keyboard-shortcut.md  |  66 ----
 src/docs/uk-UA/features/mfm.md                |  12 -
 src/docs/uk-UA/features/mute-and-block.md     |  41 --
 src/docs/uk-UA/features/mute.md               |  13 -
 src/docs/uk-UA/features/note.md               |  54 ---
 src/docs/uk-UA/features/pages.md              |  10 -
 src/docs/uk-UA/features/reaction.md           |  11 -
 src/docs/uk-UA/features/silence.md            |   6 -
 src/docs/uk-UA/features/theme.md              |  68 ----
 src/docs/uk-UA/features/timeline.md           |  31 --
 src/docs/uk-UA/features/widgets.md            |   7 -
 src/docs/uk-UA/features/word-mute.md          |  20 -
 src/docs/uk-UA/follow.md                      |   2 -
 src/docs/uk-UA/general/apps.md                |   6 -
 src/docs/uk-UA/general/changelog.md           |   5 -
 src/docs/uk-UA/general/faq.md                 |  28 --
 src/docs/uk-UA/general/glossary.md            |  89 -----
 src/docs/uk-UA/general/links.md               |  12 -
 src/docs/uk-UA/general/misskey.md             |  87 -----
 src/docs/uk-UA/general/report-issue.md        |   8 -
 src/docs/uk-UA/general/troubleshooting.md     |  40 --
 src/docs/uk-UA/keyboard-shortcut.md           |  68 ----
 src/docs/uk-UA/mfm.md                         |   2 -
 src/docs/uk-UA/mute.md                        |  13 -
 src/docs/uk-UA/pages.md                       |  10 -
 src/docs/uk-UA/reaction.md                    |  11 -
 src/docs/uk-UA/reversi-bot.md                 | 160 --------
 src/docs/uk-UA/stream.md                      | 354 ------------------
 src/docs/uk-UA/theme.md                       |  68 ----
 src/docs/uk-UA/timelines.md                   |  15 -
 src/docs/zh-CN/admin/disable-timelines.md     |   8 -
 src/docs/zh-CN/admin/faq.md                   |   5 -
 src/docs/zh-CN/advanced/aiscript.md           |   7 -
 src/docs/zh-CN/advanced/api.md                |  58 ---
 src/docs/zh-CN/advanced/create-plugin.md      |  74 ----
 src/docs/zh-CN/advanced/develop-bot.md        |   6 -
 src/docs/zh-CN/advanced/reversi-bot.md        | 160 --------
 src/docs/zh-CN/advanced/share-page.md         |  54 ---
 src/docs/zh-CN/advanced/stream.md             | 350 -----------------
 src/docs/zh-CN/aiscript.md                    |   4 -
 src/docs/zh-CN/api.md                         |  58 ---
 src/docs/zh-CN/create-plugin.md               |  74 ----
 src/docs/zh-CN/custom-emoji.md                |   2 -
 src/docs/zh-CN/deck.md                        |  18 -
 src/docs/zh-CN/features/antenna.md            |   4 -
 src/docs/zh-CN/features/custom-emoji.md       |   2 -
 src/docs/zh-CN/features/deck.md               |  18 -
 src/docs/zh-CN/features/drive.md              |  17 -
 src/docs/zh-CN/features/favorite.md           |   4 -
 src/docs/zh-CN/features/follow.md             |   2 -
 src/docs/zh-CN/features/keyboard-shortcut.md  |  66 ----
 src/docs/zh-CN/features/mfm.md                |  12 -
 src/docs/zh-CN/features/mute-and-block.md     |  41 --
 src/docs/zh-CN/features/mute.md               |  13 -
 src/docs/zh-CN/features/note.md               |  54 ---
 src/docs/zh-CN/features/pages.md              |  10 -
 src/docs/zh-CN/features/reaction.md           |  11 -
 src/docs/zh-CN/features/silence.md            |   6 -
 src/docs/zh-CN/features/theme.md              |  68 ----
 src/docs/zh-CN/features/timeline.md           |  31 --
 src/docs/zh-CN/features/widgets.md            |   7 -
 src/docs/zh-CN/features/word-mute.md          |  20 -
 src/docs/zh-CN/follow.md                      |   2 -
 src/docs/zh-CN/general/apps.md                |   6 -
 src/docs/zh-CN/general/changelog.md           |   5 -
 src/docs/zh-CN/general/faq.md                 |  28 --
 src/docs/zh-CN/general/glossary.md            |  89 -----
 src/docs/zh-CN/general/links.md               |  12 -
 src/docs/zh-CN/general/misskey.md             |  87 -----
 src/docs/zh-CN/general/report-issue.md        |   8 -
 src/docs/zh-CN/general/troubleshooting.md     |  40 --
 src/docs/zh-CN/keyboard-shortcut.md           |  68 ----
 src/docs/zh-CN/mfm.md                         |   2 -
 src/docs/zh-CN/mute.md                        |  13 -
 src/docs/zh-CN/pages.md                       |  10 -
 src/docs/zh-CN/reaction.md                    |  11 -
 src/docs/zh-CN/reversi-bot.md                 | 160 --------
 src/docs/zh-CN/stream.md                      | 354 ------------------
 src/docs/zh-CN/theme.md                       |  68 ----
 src/docs/zh-CN/timelines.md                   |  15 -
 src/docs/zh-TW/admin/disable-timelines.md     |   8 -
 src/docs/zh-TW/admin/faq.md                   |   5 -
 src/docs/zh-TW/advanced/aiscript.md           |   7 -
 src/docs/zh-TW/advanced/api.md                |  58 ---
 src/docs/zh-TW/advanced/create-plugin.md      |  74 ----
 src/docs/zh-TW/advanced/develop-bot.md        |   6 -
 src/docs/zh-TW/advanced/reversi-bot.md        | 160 --------
 src/docs/zh-TW/advanced/share-page.md         |  54 ---
 src/docs/zh-TW/advanced/stream.md             | 350 -----------------
 src/docs/zh-TW/aiscript.md                    |   4 -
 src/docs/zh-TW/api.md                         |  58 ---
 src/docs/zh-TW/create-plugin.md               |  74 ----
 src/docs/zh-TW/custom-emoji.md                |   2 -
 src/docs/zh-TW/deck.md                        |  18 -
 src/docs/zh-TW/features/antenna.md            |   4 -
 src/docs/zh-TW/features/custom-emoji.md       |   2 -
 src/docs/zh-TW/features/deck.md               |  18 -
 src/docs/zh-TW/features/drive.md              |  17 -
 src/docs/zh-TW/features/favorite.md           |   4 -
 src/docs/zh-TW/features/follow.md             |   2 -
 src/docs/zh-TW/features/keyboard-shortcut.md  |  66 ----
 src/docs/zh-TW/features/mfm.md                |  12 -
 src/docs/zh-TW/features/mute-and-block.md     |  41 --
 src/docs/zh-TW/features/mute.md               |  13 -
 src/docs/zh-TW/features/note.md               |  54 ---
 src/docs/zh-TW/features/pages.md              |  10 -
 src/docs/zh-TW/features/reaction.md           |  11 -
 src/docs/zh-TW/features/silence.md            |   6 -
 src/docs/zh-TW/features/theme.md              |  68 ----
 src/docs/zh-TW/features/timeline.md           |  31 --
 src/docs/zh-TW/features/widgets.md            |   7 -
 src/docs/zh-TW/features/word-mute.md          |  20 -
 src/docs/zh-TW/follow.md                      |   2 -
 src/docs/zh-TW/general/apps.md                |   6 -
 src/docs/zh-TW/general/changelog.md           |   5 -
 src/docs/zh-TW/general/faq.md                 |  28 --
 src/docs/zh-TW/general/glossary.md            |  89 -----
 src/docs/zh-TW/general/links.md               |  12 -
 src/docs/zh-TW/general/misskey.md             |  87 -----
 src/docs/zh-TW/general/report-issue.md        |   8 -
 src/docs/zh-TW/general/troubleshooting.md     |  40 --
 src/docs/zh-TW/keyboard-shortcut.md           |  68 ----
 src/docs/zh-TW/mfm.md                         |   2 -
 src/docs/zh-TW/mute.md                        |  13 -
 src/docs/zh-TW/pages.md                       |  10 -
 src/docs/zh-TW/reaction.md                    |  11 -
 src/docs/zh-TW/reversi-bot.md                 | 160 --------
 src/docs/zh-TW/stream.md                      | 354 ------------------
 src/docs/zh-TW/theme.md                       |  70 ----
 src/docs/zh-TW/timelines.md                   |  15 -
 src/server/web/index.ts                       |  81 ----
 yarn.lock                                     |  56 ---
 1355 files changed, 13 insertions(+), 60421 deletions(-)
 delete mode 100644 src/client/pages/doc.vue
 delete mode 100644 src/client/pages/docs.vue
 delete mode 100644 src/docs/ar-SA/admin/disable-timelines.md
 delete mode 100644 src/docs/ar-SA/admin/faq.md
 delete mode 100644 src/docs/ar-SA/advanced/aiscript.md
 delete mode 100644 src/docs/ar-SA/advanced/api.md
 delete mode 100644 src/docs/ar-SA/advanced/create-plugin.md
 delete mode 100644 src/docs/ar-SA/advanced/develop-bot.md
 delete mode 100644 src/docs/ar-SA/advanced/reversi-bot.md
 delete mode 100644 src/docs/ar-SA/advanced/share-page.md
 delete mode 100644 src/docs/ar-SA/advanced/stream.md
 delete mode 100644 src/docs/ar-SA/aiscript.md
 delete mode 100644 src/docs/ar-SA/api.md
 delete mode 100644 src/docs/ar-SA/create-plugin.md
 delete mode 100644 src/docs/ar-SA/custom-emoji.md
 delete mode 100644 src/docs/ar-SA/deck.md
 delete mode 100644 src/docs/ar-SA/features/antenna.md
 delete mode 100644 src/docs/ar-SA/features/custom-emoji.md
 delete mode 100644 src/docs/ar-SA/features/deck.md
 delete mode 100644 src/docs/ar-SA/features/drive.md
 delete mode 100644 src/docs/ar-SA/features/favorite.md
 delete mode 100644 src/docs/ar-SA/features/follow.md
 delete mode 100644 src/docs/ar-SA/features/keyboard-shortcut.md
 delete mode 100644 src/docs/ar-SA/features/mfm.md
 delete mode 100644 src/docs/ar-SA/features/mute-and-block.md
 delete mode 100644 src/docs/ar-SA/features/mute.md
 delete mode 100644 src/docs/ar-SA/features/note.md
 delete mode 100644 src/docs/ar-SA/features/pages.md
 delete mode 100644 src/docs/ar-SA/features/reaction.md
 delete mode 100644 src/docs/ar-SA/features/silence.md
 delete mode 100644 src/docs/ar-SA/features/theme.md
 delete mode 100644 src/docs/ar-SA/features/timeline.md
 delete mode 100644 src/docs/ar-SA/features/widgets.md
 delete mode 100644 src/docs/ar-SA/features/word-mute.md
 delete mode 100644 src/docs/ar-SA/follow.md
 delete mode 100644 src/docs/ar-SA/general/apps.md
 delete mode 100644 src/docs/ar-SA/general/changelog.md
 delete mode 100644 src/docs/ar-SA/general/faq.md
 delete mode 100644 src/docs/ar-SA/general/glossary.md
 delete mode 100644 src/docs/ar-SA/general/links.md
 delete mode 100644 src/docs/ar-SA/general/misskey.md
 delete mode 100644 src/docs/ar-SA/general/report-issue.md
 delete mode 100644 src/docs/ar-SA/general/troubleshooting.md
 delete mode 100644 src/docs/ar-SA/keyboard-shortcut.md
 delete mode 100644 src/docs/ar-SA/mfm.md
 delete mode 100644 src/docs/ar-SA/mute.md
 delete mode 100644 src/docs/ar-SA/pages.md
 delete mode 100644 src/docs/ar-SA/reaction.md
 delete mode 100644 src/docs/ar-SA/reversi-bot.md
 delete mode 100644 src/docs/ar-SA/stream.md
 delete mode 100644 src/docs/ar-SA/theme.md
 delete mode 100644 src/docs/ar-SA/timelines.md
 delete mode 100644 src/docs/cs-CZ/admin/disable-timelines.md
 delete mode 100644 src/docs/cs-CZ/admin/faq.md
 delete mode 100644 src/docs/cs-CZ/advanced/aiscript.md
 delete mode 100644 src/docs/cs-CZ/advanced/api.md
 delete mode 100644 src/docs/cs-CZ/advanced/create-plugin.md
 delete mode 100644 src/docs/cs-CZ/advanced/develop-bot.md
 delete mode 100644 src/docs/cs-CZ/advanced/reversi-bot.md
 delete mode 100644 src/docs/cs-CZ/advanced/share-page.md
 delete mode 100644 src/docs/cs-CZ/advanced/stream.md
 delete mode 100644 src/docs/cs-CZ/aiscript.md
 delete mode 100644 src/docs/cs-CZ/api.md
 delete mode 100644 src/docs/cs-CZ/create-plugin.md
 delete mode 100644 src/docs/cs-CZ/custom-emoji.md
 delete mode 100644 src/docs/cs-CZ/deck.md
 delete mode 100644 src/docs/cs-CZ/features/antenna.md
 delete mode 100644 src/docs/cs-CZ/features/custom-emoji.md
 delete mode 100644 src/docs/cs-CZ/features/deck.md
 delete mode 100644 src/docs/cs-CZ/features/drive.md
 delete mode 100644 src/docs/cs-CZ/features/favorite.md
 delete mode 100644 src/docs/cs-CZ/features/follow.md
 delete mode 100644 src/docs/cs-CZ/features/keyboard-shortcut.md
 delete mode 100644 src/docs/cs-CZ/features/mfm.md
 delete mode 100644 src/docs/cs-CZ/features/mute-and-block.md
 delete mode 100644 src/docs/cs-CZ/features/mute.md
 delete mode 100644 src/docs/cs-CZ/features/note.md
 delete mode 100644 src/docs/cs-CZ/features/pages.md
 delete mode 100644 src/docs/cs-CZ/features/reaction.md
 delete mode 100644 src/docs/cs-CZ/features/silence.md
 delete mode 100644 src/docs/cs-CZ/features/theme.md
 delete mode 100644 src/docs/cs-CZ/features/timeline.md
 delete mode 100644 src/docs/cs-CZ/features/widgets.md
 delete mode 100644 src/docs/cs-CZ/features/word-mute.md
 delete mode 100644 src/docs/cs-CZ/follow.md
 delete mode 100644 src/docs/cs-CZ/general/apps.md
 delete mode 100644 src/docs/cs-CZ/general/changelog.md
 delete mode 100644 src/docs/cs-CZ/general/faq.md
 delete mode 100644 src/docs/cs-CZ/general/glossary.md
 delete mode 100644 src/docs/cs-CZ/general/links.md
 delete mode 100644 src/docs/cs-CZ/general/misskey.md
 delete mode 100644 src/docs/cs-CZ/general/report-issue.md
 delete mode 100644 src/docs/cs-CZ/general/troubleshooting.md
 delete mode 100644 src/docs/cs-CZ/keyboard-shortcut.md
 delete mode 100644 src/docs/cs-CZ/mfm.md
 delete mode 100644 src/docs/cs-CZ/mute.md
 delete mode 100644 src/docs/cs-CZ/pages.md
 delete mode 100644 src/docs/cs-CZ/reaction.md
 delete mode 100644 src/docs/cs-CZ/reversi-bot.md
 delete mode 100644 src/docs/cs-CZ/stream.md
 delete mode 100644 src/docs/cs-CZ/theme.md
 delete mode 100644 src/docs/cs-CZ/timelines.md
 delete mode 100644 src/docs/da-DK/admin/disable-timelines.md
 delete mode 100644 src/docs/da-DK/admin/faq.md
 delete mode 100644 src/docs/da-DK/advanced/aiscript.md
 delete mode 100644 src/docs/da-DK/advanced/api.md
 delete mode 100644 src/docs/da-DK/advanced/create-plugin.md
 delete mode 100644 src/docs/da-DK/advanced/develop-bot.md
 delete mode 100644 src/docs/da-DK/advanced/reversi-bot.md
 delete mode 100644 src/docs/da-DK/advanced/share-page.md
 delete mode 100644 src/docs/da-DK/advanced/stream.md
 delete mode 100644 src/docs/da-DK/aiscript.md
 delete mode 100644 src/docs/da-DK/api.md
 delete mode 100644 src/docs/da-DK/create-plugin.md
 delete mode 100644 src/docs/da-DK/custom-emoji.md
 delete mode 100644 src/docs/da-DK/deck.md
 delete mode 100644 src/docs/da-DK/features/antenna.md
 delete mode 100644 src/docs/da-DK/features/custom-emoji.md
 delete mode 100644 src/docs/da-DK/features/deck.md
 delete mode 100644 src/docs/da-DK/features/drive.md
 delete mode 100644 src/docs/da-DK/features/favorite.md
 delete mode 100644 src/docs/da-DK/features/follow.md
 delete mode 100644 src/docs/da-DK/features/keyboard-shortcut.md
 delete mode 100644 src/docs/da-DK/features/mfm.md
 delete mode 100644 src/docs/da-DK/features/mute-and-block.md
 delete mode 100644 src/docs/da-DK/features/mute.md
 delete mode 100644 src/docs/da-DK/features/note.md
 delete mode 100644 src/docs/da-DK/features/pages.md
 delete mode 100644 src/docs/da-DK/features/reaction.md
 delete mode 100644 src/docs/da-DK/features/silence.md
 delete mode 100644 src/docs/da-DK/features/theme.md
 delete mode 100644 src/docs/da-DK/features/timeline.md
 delete mode 100644 src/docs/da-DK/features/widgets.md
 delete mode 100644 src/docs/da-DK/features/word-mute.md
 delete mode 100644 src/docs/da-DK/follow.md
 delete mode 100644 src/docs/da-DK/general/apps.md
 delete mode 100644 src/docs/da-DK/general/changelog.md
 delete mode 100644 src/docs/da-DK/general/faq.md
 delete mode 100644 src/docs/da-DK/general/glossary.md
 delete mode 100644 src/docs/da-DK/general/links.md
 delete mode 100644 src/docs/da-DK/general/misskey.md
 delete mode 100644 src/docs/da-DK/general/report-issue.md
 delete mode 100644 src/docs/da-DK/general/troubleshooting.md
 delete mode 100644 src/docs/da-DK/keyboard-shortcut.md
 delete mode 100644 src/docs/da-DK/mfm.md
 delete mode 100644 src/docs/da-DK/mute.md
 delete mode 100644 src/docs/da-DK/pages.md
 delete mode 100644 src/docs/da-DK/reaction.md
 delete mode 100644 src/docs/da-DK/reversi-bot.md
 delete mode 100644 src/docs/da-DK/stream.md
 delete mode 100644 src/docs/da-DK/theme.md
 delete mode 100644 src/docs/da-DK/timelines.md
 delete mode 100644 src/docs/de-DE/admin/disable-timelines.md
 delete mode 100644 src/docs/de-DE/admin/faq.md
 delete mode 100644 src/docs/de-DE/advanced/aiscript.md
 delete mode 100644 src/docs/de-DE/advanced/api.md
 delete mode 100644 src/docs/de-DE/advanced/create-plugin.md
 delete mode 100644 src/docs/de-DE/advanced/develop-bot.md
 delete mode 100644 src/docs/de-DE/advanced/reversi-bot.md
 delete mode 100644 src/docs/de-DE/advanced/share-page.md
 delete mode 100644 src/docs/de-DE/advanced/stream.md
 delete mode 100644 src/docs/de-DE/aiscript.md
 delete mode 100644 src/docs/de-DE/api.md
 delete mode 100644 src/docs/de-DE/create-plugin.md
 delete mode 100644 src/docs/de-DE/custom-emoji.md
 delete mode 100644 src/docs/de-DE/deck.md
 delete mode 100644 src/docs/de-DE/features/antenna.md
 delete mode 100644 src/docs/de-DE/features/custom-emoji.md
 delete mode 100644 src/docs/de-DE/features/deck.md
 delete mode 100644 src/docs/de-DE/features/drive.md
 delete mode 100644 src/docs/de-DE/features/favorite.md
 delete mode 100644 src/docs/de-DE/features/follow.md
 delete mode 100644 src/docs/de-DE/features/keyboard-shortcut.md
 delete mode 100644 src/docs/de-DE/features/mfm.md
 delete mode 100644 src/docs/de-DE/features/mute-and-block.md
 delete mode 100644 src/docs/de-DE/features/mute.md
 delete mode 100644 src/docs/de-DE/features/note.md
 delete mode 100644 src/docs/de-DE/features/pages.md
 delete mode 100644 src/docs/de-DE/features/reaction.md
 delete mode 100644 src/docs/de-DE/features/silence.md
 delete mode 100644 src/docs/de-DE/features/theme.md
 delete mode 100644 src/docs/de-DE/features/timeline.md
 delete mode 100644 src/docs/de-DE/features/widgets.md
 delete mode 100644 src/docs/de-DE/features/word-mute.md
 delete mode 100644 src/docs/de-DE/follow.md
 delete mode 100644 src/docs/de-DE/general/apps.md
 delete mode 100644 src/docs/de-DE/general/changelog.md
 delete mode 100644 src/docs/de-DE/general/faq.md
 delete mode 100644 src/docs/de-DE/general/glossary.md
 delete mode 100644 src/docs/de-DE/general/links.md
 delete mode 100644 src/docs/de-DE/general/misskey.md
 delete mode 100644 src/docs/de-DE/general/report-issue.md
 delete mode 100644 src/docs/de-DE/general/troubleshooting.md
 delete mode 100644 src/docs/de-DE/keyboard-shortcut.md
 delete mode 100644 src/docs/de-DE/mfm.md
 delete mode 100644 src/docs/de-DE/mute.md
 delete mode 100644 src/docs/de-DE/pages.md
 delete mode 100644 src/docs/de-DE/reaction.md
 delete mode 100644 src/docs/de-DE/reversi-bot.md
 delete mode 100644 src/docs/de-DE/stream.md
 delete mode 100644 src/docs/de-DE/theme.md
 delete mode 100644 src/docs/de-DE/timelines.md
 delete mode 100644 src/docs/en-US/admin/disable-timelines.md
 delete mode 100644 src/docs/en-US/admin/faq.md
 delete mode 100644 src/docs/en-US/advanced/aiscript.md
 delete mode 100644 src/docs/en-US/advanced/api.md
 delete mode 100644 src/docs/en-US/advanced/create-plugin.md
 delete mode 100644 src/docs/en-US/advanced/develop-bot.md
 delete mode 100644 src/docs/en-US/advanced/reversi-bot.md
 delete mode 100644 src/docs/en-US/advanced/share-page.md
 delete mode 100644 src/docs/en-US/advanced/stream.md
 delete mode 100644 src/docs/en-US/aiscript.md
 delete mode 100644 src/docs/en-US/api.md
 delete mode 100644 src/docs/en-US/create-plugin.md
 delete mode 100644 src/docs/en-US/custom-emoji.md
 delete mode 100644 src/docs/en-US/deck.md
 delete mode 100644 src/docs/en-US/features/antenna.md
 delete mode 100644 src/docs/en-US/features/custom-emoji.md
 delete mode 100644 src/docs/en-US/features/deck.md
 delete mode 100644 src/docs/en-US/features/drive.md
 delete mode 100644 src/docs/en-US/features/favorite.md
 delete mode 100644 src/docs/en-US/features/follow.md
 delete mode 100644 src/docs/en-US/features/keyboard-shortcut.md
 delete mode 100644 src/docs/en-US/features/mfm.md
 delete mode 100644 src/docs/en-US/features/mute-and-block.md
 delete mode 100644 src/docs/en-US/features/mute.md
 delete mode 100644 src/docs/en-US/features/note.md
 delete mode 100644 src/docs/en-US/features/pages.md
 delete mode 100644 src/docs/en-US/features/reaction.md
 delete mode 100644 src/docs/en-US/features/silence.md
 delete mode 100644 src/docs/en-US/features/theme.md
 delete mode 100644 src/docs/en-US/features/timeline.md
 delete mode 100644 src/docs/en-US/features/widgets.md
 delete mode 100644 src/docs/en-US/features/word-mute.md
 delete mode 100644 src/docs/en-US/follow.md
 delete mode 100644 src/docs/en-US/general/apps.md
 delete mode 100644 src/docs/en-US/general/changelog.md
 delete mode 100644 src/docs/en-US/general/faq.md
 delete mode 100644 src/docs/en-US/general/glossary.md
 delete mode 100644 src/docs/en-US/general/links.md
 delete mode 100644 src/docs/en-US/general/misskey.md
 delete mode 100644 src/docs/en-US/general/report-issue.md
 delete mode 100644 src/docs/en-US/general/troubleshooting.md
 delete mode 100644 src/docs/en-US/keyboard-shortcut.md
 delete mode 100644 src/docs/en-US/mfm.md
 delete mode 100644 src/docs/en-US/mute.md
 delete mode 100644 src/docs/en-US/pages.md
 delete mode 100644 src/docs/en-US/reaction.md
 delete mode 100644 src/docs/en-US/reversi-bot.md
 delete mode 100644 src/docs/en-US/stream.md
 delete mode 100644 src/docs/en-US/theme.md
 delete mode 100644 src/docs/en-US/timelines.md
 delete mode 100644 src/docs/eo-UY/admin/disable-timelines.md
 delete mode 100644 src/docs/eo-UY/admin/faq.md
 delete mode 100644 src/docs/eo-UY/advanced/aiscript.md
 delete mode 100644 src/docs/eo-UY/advanced/api.md
 delete mode 100644 src/docs/eo-UY/advanced/create-plugin.md
 delete mode 100644 src/docs/eo-UY/advanced/develop-bot.md
 delete mode 100644 src/docs/eo-UY/advanced/reversi-bot.md
 delete mode 100644 src/docs/eo-UY/advanced/share-page.md
 delete mode 100644 src/docs/eo-UY/advanced/stream.md
 delete mode 100644 src/docs/eo-UY/aiscript.md
 delete mode 100644 src/docs/eo-UY/api.md
 delete mode 100644 src/docs/eo-UY/create-plugin.md
 delete mode 100644 src/docs/eo-UY/custom-emoji.md
 delete mode 100644 src/docs/eo-UY/deck.md
 delete mode 100644 src/docs/eo-UY/features/antenna.md
 delete mode 100644 src/docs/eo-UY/features/custom-emoji.md
 delete mode 100644 src/docs/eo-UY/features/deck.md
 delete mode 100644 src/docs/eo-UY/features/drive.md
 delete mode 100644 src/docs/eo-UY/features/favorite.md
 delete mode 100644 src/docs/eo-UY/features/follow.md
 delete mode 100644 src/docs/eo-UY/features/keyboard-shortcut.md
 delete mode 100644 src/docs/eo-UY/features/mfm.md
 delete mode 100644 src/docs/eo-UY/features/mute-and-block.md
 delete mode 100644 src/docs/eo-UY/features/mute.md
 delete mode 100644 src/docs/eo-UY/features/note.md
 delete mode 100644 src/docs/eo-UY/features/pages.md
 delete mode 100644 src/docs/eo-UY/features/reaction.md
 delete mode 100644 src/docs/eo-UY/features/silence.md
 delete mode 100644 src/docs/eo-UY/features/theme.md
 delete mode 100644 src/docs/eo-UY/features/timeline.md
 delete mode 100644 src/docs/eo-UY/features/widgets.md
 delete mode 100644 src/docs/eo-UY/features/word-mute.md
 delete mode 100644 src/docs/eo-UY/follow.md
 delete mode 100644 src/docs/eo-UY/general/apps.md
 delete mode 100644 src/docs/eo-UY/general/changelog.md
 delete mode 100644 src/docs/eo-UY/general/faq.md
 delete mode 100644 src/docs/eo-UY/general/glossary.md
 delete mode 100644 src/docs/eo-UY/general/links.md
 delete mode 100644 src/docs/eo-UY/general/misskey.md
 delete mode 100644 src/docs/eo-UY/general/report-issue.md
 delete mode 100644 src/docs/eo-UY/general/troubleshooting.md
 delete mode 100644 src/docs/eo-UY/keyboard-shortcut.md
 delete mode 100644 src/docs/eo-UY/mfm.md
 delete mode 100644 src/docs/eo-UY/mute.md
 delete mode 100644 src/docs/eo-UY/pages.md
 delete mode 100644 src/docs/eo-UY/reaction.md
 delete mode 100644 src/docs/eo-UY/reversi-bot.md
 delete mode 100644 src/docs/eo-UY/stream.md
 delete mode 100644 src/docs/eo-UY/theme.md
 delete mode 100644 src/docs/eo-UY/timelines.md
 delete mode 100644 src/docs/es-ES/admin/disable-timelines.md
 delete mode 100644 src/docs/es-ES/admin/faq.md
 delete mode 100644 src/docs/es-ES/advanced/aiscript.md
 delete mode 100644 src/docs/es-ES/advanced/api.md
 delete mode 100644 src/docs/es-ES/advanced/create-plugin.md
 delete mode 100644 src/docs/es-ES/advanced/develop-bot.md
 delete mode 100644 src/docs/es-ES/advanced/reversi-bot.md
 delete mode 100644 src/docs/es-ES/advanced/share-page.md
 delete mode 100644 src/docs/es-ES/advanced/stream.md
 delete mode 100644 src/docs/es-ES/aiscript.md
 delete mode 100644 src/docs/es-ES/api.md
 delete mode 100644 src/docs/es-ES/create-plugin.md
 delete mode 100644 src/docs/es-ES/custom-emoji.md
 delete mode 100644 src/docs/es-ES/deck.md
 delete mode 100644 src/docs/es-ES/features/antenna.md
 delete mode 100644 src/docs/es-ES/features/custom-emoji.md
 delete mode 100644 src/docs/es-ES/features/deck.md
 delete mode 100644 src/docs/es-ES/features/drive.md
 delete mode 100644 src/docs/es-ES/features/favorite.md
 delete mode 100644 src/docs/es-ES/features/follow.md
 delete mode 100644 src/docs/es-ES/features/keyboard-shortcut.md
 delete mode 100644 src/docs/es-ES/features/mfm.md
 delete mode 100644 src/docs/es-ES/features/mute-and-block.md
 delete mode 100644 src/docs/es-ES/features/mute.md
 delete mode 100644 src/docs/es-ES/features/note.md
 delete mode 100644 src/docs/es-ES/features/pages.md
 delete mode 100644 src/docs/es-ES/features/reaction.md
 delete mode 100644 src/docs/es-ES/features/silence.md
 delete mode 100644 src/docs/es-ES/features/theme.md
 delete mode 100644 src/docs/es-ES/features/timeline.md
 delete mode 100644 src/docs/es-ES/features/widgets.md
 delete mode 100644 src/docs/es-ES/features/word-mute.md
 delete mode 100644 src/docs/es-ES/follow.md
 delete mode 100644 src/docs/es-ES/general/apps.md
 delete mode 100644 src/docs/es-ES/general/changelog.md
 delete mode 100644 src/docs/es-ES/general/faq.md
 delete mode 100644 src/docs/es-ES/general/glossary.md
 delete mode 100644 src/docs/es-ES/general/links.md
 delete mode 100644 src/docs/es-ES/general/misskey.md
 delete mode 100644 src/docs/es-ES/general/report-issue.md
 delete mode 100644 src/docs/es-ES/general/troubleshooting.md
 delete mode 100644 src/docs/es-ES/keyboard-shortcut.md
 delete mode 100644 src/docs/es-ES/mfm.md
 delete mode 100644 src/docs/es-ES/mute.md
 delete mode 100644 src/docs/es-ES/pages.md
 delete mode 100644 src/docs/es-ES/reaction.md
 delete mode 100644 src/docs/es-ES/reversi-bot.md
 delete mode 100644 src/docs/es-ES/stream.md
 delete mode 100644 src/docs/es-ES/theme.md
 delete mode 100644 src/docs/es-ES/timelines.md
 delete mode 100644 src/docs/fr-FR/admin/disable-timelines.md
 delete mode 100644 src/docs/fr-FR/admin/faq.md
 delete mode 100644 src/docs/fr-FR/advanced/aiscript.md
 delete mode 100644 src/docs/fr-FR/advanced/api.md
 delete mode 100644 src/docs/fr-FR/advanced/create-plugin.md
 delete mode 100644 src/docs/fr-FR/advanced/develop-bot.md
 delete mode 100644 src/docs/fr-FR/advanced/reversi-bot.md
 delete mode 100644 src/docs/fr-FR/advanced/share-page.md
 delete mode 100644 src/docs/fr-FR/advanced/stream.md
 delete mode 100644 src/docs/fr-FR/aiscript.md
 delete mode 100644 src/docs/fr-FR/api.md
 delete mode 100644 src/docs/fr-FR/create-plugin.md
 delete mode 100644 src/docs/fr-FR/custom-emoji.md
 delete mode 100644 src/docs/fr-FR/deck.md
 delete mode 100644 src/docs/fr-FR/features/antenna.md
 delete mode 100644 src/docs/fr-FR/features/custom-emoji.md
 delete mode 100644 src/docs/fr-FR/features/deck.md
 delete mode 100644 src/docs/fr-FR/features/drive.md
 delete mode 100644 src/docs/fr-FR/features/favorite.md
 delete mode 100644 src/docs/fr-FR/features/follow.md
 delete mode 100644 src/docs/fr-FR/features/keyboard-shortcut.md
 delete mode 100644 src/docs/fr-FR/features/mfm.md
 delete mode 100644 src/docs/fr-FR/features/mute-and-block.md
 delete mode 100644 src/docs/fr-FR/features/mute.md
 delete mode 100644 src/docs/fr-FR/features/note.md
 delete mode 100644 src/docs/fr-FR/features/pages.md
 delete mode 100644 src/docs/fr-FR/features/reaction.md
 delete mode 100644 src/docs/fr-FR/features/silence.md
 delete mode 100644 src/docs/fr-FR/features/theme.md
 delete mode 100644 src/docs/fr-FR/features/timeline.md
 delete mode 100644 src/docs/fr-FR/features/widgets.md
 delete mode 100644 src/docs/fr-FR/features/word-mute.md
 delete mode 100644 src/docs/fr-FR/follow.md
 delete mode 100644 src/docs/fr-FR/general/apps.md
 delete mode 100644 src/docs/fr-FR/general/changelog.md
 delete mode 100644 src/docs/fr-FR/general/faq.md
 delete mode 100644 src/docs/fr-FR/general/glossary.md
 delete mode 100644 src/docs/fr-FR/general/links.md
 delete mode 100644 src/docs/fr-FR/general/misskey.md
 delete mode 100644 src/docs/fr-FR/general/report-issue.md
 delete mode 100644 src/docs/fr-FR/general/troubleshooting.md
 delete mode 100644 src/docs/fr-FR/keyboard-shortcut.md
 delete mode 100644 src/docs/fr-FR/mfm.md
 delete mode 100644 src/docs/fr-FR/mute.md
 delete mode 100644 src/docs/fr-FR/pages.md
 delete mode 100644 src/docs/fr-FR/reaction.md
 delete mode 100644 src/docs/fr-FR/reversi-bot.md
 delete mode 100644 src/docs/fr-FR/stream.md
 delete mode 100644 src/docs/fr-FR/theme.md
 delete mode 100644 src/docs/fr-FR/timelines.md
 delete mode 100644 src/docs/ht-HT/admin/disable-timelines.md
 delete mode 100644 src/docs/ht-HT/admin/faq.md
 delete mode 100644 src/docs/ht-HT/advanced/aiscript.md
 delete mode 100644 src/docs/ht-HT/advanced/api.md
 delete mode 100644 src/docs/ht-HT/advanced/create-plugin.md
 delete mode 100644 src/docs/ht-HT/advanced/develop-bot.md
 delete mode 100644 src/docs/ht-HT/advanced/reversi-bot.md
 delete mode 100644 src/docs/ht-HT/advanced/share-page.md
 delete mode 100644 src/docs/ht-HT/advanced/stream.md
 delete mode 100644 src/docs/ht-HT/aiscript.md
 delete mode 100644 src/docs/ht-HT/api.md
 delete mode 100644 src/docs/ht-HT/create-plugin.md
 delete mode 100644 src/docs/ht-HT/custom-emoji.md
 delete mode 100644 src/docs/ht-HT/deck.md
 delete mode 100644 src/docs/ht-HT/features/antenna.md
 delete mode 100644 src/docs/ht-HT/features/custom-emoji.md
 delete mode 100644 src/docs/ht-HT/features/deck.md
 delete mode 100644 src/docs/ht-HT/features/drive.md
 delete mode 100644 src/docs/ht-HT/features/favorite.md
 delete mode 100644 src/docs/ht-HT/features/follow.md
 delete mode 100644 src/docs/ht-HT/features/keyboard-shortcut.md
 delete mode 100644 src/docs/ht-HT/features/mfm.md
 delete mode 100644 src/docs/ht-HT/features/mute-and-block.md
 delete mode 100644 src/docs/ht-HT/features/mute.md
 delete mode 100644 src/docs/ht-HT/features/note.md
 delete mode 100644 src/docs/ht-HT/features/pages.md
 delete mode 100644 src/docs/ht-HT/features/reaction.md
 delete mode 100644 src/docs/ht-HT/features/silence.md
 delete mode 100644 src/docs/ht-HT/features/theme.md
 delete mode 100644 src/docs/ht-HT/features/timeline.md
 delete mode 100644 src/docs/ht-HT/features/widgets.md
 delete mode 100644 src/docs/ht-HT/features/word-mute.md
 delete mode 100644 src/docs/ht-HT/follow.md
 delete mode 100644 src/docs/ht-HT/general/apps.md
 delete mode 100644 src/docs/ht-HT/general/changelog.md
 delete mode 100644 src/docs/ht-HT/general/faq.md
 delete mode 100644 src/docs/ht-HT/general/glossary.md
 delete mode 100644 src/docs/ht-HT/general/links.md
 delete mode 100644 src/docs/ht-HT/general/misskey.md
 delete mode 100644 src/docs/ht-HT/general/report-issue.md
 delete mode 100644 src/docs/ht-HT/general/troubleshooting.md
 delete mode 100644 src/docs/ht-HT/keyboard-shortcut.md
 delete mode 100644 src/docs/ht-HT/mfm.md
 delete mode 100644 src/docs/ht-HT/mute.md
 delete mode 100644 src/docs/ht-HT/pages.md
 delete mode 100644 src/docs/ht-HT/reaction.md
 delete mode 100644 src/docs/ht-HT/reversi-bot.md
 delete mode 100644 src/docs/ht-HT/stream.md
 delete mode 100644 src/docs/ht-HT/theme.md
 delete mode 100644 src/docs/ht-HT/timelines.md
 delete mode 100644 src/docs/id-ID/admin/disable-timelines.md
 delete mode 100644 src/docs/id-ID/admin/faq.md
 delete mode 100644 src/docs/id-ID/advanced/aiscript.md
 delete mode 100644 src/docs/id-ID/advanced/api.md
 delete mode 100644 src/docs/id-ID/advanced/create-plugin.md
 delete mode 100644 src/docs/id-ID/advanced/develop-bot.md
 delete mode 100644 src/docs/id-ID/advanced/reversi-bot.md
 delete mode 100644 src/docs/id-ID/advanced/share-page.md
 delete mode 100644 src/docs/id-ID/advanced/stream.md
 delete mode 100644 src/docs/id-ID/aiscript.md
 delete mode 100644 src/docs/id-ID/api.md
 delete mode 100644 src/docs/id-ID/create-plugin.md
 delete mode 100644 src/docs/id-ID/custom-emoji.md
 delete mode 100644 src/docs/id-ID/deck.md
 delete mode 100644 src/docs/id-ID/features/antenna.md
 delete mode 100644 src/docs/id-ID/features/custom-emoji.md
 delete mode 100644 src/docs/id-ID/features/deck.md
 delete mode 100644 src/docs/id-ID/features/drive.md
 delete mode 100644 src/docs/id-ID/features/favorite.md
 delete mode 100644 src/docs/id-ID/features/follow.md
 delete mode 100644 src/docs/id-ID/features/keyboard-shortcut.md
 delete mode 100644 src/docs/id-ID/features/mfm.md
 delete mode 100644 src/docs/id-ID/features/mute-and-block.md
 delete mode 100644 src/docs/id-ID/features/mute.md
 delete mode 100644 src/docs/id-ID/features/note.md
 delete mode 100644 src/docs/id-ID/features/pages.md
 delete mode 100644 src/docs/id-ID/features/reaction.md
 delete mode 100644 src/docs/id-ID/features/silence.md
 delete mode 100644 src/docs/id-ID/features/theme.md
 delete mode 100644 src/docs/id-ID/features/timeline.md
 delete mode 100644 src/docs/id-ID/features/widgets.md
 delete mode 100644 src/docs/id-ID/features/word-mute.md
 delete mode 100644 src/docs/id-ID/follow.md
 delete mode 100644 src/docs/id-ID/general/apps.md
 delete mode 100644 src/docs/id-ID/general/changelog.md
 delete mode 100644 src/docs/id-ID/general/faq.md
 delete mode 100644 src/docs/id-ID/general/glossary.md
 delete mode 100644 src/docs/id-ID/general/links.md
 delete mode 100644 src/docs/id-ID/general/misskey.md
 delete mode 100644 src/docs/id-ID/general/report-issue.md
 delete mode 100644 src/docs/id-ID/general/troubleshooting.md
 delete mode 100644 src/docs/id-ID/keyboard-shortcut.md
 delete mode 100644 src/docs/id-ID/mfm.md
 delete mode 100644 src/docs/id-ID/mute.md
 delete mode 100644 src/docs/id-ID/pages.md
 delete mode 100644 src/docs/id-ID/reaction.md
 delete mode 100644 src/docs/id-ID/reversi-bot.md
 delete mode 100644 src/docs/id-ID/stream.md
 delete mode 100644 src/docs/id-ID/theme.md
 delete mode 100644 src/docs/id-ID/timelines.md
 delete mode 100644 src/docs/it-IT/admin/disable-timelines.md
 delete mode 100644 src/docs/it-IT/admin/faq.md
 delete mode 100644 src/docs/it-IT/advanced/aiscript.md
 delete mode 100644 src/docs/it-IT/advanced/api.md
 delete mode 100644 src/docs/it-IT/advanced/create-plugin.md
 delete mode 100644 src/docs/it-IT/advanced/develop-bot.md
 delete mode 100644 src/docs/it-IT/advanced/reversi-bot.md
 delete mode 100644 src/docs/it-IT/advanced/share-page.md
 delete mode 100644 src/docs/it-IT/advanced/stream.md
 delete mode 100644 src/docs/it-IT/aiscript.md
 delete mode 100644 src/docs/it-IT/api.md
 delete mode 100644 src/docs/it-IT/create-plugin.md
 delete mode 100644 src/docs/it-IT/custom-emoji.md
 delete mode 100644 src/docs/it-IT/deck.md
 delete mode 100644 src/docs/it-IT/features/antenna.md
 delete mode 100644 src/docs/it-IT/features/custom-emoji.md
 delete mode 100644 src/docs/it-IT/features/deck.md
 delete mode 100644 src/docs/it-IT/features/drive.md
 delete mode 100644 src/docs/it-IT/features/favorite.md
 delete mode 100644 src/docs/it-IT/features/follow.md
 delete mode 100644 src/docs/it-IT/features/keyboard-shortcut.md
 delete mode 100644 src/docs/it-IT/features/mfm.md
 delete mode 100644 src/docs/it-IT/features/mute-and-block.md
 delete mode 100644 src/docs/it-IT/features/mute.md
 delete mode 100644 src/docs/it-IT/features/note.md
 delete mode 100644 src/docs/it-IT/features/pages.md
 delete mode 100644 src/docs/it-IT/features/reaction.md
 delete mode 100644 src/docs/it-IT/features/silence.md
 delete mode 100644 src/docs/it-IT/features/theme.md
 delete mode 100644 src/docs/it-IT/features/timeline.md
 delete mode 100644 src/docs/it-IT/features/widgets.md
 delete mode 100644 src/docs/it-IT/features/word-mute.md
 delete mode 100644 src/docs/it-IT/follow.md
 delete mode 100644 src/docs/it-IT/general/apps.md
 delete mode 100644 src/docs/it-IT/general/changelog.md
 delete mode 100644 src/docs/it-IT/general/faq.md
 delete mode 100644 src/docs/it-IT/general/glossary.md
 delete mode 100644 src/docs/it-IT/general/links.md
 delete mode 100644 src/docs/it-IT/general/misskey.md
 delete mode 100644 src/docs/it-IT/general/report-issue.md
 delete mode 100644 src/docs/it-IT/general/troubleshooting.md
 delete mode 100644 src/docs/it-IT/keyboard-shortcut.md
 delete mode 100644 src/docs/it-IT/mfm.md
 delete mode 100644 src/docs/it-IT/mute.md
 delete mode 100644 src/docs/it-IT/pages.md
 delete mode 100644 src/docs/it-IT/reaction.md
 delete mode 100644 src/docs/it-IT/reversi-bot.md
 delete mode 100644 src/docs/it-IT/stream.md
 delete mode 100644 src/docs/it-IT/theme.md
 delete mode 100644 src/docs/it-IT/timelines.md
 delete mode 100644 src/docs/ja-JP/admin/disable-timelines.md
 delete mode 100644 src/docs/ja-JP/admin/faq.md
 delete mode 100644 src/docs/ja-JP/advanced/aiscript.md
 delete mode 100644 src/docs/ja-JP/advanced/api.md
 delete mode 100644 src/docs/ja-JP/advanced/create-plugin.md
 delete mode 100644 src/docs/ja-JP/advanced/develop-bot.md
 delete mode 100644 src/docs/ja-JP/advanced/reversi-bot.md
 delete mode 100644 src/docs/ja-JP/advanced/share-page.md
 delete mode 100644 src/docs/ja-JP/advanced/stream.md
 delete mode 100644 src/docs/ja-JP/features/antenna.md
 delete mode 100644 src/docs/ja-JP/features/custom-emoji.md
 delete mode 100644 src/docs/ja-JP/features/deck.md
 delete mode 100644 src/docs/ja-JP/features/drive.md
 delete mode 100644 src/docs/ja-JP/features/favorite.md
 delete mode 100644 src/docs/ja-JP/features/follow.md
 delete mode 100644 src/docs/ja-JP/features/keyboard-shortcut.md
 delete mode 100644 src/docs/ja-JP/features/mfm.md
 delete mode 100644 src/docs/ja-JP/features/mute-and-block.md
 delete mode 100644 src/docs/ja-JP/features/note.md
 delete mode 100644 src/docs/ja-JP/features/pages.md
 delete mode 100644 src/docs/ja-JP/features/reaction.md
 delete mode 100644 src/docs/ja-JP/features/silence.md
 delete mode 100644 src/docs/ja-JP/features/theme.md
 delete mode 100644 src/docs/ja-JP/features/timeline.md
 delete mode 100644 src/docs/ja-JP/features/widgets.md
 delete mode 100644 src/docs/ja-JP/features/word-mute.md
 delete mode 100644 src/docs/ja-JP/general/apps.md
 delete mode 100644 src/docs/ja-JP/general/changelog.md
 delete mode 100644 src/docs/ja-JP/general/faq.md
 delete mode 100644 src/docs/ja-JP/general/glossary.md
 delete mode 100644 src/docs/ja-JP/general/links.md
 delete mode 100644 src/docs/ja-JP/general/misskey.md
 delete mode 100644 src/docs/ja-JP/general/report-issue.md
 delete mode 100644 src/docs/ja-JP/general/troubleshooting.md
 delete mode 100644 src/docs/ja-KS/admin/disable-timelines.md
 delete mode 100644 src/docs/ja-KS/admin/faq.md
 delete mode 100644 src/docs/ja-KS/advanced/aiscript.md
 delete mode 100644 src/docs/ja-KS/advanced/api.md
 delete mode 100644 src/docs/ja-KS/advanced/create-plugin.md
 delete mode 100644 src/docs/ja-KS/advanced/develop-bot.md
 delete mode 100644 src/docs/ja-KS/advanced/reversi-bot.md
 delete mode 100644 src/docs/ja-KS/advanced/share-page.md
 delete mode 100644 src/docs/ja-KS/advanced/stream.md
 delete mode 100644 src/docs/ja-KS/aiscript.md
 delete mode 100644 src/docs/ja-KS/api.md
 delete mode 100644 src/docs/ja-KS/create-plugin.md
 delete mode 100644 src/docs/ja-KS/custom-emoji.md
 delete mode 100644 src/docs/ja-KS/deck.md
 delete mode 100644 src/docs/ja-KS/features/antenna.md
 delete mode 100644 src/docs/ja-KS/features/custom-emoji.md
 delete mode 100644 src/docs/ja-KS/features/deck.md
 delete mode 100644 src/docs/ja-KS/features/drive.md
 delete mode 100644 src/docs/ja-KS/features/favorite.md
 delete mode 100644 src/docs/ja-KS/features/follow.md
 delete mode 100644 src/docs/ja-KS/features/keyboard-shortcut.md
 delete mode 100644 src/docs/ja-KS/features/mfm.md
 delete mode 100644 src/docs/ja-KS/features/mute-and-block.md
 delete mode 100644 src/docs/ja-KS/features/mute.md
 delete mode 100644 src/docs/ja-KS/features/note.md
 delete mode 100644 src/docs/ja-KS/features/pages.md
 delete mode 100644 src/docs/ja-KS/features/reaction.md
 delete mode 100644 src/docs/ja-KS/features/silence.md
 delete mode 100644 src/docs/ja-KS/features/theme.md
 delete mode 100644 src/docs/ja-KS/features/timeline.md
 delete mode 100644 src/docs/ja-KS/features/widgets.md
 delete mode 100644 src/docs/ja-KS/features/word-mute.md
 delete mode 100644 src/docs/ja-KS/follow.md
 delete mode 100644 src/docs/ja-KS/general/apps.md
 delete mode 100644 src/docs/ja-KS/general/changelog.md
 delete mode 100644 src/docs/ja-KS/general/faq.md
 delete mode 100644 src/docs/ja-KS/general/glossary.md
 delete mode 100644 src/docs/ja-KS/general/links.md
 delete mode 100644 src/docs/ja-KS/general/misskey.md
 delete mode 100644 src/docs/ja-KS/general/report-issue.md
 delete mode 100644 src/docs/ja-KS/general/troubleshooting.md
 delete mode 100644 src/docs/ja-KS/keyboard-shortcut.md
 delete mode 100644 src/docs/ja-KS/mfm.md
 delete mode 100644 src/docs/ja-KS/mute.md
 delete mode 100644 src/docs/ja-KS/pages.md
 delete mode 100644 src/docs/ja-KS/reaction.md
 delete mode 100644 src/docs/ja-KS/reversi-bot.md
 delete mode 100644 src/docs/ja-KS/stream.md
 delete mode 100644 src/docs/ja-KS/theme.md
 delete mode 100644 src/docs/ja-KS/timelines.md
 delete mode 100644 src/docs/jbo-EN/admin/disable-timelines.md
 delete mode 100644 src/docs/jbo-EN/admin/faq.md
 delete mode 100644 src/docs/jbo-EN/advanced/aiscript.md
 delete mode 100644 src/docs/jbo-EN/advanced/api.md
 delete mode 100644 src/docs/jbo-EN/advanced/create-plugin.md
 delete mode 100644 src/docs/jbo-EN/advanced/develop-bot.md
 delete mode 100644 src/docs/jbo-EN/advanced/reversi-bot.md
 delete mode 100644 src/docs/jbo-EN/advanced/share-page.md
 delete mode 100644 src/docs/jbo-EN/advanced/stream.md
 delete mode 100644 src/docs/jbo-EN/aiscript.md
 delete mode 100644 src/docs/jbo-EN/api.md
 delete mode 100644 src/docs/jbo-EN/create-plugin.md
 delete mode 100644 src/docs/jbo-EN/custom-emoji.md
 delete mode 100644 src/docs/jbo-EN/deck.md
 delete mode 100644 src/docs/jbo-EN/features/antenna.md
 delete mode 100644 src/docs/jbo-EN/features/custom-emoji.md
 delete mode 100644 src/docs/jbo-EN/features/deck.md
 delete mode 100644 src/docs/jbo-EN/features/drive.md
 delete mode 100644 src/docs/jbo-EN/features/favorite.md
 delete mode 100644 src/docs/jbo-EN/features/follow.md
 delete mode 100644 src/docs/jbo-EN/features/keyboard-shortcut.md
 delete mode 100644 src/docs/jbo-EN/features/mfm.md
 delete mode 100644 src/docs/jbo-EN/features/mute-and-block.md
 delete mode 100644 src/docs/jbo-EN/features/mute.md
 delete mode 100644 src/docs/jbo-EN/features/note.md
 delete mode 100644 src/docs/jbo-EN/features/pages.md
 delete mode 100644 src/docs/jbo-EN/features/reaction.md
 delete mode 100644 src/docs/jbo-EN/features/silence.md
 delete mode 100644 src/docs/jbo-EN/features/theme.md
 delete mode 100644 src/docs/jbo-EN/features/timeline.md
 delete mode 100644 src/docs/jbo-EN/features/widgets.md
 delete mode 100644 src/docs/jbo-EN/features/word-mute.md
 delete mode 100644 src/docs/jbo-EN/follow.md
 delete mode 100644 src/docs/jbo-EN/general/apps.md
 delete mode 100644 src/docs/jbo-EN/general/changelog.md
 delete mode 100644 src/docs/jbo-EN/general/faq.md
 delete mode 100644 src/docs/jbo-EN/general/glossary.md
 delete mode 100644 src/docs/jbo-EN/general/links.md
 delete mode 100644 src/docs/jbo-EN/general/misskey.md
 delete mode 100644 src/docs/jbo-EN/general/report-issue.md
 delete mode 100644 src/docs/jbo-EN/general/troubleshooting.md
 delete mode 100644 src/docs/jbo-EN/keyboard-shortcut.md
 delete mode 100644 src/docs/jbo-EN/mfm.md
 delete mode 100644 src/docs/jbo-EN/mute.md
 delete mode 100644 src/docs/jbo-EN/pages.md
 delete mode 100644 src/docs/jbo-EN/reaction.md
 delete mode 100644 src/docs/jbo-EN/reversi-bot.md
 delete mode 100644 src/docs/jbo-EN/stream.md
 delete mode 100644 src/docs/jbo-EN/theme.md
 delete mode 100644 src/docs/jbo-EN/timelines.md
 delete mode 100644 src/docs/kab-KAB/admin/disable-timelines.md
 delete mode 100644 src/docs/kab-KAB/admin/faq.md
 delete mode 100644 src/docs/kab-KAB/advanced/aiscript.md
 delete mode 100644 src/docs/kab-KAB/advanced/api.md
 delete mode 100644 src/docs/kab-KAB/advanced/create-plugin.md
 delete mode 100644 src/docs/kab-KAB/advanced/develop-bot.md
 delete mode 100644 src/docs/kab-KAB/advanced/reversi-bot.md
 delete mode 100644 src/docs/kab-KAB/advanced/share-page.md
 delete mode 100644 src/docs/kab-KAB/advanced/stream.md
 delete mode 100644 src/docs/kab-KAB/aiscript.md
 delete mode 100644 src/docs/kab-KAB/api.md
 delete mode 100644 src/docs/kab-KAB/create-plugin.md
 delete mode 100644 src/docs/kab-KAB/custom-emoji.md
 delete mode 100644 src/docs/kab-KAB/deck.md
 delete mode 100644 src/docs/kab-KAB/features/antenna.md
 delete mode 100644 src/docs/kab-KAB/features/custom-emoji.md
 delete mode 100644 src/docs/kab-KAB/features/deck.md
 delete mode 100644 src/docs/kab-KAB/features/drive.md
 delete mode 100644 src/docs/kab-KAB/features/favorite.md
 delete mode 100644 src/docs/kab-KAB/features/follow.md
 delete mode 100644 src/docs/kab-KAB/features/keyboard-shortcut.md
 delete mode 100644 src/docs/kab-KAB/features/mfm.md
 delete mode 100644 src/docs/kab-KAB/features/mute-and-block.md
 delete mode 100644 src/docs/kab-KAB/features/mute.md
 delete mode 100644 src/docs/kab-KAB/features/note.md
 delete mode 100644 src/docs/kab-KAB/features/pages.md
 delete mode 100644 src/docs/kab-KAB/features/reaction.md
 delete mode 100644 src/docs/kab-KAB/features/silence.md
 delete mode 100644 src/docs/kab-KAB/features/theme.md
 delete mode 100644 src/docs/kab-KAB/features/timeline.md
 delete mode 100644 src/docs/kab-KAB/features/widgets.md
 delete mode 100644 src/docs/kab-KAB/features/word-mute.md
 delete mode 100644 src/docs/kab-KAB/follow.md
 delete mode 100644 src/docs/kab-KAB/general/apps.md
 delete mode 100644 src/docs/kab-KAB/general/changelog.md
 delete mode 100644 src/docs/kab-KAB/general/faq.md
 delete mode 100644 src/docs/kab-KAB/general/glossary.md
 delete mode 100644 src/docs/kab-KAB/general/links.md
 delete mode 100644 src/docs/kab-KAB/general/misskey.md
 delete mode 100644 src/docs/kab-KAB/general/report-issue.md
 delete mode 100644 src/docs/kab-KAB/general/troubleshooting.md
 delete mode 100644 src/docs/kab-KAB/keyboard-shortcut.md
 delete mode 100644 src/docs/kab-KAB/mfm.md
 delete mode 100644 src/docs/kab-KAB/mute.md
 delete mode 100644 src/docs/kab-KAB/pages.md
 delete mode 100644 src/docs/kab-KAB/reaction.md
 delete mode 100644 src/docs/kab-KAB/reversi-bot.md
 delete mode 100644 src/docs/kab-KAB/stream.md
 delete mode 100644 src/docs/kab-KAB/theme.md
 delete mode 100644 src/docs/kab-KAB/timelines.md
 delete mode 100644 src/docs/kn-IN/admin/disable-timelines.md
 delete mode 100644 src/docs/kn-IN/admin/faq.md
 delete mode 100644 src/docs/kn-IN/advanced/aiscript.md
 delete mode 100644 src/docs/kn-IN/advanced/api.md
 delete mode 100644 src/docs/kn-IN/advanced/create-plugin.md
 delete mode 100644 src/docs/kn-IN/advanced/develop-bot.md
 delete mode 100644 src/docs/kn-IN/advanced/reversi-bot.md
 delete mode 100644 src/docs/kn-IN/advanced/share-page.md
 delete mode 100644 src/docs/kn-IN/advanced/stream.md
 delete mode 100644 src/docs/kn-IN/aiscript.md
 delete mode 100644 src/docs/kn-IN/api.md
 delete mode 100644 src/docs/kn-IN/create-plugin.md
 delete mode 100644 src/docs/kn-IN/custom-emoji.md
 delete mode 100644 src/docs/kn-IN/deck.md
 delete mode 100644 src/docs/kn-IN/features/antenna.md
 delete mode 100644 src/docs/kn-IN/features/custom-emoji.md
 delete mode 100644 src/docs/kn-IN/features/deck.md
 delete mode 100644 src/docs/kn-IN/features/drive.md
 delete mode 100644 src/docs/kn-IN/features/favorite.md
 delete mode 100644 src/docs/kn-IN/features/follow.md
 delete mode 100644 src/docs/kn-IN/features/keyboard-shortcut.md
 delete mode 100644 src/docs/kn-IN/features/mfm.md
 delete mode 100644 src/docs/kn-IN/features/mute-and-block.md
 delete mode 100644 src/docs/kn-IN/features/mute.md
 delete mode 100644 src/docs/kn-IN/features/note.md
 delete mode 100644 src/docs/kn-IN/features/pages.md
 delete mode 100644 src/docs/kn-IN/features/reaction.md
 delete mode 100644 src/docs/kn-IN/features/silence.md
 delete mode 100644 src/docs/kn-IN/features/theme.md
 delete mode 100644 src/docs/kn-IN/features/timeline.md
 delete mode 100644 src/docs/kn-IN/features/widgets.md
 delete mode 100644 src/docs/kn-IN/features/word-mute.md
 delete mode 100644 src/docs/kn-IN/follow.md
 delete mode 100644 src/docs/kn-IN/general/apps.md
 delete mode 100644 src/docs/kn-IN/general/changelog.md
 delete mode 100644 src/docs/kn-IN/general/faq.md
 delete mode 100644 src/docs/kn-IN/general/glossary.md
 delete mode 100644 src/docs/kn-IN/general/links.md
 delete mode 100644 src/docs/kn-IN/general/misskey.md
 delete mode 100644 src/docs/kn-IN/general/report-issue.md
 delete mode 100644 src/docs/kn-IN/general/troubleshooting.md
 delete mode 100644 src/docs/kn-IN/keyboard-shortcut.md
 delete mode 100644 src/docs/kn-IN/mfm.md
 delete mode 100644 src/docs/kn-IN/mute.md
 delete mode 100644 src/docs/kn-IN/pages.md
 delete mode 100644 src/docs/kn-IN/reaction.md
 delete mode 100644 src/docs/kn-IN/reversi-bot.md
 delete mode 100644 src/docs/kn-IN/stream.md
 delete mode 100644 src/docs/kn-IN/theme.md
 delete mode 100644 src/docs/kn-IN/timelines.md
 delete mode 100644 src/docs/ko-KR/admin/disable-timelines.md
 delete mode 100644 src/docs/ko-KR/admin/faq.md
 delete mode 100644 src/docs/ko-KR/advanced/aiscript.md
 delete mode 100644 src/docs/ko-KR/advanced/api.md
 delete mode 100644 src/docs/ko-KR/advanced/create-plugin.md
 delete mode 100644 src/docs/ko-KR/advanced/develop-bot.md
 delete mode 100644 src/docs/ko-KR/advanced/reversi-bot.md
 delete mode 100644 src/docs/ko-KR/advanced/share-page.md
 delete mode 100644 src/docs/ko-KR/advanced/stream.md
 delete mode 100644 src/docs/ko-KR/aiscript.md
 delete mode 100644 src/docs/ko-KR/api.md
 delete mode 100644 src/docs/ko-KR/create-plugin.md
 delete mode 100644 src/docs/ko-KR/custom-emoji.md
 delete mode 100644 src/docs/ko-KR/deck.md
 delete mode 100644 src/docs/ko-KR/features/antenna.md
 delete mode 100644 src/docs/ko-KR/features/custom-emoji.md
 delete mode 100644 src/docs/ko-KR/features/deck.md
 delete mode 100644 src/docs/ko-KR/features/drive.md
 delete mode 100644 src/docs/ko-KR/features/favorite.md
 delete mode 100644 src/docs/ko-KR/features/follow.md
 delete mode 100644 src/docs/ko-KR/features/keyboard-shortcut.md
 delete mode 100644 src/docs/ko-KR/features/mfm.md
 delete mode 100644 src/docs/ko-KR/features/mute-and-block.md
 delete mode 100644 src/docs/ko-KR/features/mute.md
 delete mode 100644 src/docs/ko-KR/features/note.md
 delete mode 100644 src/docs/ko-KR/features/pages.md
 delete mode 100644 src/docs/ko-KR/features/reaction.md
 delete mode 100644 src/docs/ko-KR/features/silence.md
 delete mode 100644 src/docs/ko-KR/features/theme.md
 delete mode 100644 src/docs/ko-KR/features/timeline.md
 delete mode 100644 src/docs/ko-KR/features/widgets.md
 delete mode 100644 src/docs/ko-KR/features/word-mute.md
 delete mode 100644 src/docs/ko-KR/follow.md
 delete mode 100644 src/docs/ko-KR/general/apps.md
 delete mode 100644 src/docs/ko-KR/general/changelog.md
 delete mode 100644 src/docs/ko-KR/general/faq.md
 delete mode 100644 src/docs/ko-KR/general/glossary.md
 delete mode 100644 src/docs/ko-KR/general/links.md
 delete mode 100644 src/docs/ko-KR/general/misskey.md
 delete mode 100644 src/docs/ko-KR/general/report-issue.md
 delete mode 100644 src/docs/ko-KR/general/troubleshooting.md
 delete mode 100644 src/docs/ko-KR/keyboard-shortcut.md
 delete mode 100644 src/docs/ko-KR/mfm.md
 delete mode 100644 src/docs/ko-KR/mute.md
 delete mode 100644 src/docs/ko-KR/pages.md
 delete mode 100644 src/docs/ko-KR/reaction.md
 delete mode 100644 src/docs/ko-KR/reversi-bot.md
 delete mode 100644 src/docs/ko-KR/stream.md
 delete mode 100644 src/docs/ko-KR/theme.md
 delete mode 100644 src/docs/ko-KR/timelines.md
 delete mode 100644 src/docs/nl-NL/admin/disable-timelines.md
 delete mode 100644 src/docs/nl-NL/admin/faq.md
 delete mode 100644 src/docs/nl-NL/advanced/aiscript.md
 delete mode 100644 src/docs/nl-NL/advanced/api.md
 delete mode 100644 src/docs/nl-NL/advanced/create-plugin.md
 delete mode 100644 src/docs/nl-NL/advanced/develop-bot.md
 delete mode 100644 src/docs/nl-NL/advanced/reversi-bot.md
 delete mode 100644 src/docs/nl-NL/advanced/share-page.md
 delete mode 100644 src/docs/nl-NL/advanced/stream.md
 delete mode 100644 src/docs/nl-NL/aiscript.md
 delete mode 100644 src/docs/nl-NL/api.md
 delete mode 100644 src/docs/nl-NL/create-plugin.md
 delete mode 100644 src/docs/nl-NL/custom-emoji.md
 delete mode 100644 src/docs/nl-NL/deck.md
 delete mode 100644 src/docs/nl-NL/features/antenna.md
 delete mode 100644 src/docs/nl-NL/features/custom-emoji.md
 delete mode 100644 src/docs/nl-NL/features/deck.md
 delete mode 100644 src/docs/nl-NL/features/drive.md
 delete mode 100644 src/docs/nl-NL/features/favorite.md
 delete mode 100644 src/docs/nl-NL/features/follow.md
 delete mode 100644 src/docs/nl-NL/features/keyboard-shortcut.md
 delete mode 100644 src/docs/nl-NL/features/mfm.md
 delete mode 100644 src/docs/nl-NL/features/mute-and-block.md
 delete mode 100644 src/docs/nl-NL/features/mute.md
 delete mode 100644 src/docs/nl-NL/features/note.md
 delete mode 100644 src/docs/nl-NL/features/pages.md
 delete mode 100644 src/docs/nl-NL/features/reaction.md
 delete mode 100644 src/docs/nl-NL/features/silence.md
 delete mode 100644 src/docs/nl-NL/features/theme.md
 delete mode 100644 src/docs/nl-NL/features/timeline.md
 delete mode 100644 src/docs/nl-NL/features/widgets.md
 delete mode 100644 src/docs/nl-NL/features/word-mute.md
 delete mode 100644 src/docs/nl-NL/follow.md
 delete mode 100644 src/docs/nl-NL/general/apps.md
 delete mode 100644 src/docs/nl-NL/general/changelog.md
 delete mode 100644 src/docs/nl-NL/general/faq.md
 delete mode 100644 src/docs/nl-NL/general/glossary.md
 delete mode 100644 src/docs/nl-NL/general/links.md
 delete mode 100644 src/docs/nl-NL/general/misskey.md
 delete mode 100644 src/docs/nl-NL/general/report-issue.md
 delete mode 100644 src/docs/nl-NL/general/troubleshooting.md
 delete mode 100644 src/docs/nl-NL/keyboard-shortcut.md
 delete mode 100644 src/docs/nl-NL/mfm.md
 delete mode 100644 src/docs/nl-NL/mute.md
 delete mode 100644 src/docs/nl-NL/pages.md
 delete mode 100644 src/docs/nl-NL/reaction.md
 delete mode 100644 src/docs/nl-NL/reversi-bot.md
 delete mode 100644 src/docs/nl-NL/stream.md
 delete mode 100644 src/docs/nl-NL/theme.md
 delete mode 100644 src/docs/nl-NL/timelines.md
 delete mode 100644 src/docs/no-NO/admin/disable-timelines.md
 delete mode 100644 src/docs/no-NO/admin/faq.md
 delete mode 100644 src/docs/no-NO/advanced/aiscript.md
 delete mode 100644 src/docs/no-NO/advanced/api.md
 delete mode 100644 src/docs/no-NO/advanced/create-plugin.md
 delete mode 100644 src/docs/no-NO/advanced/develop-bot.md
 delete mode 100644 src/docs/no-NO/advanced/reversi-bot.md
 delete mode 100644 src/docs/no-NO/advanced/share-page.md
 delete mode 100644 src/docs/no-NO/advanced/stream.md
 delete mode 100644 src/docs/no-NO/aiscript.md
 delete mode 100644 src/docs/no-NO/api.md
 delete mode 100644 src/docs/no-NO/create-plugin.md
 delete mode 100644 src/docs/no-NO/custom-emoji.md
 delete mode 100644 src/docs/no-NO/deck.md
 delete mode 100644 src/docs/no-NO/features/antenna.md
 delete mode 100644 src/docs/no-NO/features/custom-emoji.md
 delete mode 100644 src/docs/no-NO/features/deck.md
 delete mode 100644 src/docs/no-NO/features/drive.md
 delete mode 100644 src/docs/no-NO/features/favorite.md
 delete mode 100644 src/docs/no-NO/features/follow.md
 delete mode 100644 src/docs/no-NO/features/keyboard-shortcut.md
 delete mode 100644 src/docs/no-NO/features/mfm.md
 delete mode 100644 src/docs/no-NO/features/mute-and-block.md
 delete mode 100644 src/docs/no-NO/features/mute.md
 delete mode 100644 src/docs/no-NO/features/note.md
 delete mode 100644 src/docs/no-NO/features/pages.md
 delete mode 100644 src/docs/no-NO/features/reaction.md
 delete mode 100644 src/docs/no-NO/features/silence.md
 delete mode 100644 src/docs/no-NO/features/theme.md
 delete mode 100644 src/docs/no-NO/features/timeline.md
 delete mode 100644 src/docs/no-NO/features/widgets.md
 delete mode 100644 src/docs/no-NO/features/word-mute.md
 delete mode 100644 src/docs/no-NO/follow.md
 delete mode 100644 src/docs/no-NO/general/apps.md
 delete mode 100644 src/docs/no-NO/general/changelog.md
 delete mode 100644 src/docs/no-NO/general/faq.md
 delete mode 100644 src/docs/no-NO/general/glossary.md
 delete mode 100644 src/docs/no-NO/general/links.md
 delete mode 100644 src/docs/no-NO/general/misskey.md
 delete mode 100644 src/docs/no-NO/general/report-issue.md
 delete mode 100644 src/docs/no-NO/general/troubleshooting.md
 delete mode 100644 src/docs/no-NO/keyboard-shortcut.md
 delete mode 100644 src/docs/no-NO/mfm.md
 delete mode 100644 src/docs/no-NO/mute.md
 delete mode 100644 src/docs/no-NO/pages.md
 delete mode 100644 src/docs/no-NO/reaction.md
 delete mode 100644 src/docs/no-NO/reversi-bot.md
 delete mode 100644 src/docs/no-NO/stream.md
 delete mode 100644 src/docs/no-NO/theme.md
 delete mode 100644 src/docs/no-NO/timelines.md
 delete mode 100644 src/docs/pl-PL/admin/disable-timelines.md
 delete mode 100644 src/docs/pl-PL/admin/faq.md
 delete mode 100644 src/docs/pl-PL/advanced/aiscript.md
 delete mode 100644 src/docs/pl-PL/advanced/api.md
 delete mode 100644 src/docs/pl-PL/advanced/create-plugin.md
 delete mode 100644 src/docs/pl-PL/advanced/develop-bot.md
 delete mode 100644 src/docs/pl-PL/advanced/reversi-bot.md
 delete mode 100644 src/docs/pl-PL/advanced/share-page.md
 delete mode 100644 src/docs/pl-PL/advanced/stream.md
 delete mode 100644 src/docs/pl-PL/aiscript.md
 delete mode 100644 src/docs/pl-PL/api.md
 delete mode 100644 src/docs/pl-PL/create-plugin.md
 delete mode 100644 src/docs/pl-PL/custom-emoji.md
 delete mode 100644 src/docs/pl-PL/deck.md
 delete mode 100644 src/docs/pl-PL/features/antenna.md
 delete mode 100644 src/docs/pl-PL/features/custom-emoji.md
 delete mode 100644 src/docs/pl-PL/features/deck.md
 delete mode 100644 src/docs/pl-PL/features/drive.md
 delete mode 100644 src/docs/pl-PL/features/favorite.md
 delete mode 100644 src/docs/pl-PL/features/follow.md
 delete mode 100644 src/docs/pl-PL/features/keyboard-shortcut.md
 delete mode 100644 src/docs/pl-PL/features/mfm.md
 delete mode 100644 src/docs/pl-PL/features/mute-and-block.md
 delete mode 100644 src/docs/pl-PL/features/mute.md
 delete mode 100644 src/docs/pl-PL/features/note.md
 delete mode 100644 src/docs/pl-PL/features/pages.md
 delete mode 100644 src/docs/pl-PL/features/reaction.md
 delete mode 100644 src/docs/pl-PL/features/silence.md
 delete mode 100644 src/docs/pl-PL/features/theme.md
 delete mode 100644 src/docs/pl-PL/features/timeline.md
 delete mode 100644 src/docs/pl-PL/features/widgets.md
 delete mode 100644 src/docs/pl-PL/features/word-mute.md
 delete mode 100644 src/docs/pl-PL/follow.md
 delete mode 100644 src/docs/pl-PL/general/apps.md
 delete mode 100644 src/docs/pl-PL/general/changelog.md
 delete mode 100644 src/docs/pl-PL/general/faq.md
 delete mode 100644 src/docs/pl-PL/general/glossary.md
 delete mode 100644 src/docs/pl-PL/general/links.md
 delete mode 100644 src/docs/pl-PL/general/misskey.md
 delete mode 100644 src/docs/pl-PL/general/report-issue.md
 delete mode 100644 src/docs/pl-PL/general/troubleshooting.md
 delete mode 100644 src/docs/pl-PL/keyboard-shortcut.md
 delete mode 100644 src/docs/pl-PL/mfm.md
 delete mode 100644 src/docs/pl-PL/mute.md
 delete mode 100644 src/docs/pl-PL/pages.md
 delete mode 100644 src/docs/pl-PL/reaction.md
 delete mode 100644 src/docs/pl-PL/reversi-bot.md
 delete mode 100644 src/docs/pl-PL/stream.md
 delete mode 100644 src/docs/pl-PL/theme.md
 delete mode 100644 src/docs/pl-PL/timelines.md
 delete mode 100644 src/docs/pt-PT/admin/disable-timelines.md
 delete mode 100644 src/docs/pt-PT/admin/faq.md
 delete mode 100644 src/docs/pt-PT/advanced/aiscript.md
 delete mode 100644 src/docs/pt-PT/advanced/api.md
 delete mode 100644 src/docs/pt-PT/advanced/create-plugin.md
 delete mode 100644 src/docs/pt-PT/advanced/develop-bot.md
 delete mode 100644 src/docs/pt-PT/advanced/reversi-bot.md
 delete mode 100644 src/docs/pt-PT/advanced/share-page.md
 delete mode 100644 src/docs/pt-PT/advanced/stream.md
 delete mode 100644 src/docs/pt-PT/aiscript.md
 delete mode 100644 src/docs/pt-PT/api.md
 delete mode 100644 src/docs/pt-PT/create-plugin.md
 delete mode 100644 src/docs/pt-PT/custom-emoji.md
 delete mode 100644 src/docs/pt-PT/deck.md
 delete mode 100644 src/docs/pt-PT/features/antenna.md
 delete mode 100644 src/docs/pt-PT/features/custom-emoji.md
 delete mode 100644 src/docs/pt-PT/features/deck.md
 delete mode 100644 src/docs/pt-PT/features/drive.md
 delete mode 100644 src/docs/pt-PT/features/favorite.md
 delete mode 100644 src/docs/pt-PT/features/follow.md
 delete mode 100644 src/docs/pt-PT/features/keyboard-shortcut.md
 delete mode 100644 src/docs/pt-PT/features/mfm.md
 delete mode 100644 src/docs/pt-PT/features/mute-and-block.md
 delete mode 100644 src/docs/pt-PT/features/mute.md
 delete mode 100644 src/docs/pt-PT/features/note.md
 delete mode 100644 src/docs/pt-PT/features/pages.md
 delete mode 100644 src/docs/pt-PT/features/reaction.md
 delete mode 100644 src/docs/pt-PT/features/silence.md
 delete mode 100644 src/docs/pt-PT/features/theme.md
 delete mode 100644 src/docs/pt-PT/features/timeline.md
 delete mode 100644 src/docs/pt-PT/features/widgets.md
 delete mode 100644 src/docs/pt-PT/features/word-mute.md
 delete mode 100644 src/docs/pt-PT/follow.md
 delete mode 100644 src/docs/pt-PT/general/apps.md
 delete mode 100644 src/docs/pt-PT/general/changelog.md
 delete mode 100644 src/docs/pt-PT/general/faq.md
 delete mode 100644 src/docs/pt-PT/general/glossary.md
 delete mode 100644 src/docs/pt-PT/general/links.md
 delete mode 100644 src/docs/pt-PT/general/misskey.md
 delete mode 100644 src/docs/pt-PT/general/report-issue.md
 delete mode 100644 src/docs/pt-PT/general/troubleshooting.md
 delete mode 100644 src/docs/pt-PT/keyboard-shortcut.md
 delete mode 100644 src/docs/pt-PT/mfm.md
 delete mode 100644 src/docs/pt-PT/mute.md
 delete mode 100644 src/docs/pt-PT/pages.md
 delete mode 100644 src/docs/pt-PT/reaction.md
 delete mode 100644 src/docs/pt-PT/reversi-bot.md
 delete mode 100644 src/docs/pt-PT/stream.md
 delete mode 100644 src/docs/pt-PT/theme.md
 delete mode 100644 src/docs/pt-PT/timelines.md
 delete mode 100644 src/docs/ru-RU/admin/disable-timelines.md
 delete mode 100644 src/docs/ru-RU/admin/faq.md
 delete mode 100644 src/docs/ru-RU/advanced/aiscript.md
 delete mode 100644 src/docs/ru-RU/advanced/api.md
 delete mode 100644 src/docs/ru-RU/advanced/create-plugin.md
 delete mode 100644 src/docs/ru-RU/advanced/develop-bot.md
 delete mode 100644 src/docs/ru-RU/advanced/reversi-bot.md
 delete mode 100644 src/docs/ru-RU/advanced/share-page.md
 delete mode 100644 src/docs/ru-RU/advanced/stream.md
 delete mode 100644 src/docs/ru-RU/aiscript.md
 delete mode 100644 src/docs/ru-RU/api.md
 delete mode 100644 src/docs/ru-RU/create-plugin.md
 delete mode 100644 src/docs/ru-RU/custom-emoji.md
 delete mode 100644 src/docs/ru-RU/deck.md
 delete mode 100644 src/docs/ru-RU/features/antenna.md
 delete mode 100644 src/docs/ru-RU/features/custom-emoji.md
 delete mode 100644 src/docs/ru-RU/features/deck.md
 delete mode 100644 src/docs/ru-RU/features/drive.md
 delete mode 100644 src/docs/ru-RU/features/favorite.md
 delete mode 100644 src/docs/ru-RU/features/follow.md
 delete mode 100644 src/docs/ru-RU/features/keyboard-shortcut.md
 delete mode 100644 src/docs/ru-RU/features/mfm.md
 delete mode 100644 src/docs/ru-RU/features/mute-and-block.md
 delete mode 100644 src/docs/ru-RU/features/mute.md
 delete mode 100644 src/docs/ru-RU/features/note.md
 delete mode 100644 src/docs/ru-RU/features/pages.md
 delete mode 100644 src/docs/ru-RU/features/reaction.md
 delete mode 100644 src/docs/ru-RU/features/silence.md
 delete mode 100644 src/docs/ru-RU/features/theme.md
 delete mode 100644 src/docs/ru-RU/features/timeline.md
 delete mode 100644 src/docs/ru-RU/features/widgets.md
 delete mode 100644 src/docs/ru-RU/features/word-mute.md
 delete mode 100644 src/docs/ru-RU/follow.md
 delete mode 100644 src/docs/ru-RU/general/apps.md
 delete mode 100644 src/docs/ru-RU/general/changelog.md
 delete mode 100644 src/docs/ru-RU/general/faq.md
 delete mode 100644 src/docs/ru-RU/general/glossary.md
 delete mode 100644 src/docs/ru-RU/general/links.md
 delete mode 100644 src/docs/ru-RU/general/misskey.md
 delete mode 100644 src/docs/ru-RU/general/report-issue.md
 delete mode 100644 src/docs/ru-RU/general/troubleshooting.md
 delete mode 100644 src/docs/ru-RU/keyboard-shortcut.md
 delete mode 100644 src/docs/ru-RU/mfm.md
 delete mode 100644 src/docs/ru-RU/mute.md
 delete mode 100644 src/docs/ru-RU/pages.md
 delete mode 100644 src/docs/ru-RU/reaction.md
 delete mode 100644 src/docs/ru-RU/reversi-bot.md
 delete mode 100644 src/docs/ru-RU/stream.md
 delete mode 100644 src/docs/ru-RU/theme.md
 delete mode 100644 src/docs/ru-RU/timelines.md
 delete mode 100644 src/docs/th-TH/admin/disable-timelines.md
 delete mode 100644 src/docs/th-TH/admin/faq.md
 delete mode 100644 src/docs/th-TH/advanced/aiscript.md
 delete mode 100644 src/docs/th-TH/advanced/api.md
 delete mode 100644 src/docs/th-TH/advanced/create-plugin.md
 delete mode 100644 src/docs/th-TH/advanced/develop-bot.md
 delete mode 100644 src/docs/th-TH/advanced/reversi-bot.md
 delete mode 100644 src/docs/th-TH/advanced/share-page.md
 delete mode 100644 src/docs/th-TH/advanced/stream.md
 delete mode 100644 src/docs/th-TH/aiscript.md
 delete mode 100644 src/docs/th-TH/api.md
 delete mode 100644 src/docs/th-TH/create-plugin.md
 delete mode 100644 src/docs/th-TH/custom-emoji.md
 delete mode 100644 src/docs/th-TH/deck.md
 delete mode 100644 src/docs/th-TH/features/antenna.md
 delete mode 100644 src/docs/th-TH/features/custom-emoji.md
 delete mode 100644 src/docs/th-TH/features/deck.md
 delete mode 100644 src/docs/th-TH/features/drive.md
 delete mode 100644 src/docs/th-TH/features/favorite.md
 delete mode 100644 src/docs/th-TH/features/follow.md
 delete mode 100644 src/docs/th-TH/features/keyboard-shortcut.md
 delete mode 100644 src/docs/th-TH/features/mfm.md
 delete mode 100644 src/docs/th-TH/features/mute-and-block.md
 delete mode 100644 src/docs/th-TH/features/mute.md
 delete mode 100644 src/docs/th-TH/features/note.md
 delete mode 100644 src/docs/th-TH/features/pages.md
 delete mode 100644 src/docs/th-TH/features/reaction.md
 delete mode 100644 src/docs/th-TH/features/silence.md
 delete mode 100644 src/docs/th-TH/features/theme.md
 delete mode 100644 src/docs/th-TH/features/timeline.md
 delete mode 100644 src/docs/th-TH/features/widgets.md
 delete mode 100644 src/docs/th-TH/features/word-mute.md
 delete mode 100644 src/docs/th-TH/follow.md
 delete mode 100644 src/docs/th-TH/general/apps.md
 delete mode 100644 src/docs/th-TH/general/changelog.md
 delete mode 100644 src/docs/th-TH/general/faq.md
 delete mode 100644 src/docs/th-TH/general/glossary.md
 delete mode 100644 src/docs/th-TH/general/links.md
 delete mode 100644 src/docs/th-TH/general/misskey.md
 delete mode 100644 src/docs/th-TH/general/report-issue.md
 delete mode 100644 src/docs/th-TH/general/troubleshooting.md
 delete mode 100644 src/docs/th-TH/keyboard-shortcut.md
 delete mode 100644 src/docs/th-TH/mfm.md
 delete mode 100644 src/docs/th-TH/mute.md
 delete mode 100644 src/docs/th-TH/pages.md
 delete mode 100644 src/docs/th-TH/reaction.md
 delete mode 100644 src/docs/th-TH/reversi-bot.md
 delete mode 100644 src/docs/th-TH/stream.md
 delete mode 100644 src/docs/th-TH/theme.md
 delete mode 100644 src/docs/th-TH/timelines.md
 delete mode 100644 src/docs/ug-CN/admin/disable-timelines.md
 delete mode 100644 src/docs/ug-CN/admin/faq.md
 delete mode 100644 src/docs/ug-CN/advanced/aiscript.md
 delete mode 100644 src/docs/ug-CN/advanced/api.md
 delete mode 100644 src/docs/ug-CN/advanced/create-plugin.md
 delete mode 100644 src/docs/ug-CN/advanced/develop-bot.md
 delete mode 100644 src/docs/ug-CN/advanced/reversi-bot.md
 delete mode 100644 src/docs/ug-CN/advanced/share-page.md
 delete mode 100644 src/docs/ug-CN/advanced/stream.md
 delete mode 100644 src/docs/ug-CN/aiscript.md
 delete mode 100644 src/docs/ug-CN/api.md
 delete mode 100644 src/docs/ug-CN/create-plugin.md
 delete mode 100644 src/docs/ug-CN/custom-emoji.md
 delete mode 100644 src/docs/ug-CN/deck.md
 delete mode 100644 src/docs/ug-CN/features/antenna.md
 delete mode 100644 src/docs/ug-CN/features/custom-emoji.md
 delete mode 100644 src/docs/ug-CN/features/deck.md
 delete mode 100644 src/docs/ug-CN/features/drive.md
 delete mode 100644 src/docs/ug-CN/features/favorite.md
 delete mode 100644 src/docs/ug-CN/features/follow.md
 delete mode 100644 src/docs/ug-CN/features/keyboard-shortcut.md
 delete mode 100644 src/docs/ug-CN/features/mfm.md
 delete mode 100644 src/docs/ug-CN/features/mute-and-block.md
 delete mode 100644 src/docs/ug-CN/features/mute.md
 delete mode 100644 src/docs/ug-CN/features/note.md
 delete mode 100644 src/docs/ug-CN/features/pages.md
 delete mode 100644 src/docs/ug-CN/features/reaction.md
 delete mode 100644 src/docs/ug-CN/features/silence.md
 delete mode 100644 src/docs/ug-CN/features/theme.md
 delete mode 100644 src/docs/ug-CN/features/timeline.md
 delete mode 100644 src/docs/ug-CN/features/widgets.md
 delete mode 100644 src/docs/ug-CN/features/word-mute.md
 delete mode 100644 src/docs/ug-CN/follow.md
 delete mode 100644 src/docs/ug-CN/general/apps.md
 delete mode 100644 src/docs/ug-CN/general/changelog.md
 delete mode 100644 src/docs/ug-CN/general/faq.md
 delete mode 100644 src/docs/ug-CN/general/glossary.md
 delete mode 100644 src/docs/ug-CN/general/links.md
 delete mode 100644 src/docs/ug-CN/general/misskey.md
 delete mode 100644 src/docs/ug-CN/general/report-issue.md
 delete mode 100644 src/docs/ug-CN/general/troubleshooting.md
 delete mode 100644 src/docs/ug-CN/keyboard-shortcut.md
 delete mode 100644 src/docs/ug-CN/mfm.md
 delete mode 100644 src/docs/ug-CN/mute.md
 delete mode 100644 src/docs/ug-CN/pages.md
 delete mode 100644 src/docs/ug-CN/reaction.md
 delete mode 100644 src/docs/ug-CN/reversi-bot.md
 delete mode 100644 src/docs/ug-CN/stream.md
 delete mode 100644 src/docs/ug-CN/theme.md
 delete mode 100644 src/docs/ug-CN/timelines.md
 delete mode 100644 src/docs/uk-UA/admin/disable-timelines.md
 delete mode 100644 src/docs/uk-UA/admin/faq.md
 delete mode 100644 src/docs/uk-UA/advanced/aiscript.md
 delete mode 100644 src/docs/uk-UA/advanced/api.md
 delete mode 100644 src/docs/uk-UA/advanced/create-plugin.md
 delete mode 100644 src/docs/uk-UA/advanced/develop-bot.md
 delete mode 100644 src/docs/uk-UA/advanced/reversi-bot.md
 delete mode 100644 src/docs/uk-UA/advanced/share-page.md
 delete mode 100644 src/docs/uk-UA/advanced/stream.md
 delete mode 100644 src/docs/uk-UA/aiscript.md
 delete mode 100644 src/docs/uk-UA/api.md
 delete mode 100644 src/docs/uk-UA/create-plugin.md
 delete mode 100644 src/docs/uk-UA/custom-emoji.md
 delete mode 100644 src/docs/uk-UA/deck.md
 delete mode 100644 src/docs/uk-UA/features/antenna.md
 delete mode 100644 src/docs/uk-UA/features/custom-emoji.md
 delete mode 100644 src/docs/uk-UA/features/deck.md
 delete mode 100644 src/docs/uk-UA/features/drive.md
 delete mode 100644 src/docs/uk-UA/features/favorite.md
 delete mode 100644 src/docs/uk-UA/features/follow.md
 delete mode 100644 src/docs/uk-UA/features/keyboard-shortcut.md
 delete mode 100644 src/docs/uk-UA/features/mfm.md
 delete mode 100644 src/docs/uk-UA/features/mute-and-block.md
 delete mode 100644 src/docs/uk-UA/features/mute.md
 delete mode 100644 src/docs/uk-UA/features/note.md
 delete mode 100644 src/docs/uk-UA/features/pages.md
 delete mode 100644 src/docs/uk-UA/features/reaction.md
 delete mode 100644 src/docs/uk-UA/features/silence.md
 delete mode 100644 src/docs/uk-UA/features/theme.md
 delete mode 100644 src/docs/uk-UA/features/timeline.md
 delete mode 100644 src/docs/uk-UA/features/widgets.md
 delete mode 100644 src/docs/uk-UA/features/word-mute.md
 delete mode 100644 src/docs/uk-UA/follow.md
 delete mode 100644 src/docs/uk-UA/general/apps.md
 delete mode 100644 src/docs/uk-UA/general/changelog.md
 delete mode 100644 src/docs/uk-UA/general/faq.md
 delete mode 100644 src/docs/uk-UA/general/glossary.md
 delete mode 100644 src/docs/uk-UA/general/links.md
 delete mode 100644 src/docs/uk-UA/general/misskey.md
 delete mode 100644 src/docs/uk-UA/general/report-issue.md
 delete mode 100644 src/docs/uk-UA/general/troubleshooting.md
 delete mode 100644 src/docs/uk-UA/keyboard-shortcut.md
 delete mode 100644 src/docs/uk-UA/mfm.md
 delete mode 100644 src/docs/uk-UA/mute.md
 delete mode 100644 src/docs/uk-UA/pages.md
 delete mode 100644 src/docs/uk-UA/reaction.md
 delete mode 100644 src/docs/uk-UA/reversi-bot.md
 delete mode 100644 src/docs/uk-UA/stream.md
 delete mode 100644 src/docs/uk-UA/theme.md
 delete mode 100644 src/docs/uk-UA/timelines.md
 delete mode 100644 src/docs/zh-CN/admin/disable-timelines.md
 delete mode 100644 src/docs/zh-CN/admin/faq.md
 delete mode 100644 src/docs/zh-CN/advanced/aiscript.md
 delete mode 100644 src/docs/zh-CN/advanced/api.md
 delete mode 100644 src/docs/zh-CN/advanced/create-plugin.md
 delete mode 100644 src/docs/zh-CN/advanced/develop-bot.md
 delete mode 100644 src/docs/zh-CN/advanced/reversi-bot.md
 delete mode 100644 src/docs/zh-CN/advanced/share-page.md
 delete mode 100644 src/docs/zh-CN/advanced/stream.md
 delete mode 100644 src/docs/zh-CN/aiscript.md
 delete mode 100644 src/docs/zh-CN/api.md
 delete mode 100644 src/docs/zh-CN/create-plugin.md
 delete mode 100644 src/docs/zh-CN/custom-emoji.md
 delete mode 100644 src/docs/zh-CN/deck.md
 delete mode 100644 src/docs/zh-CN/features/antenna.md
 delete mode 100644 src/docs/zh-CN/features/custom-emoji.md
 delete mode 100644 src/docs/zh-CN/features/deck.md
 delete mode 100644 src/docs/zh-CN/features/drive.md
 delete mode 100644 src/docs/zh-CN/features/favorite.md
 delete mode 100644 src/docs/zh-CN/features/follow.md
 delete mode 100644 src/docs/zh-CN/features/keyboard-shortcut.md
 delete mode 100644 src/docs/zh-CN/features/mfm.md
 delete mode 100644 src/docs/zh-CN/features/mute-and-block.md
 delete mode 100644 src/docs/zh-CN/features/mute.md
 delete mode 100644 src/docs/zh-CN/features/note.md
 delete mode 100644 src/docs/zh-CN/features/pages.md
 delete mode 100644 src/docs/zh-CN/features/reaction.md
 delete mode 100644 src/docs/zh-CN/features/silence.md
 delete mode 100644 src/docs/zh-CN/features/theme.md
 delete mode 100644 src/docs/zh-CN/features/timeline.md
 delete mode 100644 src/docs/zh-CN/features/widgets.md
 delete mode 100644 src/docs/zh-CN/features/word-mute.md
 delete mode 100644 src/docs/zh-CN/follow.md
 delete mode 100644 src/docs/zh-CN/general/apps.md
 delete mode 100644 src/docs/zh-CN/general/changelog.md
 delete mode 100644 src/docs/zh-CN/general/faq.md
 delete mode 100644 src/docs/zh-CN/general/glossary.md
 delete mode 100644 src/docs/zh-CN/general/links.md
 delete mode 100644 src/docs/zh-CN/general/misskey.md
 delete mode 100644 src/docs/zh-CN/general/report-issue.md
 delete mode 100644 src/docs/zh-CN/general/troubleshooting.md
 delete mode 100644 src/docs/zh-CN/keyboard-shortcut.md
 delete mode 100644 src/docs/zh-CN/mfm.md
 delete mode 100644 src/docs/zh-CN/mute.md
 delete mode 100644 src/docs/zh-CN/pages.md
 delete mode 100644 src/docs/zh-CN/reaction.md
 delete mode 100644 src/docs/zh-CN/reversi-bot.md
 delete mode 100644 src/docs/zh-CN/stream.md
 delete mode 100644 src/docs/zh-CN/theme.md
 delete mode 100644 src/docs/zh-CN/timelines.md
 delete mode 100644 src/docs/zh-TW/admin/disable-timelines.md
 delete mode 100644 src/docs/zh-TW/admin/faq.md
 delete mode 100644 src/docs/zh-TW/advanced/aiscript.md
 delete mode 100644 src/docs/zh-TW/advanced/api.md
 delete mode 100644 src/docs/zh-TW/advanced/create-plugin.md
 delete mode 100644 src/docs/zh-TW/advanced/develop-bot.md
 delete mode 100644 src/docs/zh-TW/advanced/reversi-bot.md
 delete mode 100644 src/docs/zh-TW/advanced/share-page.md
 delete mode 100644 src/docs/zh-TW/advanced/stream.md
 delete mode 100644 src/docs/zh-TW/aiscript.md
 delete mode 100644 src/docs/zh-TW/api.md
 delete mode 100644 src/docs/zh-TW/create-plugin.md
 delete mode 100644 src/docs/zh-TW/custom-emoji.md
 delete mode 100644 src/docs/zh-TW/deck.md
 delete mode 100644 src/docs/zh-TW/features/antenna.md
 delete mode 100644 src/docs/zh-TW/features/custom-emoji.md
 delete mode 100644 src/docs/zh-TW/features/deck.md
 delete mode 100644 src/docs/zh-TW/features/drive.md
 delete mode 100644 src/docs/zh-TW/features/favorite.md
 delete mode 100644 src/docs/zh-TW/features/follow.md
 delete mode 100644 src/docs/zh-TW/features/keyboard-shortcut.md
 delete mode 100644 src/docs/zh-TW/features/mfm.md
 delete mode 100644 src/docs/zh-TW/features/mute-and-block.md
 delete mode 100644 src/docs/zh-TW/features/mute.md
 delete mode 100644 src/docs/zh-TW/features/note.md
 delete mode 100644 src/docs/zh-TW/features/pages.md
 delete mode 100644 src/docs/zh-TW/features/reaction.md
 delete mode 100644 src/docs/zh-TW/features/silence.md
 delete mode 100644 src/docs/zh-TW/features/theme.md
 delete mode 100644 src/docs/zh-TW/features/timeline.md
 delete mode 100644 src/docs/zh-TW/features/widgets.md
 delete mode 100644 src/docs/zh-TW/features/word-mute.md
 delete mode 100644 src/docs/zh-TW/follow.md
 delete mode 100644 src/docs/zh-TW/general/apps.md
 delete mode 100644 src/docs/zh-TW/general/changelog.md
 delete mode 100644 src/docs/zh-TW/general/faq.md
 delete mode 100644 src/docs/zh-TW/general/glossary.md
 delete mode 100644 src/docs/zh-TW/general/links.md
 delete mode 100644 src/docs/zh-TW/general/misskey.md
 delete mode 100644 src/docs/zh-TW/general/report-issue.md
 delete mode 100644 src/docs/zh-TW/general/troubleshooting.md
 delete mode 100644 src/docs/zh-TW/keyboard-shortcut.md
 delete mode 100644 src/docs/zh-TW/mfm.md
 delete mode 100644 src/docs/zh-TW/mute.md
 delete mode 100644 src/docs/zh-TW/pages.md
 delete mode 100644 src/docs/zh-TW/reaction.md
 delete mode 100644 src/docs/zh-TW/reversi-bot.md
 delete mode 100644 src/docs/zh-TW/stream.md
 delete mode 100644 src/docs/zh-TW/theme.md
 delete mode 100644 src/docs/zh-TW/timelines.md

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 76267ab30e..3b21ad3a1c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -49,10 +49,6 @@ If your language is not listed in Crowdin, please open an issue.
 
 ![Crowdin](https://d322cqt584bo4o.cloudfront.net/misskey/localized.svg)
 
-## Documentation
-* Documents for instance admins are located in [`/docs`](/docs).
-* Documents for end users are located in [`/src/docs`](/src/docs).
-
 ## Testing
 - Test codes are located in [`/test`](/test).
 
diff --git a/crowdin.yml b/crowdin.yml
index 2d2cd5a49d..774ddc7a63 100644
--- a/crowdin.yml
+++ b/crowdin.yml
@@ -2,6 +2,3 @@ files:
   - source: /locales/ja-JP.yml
     translation: /locales/%locale%.yml
     update_option: update_as_unapproved
-  - source: /src/docs/ja-JP/**/*.md
-    translation: /src/docs/%locale%/**/%original_file_name%
-    update_option: update_as_unapproved
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index 1326369f83..d22f384f34 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -816,14 +816,6 @@ _accountDelete:
   started: "削除処理が開始されました。"
   inProgress: "削除が進行中"
 
-_docs: 
-  continueReading: "続きを読む"
-  features: "機能"
-  generalTopics: "一般的なトピック"
-  advancedTopics: "高度なトピック"
-  admin: "管理"
-  translateWarn: "このドキュメントは翻訳されたものです。オリジナルとは内容が異なる場合があります。"
-
 _ad:
   back: "戻る"
   reduceFrequencyOfThisAd: "この広告の表示頻度を下げる"
diff --git a/package.json b/package.json
index 8687223923..d61001e536 100644
--- a/package.json
+++ b/package.json
@@ -71,7 +71,6 @@
 		"@types/koa__cors": "3.0.3",
 		"@types/koa__multer": "2.0.4",
 		"@types/koa__router": "8.0.8",
-		"@types/markdown-it": "12.2.3",
 		"@types/matter-js": "0.17.6",
 		"@types/mocha": "8.2.3",
 		"@types/node": "16.11.4",
@@ -169,8 +168,6 @@
 		"koa-slow": "2.1.0",
 		"koa-views": "7.0.1",
 		"langmap": "0.0.16",
-		"markdown-it": "12.2.0",
-		"markdown-it-anchor": "7.1.0",
 		"matter-js": "0.17.1",
 		"mfm-js": "0.20.0",
 		"misskey-js": "0.0.8",
diff --git a/src/client/components/launch-pad.vue b/src/client/components/launch-pad.vue
index 6f97d4d3aa..9da62f1e0b 100644
--- a/src/client/components/launch-pad.vue
+++ b/src/client/components/launch-pad.vue
@@ -16,10 +16,10 @@
 			
 		
 		
- +
{{ $ts.help }}
-
+
{{ $t('aboutX', { x: instanceName }) }}
diff --git a/src/client/components/updated.vue b/src/client/components/updated.vue index 2f92f743e6..9e5b24acdb 100644 --- a/src/client/components/updated.vue +++ b/src/client/components/updated.vue @@ -30,7 +30,7 @@ export default defineComponent({ methods: { whatIsNew() { this.$refs.modal.close(); - this.$router.push('/docs/general/changelog'); + window.open(`https://misskey-hub.net/docs/releases.html#_${version.replace(/\./g, '-')}`, '_blank'); } } }); diff --git a/src/client/pages/about-misskey.vue b/src/client/pages/about-misskey.vue index d2c0ec0550..decee3a0f0 100644 --- a/src/client/pages/about-misskey.vue +++ b/src/client/pages/about-misskey.vue @@ -11,7 +11,7 @@
- {{ $ts._aboutMisskey.about }}
{{ $ts.learnMore }} + {{ $ts._aboutMisskey.about }}
{{ $ts.learnMore }}
diff --git a/src/client/pages/doc.vue b/src/client/pages/doc.vue deleted file mode 100644 index 500d0340b7..0000000000 --- a/src/client/pages/doc.vue +++ /dev/null @@ -1,240 +0,0 @@ - - - - - diff --git a/src/client/pages/docs.vue b/src/client/pages/docs.vue deleted file mode 100644 index 629dc2be53..0000000000 --- a/src/client/pages/docs.vue +++ /dev/null @@ -1,152 +0,0 @@ - - - - - diff --git a/src/client/pages/share.vue b/src/client/pages/share.vue index 70a9661dd0..cb7347fae6 100644 --- a/src/client/pages/share.vue +++ b/src/client/pages/share.vue @@ -23,7 +23,7 @@ diff --git a/src/client/components/reaction-tooltip.vue b/src/client/components/reaction-tooltip.vue new file mode 100644 index 0000000000..93143cbe81 --- /dev/null +++ b/src/client/components/reaction-tooltip.vue @@ -0,0 +1,51 @@ + + + + + -- 2.43.0 From c5eb3021c04286f2e0c9aab84e872da7c9e8c0d3 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 8 Nov 2021 03:43:14 +0900 Subject: [PATCH 22/69] :art: --- src/client/components/post-form.vue | 2 +- src/client/style.scss | 2 +- src/client/ui/chat/post-form.vue | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue index 816a69e731..90df78895c 100644 --- a/src/client/components/post-form.vue +++ b/src/client/components/post-form.vue @@ -869,7 +869,7 @@ export default defineComponent({ color: var(--fg); font-family: inherit; - &:focus-visible { + &:focus { outline: none; } diff --git a/src/client/style.scss b/src/client/style.scss index d77cdacf7b..951d5a14f3 100644 --- a/src/client/style.scss +++ b/src/client/style.scss @@ -480,7 +480,7 @@ hr { padding: 5px; } -.prism-editor__textarea:focus-visible { +.prism-editor__textarea:focus { outline: none; } diff --git a/src/client/ui/chat/post-form.vue b/src/client/ui/chat/post-form.vue index 64b8d08cbc..e1e56dee35 100644 --- a/src/client/ui/chat/post-form.vue +++ b/src/client/ui/chat/post-form.vue @@ -679,7 +679,7 @@ export default defineComponent({ color: var(--fg); font-family: inherit; - &:focus-visible { + &:focus { outline: none; } -- 2.43.0 From 037837b551954b7a3218328ad2aed6ccb4bddce7 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 11 Nov 2021 19:41:33 +0900 Subject: [PATCH 23/69] update deps --- package.json | 38 ++-- yarn.lock | 602 ++++++++++++++++++++++++--------------------------- 2 files changed, 305 insertions(+), 335 deletions(-) diff --git a/package.json b/package.json index be1496a17d..1b0e43e1c3 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "@types/koa__router": "8.0.8", "@types/matter-js": "0.17.6", "@types/mocha": "8.2.3", - "@types/node": "16.11.4", + "@types/node": "16.11.7", "@types/node-fetch": "2.5.12", "@types/nodemailer": "6.4.4", "@types/nprogress": "0.2.0", @@ -91,7 +91,7 @@ "@types/request-stats": "3.0.0", "@types/rimraf": "3.0.2", "@types/seedrandom": "2.4.28", - "@types/sharp": "0.29.2", + "@types/sharp": "0.29.3", "@types/sinonjs__fake-timers": "6.0.4", "@types/speakeasy": "2.0.6", "@types/throttle-debounce": "2.1.0", @@ -104,7 +104,7 @@ "@types/websocket": "1.0.4", "@types/ws": "8.2.0", "@typescript-eslint/parser": "5.1.0", - "@vue/compiler-sfc": "3.2.20", + "@vue/compiler-sfc": "3.2.21", "abort-controller": "3.0.0", "autobind-decorator": "2.4.0", "autosize": "4.0.4", @@ -112,11 +112,11 @@ "aws-sdk": "2.1013.0", "bcryptjs": "2.4.3", "blurhash": "1.1.4", - "broadcast-channel": "4.2.0", - "bull": "3.29.3", - "cacheable-lookup": "6.0.3", + "broadcast-channel": "4.5.0", + "bull": "4.1.0", + "cacheable-lookup": "6.0.4", "cafy": "15.2.1", - "cbor": "8.0.2", + "cbor": "8.1.0", "chalk": "4.1.2", "chart.js": "3.6.0", "chartjs-adapter-date-fns": "2.0.0", @@ -126,14 +126,14 @@ "concurrently": "6.3.0", "content-disposition": "0.5.3", "crc-32": "1.2.0", - "css-loader": "6.4.0", - "cssnano": "5.0.8", + "css-loader": "6.5.1", + "cssnano": "5.0.10", "date-fns": "2.25.0", "dateformat": "4.5.1", "deep-email-validator": "0.1.18", "escape-regexp": "0.0.1", - "eslint": "8.1.0", - "eslint-plugin-vue": "7.20.0", + "eslint": "8.2.0", + "eslint-plugin-vue": "8.0.3", "eventemitter3": "4.0.7", "feed": "4.2.2", "file-type": "16.5.3", @@ -167,7 +167,7 @@ "koa-mount": "4.0.0", "koa-send": "5.0.1", "koa-slow": "2.1.0", - "koa-views": "7.0.1", + "koa-views": "7.0.2", "langmap": "0.0.16", "matter-js": "0.17.1", "mfm-js": "0.20.0", @@ -186,7 +186,7 @@ "postcss": "8.3.11", "postcss-loader": "6.2.0", "prismjs": "1.25.0", - "private-ip": "2.3.0", + "private-ip": "2.3.3", "probe-image-size": "7.2.1", "promise-limit": "2.7.0", "pug": "3.0.2", @@ -205,8 +205,8 @@ "rimraf": "3.0.2", "rndstr": "1.0.0", "s-age": "1.1.2", - "sass": "1.43.3", - "sass-loader": "12.2.0", + "sass": "1.43.4", + "sass-loader": "12.3.0", "seedrandom": "3.0.5", "sharp": "0.29.2", "speakeasy": "2.0.0", @@ -215,7 +215,7 @@ "style-loader": "3.3.1", "summaly": "2.4.1", "syslog-pro": "1.0.0", - "systeminformation": "5.9.8", + "systeminformation": "5.9.9", "syuilo-password-strength": "0.0.1", "textarea-caret": "3.1.0", "three": "0.117.1", @@ -229,13 +229,13 @@ "tslint": "6.1.3", "tslint-sonarts": "1.9.0", "twemoji-parser": "13.1.0", - "typeorm": "0.2.38", + "typeorm": "0.2.39", "typescript": "4.4.4", "ulid": "2.3.0", "uuid": "8.3.2", "v-debounce": "0.1.2", "vanilla-tilt": "1.7.2", - "vue": "3.2.20", + "vue": "3.2.21", "vue-loader": "16.7.0", "vue-prism-editor": "2.0.0-alpha.2", "vue-router": "4.0.5", @@ -243,7 +243,7 @@ "vue-svg-loader": "0.17.0-beta.2", "vuedraggable": "4.0.1", "web-push": "3.4.5", - "webpack": "5.59.1", + "webpack": "5.63.0", "webpack-cli": "4.9.1", "websocket": "1.0.34", "ws": "8.2.3", diff --git a/yarn.lock b/yarn.lock index d8409088f3..8cbe2f1bac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -33,7 +33,14 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.9.tgz#ca34cb95e1c2dd126863a84465ae8ef66114be99" integrity sha512-nEUfRiARCcaVo3ny3ZQjURjHQZUo/JkEw7rLlSZy/psWGnvwXFtPcr6jb7Yb41DVW5LTe6KRq9LGleRNsg1Frw== -"@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2": +"@babel/runtime@^7.16.0": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5" + integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.6.2": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.13.tgz#0a21452352b02542db0ffb928ac2d3ca7cb6d66d" integrity sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw== @@ -134,10 +141,10 @@ pump "^3.0.0" secure-json-parse "^2.1.0" -"@eslint/eslintrc@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.3.tgz#41f08c597025605f672251dcc4e8be66b5ed7366" - integrity sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg== +"@eslint/eslintrc@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.4.tgz#dfe0ff7ba270848d10c5add0715e04964c034b31" + integrity sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -145,7 +152,7 @@ globals "^13.9.0" ignore "^4.0.6" import-fresh "^3.2.1" - js-yaml "^3.13.1" + js-yaml "^4.1.0" minimatch "^3.0.4" strip-json-comments "^3.1.1" @@ -400,10 +407,10 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== -"@trysound/sax@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" - integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== "@tsconfig/node10@^1.0.7": version "1.0.7" @@ -852,10 +859,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.6.2.tgz#331b7b9f8621c638284787c5559423822fdffc50" integrity sha512-LSw8TZt12ZudbpHc6EkIyDM3nHVWKYrAvGy6EAJfNfjusbwnThqjqxUKKRwuV3iWYeW/LYMzNgaq3MaLffQ2xA== -"@types/node@16.11.4": - version "16.11.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.4.tgz#90771124822d6663814f7c1c9b45a6654d8fd964" - integrity sha512-TMgXmy0v2xWyuCSCJM6NCna2snndD8yvQF67J29ipdzMcsPa9u+o0tjF5+EQNdhcuZplYuouYqpc4zcd5I6amQ== +"@types/node@16.11.7": + version "16.11.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.7.tgz#36820945061326978c42a01e56b61cd223dfdc42" + integrity sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw== "@types/node@^14.11.8", "@types/node@^14.14.31", "@types/node@^14.14.41": version "14.17.9" @@ -1008,10 +1015,10 @@ "@types/express-serve-static-core" "*" "@types/mime" "*" -"@types/sharp@0.29.2": - version "0.29.2" - resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.29.2.tgz#b4e932e982e258d1013236c8b4bcc14f9883c9a3" - integrity sha512-tIbMvtPa8kMyFMKNhpsPT1HO3CgXLuiCAA8bxHAGAZLyALpYvYc4hUu3pu0+3oExQA5LwvHrWp+OilgXCYVQgg== +"@types/sharp@0.29.3": + version "0.29.3" + resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.29.3.tgz#54ceb81b68bb99a0e62db2b52f4fb0bea84878ac" + integrity sha512-83Xp05eK2hvfNnmKLr2Fz0C2A0jrr2TnSLqKRbkLTYuAu+Erj6mKQLoEMGafE73Om8p3q3ryZxtHFM/7hy4Adg== dependencies: "@types/node" "*" @@ -1228,95 +1235,95 @@ resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== -"@vue/compiler-core@3.2.20": - version "3.2.20" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.20.tgz#af5a3c5237818835b0d0be837eb5885a8d21c160" - integrity sha512-vcEXlKXoPwBXFP5aUTHN9GTZaDfwCofa9Yu9bbW2C5O/QSa9Esdt7OG4+0RRd3EHEMxUvEdj4RZrd/KpQeiJbA== +"@vue/compiler-core@3.2.21": + version "3.2.21" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.21.tgz#26566c32b2ad838199d471ef5df620a83846f24e" + integrity sha512-NhhiQZNG71KNq1h5pMW/fAXdTF7lJRaSI7LDm2edhHXVz1ROMICo8SreUmQnSf4Fet0UPBVqJ988eF4+936iDQ== dependencies: "@babel/parser" "^7.15.0" - "@vue/shared" "3.2.20" + "@vue/shared" "3.2.21" estree-walker "^2.0.2" source-map "^0.6.1" -"@vue/compiler-dom@3.2.20": - version "3.2.20" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.20.tgz#8e0ef354449c0faf41519b00bfc2045eae01dcb5" - integrity sha512-QnI77ec/JtV7R0YBbcVayYTDCRcI9OCbxiUQK6izVyqQO0658n0zQuoNwe+bYgtqnvGAIqTR3FShTd5y4oOjdg== +"@vue/compiler-dom@3.2.21": + version "3.2.21" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.21.tgz#d6f6c85364ef8888f9c4e9122bfba11e78fb398c" + integrity sha512-gsJD3DpYZSYquiA7UIPsMDSlAooYWDvHPq9VRsqzJEk2PZtFvLvHPb4aaMD8Ufd62xzYn32cnnkzsEOJhyGilA== dependencies: - "@vue/compiler-core" "3.2.20" - "@vue/shared" "3.2.20" + "@vue/compiler-core" "3.2.21" + "@vue/shared" "3.2.21" -"@vue/compiler-sfc@3.2.20": - version "3.2.20" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.20.tgz#2d7668e76f066c566dd7c09c15c9acce4e876e0a" - integrity sha512-03aZo+6tQKiFLfunHKSPZvdK4Jsn/ftRCyaro8AQIWkuxJbvSosbKK6HTTn+D2c3nPScG155akJoxKENw7rftQ== +"@vue/compiler-sfc@3.2.21": + version "3.2.21" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.21.tgz#42639ee49e725afb7d8f1d1940e75dc17a56002c" + integrity sha512-+yDlUSebKpz/ovxM2vLRRx7w/gVfY767pOfYTgbIhAs+ogvIV2BsIt4fpxlThnlCNChJ+yE0ERUNoROv2kEGEQ== dependencies: "@babel/parser" "^7.15.0" - "@vue/compiler-core" "3.2.20" - "@vue/compiler-dom" "3.2.20" - "@vue/compiler-ssr" "3.2.20" - "@vue/ref-transform" "3.2.20" - "@vue/shared" "3.2.20" + "@vue/compiler-core" "3.2.21" + "@vue/compiler-dom" "3.2.21" + "@vue/compiler-ssr" "3.2.21" + "@vue/ref-transform" "3.2.21" + "@vue/shared" "3.2.21" estree-walker "^2.0.2" magic-string "^0.25.7" postcss "^8.1.10" source-map "^0.6.1" -"@vue/compiler-ssr@3.2.20": - version "3.2.20" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.20.tgz#9cceb6261d9932cb5568202610c1c28f86c5e521" - integrity sha512-rzzVVYivm+EjbfiGQvNeyiYZWzr6Hkej97RZLZvcumacQlnKv9176Xo9rRyeWwFbBlxmtNdrVMslRXtipMXk2w== +"@vue/compiler-ssr@3.2.21": + version "3.2.21" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.21.tgz#37d124f89e8adef9fd56b85775de4b5310a0436e" + integrity sha512-eU+A0iWYy+1zAo2CRIJ0zSVlv1iuGAIbNRCnllSJ31pV1lX3jypJYzGbJlSRAbB7VP6E+tYveVT1Oq8JKewa3g== dependencies: - "@vue/compiler-dom" "3.2.20" - "@vue/shared" "3.2.20" + "@vue/compiler-dom" "3.2.21" + "@vue/shared" "3.2.21" -"@vue/reactivity@3.2.20": - version "3.2.20" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.20.tgz#81fe1c368e7f20bc0ec1dec1045bbee253582de8" - integrity sha512-nSmoLojUTk+H8HNTAkrUduB4+yIUBK2HPihJo2uXVSH4Spry6oqN6lFzE5zpLK+F27Sja+UqR9R1+/kIOsHV5w== +"@vue/reactivity@3.2.21": + version "3.2.21" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.21.tgz#073ad144192ed78a07e151e95a3baa515e4099a2" + integrity sha512-7C57zFm/5E3SSTUhVuYj1InDwuJ+GIVQ/z+H43C9sST85gIThGXVhksl1yWTAadf8Yz4T5lSbqi5Ds8U/ueWcw== dependencies: - "@vue/shared" "3.2.20" + "@vue/shared" "3.2.21" -"@vue/ref-transform@3.2.20": - version "3.2.20" - resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.20.tgz#2a59ec90caf8e5c7336776a0900bff0a8b81c090" - integrity sha512-Y42d3PGlYZ1lXcF3dbd3+qU/C/a3wYEZ949fyOI5ptzkjDWlkfU6vn74fmOjsLjEcjs10BXK2qO99FqQIK2r1Q== +"@vue/ref-transform@3.2.21": + version "3.2.21" + resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.21.tgz#b0c554c9f640c3f005f77e676066aa0faba90984" + integrity sha512-uiEWWBsrGeun9O7dQExYWzXO3rHm/YdtFNXDVqCSoPypzOVxWxdiL+8hHeWzxMB58fVuV2sT80aUtIVyaBVZgQ== dependencies: "@babel/parser" "^7.15.0" - "@vue/compiler-core" "3.2.20" - "@vue/shared" "3.2.20" + "@vue/compiler-core" "3.2.21" + "@vue/shared" "3.2.21" estree-walker "^2.0.2" magic-string "^0.25.7" -"@vue/runtime-core@3.2.20": - version "3.2.20" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.20.tgz#8f63e956a3f88fb772541443c45a7701211012cb" - integrity sha512-d1xfUGhZPfiZzAN7SatStD4vRtT8deJSXib2+Cz3x0brjMWKxe32asQc154FF1E2fFgMCHtnfd4A90bQEzV4GQ== +"@vue/runtime-core@3.2.21": + version "3.2.21" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.21.tgz#e12dac8c3893b7aebfc37e32066718d8aa686ac5" + integrity sha512-7oOxKaU0D2IunOAMOOHZgJVrHg63xwng8BZx3fbgmakqEIMwHhQcp+5GV1sOg/sWW7R4UhaRDIUCukO2GRVK2Q== dependencies: - "@vue/reactivity" "3.2.20" - "@vue/shared" "3.2.20" + "@vue/reactivity" "3.2.21" + "@vue/shared" "3.2.21" -"@vue/runtime-dom@3.2.20": - version "3.2.20" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.20.tgz#8aa56ae6c30f9cd4a71ca0e9ec3c4bdc67148d15" - integrity sha512-4TCvZMLhESWCFHFYgqN4QmMA/onnINAlUovhopjlS8ST27G1A8Z0tyxPzLoXLa+b5JrOpbMPheEMPvdKExTJig== +"@vue/runtime-dom@3.2.21": + version "3.2.21" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.21.tgz#33dd15bc85281e773177a30dc6931c294bd77aa1" + integrity sha512-apBdriD6QsI4ywbllY8kjr9/0scGuStDuvLbJULPQkFPtHzntd51bP5PQTQVAEIc9kwnTozmj6x6ZdX/cwo7xA== dependencies: - "@vue/runtime-core" "3.2.20" - "@vue/shared" "3.2.20" + "@vue/runtime-core" "3.2.21" + "@vue/shared" "3.2.21" csstype "^2.6.8" -"@vue/server-renderer@3.2.20": - version "3.2.20" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.20.tgz#705e07ae9425132b2b6227d308a51a13f4d4ec81" - integrity sha512-viIbZGep9XabnrRcaxWIi00cOh1x21QYm2upIL5W0zqzTJ54VdTzpI+zi1osNp+VfRQDTHpV2U7H3Kn4ljYJvg== +"@vue/server-renderer@3.2.21": + version "3.2.21" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.21.tgz#887d0a44de76f72313cff2686a24c0315231d634" + integrity sha512-QBgYqVgI7XCSBCqGa4LduV9vpfQFdZBOodFmq5Txk5W/v1KrJ1LoOh2Q0RHiRgtoK/UR9uyvRVcYqOmwHkZNEg== dependencies: - "@vue/compiler-ssr" "3.2.20" - "@vue/shared" "3.2.20" + "@vue/compiler-ssr" "3.2.21" + "@vue/shared" "3.2.21" -"@vue/shared@3.2.20": - version "3.2.20" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.20.tgz#53746961f731a8ea666e3316271e944238dc31db" - integrity sha512-FbpX+hD5BvXCQerEYO7jtAGHlhAkhTQ4KIV73kmLWNlawWhTiVuQxizgVb0BOkX5oG9cIRZ42EG++d/k/Efp0w== +"@vue/shared@3.2.21": + version "3.2.21" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.21.tgz#4cd80c0e62cf65a7adab2449e86b6f0cb33a130b" + integrity sha512-5EQmIPK6gw4UVYUbM959B0uPsJ58+xoMESCZs3N89XyvJ9e+fX4pqEPrOGV8OroIk3SbEvJcC+eYc8BH9JQrHA== "@webassemblyjs/ast@1.11.0": version "1.11.0" @@ -1625,11 +1632,6 @@ acorn-import-assertions@^1.7.6: resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz#580e3ffcae6770eebeec76c3b9723201e9d01f78" integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA== -acorn-jsx@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" - integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== - acorn-jsx@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" @@ -1760,6 +1762,11 @@ ansi-regex@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -2257,19 +2264,18 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -broadcast-channel@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/broadcast-channel/-/broadcast-channel-4.2.0.tgz#9ca93a23a31036266c2c9b0f8f55bd21594b8f82" - integrity sha512-XX9yNnIy/v2T+HR5EKIH7ziM2mYTefsrzZ2lkCmFZxwCDG7Ns7HLIooUXA114sCeFRJ4MEXEgdMapxfPDh9Xkg== +broadcast-channel@4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/broadcast-channel/-/broadcast-channel-4.5.0.tgz#d4717c493e219908fcb7f2f9078fe0baf95b77c1" + integrity sha512-jp+VPlQ1HyR0CM3uIYUrdpXupBvhTMFRkjR6mEmt5W4HaGDPFEzrO2Jqvi2PZ6zCC4zwLeco7CC5EUJPrVH8Tw== dependencies: - "@babel/runtime" "^7.7.2" + "@babel/runtime" "^7.16.0" detect-node "^2.1.0" - js-sha3 "0.8.0" microseconds "0.2.0" nano-time "1.0.0" oblivious-set "1.0.0" rimraf "3.0.2" - unload "2.2.0" + unload "2.3.1" browser-process-hrtime@^1.0.0: version "1.0.0" @@ -2414,10 +2420,10 @@ builtin-modules@^1.1.1: resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= -bull@3.29.3: - version "3.29.3" - resolved "https://registry.yarnpkg.com/bull/-/bull-3.29.3.tgz#5b0059b172685b0d6f011d56214e1898ff3a7a0b" - integrity sha512-MOqV1dKLy1YQgP9m3lFolyMxaU+1+o4afzYYf0H4wNM+x/S0I1QPQfkgGlLiH00EyFrvSmeubeCYFP47rTfpjg== +bull@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bull/-/bull-4.1.0.tgz#ff8f628694e7dbbdf89b6a6860a1f33e990527fd" + integrity sha512-rQcLuAmzZIv1dHJO/yKrWu497xcTxMpYeTEBfpStrJFZ1UZpBSGHSx+defbtFVeGEeY8Pn0aMGRvRtldUBVUyQ== dependencies: cron-parser "^2.13.0" debuglog "^1.0.0" @@ -2489,10 +2495,10 @@ cache-content-type@^1.0.0: mime-types "^2.1.18" ylru "^1.2.0" -cacheable-lookup@6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.0.3.tgz#61d6171f6818fab230666b11f7cf3f5a48df7818" - integrity sha512-xdwIK7MEC8NpRIt0dx2PL7pTRKaSmDb+zirzuM+cJTRWDfwfVu4XyASkODIU4XbjsyFHKo/tDOPSs64Z3yfFWg== +cacheable-lookup@6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz#65c0e51721bb7f9f2cb513aed6da4a1b93ad7dc8" + integrity sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A== cacheable-lookup@^5.0.3: version "5.0.3" @@ -2605,12 +2611,12 @@ cbor@*: "@cto.af/textdecoder" "^0.0.0" nofilter "^2.0.3" -cbor@8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.0.2.tgz#d0f5088423437efcc160e9304bd0576f45d06abb" - integrity sha512-H5WTjQYgyHQI0VrCmbyQBOPy1353MjmUi/r3DbPib4U13vuyqm7es9Mfpe8G58bN/mCdRlJWkiCrPl1uM1wAlg== +cbor@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" + integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== dependencies: - nofilter "^3.0.3" + nofilter "^3.1.0" chalk@4.0.0: version "4.0.0" @@ -2628,7 +2634,7 @@ chalk@4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= @@ -3033,15 +3039,10 @@ color@^4.0.1: color-convert "^2.0.1" color-string "^1.6.0" -colord@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.0.1.tgz#1e7fb1f9fa1cf74f42c58cb9c20320bab8435aa0" - integrity sha512-vm5YpaWamD0Ov6TSG0GGmUIwstrWcfKQV/h2CmbR7PbNu41+qdB5PW9lpzhjedrpm08uuYvcXi0Oel1RLZIJuA== - -colord@^2.6: - version "2.7.0" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.7.0.tgz#706ea36fe0cd651b585eb142fe64b6480185270e" - integrity sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q== +colord@^2.9.1: + version "2.9.1" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.1.tgz#c961ea0efeb57c9f0f4834458f26cb9cc4a3f90e" + integrity sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw== colorette@^1.2.0, colorette@^1.2.1, colorette@^1.2.2: version "1.2.2" @@ -3099,15 +3100,15 @@ commander@^7.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.0.0.tgz#3e2bbfd8bb6724760980988fb5b22b7ee6b71ab2" integrity sha512-ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA== -commander@^7.1.0: +commander@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== comment-json@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.1.0.tgz#09d08f0fbc4ad5eeccbac20f469adbb967dcbd2c" - integrity sha512-WEghmVYaNq9NlWbrkzQTSsya9ycLyxJxpTQfZEan6a5Jomnjw18zS3Podf8q1Zf9BvonvQd/+Z7Z39L7KKzzdQ== + version "4.1.1" + resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.1.1.tgz#49df4948704bebb1cc0ffa6910e25669b668b7c5" + integrity sha512-v8gmtPvxhBlhdRBLwdHSjGy9BgA23t9H1FctdQKyUrErPjSrJcdDMqBq9B4Irtm7w3TNYLQJNH6ARKnpyag1sA== dependencies: array-timsort "^1.0.3" core-util-is "^1.0.2" @@ -3241,11 +3242,16 @@ copy-to@^2.0.1: resolved "https://registry.yarnpkg.com/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5" integrity sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU= -core-util-is@1.0.2, core-util-is@^1.0.2, core-util-is@~1.0.0: +core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +core-util-is@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + cosmiconfig@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" @@ -3311,10 +3317,10 @@ css-declaration-sorter@^6.0.3: dependencies: timsort "^0.3.0" -css-loader@6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.4.0.tgz#01c57ea776024e18ca193428dcad3ff6b42a0130" - integrity sha512-Dlt6qfsxI/w1vU0r8qDd4BtMPxWqJeY5qQU7SmmZfvbpe6Xl18McO4GhyaMLns24Y2VNPiZwJPQ8JSbg4qvQLw== +css-loader@6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.5.1.tgz#0c43d4fbe0d97f699c91e9818cb585759091d1b1" + integrity sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ== dependencies: icss-utils "^5.1.0" postcss "^8.2.15" @@ -3340,15 +3346,15 @@ css-select@^2.0.0: domutils "^1.7.0" nth-check "^1.0.2" -css-select@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-3.1.2.tgz#d52cbdc6fee379fba97fb0d3925abbd18af2d9d8" - integrity sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== +css-select@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" + integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== dependencies: boolbase "^1.0.0" - css-what "^4.0.0" - domhandler "^4.0.0" - domutils "^2.4.3" + css-what "^5.0.0" + domhandler "^4.2.0" + domutils "^2.6.0" nth-check "^2.0.0" css-select@~1.2.0: @@ -3377,7 +3383,7 @@ css-tree@1.0.0-alpha.39: mdn-data "2.0.6" source-map "^0.6.1" -css-tree@^1.1.2: +css-tree@^1.1.2, css-tree@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== @@ -3395,34 +3401,34 @@ css-what@^3.2.1: resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw== -css-what@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" - integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== +css-what@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" + integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.4.tgz#359943bf00c5c8e05489f12dd25f3006f2c1cbd2" - integrity sha512-sPpQNDQBI3R/QsYxQvfB4mXeEcWuw0wGtKtmS5eg8wudyStYMgKOQT39G07EbW1LB56AOYrinRS9f0ig4Y3MhQ== +cssnano-preset-default@^5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.6.tgz#1bdb83be6a6b1fee6dc5e9ec2e61286bcadcc7a6" + integrity sha512-X2nDeNGBXc0486oHjT2vSj+TdeyVsxRvJUxaOH50hOM6vSDLkKd0+59YXpSZRInJ4sNtBOykS4KsPfhdrU/35w== dependencies: css-declaration-sorter "^6.0.3" cssnano-utils "^2.0.1" postcss-calc "^8.0.0" - postcss-colormin "^5.2.0" - postcss-convert-values "^5.0.1" + postcss-colormin "^5.2.1" + postcss-convert-values "^5.0.2" postcss-discard-comments "^5.0.1" postcss-discard-duplicates "^5.0.1" postcss-discard-empty "^5.0.1" postcss-discard-overridden "^5.0.1" - postcss-merge-longhand "^5.0.2" + postcss-merge-longhand "^5.0.3" postcss-merge-rules "^5.0.2" postcss-minify-font-values "^5.0.1" - postcss-minify-gradients "^5.0.2" + postcss-minify-gradients "^5.0.3" postcss-minify-params "^5.0.1" postcss-minify-selectors "^5.1.0" postcss-normalize-charset "^5.0.1" @@ -3437,7 +3443,7 @@ cssnano-preset-default@^5.1.4: postcss-ordered-values "^5.0.2" postcss-reduce-initial "^5.0.1" postcss-reduce-transforms "^5.0.1" - postcss-svgo "^5.0.2" + postcss-svgo "^5.0.3" postcss-unique-selectors "^5.0.1" cssnano-utils@^2.0.1: @@ -3445,12 +3451,12 @@ cssnano-utils@^2.0.1: resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== -cssnano@5.0.8: - version "5.0.8" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.8.tgz#39ad166256980fcc64faa08c9bb18bb5789ecfa9" - integrity sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg== +cssnano@5.0.10: + version "5.0.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.10.tgz#92207eb7c9c6dc08d318050726f9fad0adf7220b" + integrity sha512-YfNhVJJ04imffOpbPbXP2zjIoByf0m8E2c/s/HnvSvjXgzXMfgopVjAEGvxYOjkOpWuRQDg/OZFjO7WW94Ri8w== dependencies: - cssnano-preset-default "^5.1.4" + cssnano-preset-default "^5.1.6" is-resolvable "^1.1.0" lilconfig "^2.0.3" yaml "^1.10.2" @@ -3838,12 +3844,7 @@ detect-libc@^1.0.3: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - -detect-node@^2.1.0: +detect-node@2.1.0, detect-node@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== @@ -3949,13 +3950,20 @@ domhandler@^2.3.0: dependencies: domelementtype "1" -domhandler@^4.0.0, domhandler@^4.1.0: +domhandler@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.1.0.tgz#c1d8d494d5ec6db22de99e46a149c2a4d23ddd43" integrity sha512-/6/kmsGlMY4Tup/nGVutdrK9yQi4YjWVcVeoQmixpzjOUK1U7pQkvAPHBJeUxOgxF0J8f8lwCJSlCfD0V4CMGQ== dependencies: domelementtype "^2.2.0" +domhandler@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" + integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== + dependencies: + domelementtype "^2.2.0" + domutils@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" @@ -3972,14 +3980,14 @@ domutils@^1.5.1, domutils@^1.7.0: dom-serializer "0" domelementtype "1" -domutils@^2.4.3: - version "2.5.2" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.5.2.tgz#37ef8ba087dff1a17175e7092e8a042e4b050e6c" - integrity sha512-MHTthCb1zj8f1GVfRpeZUbohQf/HdBos0oX5gZcQFepOZPLLRyj6Wn7XS7EMnY7CVpwv8863u2vyE83Hfu28HQ== +domutils@^2.6.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== dependencies: dom-serializer "^1.0.1" domelementtype "^2.2.0" - domhandler "^4.1.0" + domhandler "^4.2.0" dotenv@^8.2.0: version "8.2.0" @@ -4265,15 +4273,15 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-plugin-vue@7.20.0: - version "7.20.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz#98c21885a6bfdf0713c3a92957a5afeaaeed9253" - integrity sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw== +eslint-plugin-vue@8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-8.0.3.tgz#791cc4543940319e612ea61a1d779e8c87cf749a" + integrity sha512-Rlhhy5ltzde0sRwSkqHuNePTXLMMaJ5+qsQubM4RYloYsQ8cXlnJT5MDaCzSirkGADipOHtmQXIbbPFAzUrADg== dependencies: - eslint-utils "^2.1.0" + eslint-utils "^3.0.0" natural-compare "^1.4.0" - semver "^6.3.0" - vue-eslint-parser "^7.10.0" + semver "^7.3.5" + vue-eslint-parser "^8.0.1" eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" @@ -4291,13 +4299,6 @@ eslint-scope@^6.0.0: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - eslint-utils@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" @@ -4305,11 +4306,6 @@ eslint-utils@^3.0.0: dependencies: eslint-visitor-keys "^2.0.0" -eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - eslint-visitor-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" @@ -4320,12 +4316,12 @@ eslint-visitor-keys@^3.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz#e32e99c6cdc2eb063f204eda5db67bfe58bb4186" integrity sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q== -eslint@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.1.0.tgz#00f1f7dbf4134f26588e6c9f2efe970760f64664" - integrity sha512-JZvNneArGSUsluHWJ8g8MMs3CfIEzwaLx9KyH4tZ2i+R2/rPWzL8c0zg3rHdwYVpN/1sB9gqnjHwz9HoeJpGHw== +eslint@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.2.0.tgz#44d3fb506d0f866a506d97a0fc0e90ee6d06a815" + integrity sha512-erw7XmM+CLxTOickrimJ1SiF55jiNlVSp2qqm0NuBWPtHYQCegD5ZMaW0c3i5ytPqL+SSLaCxdvQXFPLJn+ABw== dependencies: - "@eslint/eslintrc" "^1.0.3" + "@eslint/eslintrc" "^1.0.4" "@humanwhocodes/config-array" "^0.6.0" ajv "^6.10.0" chalk "^4.0.0" @@ -4359,7 +4355,7 @@ eslint@8.1.0: progress "^2.0.0" regexpp "^3.2.0" semver "^7.2.1" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" v8-compile-cache "^2.0.3" @@ -4369,15 +4365,6 @@ esm@^3.2.22: resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== -espree@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== - dependencies: - acorn "^7.1.1" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" - espree@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/espree/-/espree-9.0.0.tgz#e90a2965698228502e771c7a58489b1a9d107090" @@ -4696,11 +4683,6 @@ fetch-blob@^2.1.1: resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-2.1.2.tgz#a7805db1361bd44c1ef62bb57fb5fe8ea173ef3c" integrity sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow== -figlet@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.3.0.tgz#c49e3d92907ba13bebadc7124f76ba71f1f32ef0" - integrity sha512-f7A8aOJAfyehLJ7lQ6rEA8WJw7kOk3lfWRi5piSjkzbK5YkI5sqO8eiLHz1ehO+DM0QYB85i8VfA6XIGUbU1dg== - figures@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -5185,19 +5167,7 @@ globals@^13.9.0: dependencies: type-fest "^0.20.2" -globby@^11.0.2: - version "11.0.3" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" - integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -globby@^11.0.4: +globby@^11.0.2, globby@^11.0.4: version "11.0.4" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== @@ -6292,11 +6262,6 @@ js-levenshtein@^1.1.6: resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== -js-sha3@0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - js-stringify@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" @@ -6670,7 +6635,7 @@ koa-slow@2.1.0: lodash.isregexp "3.0.5" q "1.4.1" -koa-views@*, koa-views@7.0.1: +koa-views@*: version "7.0.1" resolved "https://registry.yarnpkg.com/koa-views/-/koa-views-7.0.1.tgz#0c8f8e65d5cd2e08249430cb83dc361e49a17a5a" integrity sha512-yS8751DXHXXDbdl/oUZd0PsgnxR0MLiguu77Eqrgu6yawE9Hi99wNKiVENb0Kfgsmvq/8px7YCI+USgxaTB1LA== @@ -6684,6 +6649,19 @@ koa-views@*, koa-views@7.0.1: pretty "^2.0.0" resolve-path "^1.4.0" +koa-views@7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/koa-views/-/koa-views-7.0.2.tgz#c96fd9e2143ef00c29dc5160c5ed639891aa723d" + integrity sha512-dvx3mdVeSVuIPEaKAoGbxLcenudvhl821xxyuRbcoA+bOJ2dvN8wlGjkLu0ZFMlkCscXZV6lzxy28rafeazI/w== + dependencies: + consolidate "^0.16.0" + debug "^4.1.0" + get-paths "0.0.7" + koa-send "^5.0.0" + mz "^2.4.0" + pretty "^2.0.0" + resolve-path "^1.4.0" + koa@2.13.1: version "2.13.1" resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.1.tgz#6275172875b27bcfe1d454356a5b6b9f5a9b1051" @@ -7636,10 +7614,10 @@ nofilter@^2.0.3: dependencies: "@cto.af/textdecoder" "^0.0.0" -nofilter@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.0.3.tgz#3ff3b142efdccb403434ccae4a0c2c835cb9b522" - integrity sha512-TN/MCrQmXQk5DyUJ8TGUq1Il8rv4fTsjddLmMopV006QP8DMkglmGgYfQKD5620vXLRXfr8iGI6ZZ4/ZWld2cQ== +nofilter@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" + integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g== nopt@^4.0.3: version "4.0.3" @@ -8067,11 +8045,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parent-require@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parent-require/-/parent-require-1.0.0.tgz#746a167638083a860b0eef6732cb27ed46c32977" - integrity sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc= - parse-filepath@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" @@ -8383,14 +8356,14 @@ postcss-colormin@^2.1.8: postcss "^5.0.13" postcss-value-parser "^3.2.3" -postcss-colormin@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.0.tgz#2b620b88c0ff19683f3349f4cf9e24ebdafb2c88" - integrity sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw== +postcss-colormin@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.1.tgz#6e444a806fd3c578827dbad022762df19334414d" + integrity sha512-VVwMrEYLcHYePUYV99Ymuoi7WhKrMGy/V9/kTS0DkCoJYmmjdOMneyhzYUxcNgteKDVbrewOkSM7Wje/MFwxzA== dependencies: browserslist "^4.16.6" caniuse-api "^3.0.0" - colord "^2.0.1" + colord "^2.9.1" postcss-value-parser "^4.1.0" postcss-convert-values@^2.3.4: @@ -8401,10 +8374,10 @@ postcss-convert-values@^2.3.4: postcss "^5.0.11" postcss-value-parser "^3.1.2" -postcss-convert-values@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz#4ec19d6016534e30e3102fdf414e753398645232" - integrity sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg== +postcss-convert-values@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz#879b849dc3677c7d6bc94b6a2c1a3f0808798059" + integrity sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg== dependencies: postcss-value-parser "^4.1.0" @@ -8496,10 +8469,10 @@ postcss-merge-longhand@^2.0.1: dependencies: postcss "^5.0.4" -postcss-merge-longhand@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz#277ada51d9a7958e8ef8cf263103c9384b322a41" - integrity sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw== +postcss-merge-longhand@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.3.tgz#42194a5ffbaa5513edbf606ef79c44958564658b" + integrity sha512-kmB+1TjMTj/bPw6MCDUiqSA5e/x4fvLffiAdthra3a0m2/IjTrWsTmD3FdSskzUjEwkj5ZHBDEbv5dOcqD7CMQ== dependencies: css-color-names "^1.0.1" postcss-value-parser "^4.1.0" @@ -8556,12 +8529,12 @@ postcss-minify-gradients@^1.0.1: postcss "^5.0.12" postcss-value-parser "^3.3.0" -postcss-minify-gradients@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.2.tgz#7c175c108f06a5629925d698b3c4cf7bd3864ee5" - integrity sha512-7Do9JP+wqSD6Prittitt2zDLrfzP9pqKs2EcLX7HJYxsxCOwrrcLt4x/ctQTsiOw+/8HYotAoqNkrzItL19SdQ== +postcss-minify-gradients@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz#f970a11cc71e08e9095e78ec3a6b34b91c19550e" + integrity sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q== dependencies: - colord "^2.6" + colord "^2.9.1" cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" @@ -8809,13 +8782,13 @@ postcss-svgo@^2.1.1: postcss-value-parser "^3.2.3" svgo "^0.7.0" -postcss-svgo@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.2.tgz#bc73c4ea4c5a80fbd4b45e29042c34ceffb9257f" - integrity sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A== +postcss-svgo@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.3.tgz#d945185756e5dfaae07f9edb0d3cae7ff79f9b30" + integrity sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA== dependencies: postcss-value-parser "^4.1.0" - svgo "^2.3.0" + svgo "^2.7.0" postcss-unique-selectors@^2.0.2: version "2.0.2" @@ -8984,10 +8957,10 @@ prismjs@1.25.0: resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756" integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg== -private-ip@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/private-ip/-/private-ip-2.3.0.tgz#aa07bf623c60ea75ee5d140814f492648c001717" - integrity sha512-3lTFzg+Z1Q2VNQChw8AW2c5LM7getyUJ67SqeWtvnkUO4gihjbf5oIEK4+jAQ4v1sCqOVV7r+GzKrgowW/W3tw== +private-ip@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/private-ip/-/private-ip-2.3.3.tgz#1e80ff8443e5ac78f555631aec3ea6ff027fa6aa" + integrity sha512-5zyFfekIVUOTVbL92hc8LJOtE/gyGHeREHkJ2yTyByP8Q2YZVoBqLg3EfYLeF0oVvGqtaEX2t2Qovja0/gStXw== dependencies: ip-regex "^4.3.0" ipaddr.js "^2.0.1" @@ -9814,18 +9787,18 @@ safe-regex@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass-loader@12.2.0: - version "12.2.0" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.2.0.tgz#b370010fb0ababae2ef9c6c89e05d6c6debc6042" - integrity sha512-qducnp5vSV+8A8MZxuH6zV0MUg4MOVISScl2wDTCAn/2WJX+9Auxh92O/rnkdR2bvi5QxZBafnzkzRrWGZvm7w== +sass-loader@12.3.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.3.0.tgz#93278981c189c36a58cbfc37d4b9cef0cdc02871" + integrity sha512-6l9qwhdOb7qSrtOu96QQ81LVl8v6Dp9j1w3akOm0aWHyrTYtagDt5+kS32N4yq4hHk3M+rdqoRMH+lIdqvW6HA== dependencies: klona "^2.0.4" neo-async "^2.6.2" -sass@1.43.3: - version "1.43.3" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.43.3.tgz#aa16a69131b84f0cd23189a242571e8905f1ce43" - integrity sha512-BJnLngqWpMeS65UvlYYEuCb3/fLxDxhHtOB/gWPxs6NKrslTxGt3ZxwIvOe/0Jm4tWwM/+tIpE3wj4dLEhPDeQ== +sass@1.43.4: + version "1.43.4" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.43.4.tgz#68c7d6a1b004bef49af0d9caf750e9b252105d1f" + integrity sha512-/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg== dependencies: chokidar ">=3.0.0 <4.0.0" @@ -9891,7 +9864,7 @@ semver-greatest-satisfied-range@^1.1.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@6.x, semver@^6.3.0: +semver@6.x: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -10479,6 +10452,13 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -10615,17 +10595,17 @@ svgo@^1.3.2: unquote "~1.1.1" util.promisify "~1.0.0" -svgo@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.3.0.tgz#6b3af81d0cbd1e19c83f5f63cec2cb98c70b5373" - integrity sha512-fz4IKjNO6HDPgIQxu4IxwtubtbSfGEAJUq/IXyTPIkGhWck/faiiwfkvsB8LnBkKLvSoyNNIY6d13lZprJMc9Q== +svgo@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== dependencies: - "@trysound/sax" "0.1.1" - chalk "^4.1.0" - commander "^7.1.0" - css-select "^3.1.2" - css-tree "^1.1.2" + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" csso "^4.2.0" + picocolors "^1.0.0" stable "^0.1.8" symbol-tree@^3.2.4: @@ -10640,10 +10620,10 @@ syslog-pro@1.0.0: dependencies: moment "^2.22.2" -systeminformation@5.9.8: - version "5.9.8" - resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.9.8.tgz#470d5781647418fd2f2ec945e507cd522a69d565" - integrity sha512-Dt54Vuu4Q5pGCsBtbVjIzD3Lahek7qIL+2vqAPqcPtPAlFRPf+ef4VKB4F5AL5UmdjYm7NFCTnwjoiu7qtxmQQ== +systeminformation@5.9.9: + version "5.9.9" + resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.9.9.tgz#aa8234a138363bd988f438fed3273370f79d7e30" + integrity sha512-xciy6NKCLfs4dqMD1Tdlo7v1/g0NfdA1EKsIptUQjlcVvpwHyjifAbNOF7ppFezGSMXxYE8me+l2+RlFF4lyTg== syuilo-password-strength@0.0.1: version "0.0.1" @@ -11188,10 +11168,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typeorm@0.2.38: - version "0.2.38" - resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.2.38.tgz#2af08079919f6ab04cd17017f9faa2c8d5cd566f" - integrity sha512-M6Y3KQcAREQcphOVJciywf4mv6+A0I/SeR+lWNjKsjnQ+a3XcMwGYMGL0Jonsx3H0Cqlf/3yYqVki1jIXSK/xg== +typeorm@0.2.39: + version "0.2.39" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.2.39.tgz#4d22fc68d114b2ca88a8d7b064f31af15e836ade" + integrity sha512-yQdvDpmmmn8wp1We25V76KIBPYR/lDbymNbGC++Uq8mSRhpHIPnlg26VAT4CF6Ypqx72zn8eqr+/72uSo7HdJQ== dependencies: "@sqltools/formatter" "^1.2.2" app-root-path "^3.0.0" @@ -11207,7 +11187,6 @@ typeorm@0.2.38: sha.js "^2.4.11" tslib "^2.1.0" xml2js "^0.4.23" - yargonaut "^1.1.4" yargs "^17.0.1" zen-observable-ts "^1.0.0" @@ -11298,13 +11277,13 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unload@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/unload/-/unload-2.2.0.tgz#ccc88fdcad345faa06a92039ec0f80b488880ef7" - integrity sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA== +unload@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/unload/-/unload-2.3.1.tgz#9d16862d372a5ce5cb630ad1309c2fd6e35dacfe" + integrity sha512-MUZEiDqvAN9AIDRbbBnVYVvfcR6DrjCqeU2YQMmliFZl9uaBUjTkhuDQkBiyAy8ad5bx1TXVbqZ3gg7namsWjA== dependencies: "@babel/runtime" "^7.6.2" - detect-node "^2.0.4" + detect-node "2.1.0" unpipe@1.0.0: version "1.0.0" @@ -11528,18 +11507,18 @@ void-elements@^3.1.0: resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk= -vue-eslint-parser@^7.10.0: - version "7.10.0" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.10.0.tgz#ea4e4b10fd10aa35c8a79ac783488d8abcd29be8" - integrity sha512-7tc/ewS9Vq9Bn741pvpg8op2fWJPH3k32aL+jcIcWGCTzh/zXSdh7pZ5FV3W2aJancP9+ftPAv292zY5T5IPCg== +vue-eslint-parser@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-8.0.1.tgz#25e08b20a414551531f3e19f999902e1ecf45f13" + integrity sha512-lhWjDXJhe3UZw2uu3ztX51SJAPGPey1Tff2RK3TyZURwbuI4vximQLzz4nQfCv8CZq4xx7uIiogHMMoSJPr33A== dependencies: - debug "^4.1.1" - eslint-scope "^5.1.1" - eslint-visitor-keys "^1.1.0" - espree "^6.2.1" + debug "^4.3.2" + eslint-scope "^6.0.0" + eslint-visitor-keys "^3.0.0" + espree "^9.0.0" esquery "^1.4.0" lodash "^4.17.21" - semver "^6.3.0" + semver "^7.3.5" vue-loader@16.7.0: version "16.7.0" @@ -11577,16 +11556,16 @@ vue-svg-loader@0.17.0-beta.2: semver "^7.3.2" svgo "^1.3.2" -vue@3.2.20: - version "3.2.20" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.20.tgz#940f8aa8bf3e3be78243ca582bad41fcd45ae3e6" - integrity sha512-81JjEP4OGk9oO8+CU0h2nFPGgJBm9mNa3kdCX2k6FuRdrWrC+CNe+tOnuIeTg8EWwQuI+wwdra5Q7vSzp7p4Iw== +vue@3.2.21: + version "3.2.21" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.21.tgz#55f5665172d95cf97e806b9aad0a375180be23a1" + integrity sha512-jpy7ckXdyclfRzqLjL4mtq81AkzQleE54KjZsJg/9OorNVurAxdlU5XpD49GpjKdnftuffKUvx2C5jDOrgc/zg== dependencies: - "@vue/compiler-dom" "3.2.20" - "@vue/compiler-sfc" "3.2.20" - "@vue/runtime-dom" "3.2.20" - "@vue/server-renderer" "3.2.20" - "@vue/shared" "3.2.20" + "@vue/compiler-dom" "3.2.21" + "@vue/compiler-sfc" "3.2.21" + "@vue/runtime-dom" "3.2.21" + "@vue/server-renderer" "3.2.21" + "@vue/shared" "3.2.21" vuedraggable@4.0.1: version "4.0.1" @@ -11697,10 +11676,10 @@ webpack-sources@^3.2.0: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.0.tgz#b16973bcf844ebcdb3afde32eda1c04d0b90f89d" integrity sha512-fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw== -webpack@5.59.1: - version "5.59.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.59.1.tgz#60c77e9aad796252153d4d7ab6b2d4c11f0e548c" - integrity sha512-I01IQV9K96FlpXX3V0L4nvd7gb0r7thfuu1IfT2P4uOHOA77nKARAKDYGe/tScSHKnffNIyQhLC8kRXzY4KEHQ== +webpack@5.63.0: + version "5.63.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.63.0.tgz#4b074115800e0526d85112985e46c64b95e04aaf" + integrity sha512-HYrw6bkj/MDmphAXvqLEvn2fVoDZsYu6O638WjK6lSNgIpjb5jl/KtOrqJyU9EC/ZV9mLUmZW5h4mASB+CVA4A== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.50" @@ -12007,15 +11986,6 @@ yaml@^1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargonaut@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/yargonaut/-/yargonaut-1.1.4.tgz#c64f56432c7465271221f53f5cc517890c3d6e0c" - integrity sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA== - dependencies: - chalk "^1.1.1" - figlet "^1.1.1" - parent-require "^1.0.0" - yargs-parser@18.x: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" -- 2.43.0 From 0e4a111f81cceed275d9bec2695f6e401fb654d8 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 12 Nov 2021 02:02:25 +0900 Subject: [PATCH 24/69] refactoring Resolve #7779 --- .gitignore | 4 +- .imgbotconfig | 5 - gulpfile.js | 71 + gulpfile.ts | 80 - index.js | 17 - migration/1557476068003-PinnedUsers.ts | 13 - migration/1558266512381-UserListJoining.ts | 13 - migration/1562422242907-PasswordLessLogin.ts | 13 - .../1562448332510-PageTitleHideOption.ts | 13 - migration/1565634203341-room.ts | 13 - .../1571220798684-CustomEmojiCategory.ts | 13 - migration/1576269851876-TalkFederationId.ts | 14 - migration/1576869585998-ProxyRemoteFiles.ts | 14 - migration/1579270193251-v12-2.ts | 14 - migration/1579282808087-v12-3.ts | 14 - migration/1580154400017-v12-9.ts | 14 - migration/1580543501339-v12-13.ts | 14 - ...581708415836-drive-user-folder-id-index.ts | 14 - .../1582019042083-featured-injecttion.ts | 14 - migration/1582210532752-antenna-exclude.ts | 14 - .../1582875306439-note-reaction-length.ts | 14 - migration/1585772678853-ap-url.ts | 15 - .../1586624197029-AddObjectStorageUseProxy.ts | 14 - migration/1586641139527-remote-reaction.ts | 12 - migration/1586708940386-pageAiScript.ts | 14 - migration/1595075960584-blurhash.ts | 14 - migration/1595676934834-instance-icon-url.ts | 14 - migration/1596786425167-channel2.ts | 14 - ...597230137744-objectStorageSetPublicRead.ts | 14 - .../1597385880794-add-sensitive-index.ts | 14 - .../1597893996136-ChannelNoteIdDescIndex.ts | 16 - .../1603776877564-instance-theme-color.ts | 14 - migration/1603781553011-instance-favicon.ts | 14 - migration/1604821689616-delete-auto-watch.ts | 14 - migration/1605408848373-clip-description.ts | 15 - .../1605585339718-instance-pinned-pages.ts | 14 - .../1607151207216-instance-pinned-clip.ts | 14 - migration/1610283021566-registry3.ts | 14 - ...547387175-objectStorageS3ForcePathStyle.ts | 14 - migration/1612619156584-announcement-email.ts | 14 - .../1613155914446-emailNotificationTypes.ts | 14 - migration/1613181457597-user-lang.ts | 14 - ...1613503367223-use-bigint-for-driveUsage.ts | 15 - migration/1615965918224-chart-v2.ts | 218 - .../1618639857000-user-hide-online-status.ts | 14 - migration/1620364649428-ad2.ts | 14 - migration/1621479946000-add-note-indexes.ts | 16 - ...9304522-user-profile-description-length.ts | 13 - migration/1622681548499-log-message-length.ts | 12 - migration/1629024377804-deepl-integration.ts | 14 - migration/1629288472000-fix-channel-userId.ts | 14 - migration/1629512953000-user-is-deleted.ts | 15 - migration/1629778475000-deepl-integration2.ts | 14 - ...1633068642000-email-required-for-signup.ts | 14 - .../1634486652000-user-public-reactions.ts | 14 - migration/1634902659689-delete-log.ts | 13 - package.json | 229 +- {src => packages/backend}/.eslintrc | 0 .../backend/.mocharc.json | 0 packages/backend/.npmrc | 2 + .../backend}/@types/hcaptcha.d.ts | 0 .../backend}/@types/http-signature.d.ts | 0 .../backend}/@types/jsrsasign.d.ts | 0 .../backend}/@types/koa-json-body.d.ts | 0 .../backend}/@types/koa-slow.d.ts | 0 {src => packages/backend}/@types/langmap.d.ts | 0 {src => packages/backend}/@types/ms.d.ts | 0 .../backend}/@types/os-utils.d.ts | 0 .../backend}/@types/package.json.d.ts | 0 .../backend}/@types/probe-image-size.d.ts | 0 .../backend/assets}/api-doc.png | Bin .../backend/assets}/apple-touch-icon.png | Bin .../backend/assets}/favicon.ico | Bin .../backend/assets}/favicon.png | Bin .../backend/assets}/icons/192.png | Bin .../backend/assets}/icons/512.png | Bin .../backend/assets}/mi-white.png | Bin .../backend/assets}/redoc.html | 0 .../backend/assets}/robots.txt | 0 .../backend/assets}/user-unknown.png | Bin .../backend/migration/1000000000000-Init.js | 14 +- .../backend/migration/1556348509290-Pages.js | 14 +- .../migration/1556746559567-UserProfile.js | 14 +- .../migration/1557476068003-PinnedUsers.js | 11 + .../migration/1557761316509-AddSomeUrls.js | 13 +- .../1557932705754-ObjectStorageSetting.js | 14 +- .../migration/1558072954435-PageLike.js | 14 +- .../migration/1558103093633-UserGroup.js | 14 +- .../1558257926829-UserGroupInvite.js | 14 +- .../1558266512381-UserListJoining.js | 11 + .../migration/1561706992953-webauthn.js | 14 +- .../migration/1561873850023-ChartIndexes.js | 14 +- .../1562422242907-PasswordLessLogin.js | 11 + .../migration/1562444565093-PinnedPage.js | 14 +- .../1562448332510-PageTitleHideOption.js | 11 + .../migration/1562869971568-ModerationLog.js | 14 +- .../migration/1563757595828-UsedUsername.js | 14 +- .../backend/migration/1565634203341-room.js | 11 + .../1571220798684-CustomEmojiCategory.js | 11 + .../migration/1572760203493-nodeinfo.js | 14 +- .../1576269851876-TalkFederationId.js | 14 + .../1576869585998-ProxyRemoteFiles.js | 14 + .../backend/migration/1579267006611-v12.js | 18 +- .../backend/migration/1579270193251-v12-2.js | 14 + .../backend/migration/1579282808087-v12-3.js | 14 + .../backend/migration/1579544426412-v12-4.js | 18 +- .../backend/migration/1579977526288-v12-5.js | 18 +- .../backend/migration/1579993013959-v12-6.js | 18 +- .../backend/migration/1580069531114-v12-7.js | 18 +- .../backend/migration/1580148575182-v12-8.js | 18 +- .../backend/migration/1580154400017-v12-9.js | 14 + .../backend/migration/1580276619901-v12-10.js | 20 +- .../backend/migration/1580331224276-v12-11.js | 18 +- .../backend/migration/1580508795118-v12-12.js | 18 +- .../backend/migration/1580543501339-v12-13.js | 14 + .../backend/migration/1580864313253-v12-14.js | 18 +- .../1581526429287-user-group-invitation.js | 18 +- .../1581695816408-user-group-antenna.js | 18 +- ...581708415836-drive-user-folder-id-index.js | 14 + .../backend/migration/1581979837262-promo.js | 18 +- .../1582019042083-featured-injecttion.js | 14 + .../1582210532752-antenna-exclude.js | 14 + .../1582875306439-note-reaction-length.js | 14 + .../backend/migration/1585361548360-miauth.js | 18 +- .../1585385921215-custom-notification.js | 18 +- .../backend/migration/1585772678853-ap-url.js | 14 + .../1586624197029-AddObjectStorageUseProxy.js | 14 + .../1586641139527-remote-reaction.js | 14 + .../migration/1586708940386-pageAiScript.js | 14 + .../migration/1588044505511-hCaptcha.js | 18 +- .../migration/1589023282116-pubRelay.js | 18 +- .../migration/1595075960584-blurhash.js | 14 + ...595077605646-blurhash-for-avatar-banner.js | 18 +- .../1595676934834-instance-icon-url.js | 14 + .../migration/1595771249699-word-mute.js | 18 +- .../migration/1595782306083-word-mute2.js | 18 +- .../migration/1596548170836-channel.js | 18 +- .../migration/1596786425167-channel2.js | 14 + ...597230137744-objectStorageSetPublicRead.js | 14 + ...597236229720-IncludingNotificationTypes.js | 18 +- .../1597385880794-add-sensitive-index.js | 14 + .../migration/1597459042300-channel-unread.js | 20 +- .../1597893996136-ChannelNoteIdDescIndex.js | 16 + .../1600353287890-mutingNotificationTypes.js | 18 +- .../1603094348345-refine-abuse-user-report.js | 18 +- ...1603095701770-refine-abuse-user-report2.js | 18 +- .../1603776877564-instance-theme-color.js | 14 + .../1603781553011-instance-favicon.js | 14 + .../1604821689616-delete-auto-watch.js | 14 + .../1605408848373-clip-description.js | 14 + .../migration/1605408971051-comments.js | 18 +- .../1605585339718-instance-pinned-pages.js | 14 + .../1605965516823-instance-images.js | 18 +- .../migration/1606191203881-no-crawle.js | 18 +- .../1607151207216-instance-pinned-clip.js | 14 + .../migration/1607353487793-isExplorable.js | 18 +- .../migration/1610277136869-registry.js | 18 +- .../migration/1610277585759-registry2.js | 18 +- .../migration/1610283021566-registry3.js | 14 + .../migration/1611354329133-followersUri.js | 18 +- .../migration/1611397665007-gallery.js | 18 +- ...547387175-objectStorageS3ForcePathStyle.js | 14 + .../1612619156584-announcement-email.js | 14 + .../1613155914446-emailNotificationTypes.js | 14 + .../migration/1613181457597-user-lang.js | 14 + ...1613503367223-use-bigint-for-driveUsage.js | 15 + .../migration/1615965918224-chart-v2.js | 217 + .../migration/1615966519402-chart-v2-2.js | 18 +- .../1618637372000-user-last-active-date.js | 18 +- .../1618639857000-user-hide-online-status.js | 14 + .../migration/1619942102890-password-reset.js | 18 +- .../backend/migration/1620019354680-ad.js | 18 +- .../backend/migration/1620364649428-ad2.js | 14 + .../1621479946000-add-note-indexes.js | 16 + ...9304522-user-profile-description-length.js | 14 + .../1622681548499-log-message-length.js | 14 + .../migration/1629004542760-chart-reindex.js | 18 +- .../1629024377804-deepl-integration.js | 14 + .../1629288472000-fix-channel-userId.js | 14 + .../1629512953000-user-is-deleted.js | 15 + .../1629778475000-deepl-integration2.js | 14 + ...1633068642000-email-required-for-signup.js | 14 + .../migration/1633071909016-user-pending.js | 18 +- .../1634486652000-user-public-reactions.js | 14 + .../migration/1634902659689-delete-log.js | 13 + .../1635500777168-note-thread-mute.js | 18 +- .../migration/1636197624383-ff-visibility.js | 18 +- ormconfig.js => packages/backend/ormconfig.js | 2 +- packages/backend/package.json | 199 + {src => packages/backend/src}/boot/index.ts | 6 +- {src => packages/backend/src}/boot/master.ts | 2 +- {src => packages/backend/src}/boot/worker.ts | 0 {src => packages/backend/src}/config/index.ts | 0 {src => packages/backend/src}/config/load.ts | 4 +- {src => packages/backend/src}/config/types.ts | 0 {src => packages/backend/src}/const.ts | 0 .../backend/src}/daemons/janitor.ts | 0 .../backend/src}/daemons/queue-stats.ts | 0 .../backend/src}/daemons/server-stats.ts | 0 .../backend/src}/db/elasticsearch.ts | 0 {src => packages/backend/src}/db/logger.ts | 0 {src => packages/backend/src}/db/postgre.ts | 0 {src => packages/backend/src}/db/redis.ts | 0 {src => packages/backend/src}/env.ts | 0 .../backend/src}/games/reversi/core.ts | 0 .../backend/src}/games/reversi/maps.ts | 0 .../backend/src}/games/reversi/package.json | 0 .../backend/src}/games/reversi/tsconfig.json | 0 {src => packages/backend/src}/global.d.ts | 0 {src => packages/backend/src}/index.ts | 4 +- .../backend/src}/mfm/from-html.ts | 0 {src => packages/backend/src}/mfm/to-html.ts | 12 +- .../backend/src}/misc/antenna-cache.ts | 0 .../backend/src}/misc/api-permissions.ts | 0 .../backend/src}/misc/app-lock.ts | 0 .../backend/src}/misc/before-shutdown.ts | 0 {src => packages/backend/src}/misc/cache.ts | 0 {src => packages/backend/src}/misc/cafy-id.ts | 0 {src => packages/backend/src}/misc/captcha.ts | 0 .../backend/src}/misc/check-hit-antenna.ts | 4 +- .../backend/src}/misc/check-word-mute.ts | 0 .../backend/src}/misc/content-disposition.ts | 0 .../backend/src}/misc/convert-host.ts | 0 .../backend/src}/misc/count-same-renotes.ts | 0 .../backend/src}/misc/create-temp.ts | 0 .../backend/src}/misc/detect-url-mime.ts | 0 .../backend/src}/misc/download-text-file.ts | 0 .../backend/src}/misc/download-url.ts | 0 .../backend/src}/misc/emoji-regex.ts | 0 .../misc/extract-custom-emojis-from-mfm.ts | 0 .../backend/src}/misc/extract-hashtags.ts | 0 .../backend/src}/misc/extract-mentions.ts | 0 .../backend/src}/misc/fetch-meta.ts | 0 .../backend/src}/misc/fetch-proxy-account.ts | 0 {src => packages/backend/src}/misc/fetch.ts | 0 .../backend/src}/misc/gen-avatar.ts | 0 {src => packages/backend/src}/misc/gen-id.ts | 0 .../backend/src}/misc/gen-key-pair.ts | 0 .../backend/src}/misc/get-file-info.ts | 0 .../backend/src}/misc/get-note-summary.ts | 16 +- .../backend/src}/misc/get-reaction-emoji.ts | 0 .../backend/src}/misc/hard-limits.ts | 0 {src => packages/backend/src}/misc/i18n.ts | 0 {src => packages/backend/src}/misc/id/aid.ts | 0 {src => packages/backend/src}/misc/id/meid.ts | 0 .../backend/src}/misc/id/meidg.ts | 0 .../backend/src}/misc/id/object-id.ts | 0 .../backend/src}/misc/identifiable-error.ts | 0 .../src}/misc/is-blocker-user-related.ts | 0 .../src}/misc/is-duplicate-key-value-error.ts | 0 .../src}/misc/is-muted-user-related.ts | 0 .../backend/src}/misc/is-quote.ts | 0 .../backend/src}/misc/keypair-store.ts | 0 .../backend/src}/misc/normalize-for-search.ts | 0 {src => packages/backend/src}/misc/nyaize.ts | 0 .../backend/src}/misc/populate-emojis.ts | 0 .../backend/src}/misc/reaction-lib.ts | 0 .../backend/src}/misc/safe-for-sql.ts | 0 {src => packages/backend/src}/misc/schema.ts | 0 .../backend/src}/misc/secure-rndstr.ts | 0 .../backend/src}/misc/show-machine-info.ts | 0 .../backend/src}/misc/simple-schema.ts | 0 .../backend/src}/misc/truncate.ts | 0 .../src}/models/entities/abuse-user-report.ts | 0 .../src}/models/entities/access-token.ts | 0 .../backend/src}/models/entities/ad.ts | 0 .../src}/models/entities/announcement-read.ts | 0 .../src}/models/entities/announcement.ts | 0 .../src}/models/entities/antenna-note.ts | 0 .../backend/src}/models/entities/antenna.ts | 0 .../backend/src}/models/entities/app.ts | 0 .../models/entities/attestation-challenge.ts | 0 .../src}/models/entities/auth-session.ts | 0 .../backend/src}/models/entities/blocking.ts | 0 .../src}/models/entities/channel-following.ts | 0 .../models/entities/channel-note-pining.ts | 0 .../backend/src}/models/entities/channel.ts | 0 .../backend/src}/models/entities/clip-note.ts | 0 .../backend/src}/models/entities/clip.ts | 0 .../src}/models/entities/drive-file.ts | 0 .../src}/models/entities/drive-folder.ts | 0 .../backend/src}/models/entities/emoji.ts | 0 .../src}/models/entities/follow-request.ts | 0 .../backend/src}/models/entities/following.ts | 0 .../src}/models/entities/gallery-like.ts | 0 .../src}/models/entities/gallery-post.ts | 0 .../models/entities/games/reversi/game.ts | 0 .../models/entities/games/reversi/matching.ts | 0 .../backend/src}/models/entities/hashtag.ts | 0 .../backend/src}/models/entities/instance.ts | 0 .../src}/models/entities/messaging-message.ts | 0 .../backend/src}/models/entities/meta.ts | 0 .../src}/models/entities/moderation-log.ts | 0 .../src}/models/entities/muted-note.ts | 0 .../backend/src}/models/entities/muting.ts | 0 .../src}/models/entities/note-favorite.ts | 0 .../src}/models/entities/note-reaction.ts | 0 .../models/entities/note-thread-muting.ts | 0 .../src}/models/entities/note-unread.ts | 0 .../src}/models/entities/note-watching.ts | 0 .../backend/src}/models/entities/note.ts | 0 .../src}/models/entities/notification.ts | 0 .../backend/src}/models/entities/page-like.ts | 0 .../backend/src}/models/entities/page.ts | 0 .../models/entities/password-reset-request.ts | 0 .../backend/src}/models/entities/poll-vote.ts | 0 .../backend/src}/models/entities/poll.ts | 0 .../src}/models/entities/promo-note.ts | 0 .../src}/models/entities/promo-read.ts | 0 .../models/entities/registration-tickets.ts | 0 .../src}/models/entities/registry-item.ts | 0 .../backend/src}/models/entities/relay.ts | 0 .../backend/src}/models/entities/signin.ts | 0 .../src}/models/entities/sw-subscription.ts | 0 .../src}/models/entities/used-username.ts | 0 .../models/entities/user-group-invitation.ts | 0 .../models/entities/user-group-joining.ts | 0 .../src}/models/entities/user-group.ts | 0 .../src}/models/entities/user-keypair.ts | 0 .../src}/models/entities/user-list-joining.ts | 0 .../backend/src}/models/entities/user-list.ts | 0 .../src}/models/entities/user-note-pining.ts | 0 .../src}/models/entities/user-pending.ts | 0 .../src}/models/entities/user-profile.ts | 0 .../src}/models/entities/user-publickey.ts | 0 .../src}/models/entities/user-security-key.ts | 0 .../backend/src}/models/entities/user.ts | 0 {src => packages/backend/src}/models/id.ts | 0 {src => packages/backend/src}/models/index.ts | 0 .../models/repositories/abuse-user-report.ts | 0 .../src}/models/repositories/antenna.ts | 0 .../backend/src}/models/repositories/app.ts | 0 .../src}/models/repositories/auth-session.ts | 0 .../src}/models/repositories/blocking.ts | 0 .../src}/models/repositories/channel.ts | 0 .../backend/src}/models/repositories/clip.ts | 0 .../src}/models/repositories/drive-file.ts | 0 .../src}/models/repositories/drive-folder.ts | 0 .../backend/src}/models/repositories/emoji.ts | 0 .../repositories/federation-instance.ts | 0 .../models/repositories/follow-request.ts | 0 .../src}/models/repositories/following.ts | 0 .../src}/models/repositories/gallery-like.ts | 0 .../src}/models/repositories/gallery-post.ts | 0 .../models/repositories/games/reversi/game.ts | 0 .../repositories/games/reversi/matching.ts | 0 .../src}/models/repositories/hashtag.ts | 0 .../models/repositories/messaging-message.ts | 0 .../models/repositories/moderation-logs.ts | 0 .../src}/models/repositories/muting.ts | 0 .../src}/models/repositories/note-favorite.ts | 0 .../src}/models/repositories/note-reaction.ts | 0 .../backend/src}/models/repositories/note.ts | 0 .../src}/models/repositories/notification.ts | 0 .../src}/models/repositories/page-like.ts | 0 .../backend/src}/models/repositories/page.ts | 0 .../backend/src}/models/repositories/queue.ts | 0 .../backend/src}/models/repositories/relay.ts | 0 .../src}/models/repositories/signin.ts | 0 .../repositories/user-group-invitation.ts | 0 .../src}/models/repositories/user-group.ts | 0 .../src}/models/repositories/user-list.ts | 0 .../backend/src}/models/repositories/user.ts | 0 .../backend/src}/prelude/README.md | 0 .../backend/src}/prelude/array.ts | 0 .../backend/src}/prelude/await-all.ts | 0 {src => packages/backend/src}/prelude/math.ts | 0 .../backend/src}/prelude/maybe.ts | 0 .../backend/src}/prelude/relation.ts | 0 .../backend/src}/prelude/string.ts | 0 .../backend/src}/prelude/symbol.ts | 0 {src => packages/backend/src}/prelude/time.ts | 0 {src => packages/backend/src}/prelude/url.ts | 0 {src => packages/backend/src}/prelude/xml.ts | 0 .../backend/src}/queue/get-job-info.ts | 0 {src => packages/backend/src}/queue/index.ts | 0 .../backend/src}/queue/initialize.ts | 0 {src => packages/backend/src}/queue/logger.ts | 0 .../queue/processors/db/delete-account.ts | 0 .../queue/processors/db/delete-drive-files.ts | 0 .../queue/processors/db/export-blocking.ts | 0 .../queue/processors/db/export-following.ts | 0 .../src}/queue/processors/db/export-mute.ts | 0 .../src}/queue/processors/db/export-notes.ts | 0 .../queue/processors/db/export-user-lists.ts | 0 .../queue/processors/db/import-blocking.ts | 4 +- .../queue/processors/db/import-following.ts | 4 +- .../src}/queue/processors/db/import-muting.ts | 4 +- .../queue/processors/db/import-user-lists.ts | 4 +- .../backend/src}/queue/processors/db/index.ts | 0 .../backend/src}/queue/processors/deliver.ts | 0 .../backend/src}/queue/processors/inbox.ts | 0 .../object-storage/clean-remote-files.ts | 0 .../processors/object-storage/delete-file.ts | 0 .../queue/processors/object-storage/index.ts | 0 .../src}/queue/processors/system/index.ts | 0 .../queue/processors/system/resync-charts.ts | 0 {src => packages/backend/src}/queue/queues.ts | 0 {src => packages/backend/src}/queue/types.ts | 0 .../src}/remote/activitypub/ap-request.ts | 0 .../src}/remote/activitypub/audience.ts | 0 .../src}/remote/activitypub/db-resolver.ts | 0 .../remote/activitypub/deliver-manager.ts | 0 .../activitypub/kernel/accept/follow.ts | 0 .../remote/activitypub/kernel/accept/index.ts | 0 .../remote/activitypub/kernel/add/index.ts | 0 .../activitypub/kernel/announce/index.ts | 0 .../activitypub/kernel/announce/note.ts | 0 .../remote/activitypub/kernel/block/index.ts | 0 .../remote/activitypub/kernel/create/index.ts | 0 .../remote/activitypub/kernel/create/note.ts | 0 .../remote/activitypub/kernel/delete/actor.ts | 0 .../remote/activitypub/kernel/delete/index.ts | 0 .../remote/activitypub/kernel/delete/note.ts | 0 .../remote/activitypub/kernel/flag/index.ts | 0 .../src}/remote/activitypub/kernel/follow.ts | 0 .../src}/remote/activitypub/kernel/index.ts | 0 .../src}/remote/activitypub/kernel/like.ts | 0 .../remote/activitypub/kernel/move/index.ts | 0 .../src}/remote/activitypub/kernel/read.ts | 0 .../activitypub/kernel/reject/follow.ts | 0 .../remote/activitypub/kernel/reject/index.ts | 0 .../remote/activitypub/kernel/remove/index.ts | 0 .../activitypub/kernel/undo/announce.ts | 0 .../remote/activitypub/kernel/undo/block.ts | 0 .../remote/activitypub/kernel/undo/follow.ts | 0 .../remote/activitypub/kernel/undo/index.ts | 0 .../remote/activitypub/kernel/undo/like.ts | 0 .../remote/activitypub/kernel/update/index.ts | 0 .../backend/src}/remote/activitypub/logger.ts | 0 .../src}/remote/activitypub/misc/contexts.ts | 0 .../remote/activitypub/misc/get-note-html.ts | 3 +- .../remote/activitypub/misc/html-to-mfm.ts | 0 .../remote/activitypub/misc/ld-signature.ts | 0 .../src}/remote/activitypub/models/icon.ts | 0 .../remote/activitypub/models/identifier.ts | 0 .../src}/remote/activitypub/models/image.ts | 0 .../src}/remote/activitypub/models/mention.ts | 0 .../src}/remote/activitypub/models/note.ts | 0 .../src}/remote/activitypub/models/person.ts | 0 .../remote/activitypub/models/question.ts | 0 .../src}/remote/activitypub/models/tag.ts | 0 .../src}/remote/activitypub/perform.ts | 0 .../remote/activitypub/renderer/accept.ts | 0 .../src}/remote/activitypub/renderer/add.ts | 0 .../remote/activitypub/renderer/announce.ts | 0 .../src}/remote/activitypub/renderer/block.ts | 0 .../remote/activitypub/renderer/create.ts | 0 .../remote/activitypub/renderer/delete.ts | 0 .../remote/activitypub/renderer/document.ts | 0 .../src}/remote/activitypub/renderer/emoji.ts | 0 .../activitypub/renderer/follow-relay.ts | 0 .../activitypub/renderer/follow-user.ts | 0 .../remote/activitypub/renderer/follow.ts | 0 .../remote/activitypub/renderer/hashtag.ts | 0 .../src}/remote/activitypub/renderer/image.ts | 0 .../src}/remote/activitypub/renderer/index.ts | 0 .../src}/remote/activitypub/renderer/key.ts | 0 .../src}/remote/activitypub/renderer/like.ts | 0 .../remote/activitypub/renderer/mention.ts | 0 .../src}/remote/activitypub/renderer/note.ts | 0 .../renderer/ordered-collection-page.ts | 0 .../renderer/ordered-collection.ts | 0 .../remote/activitypub/renderer/person.ts | 3 +- .../remote/activitypub/renderer/question.ts | 0 .../src}/remote/activitypub/renderer/read.ts | 0 .../remote/activitypub/renderer/reject.ts | 0 .../remote/activitypub/renderer/remove.ts | 0 .../remote/activitypub/renderer/tombstone.ts | 0 .../src}/remote/activitypub/renderer/undo.ts | 0 .../remote/activitypub/renderer/update.ts | 0 .../src}/remote/activitypub/renderer/vote.ts | 0 .../src}/remote/activitypub/request.ts | 0 .../src}/remote/activitypub/resolver.ts | 0 .../backend/src}/remote/activitypub/type.ts | 0 .../backend/src}/remote/logger.ts | 0 .../backend/src}/remote/resolve-user.ts | 0 .../backend/src}/remote/webfinger.ts | 0 .../backend/src}/server/activitypub.ts | 0 .../src}/server/activitypub/featured.ts | 0 .../src}/server/activitypub/followers.ts | 0 .../src}/server/activitypub/following.ts | 0 .../backend/src}/server/activitypub/outbox.ts | 0 .../backend/src}/server/api/2fa.ts | 0 .../backend/src}/server/api/api-handler.ts | 0 .../backend/src}/server/api/authenticate.ts | 0 .../backend/src}/server/api/call.ts | 0 .../server/api/common/generate-block-query.ts | 0 .../api/common/generate-channel-query.ts | 0 .../api/common/generate-muted-note-query.ts | 0 .../generate-muted-note-thread-query.ts | 0 .../api/common/generate-muted-user-query.ts | 0 .../api/common/generate-native-user-token.ts | 0 .../api/common/generate-replies-query.ts | 0 .../api/common/generate-visibility-query.ts | 0 .../backend/src}/server/api/common/getters.ts | 0 .../src}/server/api/common/inject-featured.ts | 0 .../src}/server/api/common/inject-promo.ts | 0 .../src}/server/api/common/is-native-token.ts | 0 .../api/common/make-pagination-query.ts | 0 .../api/common/read-messaging-message.ts | 0 .../server/api/common/read-notification.ts | 0 .../backend/src}/server/api/common/signin.ts | 0 .../backend/src}/server/api/common/signup.ts | 0 .../backend/src}/server/api/define.ts | 0 .../backend/src}/server/api/endpoints.ts | 0 .../api/endpoints/admin/abuse-user-reports.ts | 0 .../api/endpoints/admin/accounts/create.ts | 0 .../api/endpoints/admin/accounts/delete.ts | 0 .../server/api/endpoints/admin/ad/create.ts | 0 .../server/api/endpoints/admin/ad/delete.ts | 0 .../server/api/endpoints/admin/ad/list.ts | 0 .../server/api/endpoints/admin/ad/update.ts | 0 .../endpoints/admin/announcements/create.ts | 0 .../endpoints/admin/announcements/delete.ts | 0 .../api/endpoints/admin/announcements/list.ts | 0 .../endpoints/admin/announcements/update.ts | 0 .../admin/delete-all-files-of-a-user.ts | 0 .../server/api/endpoints/admin/delete-logs.ts | 0 .../admin/drive/clean-remote-files.ts | 0 .../api/endpoints/admin/drive/cleanup.ts | 0 .../server/api/endpoints/admin/drive/files.ts | 0 .../api/endpoints/admin/drive/show-file.ts | 0 .../server/api/endpoints/admin/emoji/add.ts | 0 .../server/api/endpoints/admin/emoji/copy.ts | 0 .../api/endpoints/admin/emoji/list-remote.ts | 0 .../server/api/endpoints/admin/emoji/list.ts | 0 .../api/endpoints/admin/emoji/remove.ts | 0 .../api/endpoints/admin/emoji/update.ts | 0 .../admin/federation/delete-all-files.ts | 0 .../refresh-remote-instance-metadata.ts | 0 .../admin/federation/remove-all-following.ts | 0 .../admin/federation/update-instance.ts | 0 .../api/endpoints/admin/get-index-stats.ts | 0 .../api/endpoints/admin/get-table-stats.ts | 0 .../src}/server/api/endpoints/admin/invite.ts | 0 .../api/endpoints/admin/moderators/add.ts | 0 .../api/endpoints/admin/moderators/remove.ts | 0 .../api/endpoints/admin/promo/create.ts | 0 .../server/api/endpoints/admin/queue/clear.ts | 0 .../endpoints/admin/queue/deliver-delayed.ts | 0 .../endpoints/admin/queue/inbox-delayed.ts | 0 .../server/api/endpoints/admin/queue/jobs.ts | 0 .../server/api/endpoints/admin/queue/stats.ts | 0 .../server/api/endpoints/admin/relays/add.ts | 0 .../server/api/endpoints/admin/relays/list.ts | 0 .../api/endpoints/admin/relays/remove.ts | 0 .../api/endpoints/admin/reset-password.ts | 0 .../admin/resolve-abuse-user-report.ts | 0 .../api/endpoints/admin/resync-chart.ts | 0 .../server/api/endpoints/admin/send-email.ts | 0 .../server/api/endpoints/admin/server-info.ts | 0 .../endpoints/admin/show-moderation-logs.ts | 0 .../server/api/endpoints/admin/show-user.ts | 0 .../server/api/endpoints/admin/show-users.ts | 0 .../api/endpoints/admin/silence-user.ts | 0 .../api/endpoints/admin/suspend-user.ts | 0 .../api/endpoints/admin/unsilence-user.ts | 0 .../api/endpoints/admin/unsuspend-user.ts | 0 .../server/api/endpoints/admin/update-meta.ts | 0 .../src}/server/api/endpoints/admin/vacuum.ts | 0 .../server/api/endpoints/announcements.ts | 0 .../server/api/endpoints/antennas/create.ts | 0 .../server/api/endpoints/antennas/delete.ts | 0 .../server/api/endpoints/antennas/list.ts | 0 .../server/api/endpoints/antennas/notes.ts | 0 .../server/api/endpoints/antennas/show.ts | 0 .../server/api/endpoints/antennas/update.ts | 0 .../src}/server/api/endpoints/ap/get.ts | 0 .../src}/server/api/endpoints/ap/show.ts | 0 .../src}/server/api/endpoints/app/create.ts | 0 .../src}/server/api/endpoints/app/show.ts | 0 .../src}/server/api/endpoints/auth/accept.ts | 0 .../api/endpoints/auth/session/generate.ts | 0 .../server/api/endpoints/auth/session/show.ts | 0 .../api/endpoints/auth/session/userkey.ts | 0 .../server/api/endpoints/blocking/create.ts | 0 .../server/api/endpoints/blocking/delete.ts | 0 .../server/api/endpoints/blocking/list.ts | 0 .../server/api/endpoints/channels/create.ts | 0 .../server/api/endpoints/channels/featured.ts | 0 .../server/api/endpoints/channels/follow.ts | 0 .../server/api/endpoints/channels/followed.ts | 0 .../server/api/endpoints/channels/owned.ts | 0 .../server/api/endpoints/channels/pin-note.ts | 0 .../server/api/endpoints/channels/show.ts | 0 .../server/api/endpoints/channels/timeline.ts | 0 .../server/api/endpoints/channels/unfollow.ts | 0 .../server/api/endpoints/channels/update.ts | 0 .../api/endpoints/charts/active-users.ts | 0 .../src}/server/api/endpoints/charts/drive.ts | 0 .../server/api/endpoints/charts/federation.ts | 0 .../server/api/endpoints/charts/hashtag.ts | 0 .../server/api/endpoints/charts/instance.ts | 0 .../server/api/endpoints/charts/network.ts | 0 .../src}/server/api/endpoints/charts/notes.ts | 0 .../server/api/endpoints/charts/user/drive.ts | 0 .../api/endpoints/charts/user/following.ts | 0 .../server/api/endpoints/charts/user/notes.ts | 0 .../api/endpoints/charts/user/reactions.ts | 0 .../src}/server/api/endpoints/charts/users.ts | 0 .../server/api/endpoints/clips/add-note.ts | 0 .../src}/server/api/endpoints/clips/create.ts | 0 .../src}/server/api/endpoints/clips/delete.ts | 0 .../src}/server/api/endpoints/clips/list.ts | 0 .../src}/server/api/endpoints/clips/notes.ts | 0 .../src}/server/api/endpoints/clips/show.ts | 0 .../src}/server/api/endpoints/clips/update.ts | 0 .../src}/server/api/endpoints/drive.ts | 0 .../src}/server/api/endpoints/drive/files.ts | 0 .../endpoints/drive/files/attached-notes.ts | 0 .../endpoints/drive/files/check-existence.ts | 0 .../api/endpoints/drive/files/create.ts | 0 .../api/endpoints/drive/files/delete.ts | 0 .../api/endpoints/drive/files/find-by-hash.ts | 0 .../server/api/endpoints/drive/files/find.ts | 0 .../server/api/endpoints/drive/files/show.ts | 0 .../api/endpoints/drive/files/update.ts | 0 .../endpoints/drive/files/upload-from-url.ts | 0 .../server/api/endpoints/drive/folders.ts | 0 .../api/endpoints/drive/folders/create.ts | 0 .../api/endpoints/drive/folders/delete.ts | 0 .../api/endpoints/drive/folders/find.ts | 0 .../api/endpoints/drive/folders/show.ts | 0 .../api/endpoints/drive/folders/update.ts | 0 .../src}/server/api/endpoints/drive/stream.ts | 0 .../api/endpoints/email-address/available.ts | 0 .../src}/server/api/endpoints/endpoint.ts | 0 .../src}/server/api/endpoints/endpoints.ts | 0 .../server/api/endpoints/federation/dns.ts | 0 .../api/endpoints/federation/followers.ts | 0 .../api/endpoints/federation/following.ts | 0 .../api/endpoints/federation/instances.ts | 0 .../api/endpoints/federation/show-instance.ts | 0 .../federation/update-remote-user.ts | 0 .../server/api/endpoints/federation/users.ts | 0 .../server/api/endpoints/following/create.ts | 0 .../server/api/endpoints/following/delete.ts | 0 .../endpoints/following/requests/accept.ts | 0 .../endpoints/following/requests/cancel.ts | 0 .../api/endpoints/following/requests/list.ts | 0 .../endpoints/following/requests/reject.ts | 0 .../server/api/endpoints/gallery/featured.ts | 0 .../server/api/endpoints/gallery/popular.ts | 0 .../server/api/endpoints/gallery/posts.ts | 0 .../api/endpoints/gallery/posts/create.ts | 0 .../api/endpoints/gallery/posts/delete.ts | 0 .../api/endpoints/gallery/posts/like.ts | 0 .../api/endpoints/gallery/posts/show.ts | 0 .../api/endpoints/gallery/posts/unlike.ts | 0 .../api/endpoints/gallery/posts/update.ts | 0 .../api/endpoints/games/reversi/games.ts | 0 .../api/endpoints/games/reversi/games/show.ts | 0 .../games/reversi/games/surrender.ts | 0 .../endpoints/games/reversi/invitations.ts | 0 .../api/endpoints/games/reversi/match.ts | 0 .../endpoints/games/reversi/match/cancel.ts | 0 .../api/endpoints/get-online-users-count.ts | 0 .../server/api/endpoints/hashtags/list.ts | 0 .../server/api/endpoints/hashtags/search.ts | 0 .../server/api/endpoints/hashtags/show.ts | 0 .../server/api/endpoints/hashtags/trend.ts | 0 .../server/api/endpoints/hashtags/users.ts | 0 .../backend/src}/server/api/endpoints/i.ts | 0 .../src}/server/api/endpoints/i/2fa/done.ts | 0 .../server/api/endpoints/i/2fa/key-done.ts | 0 .../api/endpoints/i/2fa/password-less.ts | 0 .../api/endpoints/i/2fa/register-key.ts | 0 .../server/api/endpoints/i/2fa/register.ts | 0 .../server/api/endpoints/i/2fa/remove-key.ts | 0 .../server/api/endpoints/i/2fa/unregister.ts | 0 .../src}/server/api/endpoints/i/apps.ts | 0 .../server/api/endpoints/i/authorized-apps.ts | 0 .../server/api/endpoints/i/change-password.ts | 0 .../server/api/endpoints/i/delete-account.ts | 0 .../server/api/endpoints/i/export-blocking.ts | 0 .../api/endpoints/i/export-following.ts | 0 .../server/api/endpoints/i/export-mute.ts | 0 .../server/api/endpoints/i/export-notes.ts | 0 .../api/endpoints/i/export-user-lists.ts | 0 .../src}/server/api/endpoints/i/favorites.ts | 0 .../server/api/endpoints/i/gallery/likes.ts | 0 .../server/api/endpoints/i/gallery/posts.ts | 0 .../endpoints/i/get-word-muted-notes-count.ts | 0 .../server/api/endpoints/i/import-blocking.ts | 0 .../api/endpoints/i/import-following.ts | 0 .../server/api/endpoints/i/import-muting.ts | 0 .../api/endpoints/i/import-user-lists.ts | 0 .../server/api/endpoints/i/notifications.ts | 0 .../src}/server/api/endpoints/i/page-likes.ts | 0 .../src}/server/api/endpoints/i/pages.ts | 0 .../src}/server/api/endpoints/i/pin.ts | 0 .../i/read-all-messaging-messages.ts | 0 .../api/endpoints/i/read-all-unread-notes.ts | 0 .../api/endpoints/i/read-announcement.ts | 0 .../api/endpoints/i/regenerate-token.ts | 0 .../api/endpoints/i/registry/get-all.ts | 0 .../api/endpoints/i/registry/get-detail.ts | 0 .../server/api/endpoints/i/registry/get.ts | 0 .../endpoints/i/registry/keys-with-type.ts | 0 .../server/api/endpoints/i/registry/keys.ts | 0 .../server/api/endpoints/i/registry/remove.ts | 0 .../server/api/endpoints/i/registry/scopes.ts | 0 .../server/api/endpoints/i/registry/set.ts | 0 .../server/api/endpoints/i/revoke-token.ts | 0 .../server/api/endpoints/i/signin-history.ts | 0 .../src}/server/api/endpoints/i/unpin.ts | 0 .../server/api/endpoints/i/update-email.ts | 0 .../src}/server/api/endpoints/i/update.ts | 0 .../api/endpoints/i/user-group-invites.ts | 0 .../server/api/endpoints/messaging/history.ts | 0 .../api/endpoints/messaging/messages.ts | 0 .../endpoints/messaging/messages/create.ts | 0 .../endpoints/messaging/messages/delete.ts | 0 .../api/endpoints/messaging/messages/read.ts | 0 .../backend/src}/server/api/endpoints/meta.ts | 0 .../server/api/endpoints/miauth/gen-token.ts | 0 .../src}/server/api/endpoints/mute/create.ts | 0 .../src}/server/api/endpoints/mute/delete.ts | 0 .../src}/server/api/endpoints/mute/list.ts | 0 .../src}/server/api/endpoints/my/apps.ts | 0 .../src}/server/api/endpoints/notes.ts | 0 .../server/api/endpoints/notes/children.ts | 0 .../src}/server/api/endpoints/notes/clips.ts | 0 .../api/endpoints/notes/conversation.ts | 0 .../src}/server/api/endpoints/notes/create.ts | 0 .../src}/server/api/endpoints/notes/delete.ts | 0 .../api/endpoints/notes/favorites/create.ts | 0 .../api/endpoints/notes/favorites/delete.ts | 0 .../server/api/endpoints/notes/featured.ts | 0 .../api/endpoints/notes/global-timeline.ts | 0 .../api/endpoints/notes/hybrid-timeline.ts | 0 .../api/endpoints/notes/local-timeline.ts | 0 .../server/api/endpoints/notes/mentions.ts | 0 .../endpoints/notes/polls/recommendation.ts | 0 .../server/api/endpoints/notes/polls/vote.ts | 0 .../server/api/endpoints/notes/reactions.ts | 0 .../api/endpoints/notes/reactions/create.ts | 0 .../api/endpoints/notes/reactions/delete.ts | 0 .../server/api/endpoints/notes/renotes.ts | 0 .../server/api/endpoints/notes/replies.ts | 0 .../api/endpoints/notes/search-by-tag.ts | 0 .../src}/server/api/endpoints/notes/search.ts | 0 .../src}/server/api/endpoints/notes/show.ts | 0 .../src}/server/api/endpoints/notes/state.ts | 0 .../endpoints/notes/thread-muting/create.ts | 0 .../endpoints/notes/thread-muting/delete.ts | 0 .../server/api/endpoints/notes/timeline.ts | 0 .../server/api/endpoints/notes/translate.ts | 0 .../server/api/endpoints/notes/unrenote.ts | 0 .../api/endpoints/notes/user-list-timeline.ts | 0 .../api/endpoints/notes/watching/create.ts | 0 .../api/endpoints/notes/watching/delete.ts | 0 .../api/endpoints/notifications/create.ts | 0 .../notifications/mark-all-as-read.ts | 0 .../api/endpoints/notifications/read.ts | 0 .../src}/server/api/endpoints/page-push.ts | 0 .../src}/server/api/endpoints/pages/create.ts | 0 .../src}/server/api/endpoints/pages/delete.ts | 0 .../server/api/endpoints/pages/featured.ts | 0 .../src}/server/api/endpoints/pages/like.ts | 0 .../src}/server/api/endpoints/pages/show.ts | 0 .../src}/server/api/endpoints/pages/unlike.ts | 0 .../src}/server/api/endpoints/pages/update.ts | 0 .../backend/src}/server/api/endpoints/ping.ts | 0 .../src}/server/api/endpoints/pinned-users.ts | 4 +- .../src}/server/api/endpoints/promo/read.ts | 0 .../api/endpoints/request-reset-password.ts | 0 .../src}/server/api/endpoints/reset-db.ts | 0 .../server/api/endpoints/reset-password.ts | 0 .../src}/server/api/endpoints/room/show.ts | 0 .../src}/server/api/endpoints/room/update.ts | 0 .../src}/server/api/endpoints/server-info.ts | 0 .../src}/server/api/endpoints/stats.ts | 0 .../src}/server/api/endpoints/sw/register.ts | 0 .../server/api/endpoints/sw/unregister.ts | 0 .../api/endpoints/username/available.ts | 0 .../src}/server/api/endpoints/users.ts | 0 .../src}/server/api/endpoints/users/clips.ts | 0 .../server/api/endpoints/users/followers.ts | 0 .../server/api/endpoints/users/following.ts | 0 .../api/endpoints/users/gallery/posts.ts | 0 .../users/get-frequently-replied-users.ts | 0 .../api/endpoints/users/groups/create.ts | 0 .../api/endpoints/users/groups/delete.ts | 0 .../users/groups/invitations/accept.ts | 0 .../users/groups/invitations/reject.ts | 0 .../api/endpoints/users/groups/invite.ts | 0 .../api/endpoints/users/groups/joined.ts | 0 .../api/endpoints/users/groups/leave.ts | 0 .../api/endpoints/users/groups/owned.ts | 0 .../server/api/endpoints/users/groups/pull.ts | 0 .../server/api/endpoints/users/groups/show.ts | 0 .../api/endpoints/users/groups/transfer.ts | 0 .../api/endpoints/users/groups/update.ts | 0 .../api/endpoints/users/lists/create.ts | 0 .../api/endpoints/users/lists/delete.ts | 0 .../server/api/endpoints/users/lists/list.ts | 0 .../server/api/endpoints/users/lists/pull.ts | 0 .../server/api/endpoints/users/lists/push.ts | 0 .../server/api/endpoints/users/lists/show.ts | 0 .../api/endpoints/users/lists/update.ts | 0 .../src}/server/api/endpoints/users/notes.ts | 0 .../src}/server/api/endpoints/users/pages.ts | 0 .../server/api/endpoints/users/reactions.ts | 0 .../api/endpoints/users/recommendation.ts | 0 .../server/api/endpoints/users/relation.ts | 0 .../api/endpoints/users/report-abuse.ts | 0 .../users/search-by-username-and-host.ts | 0 .../src}/server/api/endpoints/users/search.ts | 0 .../src}/server/api/endpoints/users/show.ts | 0 .../src}/server/api/endpoints/users/stats.ts | 0 .../backend/src}/server/api/error.ts | 0 .../backend/src}/server/api/index.ts | 0 .../backend/src}/server/api/limiter.ts | 6 +- .../backend/src}/server/api/logger.ts | 0 .../backend/src}/server/api/openapi/errors.ts | 0 .../src}/server/api/openapi/gen-spec.ts | 2 - .../src}/server/api/openapi/schemas.ts | 0 .../backend/src}/server/api/private/signin.ts | 0 .../src}/server/api/private/signup-pending.ts | 0 .../backend/src}/server/api/private/signup.ts | 0 .../src}/server/api/service/discord.ts | 0 .../backend/src}/server/api/service/github.ts | 0 .../src}/server/api/service/twitter.ts | 0 .../backend/src}/server/api/stream/channel.ts | 0 .../src}/server/api/stream/channels/admin.ts | 0 .../server/api/stream/channels/antenna.ts | 0 .../server/api/stream/channels/channel.ts | 0 .../src}/server/api/stream/channels/drive.ts | 0 .../api/stream/channels/games/reversi-game.ts | 0 .../api/stream/channels/games/reversi.ts | 0 .../api/stream/channels/global-timeline.ts | 0 .../server/api/stream/channels/hashtag.ts | 0 .../api/stream/channels/home-timeline.ts | 0 .../api/stream/channels/hybrid-timeline.ts | 0 .../src}/server/api/stream/channels/index.ts | 0 .../api/stream/channels/local-timeline.ts | 0 .../src}/server/api/stream/channels/main.ts | 0 .../api/stream/channels/messaging-index.ts | 0 .../server/api/stream/channels/messaging.ts | 0 .../server/api/stream/channels/queue-stats.ts | 0 .../api/stream/channels/server-stats.ts | 0 .../server/api/stream/channels/user-list.ts | 0 .../backend/src}/server/api/stream/index.ts | 0 .../backend/src}/server/api/stream/types.ts | 0 .../backend/src}/server/api/streaming.ts | 0 .../src}/server/file/assets/bad-egg.png | Bin .../src}/server/file/assets/cache-expired.png | Bin .../backend/src}/server/file/assets/dummy.png | Bin .../src}/server/file/assets/not-an-image.png | Bin .../file/assets/thumbnail-not-available.png | Bin .../src}/server/file/assets/tombstone.png | Bin .../backend/src}/server/file/index.ts | 0 .../src}/server/file/send-drive-file.ts | 0 {src => packages/backend/src}/server/index.ts | 4 +- .../backend/src}/server/nodeinfo.ts | 0 .../backend/src}/server/proxy/index.ts | 0 .../backend/src}/server/proxy/proxy-media.ts | 0 .../backend/src}/server/web/bios.css | 0 .../backend/src}/server/web/bios.js | 0 .../backend/src}/server/web/boot.js | 0 .../backend/src}/server/web/cli.css | 0 .../backend/src}/server/web/cli.js | 0 .../backend/src}/server/web/feed.ts | 0 .../backend/src}/server/web/index.ts | 19 +- .../backend/src}/server/web/manifest.json | 0 .../backend/src}/server/web/manifest.ts | 0 .../backend/src}/server/web/style.css | 0 .../backend/src}/server/web/url-preview.ts | 0 .../backend/src}/server/web/views/base.pug | 0 .../backend/src}/server/web/views/bios.pug | 0 .../backend/src}/server/web/views/channel.pug | 0 .../backend/src}/server/web/views/cli.pug | 0 .../backend/src}/server/web/views/clip.pug | 0 .../backend/src}/server/web/views/flush.pug | 0 .../src}/server/web/views/gallery-post.pug | 0 .../src}/server/web/views/info-card.pug | 0 .../backend/src}/server/web/views/note.pug | 0 .../backend/src}/server/web/views/page.pug | 0 .../backend/src}/server/web/views/user.pug | 0 .../backend/src}/server/well-known.ts | 6 +- .../src}/services/add-note-to-antenna.ts | 0 .../backend/src}/services/blocking/create.ts | 0 .../backend/src}/services/blocking/delete.ts | 0 .../chart/charts/classes/active-users.ts | 0 .../services/chart/charts/classes/drive.ts | 0 .../chart/charts/classes/federation.ts | 0 .../services/chart/charts/classes/hashtag.ts | 0 .../services/chart/charts/classes/instance.ts | 0 .../services/chart/charts/classes/network.ts | 0 .../services/chart/charts/classes/notes.ts | 0 .../chart/charts/classes/per-user-drive.ts | 0 .../charts/classes/per-user-following.ts | 0 .../chart/charts/classes/per-user-notes.ts | 0 .../charts/classes/per-user-reactions.ts | 0 .../chart/charts/classes/test-grouped.ts | 0 .../chart/charts/classes/test-unique.ts | 0 .../services/chart/charts/classes/test.ts | 0 .../services/chart/charts/classes/users.ts | 0 .../chart/charts/schemas/active-users.ts | 0 .../services/chart/charts/schemas/drive.ts | 0 .../chart/charts/schemas/federation.ts | 0 .../services/chart/charts/schemas/hashtag.ts | 0 .../services/chart/charts/schemas/instance.ts | 0 .../services/chart/charts/schemas/network.ts | 0 .../services/chart/charts/schemas/notes.ts | 0 .../chart/charts/schemas/per-user-drive.ts | 0 .../charts/schemas/per-user-following.ts | 0 .../chart/charts/schemas/per-user-notes.ts | 0 .../charts/schemas/per-user-reactions.ts | 0 .../chart/charts/schemas/test-grouped.ts | 0 .../chart/charts/schemas/test-unique.ts | 0 .../services/chart/charts/schemas/test.ts | 0 .../services/chart/charts/schemas/users.ts | 0 .../backend/src}/services/chart/core.ts | 0 .../backend/src}/services/chart/entities.ts | 0 .../backend/src}/services/chart/index.ts | 0 .../src}/services/create-notification.ts | 0 .../src}/services/create-system-user.ts | 0 .../backend/src}/services/drive/add-file.ts | 0 .../src}/services/drive/delete-file.ts | 0 .../drive/generate-video-thumbnail.ts | 0 .../src}/services/drive/image-processor.ts | 0 .../src}/services/drive/internal-storage.ts | 2 +- .../backend/src}/services/drive/logger.ts | 0 .../backend/src}/services/drive/s3.ts | 0 .../src}/services/drive/upload-from-url.ts | 0 .../src}/services/fetch-instance-metadata.ts | 0 .../backend/src}/services/following/create.ts | 0 .../backend/src}/services/following/delete.ts | 0 .../services/following/requests/accept-all.ts | 0 .../services/following/requests/accept.ts | 0 .../services/following/requests/cancel.ts | 0 .../services/following/requests/create.ts | 0 .../services/following/requests/reject.ts | 0 .../backend/src}/services/i/pin.ts | 0 .../backend/src}/services/i/update.ts | 0 .../src}/services/insert-moderation-log.ts | 0 .../backend/src}/services/instance-actor.ts | 0 .../backend/src}/services/logger.ts | 2 +- .../backend/src}/services/messages/create.ts | 0 .../backend/src}/services/messages/delete.ts | 0 .../backend/src}/services/note/create.ts | 7 +- .../backend/src}/services/note/delete.ts | 0 .../src}/services/note/polls/update.ts | 0 .../backend/src}/services/note/polls/vote.ts | 0 .../src}/services/note/reaction/create.ts | 0 .../src}/services/note/reaction/delete.ts | 0 .../backend/src}/services/note/read.ts | 0 .../backend/src}/services/note/unread.ts | 0 .../backend/src}/services/note/unwatch.ts | 0 .../backend/src}/services/note/watch.ts | 0 .../src}/services/push-notification.ts | 0 .../register-or-fetch-instance-doc.ts | 0 .../backend/src}/services/relay.ts | 0 .../src}/services/send-email-notification.ts | 8 +- .../backend/src}/services/send-email.ts | 0 .../backend/src}/services/stream.ts | 0 .../backend/src}/services/suspend-user.ts | 0 .../backend/src}/services/unsuspend-user.ts | 0 .../backend/src}/services/update-hashtag.ts | 0 .../backend/src}/services/user-list/push.ts | 0 .../services/validate-email-for-account.ts | 0 {src => packages/backend/src}/types.ts | 0 packages/backend/tools/accept-migration.js | 26 + .../backend/tools/accept-migration.js.map | 1 + .../backend}/tools/accept-migration.ts | 0 packages/backend/tools/add-emoji.js | 30 + packages/backend/tools/add-emoji.js.map | 1 + {src => packages/backend}/tools/add-emoji.ts | 0 packages/backend/tools/demote-admin.js | 30 + packages/backend/tools/demote-admin.js.map | 1 + .../backend}/tools/demote-admin.ts | 0 packages/backend/tools/mark-admin.js | 30 + packages/backend/tools/mark-admin.js.map | 1 + {src => packages/backend}/tools/mark-admin.ts | 0 packages/backend/tools/refresh-question.js | 14 + .../backend/tools/refresh-question.js.map | 1 + .../backend}/tools/refresh-question.ts | 0 packages/backend/tools/resync-remote-user.js | 26 + .../backend/tools/resync-remote-user.js.map | 1 + .../backend}/tools/resync-remote-user.ts | 4 +- packages/backend/tools/show-signin-history.js | 47 + .../backend/tools/show-signin-history.js.map | 1 + .../backend}/tools/show-signin-history.ts | 0 {src => packages/backend}/tsconfig.json | 15 +- packages/backend/yarn.lock | 8274 +++++++++++++++++ {src => packages}/client/.eslintrc | 2 +- packages/client/.npmrc | 2 + {src => packages}/client/@types/global.d.ts | 2 + {src => packages}/client/@types/vue.d.ts | 0 .../client/assets}/about-icon.png | Bin .../client/assets}/fedi.jpg | Bin .../client/assets}/label-red.svg | Bin .../client/assets}/label.svg | Bin .../client/assets}/misskey.svg | Bin .../client/assets}/remove.png | Bin .../room/furnitures/banknote/banknote.blend | Bin .../room/furnitures/banknote/banknote.glb | Bin .../assets}/room/furnitures/banknote/tex.png | Bin .../assets}/room/furnitures/bed/bed.blend | Bin .../assets}/room/furnitures/bed/bed.glb | Bin .../assets}/room/furnitures/bin/bin.blend | Bin .../assets}/room/furnitures/bin/bin.glb | Bin .../assets}/room/furnitures/book/book.blend | Bin .../assets}/room/furnitures/book/book.glb | Bin .../assets}/room/furnitures/book2/barcode.png | Bin .../assets}/room/furnitures/book2/book2.blend | Bin .../assets}/room/furnitures/book2/book2.glb | Bin .../room/furnitures/book2/texture.afdesign | Bin .../assets}/room/furnitures/book2/texture.png | Bin .../assets}/room/furnitures/book2/uv.png | Bin .../cardboard-box/cardboard-box.blend | Bin .../cardboard-box/cardboard-box.glb | Bin .../cardboard-box2/cardboard-box2.blend | Bin .../cardboard-box2/cardboard-box2.glb | Bin .../furnitures/cardboard-box2/texture.png | Bin .../room/furnitures/cardboard-box2/uv.png | Bin .../cardboard-box3/cardboard-box3.blend | Bin .../cardboard-box3/cardboard-box3.glb | Bin .../furnitures/cardboard-box3/texture.png | Bin .../furnitures/cardboard-box3/texture.xcf | Bin .../room/furnitures/cardboard-box3/uv.png | Bin .../carpet-stripe/carpet-stripe.blend | Bin .../carpet-stripe/carpet-stripe.glb | Bin .../assets}/room/furnitures/chair/chair.blend | Bin .../assets}/room/furnitures/chair/chair.glb | Bin .../room/furnitures/chair2/chair2.blend | Bin .../assets}/room/furnitures/chair2/chair2.glb | Bin .../room/furnitures/color-box/color-box.blend | Bin .../room/furnitures/color-box/color-box.glb | Bin .../room/furnitures/corkboard/corkboard.blend | Bin .../room/furnitures/corkboard/corkboard.glb | Bin .../assets}/room/furnitures/cube/cube.blend | Bin .../assets}/room/furnitures/cube/cube.glb | Bin .../furnitures/cup-noodle/cup-noodle.blend | Bin .../room/furnitures/cup-noodle/cup-noodle.glb | Bin .../room/furnitures/cup-noodle/noodle.png | Bin .../assets}/room/furnitures/desk/desk.blend | Bin .../assets}/room/furnitures/desk/desk.glb | Bin .../room/furnitures/doll-ai/doll-ai.blend | Bin .../room/furnitures/doll-ai/doll-ai.glb | Bin .../room/furnitures/doll-ai/doll_ai_tex.png | Bin .../energy-drink/energy-drink.blend | Bin .../furnitures/energy-drink/energy-drink.glb | Bin .../furnitures/energy-drink/texture.afdesign | Bin .../room/furnitures/energy-drink/texture.png | Bin .../room/furnitures/energy-drink/uv.png | Bin .../assets}/room/furnitures/eraser/cover.png | Bin .../assets}/room/furnitures/eraser/cover.psd | Bin .../room/furnitures/eraser/eraser-uv.png | Bin .../room/furnitures/eraser/eraser.blend | Bin .../assets}/room/furnitures/eraser/eraser.glb | Bin .../facial-tissue/facial-tissue-uv.png | Bin .../facial-tissue/facial-tissue.blend | Bin .../facial-tissue/facial-tissue.glb | Bin .../facial-tissue/facial-tissue.png | Bin .../facial-tissue/facial-tissue.psd | Bin .../assets}/room/furnitures/fan/fan.blend | Bin .../assets}/room/furnitures/fan/fan.glb | Bin .../holo-display/holo-display.blend | Bin .../furnitures/holo-display/holo-display.glb | Bin .../room/furnitures/holo-display/ray-uv.png | Bin .../room/furnitures/holo-display/ray.png | Bin .../room/furnitures/keyboard/keyboard.blend | Bin .../room/furnitures/keyboard/keyboard.glb | Bin .../room/furnitures/low-table/low-table.blend | Bin .../room/furnitures/low-table/low-table.glb | Bin .../assets}/room/furnitures/mat/mat.blend | Bin .../assets}/room/furnitures/mat/mat.glb | Bin .../assets}/room/furnitures/milk/milk-uv.png | Bin .../assets}/room/furnitures/milk/milk.blend | Bin .../assets}/room/furnitures/milk/milk.glb | Bin .../assets}/room/furnitures/milk/milk.png | Bin .../assets}/room/furnitures/milk/milk.psd | Bin .../room/furnitures/monitor/monitor.blend | Bin .../room/furnitures/monitor/monitor.glb | Bin .../room/furnitures/monitor/monitor.psd | Bin .../room/furnitures/monitor/screen-uv.png | Bin .../room/furnitures/monitor/screen.jpg | Bin .../assets}/room/furnitures/moon/moon.blend | Bin .../assets}/room/furnitures/moon/moon.glb | Bin .../assets}/room/furnitures/moon/moon.jpg | Bin .../room/furnitures/mousepad/mousepad.blend | Bin .../room/furnitures/mousepad/mousepad.glb | Bin .../room/furnitures/pc/motherboard-uv.png | Bin .../room/furnitures/pc/motherboard-uv.psd | Bin .../room/furnitures/pc/motherboard.jpg | Bin .../assets}/room/furnitures/pc/pc.blend | Bin .../client/assets}/room/furnitures/pc/pc.glb | Bin .../room/furnitures/pencil/pencil.blend | Bin .../assets}/room/furnitures/pencil/pencil.glb | Bin .../room/furnitures/photoframe/photo-uv.png | Bin .../room/furnitures/photoframe/photo.jpg | Bin .../furnitures/photoframe/photoframe.blend | Bin .../room/furnitures/photoframe/photoframe.glb | Bin .../assets}/room/furnitures/piano/piano.blend | Bin .../assets}/room/furnitures/piano/piano.glb | Bin .../room/furnitures/pinguin/pinguin.blend | Bin .../room/furnitures/pinguin/pinguin.glb | Bin .../room/furnitures/plant/plant-soil-uv.png | Bin .../room/furnitures/plant/plant-soil.png | Bin .../room/furnitures/plant/plant-soil.psd | Bin .../assets}/room/furnitures/plant/plant.blend | Bin .../assets}/room/furnitures/plant/plant.glb | Bin .../room/furnitures/plant2/plant2.blend | Bin .../assets}/room/furnitures/plant2/plant2.glb | Bin .../assets}/room/furnitures/plant2/soil.png | Bin .../room/furnitures/poster-h/poster-h.blend | Bin .../room/furnitures/poster-h/poster-h.glb | Bin .../assets}/room/furnitures/poster-h/uv.png | Bin .../room/furnitures/poster-v/poster-v.blend | Bin .../room/furnitures/poster-v/poster-v.glb | Bin .../assets}/room/furnitures/poster-v/uv.png | Bin .../room/furnitures/pudding/pudding.blend | Bin .../room/furnitures/pudding/pudding.glb | Bin .../furnitures/rubik-cube/rubik-cube.blend | Bin .../room/furnitures/rubik-cube/rubik-cube.glb | Bin .../room/furnitures/server/rack-uv.png | Bin .../assets}/room/furnitures/server/rack.png | Bin .../room/furnitures/server/server.blend | Bin .../assets}/room/furnitures/server/server.glb | Bin .../assets}/room/furnitures/server/server.png | Bin .../assets}/room/furnitures/server/uv.png | Bin .../assets}/room/furnitures/sofa/sofa.blend | Bin .../assets}/room/furnitures/sofa/sofa.glb | Bin .../room/furnitures/spiral/spiral.blend | Bin .../assets}/room/furnitures/spiral/spiral.glb | Bin .../assets}/room/furnitures/tv/screen-uv.png | Bin .../assets}/room/furnitures/tv/tv.blend | Bin .../client/assets}/room/furnitures/tv/tv.glb | Bin .../furnitures/wall-clock/wall-clock.blend | Bin .../room/furnitures/wall-clock/wall-clock.glb | Bin .../assets}/room/rooms/default/default.blend | Bin .../assets}/room/rooms/default/default.glb | Bin .../assets}/room/rooms/washitsu/husuma-uv.png | Bin .../assets}/room/rooms/washitsu/husuma.png | Bin .../room/rooms/washitsu/tatami-single1600.png | Bin .../assets}/room/rooms/washitsu/tatami-uv.png | Bin .../room/rooms/washitsu/tatami.afdesign | Bin .../assets}/room/rooms/washitsu/tatami.png | Bin .../room/rooms/washitsu/washitsu.blend | Bin .../assets}/room/rooms/washitsu/washitsu.glb | Bin .../client/assets}/sounds/aisha/1.mp3 | Bin .../client/assets}/sounds/aisha/2.mp3 | Bin .../client/assets}/sounds/aisha/3.mp3 | Bin .../assets}/sounds/noizenecio/kick_gaba.mp3 | Bin .../assets}/sounds/noizenecio/kick_gaba2.mp3 | Bin .../client/assets}/sounds/syuilo/down.mp3 | Bin .../client/assets}/sounds/syuilo/kick.mp3 | Bin .../sounds/syuilo/pirori-square-wet.mp3 | Bin .../assets}/sounds/syuilo/pirori-wet.mp3 | Bin .../client/assets}/sounds/syuilo/pirori.mp3 | Bin .../client/assets}/sounds/syuilo/poi1.mp3 | Bin .../client/assets}/sounds/syuilo/poi2.mp3 | Bin .../client/assets}/sounds/syuilo/pope1.mp3 | Bin .../client/assets}/sounds/syuilo/pope2.mp3 | Bin .../client/assets}/sounds/syuilo/popo.mp3 | Bin .../assets}/sounds/syuilo/queue-jammed.mp3 | Bin .../client/assets}/sounds/syuilo/reverved.mp3 | Bin .../client/assets}/sounds/syuilo/ryukyu.mp3 | Bin .../client/assets}/sounds/syuilo/snare.mp3 | Bin .../assets}/sounds/syuilo/square-pico.mp3 | Bin .../client/assets}/sounds/syuilo/triple.mp3 | Bin .../client/assets}/sounds/syuilo/up.mp3 | Bin .../client/assets}/sounds/syuilo/waon.mp3 | Bin .../client/assets}/sparkle-spritesheet.png | Bin .../client/assets}/unread.svg | Bin packages/client/package.json | 163 + .../client => packages/client/src}/account.ts | 12 +- .../src}/components/abuse-report-window.vue | 8 +- .../client/src}/components/analog-clock.vue | 0 .../client/src}/components/autocomplete.vue | 17 +- .../client/src}/components/avatars.vue | 2 +- .../client/src}/components/captcha.vue | 0 .../src}/components/channel-follow-button.vue | 2 +- .../src}/components/channel-preview.vue | 0 .../client/src}/components/chart.vue | 4 +- .../client/src}/components/code-core.vue | 0 .../client/src}/components/code.vue | 0 .../client/src}/components/cw-button.vue | 2 +- .../src}/components/date-separated-list.vue | 2 +- .../src}/components/debobigego/base.vue | 0 .../src}/components/debobigego/button.vue | 0 .../components/debobigego/debobigego.scss | 0 .../src}/components/debobigego/group.vue | 0 .../src}/components/debobigego/info.vue | 0 .../src}/components/debobigego/input.vue | 0 .../components/debobigego/key-value-view.vue | 0 .../src}/components/debobigego/link.vue | 0 .../components/debobigego/object-view.vue | 0 .../src}/components/debobigego/pagination.vue | 2 +- .../src}/components/debobigego/radios.vue | 2 +- .../src}/components/debobigego/range.vue | 0 .../src}/components/debobigego/select.vue | 0 .../src}/components/debobigego/suspense.vue | 2 +- .../src}/components/debobigego/switch.vue | 0 .../src}/components/debobigego/textarea.vue | 0 .../src}/components/debobigego/tuple.vue | 0 .../client/src}/components/dialog.vue | 8 +- .../src}/components/drive-file-thumbnail.vue | 4 +- .../src}/components/drive-select-dialog.vue | 4 +- .../client/src}/components/drive-window.vue | 2 +- .../client/src}/components/drive.file.vue | 14 +- .../client/src}/components/drive.folder.vue | 2 +- .../src}/components/drive.nav-folder.vue | 2 +- .../client/src}/components/drive.vue | 2 +- .../src}/components/emoji-picker-dialog.vue | 4 +- .../src}/components/emoji-picker-window.vue | 4 +- .../src}/components/emoji-picker.section.vue | 2 +- .../client/src}/components/emoji-picker.vue | 14 +- .../src}/components/featured-photos.vue | 2 +- .../client/src}/components/file-type-icon.vue | 2 +- .../client/src}/components/follow-button.vue | 2 +- .../src}/components/forgot-password.vue | 8 +- .../client/src}/components/form-dialog.vue | 2 +- .../client/src}/components/form/input.vue | 2 +- .../client/src}/components/form/radio.vue | 0 .../client/src}/components/form/radios.vue | 0 .../client/src}/components/form/range.vue | 0 .../client/src}/components/form/section.vue | 0 .../client/src}/components/form/select.vue | 4 +- .../client/src}/components/form/slot.vue | 0 .../client/src}/components/form/switch.vue | 0 .../client/src}/components/form/textarea.vue | 2 +- .../client/src}/components/formula-core.vue | 4 +- .../client/src}/components/formula.vue | 2 +- .../src}/components/gallery-post-preview.vue | 6 +- .../client/src}/components/global/a.vue | 12 +- .../client/src}/components/global/acct.vue | 2 +- .../client/src}/components/global/ad.vue | 10 +- .../client/src}/components/global/avatar.vue | 8 +- .../src}/components/global/ellipsis.vue | 0 .../client/src}/components/global/emoji.vue | 4 +- .../client/src}/components/global/error.vue | 2 +- .../client/src}/components/global/header.vue | 12 +- .../client/src}/components/global/i18n.ts | 0 .../client/src}/components/global/loading.vue | 0 .../global/misskey-flavored-markdown.vue | 2 +- .../client/src}/components/global/spacer.vue | 0 .../components/global/sticky-container.vue | 0 .../client/src}/components/global/time.vue | 0 .../client/src}/components/global/url.vue | 8 +- .../src}/components/global/user-name.vue | 0 .../client/src}/components/google.vue | 2 +- .../client/src}/components/image-viewer.vue | 6 +- .../src}/components/img-with-blurhash.vue | 0 .../client/src}/components/index.ts | 0 .../client/src}/components/instance-stats.vue | 8 +- .../src}/components/instance-ticker.vue | 2 +- .../client/src}/components/launch-pad.vue | 6 +- .../client/src}/components/link.vue | 8 +- .../client/src}/components/media-banner.vue | 4 +- .../client/src}/components/media-caption.vue | 23 +- .../client/src}/components/media-image.vue | 8 +- .../client/src}/components/media-list.vue | 4 +- .../client/src}/components/media-video.vue | 2 +- .../client/src}/components/mention.vue | 8 +- .../client/src}/components/mfm.ts | 26 +- .../client/src}/components/mini-chart.vue | 2 +- .../src}/components/modal-page-window.vue | 14 +- .../client/src}/components/note-detailed.vue | 28 +- .../client/src}/components/note-header.vue | 6 +- .../client/src}/components/note-preview.vue | 0 .../client/src}/components/note-simple.vue | 2 +- .../client/src}/components/note.sub.vue | 2 +- .../client/src}/components/note.vue | 28 +- .../client/src}/components/notes.vue | 4 +- .../notification-setting-window.vue | 4 +- .../client/src}/components/notification.vue | 10 +- .../client/src}/components/notifications.vue | 8 +- .../client/src}/components/number-diff.vue | 2 +- .../client/src}/components/page-preview.vue | 4 +- .../client/src}/components/page-window.vue | 12 +- .../src}/components/page/page.block.vue | 4 +- .../src}/components/page/page.button.vue | 6 +- .../src}/components/page/page.canvas.vue | 6 +- .../src}/components/page/page.counter.vue | 6 +- .../client/src}/components/page/page.if.vue | 4 +- .../src}/components/page/page.image.vue | 6 +- .../client/src}/components/page/page.note.vue | 8 +- .../components/page/page.number-input.vue | 6 +- .../client/src}/components/page/page.post.vue | 8 +- .../components/page/page.radio-button.vue | 6 +- .../src}/components/page/page.section.vue | 6 +- .../src}/components/page/page.switch.vue | 6 +- .../src}/components/page/page.text-input.vue | 6 +- .../client/src}/components/page/page.text.vue | 8 +- .../components/page/page.textarea-input.vue | 8 +- .../src}/components/page/page.textarea.vue | 4 +- .../client/src}/components/page/page.vue | 8 +- .../client/src}/components/particle.vue | 0 .../client/src}/components/poll-editor.vue | 4 +- .../client/src}/components/poll.vue | 4 +- .../src}/components/post-form-attaches.vue | 4 +- .../src}/components/post-form-dialog.vue | 4 +- .../client/src}/components/post-form.vue | 28 +- .../client/src}/components/queue-chart.vue | 6 +- .../client/src}/components/reaction-icon.vue | 0 .../src}/components/reaction-tooltip.vue | 0 .../components/reactions-viewer.details.vue | 0 .../components/reactions-viewer.reaction.vue | 6 +- .../src}/components/reactions-viewer.vue | 0 .../client/src}/components/remote-caution.vue | 2 +- .../client/src}/components/sample.vue | 14 +- .../client/src}/components/signin-dialog.vue | 2 +- .../client/src}/components/signin.vue | 14 +- .../client/src}/components/signup-dialog.vue | 2 +- .../client/src}/components/signup.vue | 6 +- .../client/src}/components/sparkle.vue | 5 +- .../src}/components/sub-note-content.vue | 2 +- .../client/src}/components/tab.vue | 0 .../components/taskmanager.api-window.vue | 4 +- .../client/src}/components/taskmanager.vue | 10 +- .../client/src}/components/timeline.vue | 4 +- .../client/src}/components/toast.vue | 0 .../src}/components/token-generate-window.vue | 6 +- .../client/src}/components/ui/button.vue | 0 .../client/src}/components/ui/container.vue | 0 .../src}/components/ui/context-menu.vue | 2 +- .../client/src}/components/ui/folder.vue | 0 .../client/src}/components/ui/hr.vue | 2 +- .../client/src}/components/ui/info.vue | 2 +- .../client/src}/components/ui/menu.vue | 4 +- .../src}/components/ui/modal-window.vue | 0 .../client/src}/components/ui/modal.vue | 0 .../client/src}/components/ui/pagination.vue | 2 +- .../client/src}/components/ui/popup-menu.vue | 0 .../client/src}/components/ui/popup.vue | 0 .../client/src}/components/ui/super-menu.vue | 0 .../client/src}/components/ui/tooltip.vue | 0 .../client/src}/components/ui/window.vue | 4 +- .../client/src}/components/updated.vue | 6 +- .../src}/components/url-preview-popup.vue | 2 +- .../client/src}/components/url-preview.vue | 4 +- .../client/src}/components/user-info.vue | 4 +- .../client/src}/components/user-list.vue | 4 +- .../src}/components/user-online-indicator.vue | 0 .../client/src}/components/user-preview.vue | 8 +- .../src}/components/user-select-dialog.vue | 4 +- .../client/src}/components/users-dialog.vue | 4 +- .../src}/components/visibility-picker.vue | 2 +- .../client/src}/components/waiting-dialog.vue | 2 +- .../client/src}/components/widgets.vue | 6 +- {src/client => packages/client/src}/config.ts | 0 .../client/src}/directives/anim.ts | 0 .../client/src}/directives/appear.ts | 0 .../client/src}/directives/click-anime.ts | 2 +- .../client/src}/directives/follow-append.ts | 2 +- .../client/src}/directives/get-size.ts | 0 .../client/src}/directives/hotkey.ts | 0 .../client/src}/directives/index.ts | 0 .../client/src}/directives/particle.ts | 4 +- .../client/src}/directives/size.ts | 0 .../src}/directives/sticky-container.ts | 0 .../client/src}/directives/tooltip.ts | 6 +- .../client/src}/directives/user-preview.ts | 4 +- {src => packages/client/src}/emojilist.json | 0 {src/client => packages/client/src}/events.ts | 0 .../client/src}/filters/bytes.ts | 0 .../client/src}/filters/note.ts | 0 .../client/src}/filters/number.ts | 0 packages/client/src/filters/user.ts | 15 + {src/client => packages/client/src}/i18n.ts | 4 +- {src/client => packages/client/src}/init.ts | 62 +- .../client/src}/instance.ts | 0 {src/client => packages/client/src}/menu.ts | 10 +- {src/client => packages/client/src}/os.ts | 38 +- .../client/src}/pages/_error_.vue | 10 +- .../client/src}/pages/_loading_.vue | 2 +- .../client/src}/pages/about-misskey.vue | 18 +- .../client/src}/pages/about.vue | 22 +- .../client/src}/pages/admin/abuses.vue | 16 +- .../client/src}/pages/admin/ads.vue | 12 +- .../client/src}/pages/admin/announcements.vue | 10 +- .../src}/pages/admin/bot-protection.vue | 22 +- .../client/src}/pages/admin/database.vue | 18 +- .../src}/pages/admin/email-settings.vue | 20 +- .../src}/pages/admin/emoji-edit-dialog.vue | 10 +- .../client/src}/pages/admin/emojis.vue | 14 +- .../client/src}/pages/admin/file-dialog.vue | 14 +- .../src}/pages/admin/files-settings.vue | 18 +- .../client/src}/pages/admin/files.vue | 18 +- .../client/src}/pages/admin/index.vue | 22 +- .../src}/pages/admin/instance-block.vue | 22 +- .../client/src}/pages/admin/instance.vue | 20 +- .../src}/pages/admin/integrations-discord.vue | 18 +- .../src}/pages/admin/integrations-github.vue | 18 +- .../src}/pages/admin/integrations-twitter.vue | 18 +- .../client/src}/pages/admin/integrations.vue | 22 +- .../client/src}/pages/admin/metrics.vue | 18 +- .../src}/pages/admin/object-storage.vue | 18 +- .../src}/pages/admin/other-settings.vue | 18 +- .../client/src}/pages/admin/overview.vue | 26 +- .../client/src}/pages/admin/proxy-account.vue | 22 +- .../client/src}/pages/admin/queue.chart.vue | 6 +- .../client/src}/pages/admin/queue.vue | 10 +- .../client/src}/pages/admin/relays.vue | 12 +- .../client/src}/pages/admin/security.vue | 20 +- .../src}/pages/admin/service-worker.vue | 18 +- .../client/src}/pages/admin/settings.vue | 22 +- .../client/src}/pages/admin/users.vue | 16 +- .../src}/pages/advanced-theme-editor.vue | 26 +- .../client/src}/pages/announcements.vue | 8 +- .../client/src}/pages/antenna-timeline.vue | 10 +- .../client/src}/pages/api-console.vue | 12 +- .../client/src}/pages/auth.form.vue | 4 +- .../client/src}/pages/auth.vue | 6 +- .../client/src}/pages/channel-editor.vue | 12 +- .../client/src}/pages/channel.vue | 12 +- .../client/src}/pages/channels.vue | 10 +- .../client/src}/pages/clip.vue | 10 +- .../client/src}/pages/drive.vue | 6 +- .../client/src}/pages/emojis.category.vue | 16 +- .../client/src}/pages/emojis.emoji.vue | 4 +- .../client/src}/pages/emojis.vue | 4 +- .../client/src}/pages/explore.vue | 16 +- .../client/src}/pages/favorites.vue | 8 +- .../client/src}/pages/featured.vue | 6 +- .../client/src}/pages/federation.vue | 12 +- .../client/src}/pages/follow-requests.vue | 8 +- .../client/src}/pages/follow.vue | 6 +- .../client/src}/pages/gallery/edit.vue | 22 +- .../client/src}/pages/gallery/index.vue | 20 +- .../client/src}/pages/gallery/post.vue | 18 +- .../client/src}/pages/instance-info.vue | 30 +- .../client/src}/pages/mentions.vue | 6 +- .../client/src}/pages/messages.vue | 6 +- .../client/src}/pages/messaging/index.vue | 16 +- .../pages/messaging/messaging-room.form.vue | 8 +- .../messaging/messaging-room.message.vue | 8 +- .../src}/pages/messaging/messaging-room.vue | 16 +- .../client/src}/pages/mfm-cheat-sheet.vue | 4 +- .../client/src}/pages/miauth.vue | 8 +- .../client/src}/pages/my-antennas/create.vue | 4 +- .../client/src}/pages/my-antennas/edit.vue | 6 +- .../client/src}/pages/my-antennas/editor.vue | 16 +- .../client/src}/pages/my-antennas/index.vue | 6 +- .../client/src}/pages/my-clips/index.vue | 8 +- .../client/src}/pages/my-groups/group.vue | 8 +- .../client/src}/pages/my-groups/index.vue | 14 +- .../client/src}/pages/my-lists/index.vue | 10 +- .../client/src}/pages/my-lists/list.vue | 8 +- .../client/src}/pages/not-found.vue | 4 +- .../client/src}/pages/note.vue | 14 +- .../client/src}/pages/notifications.vue | 10 +- .../page-editor/els/page-editor.el.button.vue | 8 +- .../page-editor/els/page-editor.el.canvas.vue | 4 +- .../els/page-editor.el.counter.vue | 4 +- .../page-editor/els/page-editor.el.if.vue | 4 +- .../page-editor/els/page-editor.el.image.vue | 4 +- .../page-editor/els/page-editor.el.note.vue | 10 +- .../els/page-editor.el.number-input.vue | 4 +- .../page-editor/els/page-editor.el.post.vue | 8 +- .../els/page-editor.el.radio-button.vue | 6 +- .../els/page-editor.el.section.vue | 2 +- .../page-editor/els/page-editor.el.switch.vue | 6 +- .../els/page-editor.el.text-input.vue | 4 +- .../page-editor/els/page-editor.el.text.vue | 2 +- .../els/page-editor.el.textarea-input.vue | 6 +- .../els/page-editor.el.textarea.vue | 2 +- .../pages/page-editor/page-editor.blocks.vue | 2 +- .../page-editor/page-editor.container.vue | 0 .../page-editor/page-editor.script-block.vue | 10 +- .../src}/pages/page-editor/page-editor.vue | 26 +- .../client/src}/pages/page.vue | 18 +- .../client/src}/pages/pages.vue | 10 +- .../client/src}/pages/preview.vue | 4 +- .../client/src}/pages/reset-password.vue | 16 +- .../client/src}/pages/reversi/game.board.vue | 12 +- .../src}/pages/reversi/game.setting.vue | 8 +- .../client/src}/pages/reversi/game.vue | 4 +- .../client/src}/pages/reversi/index.vue | 8 +- .../client/src}/pages/room/preview.vue | 2 +- .../client/src}/pages/room/room.vue | 22 +- .../client/src}/pages/scratchpad.vue | 10 +- .../client/src}/pages/search.vue | 6 +- .../client/src}/pages/settings/2fa.vue | 22 +- .../src}/pages/settings/account-info.vue | 22 +- .../client/src}/pages/settings/accounts.vue | 20 +- .../client/src}/pages/settings/api.vue | 18 +- .../client/src}/pages/settings/apps.vue | 16 +- .../client/src}/pages/settings/custom-css.vue | 26 +- .../client/src}/pages/settings/deck.vue | 20 +- .../src}/pages/settings/delete-account.vue | 16 +- .../client/src}/pages/settings/drive.vue | 14 +- .../src}/pages/settings/email-address.vue | 12 +- .../pages/settings/email-notification.vue | 14 +- .../client/src}/pages/settings/email.vue | 14 +- .../pages/settings/experimental-features.vue | 18 +- .../client/src}/pages/settings/general.vue | 28 +- .../src}/pages/settings/import-export.vue | 10 +- .../client/src}/pages/settings/index.vue | 18 +- .../src}/pages/settings/integration.vue | 10 +- .../client/src}/pages/settings/menu.vue | 18 +- .../client/src}/pages/settings/mute-block.vue | 18 +- .../src}/pages/settings/notifications.vue | 16 +- .../client/src}/pages/settings/other.vue | 24 +- .../src}/pages/settings/plugin.install.vue | 26 +- .../src}/pages/settings/plugin.manage.vue | 18 +- .../client/src}/pages/settings/plugin.vue | 12 +- .../client/src}/pages/settings/privacy.vue | 14 +- .../client/src}/pages/settings/profile.vue | 22 +- .../client/src}/pages/settings/reaction.vue | 16 +- .../src}/pages/settings/registry.keys.vue | 18 +- .../src}/pages/settings/registry.value.vue | 20 +- .../client/src}/pages/settings/registry.vue | 18 +- .../client/src}/pages/settings/security.vue | 14 +- .../client/src}/pages/settings/sounds.vue | 18 +- .../src}/pages/settings/theme.install.vue | 24 +- .../src}/pages/settings/theme.manage.vue | 26 +- .../client/src}/pages/settings/theme.vue | 28 +- .../client/src}/pages/settings/update.vue | 22 +- .../client/src}/pages/settings/word-mute.vue | 18 +- .../client/src}/pages/share.vue | 14 +- .../client/src}/pages/signup-complete.vue | 6 +- .../client/src}/pages/tag.vue | 6 +- .../client/src}/pages/test.vue | 14 +- .../client/src}/pages/theme-editor.vue | 20 +- .../client/src}/pages/timeline.tutorial.vue | 2 +- .../client/src}/pages/timeline.vue | 12 +- .../client/src}/pages/user-ap-info.vue | 26 +- .../client/src}/pages/user-info.vue | 30 +- .../client/src}/pages/user-list-timeline.vue | 10 +- .../client/src}/pages/user/clips.vue | 2 +- .../client/src}/pages/user/follow-list.vue | 4 +- .../client/src}/pages/user/gallery.vue | 4 +- .../client/src}/pages/user/index.activity.vue | 6 +- .../client/src}/pages/user/index.photos.vue | 10 +- .../client/src}/pages/user/index.timeline.vue | 6 +- .../client/src}/pages/user/index.vue | 32 +- .../client/src}/pages/user/pages.vue | 4 +- .../client/src}/pages/user/reactions.vue | 6 +- .../client/src}/pages/v.vue | 4 +- .../client/src}/pages/welcome.entrance.a.vue | 18 +- .../client/src}/pages/welcome.entrance.b.vue | 18 +- .../client/src}/pages/welcome.entrance.c.vue | 18 +- .../client/src}/pages/welcome.setup.vue | 10 +- .../client/src}/pages/welcome.timeline.vue | 8 +- .../client/src}/pages/welcome.vue | 6 +- {src/client => packages/client/src}/pizzax.ts | 0 {src/client => packages/client/src}/plugin.ts | 6 +- {src/client => packages/client/src}/router.ts | 8 +- .../client/src}/scripts/2fa.ts | 0 .../client/src}/scripts/aiscript/api.ts | 4 +- packages/client/src/scripts/array.ts | 138 + .../client/src}/scripts/autocomplete.ts | 4 +- .../client/src}/scripts/check-word-mute.ts | 0 .../client/src}/scripts/collect-page-vars.ts | 0 .../client/src}/scripts/contains.ts | 0 .../client/src}/scripts/copy-to-clipboard.ts | 0 .../client/src/scripts}/emojilist.ts | 0 .../extract-avg-color-from-blurhash.ts | 0 .../client/src/scripts/extract-mentions.ts | 11 + .../src/scripts}/extract-url-from-mfm.ts | 2 +- .../client/src}/scripts/focus.ts | 0 .../client/src}/scripts/form.ts | 0 .../client/src/scripts}/format-time-string.ts | 0 .../client/src/scripts/games/reversi/core.ts | 263 + .../client/src/scripts/games/reversi/maps.ts | 896 ++ .../src/scripts/games/reversi/package.json | 18 + .../src/scripts/games/reversi/tsconfig.json | 21 + .../client/src}/scripts/gen-search-query.ts | 6 +- .../src}/scripts/get-account-from-id.ts | 2 +- .../client/src}/scripts/get-md5.ts | 0 .../client/src/scripts/get-note-summary.ts | 55 + .../src}/scripts/get-static-image-url.ts | 4 +- .../client/src}/scripts/get-user-menu.ts | 20 +- .../client/src}/scripts/hotkey.ts | 0 .../client/src}/scripts/hpml/block.ts | 0 .../client/src}/scripts/hpml/evaluator.ts | 4 +- .../client/src}/scripts/hpml/expr.ts | 0 .../client/src}/scripts/hpml/index.ts | 0 .../client/src}/scripts/hpml/lib.ts | 0 .../client/src}/scripts/hpml/type-checker.ts | 0 packages/client/src/scripts/i18n.ts | 29 + .../client/src}/scripts/idb-proxy.ts | 0 .../client/src}/scripts/initialize-sw.ts | 8 +- .../client/src}/scripts/is-device-darkmode.ts | 0 .../client/src}/scripts/is-device-touch.ts | 0 .../client/src}/scripts/is-mobile.ts | 0 .../client/src}/scripts/keycode.ts | 0 .../client/src}/scripts/loading.ts | 0 .../client/src}/scripts/login-id.ts | 0 .../client/src}/scripts/lookup-user.ts | 8 +- packages/client/src/scripts/mfm-tags.ts | 1 + .../client/src}/scripts/paging.ts | 2 +- .../client/src}/scripts/physics.ts | 0 .../client/src}/scripts/please-login.ts | 6 +- .../client/src}/scripts/popout.ts | 2 +- .../client/src}/scripts/reaction-picker.ts | 4 +- .../client/src}/scripts/room/furniture.ts | 0 .../client/src}/scripts/room/furnitures.json5 | 0 .../client/src}/scripts/room/room.ts | 6 +- .../client/src}/scripts/scroll.ts | 0 .../client/src}/scripts/search.ts | 6 +- .../client/src}/scripts/select-file.ts | 6 +- .../src}/scripts/show-suspended-dialog.ts | 4 +- .../client/src}/scripts/sound.ts | 4 +- .../client/src}/scripts/sticky-sidebar.ts | 0 .../client/src}/scripts/theme-editor.ts | 0 .../client/src}/scripts/theme.ts | 30 +- packages/client/src/scripts/time.ts | 39 + .../client/src/scripts}/twemoji-base.ts | 0 .../client/src}/scripts/unison-reload.ts | 0 packages/client/src/scripts/url.ts | 13 + {src/client => packages/client/src}/store.ts | 4 +- .../client => packages/client/src}/style.scss | 0 .../client/src}/sw/compose-notification.ts | 8 +- {src/client => packages/client/src}/sw/sw.ts | 4 +- .../client => packages/client/src}/symbols.ts | 0 .../client/src}/theme-store.ts | 4 +- .../client/src}/themes/_dark.json5 | 0 .../client/src}/themes/_light.json5 | 0 .../client/src}/themes/d-astro.json5 | 0 .../client/src}/themes/d-black.json5 | 0 .../client/src}/themes/d-botanical.json5 | 0 .../client/src}/themes/d-dark.json5 | 0 .../client/src}/themes/d-future.json5 | 0 .../client/src}/themes/d-persimmon.json5 | 0 .../client/src}/themes/d-pumpkin.json5 | 0 .../client/src}/themes/l-apricot.json5 | 0 .../client/src}/themes/l-light.json5 | 0 .../client/src}/themes/l-rainy.json5 | 0 .../client/src}/themes/l-sushi.json5 | 0 .../client/src}/themes/l-vivid.json5 | 0 .../client/src}/ui/_common_/common.vue | 8 +- .../client/src}/ui/_common_/sidebar.vue | 12 +- .../src}/ui/_common_/stream-indicator.vue | 2 +- .../client/src}/ui/_common_/upload.vue | 2 +- .../src}/ui/chat/date-separated-list.vue | 2 +- .../client/src}/ui/chat/header-clock.vue | 2 +- .../client/src}/ui/chat/index.vue | 18 +- .../client/src}/ui/chat/note-header.vue | 6 +- .../client/src}/ui/chat/note-preview.vue | 4 +- .../client/src}/ui/chat/note.sub.vue | 4 +- .../client/src}/ui/chat/note.vue | 36 +- .../client/src}/ui/chat/notes.vue | 4 +- .../client/src}/ui/chat/pages/channel.vue | 12 +- .../client/src}/ui/chat/pages/timeline.vue | 12 +- .../client/src}/ui/chat/post-form.vue | 29 +- .../client/src}/ui/chat/side.vue | 10 +- .../client/src}/ui/chat/store.ts | 0 .../client/src}/ui/chat/sub-note-content.vue | 6 +- .../client/src}/ui/chat/widgets.vue | 2 +- .../client/src}/ui/classic.header.vue | 14 +- .../client/src}/ui/classic.side.vue | 10 +- .../client/src}/ui/classic.sidebar.vue | 20 +- .../client/src}/ui/classic.vue | 12 +- .../client/src}/ui/classic.widgets.vue | 2 +- .../client/src}/ui/deck.vue | 12 +- .../client/src}/ui/deck/antenna-column.vue | 4 +- .../client/src}/ui/deck/column-core.vue | 0 .../client/src}/ui/deck/column.vue | 2 +- .../client/src}/ui/deck/deck-store.ts | 4 +- .../client/src}/ui/deck/direct-column.vue | 6 +- .../client/src}/ui/deck/list-column.vue | 4 +- .../client/src}/ui/deck/main-column.vue | 8 +- .../client/src}/ui/deck/mentions-column.vue | 6 +- .../src}/ui/deck/notifications-column.vue | 6 +- .../client/src}/ui/deck/tl-column.vue | 4 +- .../client/src}/ui/deck/widgets-column.vue | 2 +- .../client/src}/ui/desktop.vue | 12 +- .../client/src}/ui/universal.vue | 12 +- .../client/src}/ui/universal.widgets.vue | 4 +- .../client/src}/ui/visitor.vue | 0 .../client/src}/ui/visitor/a.vue | 14 +- .../client/src}/ui/visitor/b.vue | 18 +- .../client/src}/ui/visitor/header.vue | 8 +- .../client/src}/ui/visitor/kanban.vue | 12 +- .../client => packages/client/src}/ui/zen.vue | 4 +- .../client/src}/widgets/activity.calendar.vue | 2 +- .../client/src}/widgets/activity.chart.vue | 2 +- .../client/src}/widgets/activity.vue | 4 +- .../client/src}/widgets/aichan.vue | 4 +- .../client/src}/widgets/aiscript.vue | 6 +- .../client/src}/widgets/button.vue | 6 +- .../client/src}/widgets/calendar.vue | 2 +- .../client/src}/widgets/clock.vue | 6 +- .../client/src}/widgets/define.ts | 4 +- .../client/src}/widgets/digital-clock.vue | 2 +- .../client/src}/widgets/federation.vue | 6 +- .../client/src}/widgets/index.ts | 0 .../client/src}/widgets/job-queue.vue | 6 +- .../client/src}/widgets/memo.vue | 4 +- .../client/src}/widgets/notifications.vue | 8 +- .../client/src}/widgets/online-users.vue | 2 +- .../client/src}/widgets/photos.vue | 6 +- .../client/src}/widgets/post-form.vue | 2 +- .../client/src}/widgets/rss.vue | 4 +- .../src}/widgets/server-metric/cpu-mem.vue | 0 .../client/src}/widgets/server-metric/cpu.vue | 0 .../src}/widgets/server-metric/disk.vue | 2 +- .../src}/widgets/server-metric/index.vue | 4 +- .../client/src}/widgets/server-metric/mem.vue | 2 +- .../client/src}/widgets/server-metric/net.vue | 2 +- .../client/src}/widgets/server-metric/pie.vue | 0 .../client/src}/widgets/slideshow.vue | 2 +- .../client/src}/widgets/timeline.vue | 6 +- .../client/src}/widgets/trends.vue | 6 +- {src => packages}/client/tsconfig.json | 7 +- .../client/webpack.config.js | 33 +- packages/client/yarn.lock | 6874 ++++++++++++++ {src => packages}/meta.json | 0 src/client/filters/user.ts | 15 - src/mfm/fn-name-list.ts | 23 - src/misc/acct.ts | 11 - src/misc/get-user-name.ts | 5 - src/misc/license.ts | 19 - src/server/api/openapi/description.ts | 51 - src/well-known-services.ts | 4 - vetur.config.js | 41 - yarn.lock | 8026 +--------------- 1714 files changed, 20803 insertions(+), 11751 deletions(-) delete mode 100644 .imgbotconfig create mode 100644 gulpfile.js delete mode 100644 gulpfile.ts delete mode 100644 index.js delete mode 100644 migration/1557476068003-PinnedUsers.ts delete mode 100644 migration/1558266512381-UserListJoining.ts delete mode 100644 migration/1562422242907-PasswordLessLogin.ts delete mode 100644 migration/1562448332510-PageTitleHideOption.ts delete mode 100644 migration/1565634203341-room.ts delete mode 100644 migration/1571220798684-CustomEmojiCategory.ts delete mode 100644 migration/1576269851876-TalkFederationId.ts delete mode 100644 migration/1576869585998-ProxyRemoteFiles.ts delete mode 100644 migration/1579270193251-v12-2.ts delete mode 100644 migration/1579282808087-v12-3.ts delete mode 100644 migration/1580154400017-v12-9.ts delete mode 100644 migration/1580543501339-v12-13.ts delete mode 100644 migration/1581708415836-drive-user-folder-id-index.ts delete mode 100644 migration/1582019042083-featured-injecttion.ts delete mode 100644 migration/1582210532752-antenna-exclude.ts delete mode 100644 migration/1582875306439-note-reaction-length.ts delete mode 100644 migration/1585772678853-ap-url.ts delete mode 100644 migration/1586624197029-AddObjectStorageUseProxy.ts delete mode 100644 migration/1586641139527-remote-reaction.ts delete mode 100644 migration/1586708940386-pageAiScript.ts delete mode 100644 migration/1595075960584-blurhash.ts delete mode 100644 migration/1595676934834-instance-icon-url.ts delete mode 100644 migration/1596786425167-channel2.ts delete mode 100644 migration/1597230137744-objectStorageSetPublicRead.ts delete mode 100644 migration/1597385880794-add-sensitive-index.ts delete mode 100644 migration/1597893996136-ChannelNoteIdDescIndex.ts delete mode 100644 migration/1603776877564-instance-theme-color.ts delete mode 100644 migration/1603781553011-instance-favicon.ts delete mode 100644 migration/1604821689616-delete-auto-watch.ts delete mode 100644 migration/1605408848373-clip-description.ts delete mode 100644 migration/1605585339718-instance-pinned-pages.ts delete mode 100644 migration/1607151207216-instance-pinned-clip.ts delete mode 100644 migration/1610283021566-registry3.ts delete mode 100644 migration/1611547387175-objectStorageS3ForcePathStyle.ts delete mode 100644 migration/1612619156584-announcement-email.ts delete mode 100644 migration/1613155914446-emailNotificationTypes.ts delete mode 100644 migration/1613181457597-user-lang.ts delete mode 100644 migration/1613503367223-use-bigint-for-driveUsage.ts delete mode 100644 migration/1615965918224-chart-v2.ts delete mode 100644 migration/1618639857000-user-hide-online-status.ts delete mode 100644 migration/1620364649428-ad2.ts delete mode 100644 migration/1621479946000-add-note-indexes.ts delete mode 100644 migration/1622679304522-user-profile-description-length.ts delete mode 100644 migration/1622681548499-log-message-length.ts delete mode 100644 migration/1629024377804-deepl-integration.ts delete mode 100644 migration/1629288472000-fix-channel-userId.ts delete mode 100644 migration/1629512953000-user-is-deleted.ts delete mode 100644 migration/1629778475000-deepl-integration2.ts delete mode 100644 migration/1633068642000-email-required-for-signup.ts delete mode 100644 migration/1634486652000-user-public-reactions.ts delete mode 100644 migration/1634902659689-delete-log.ts rename {src => packages/backend}/.eslintrc (100%) rename .mocharc.json => packages/backend/.mocharc.json (100%) create mode 100644 packages/backend/.npmrc rename {src => packages/backend}/@types/hcaptcha.d.ts (100%) rename {src => packages/backend}/@types/http-signature.d.ts (100%) rename {src => packages/backend}/@types/jsrsasign.d.ts (100%) rename {src => packages/backend}/@types/koa-json-body.d.ts (100%) rename {src => packages/backend}/@types/koa-slow.d.ts (100%) rename {src => packages/backend}/@types/langmap.d.ts (100%) rename {src => packages/backend}/@types/ms.d.ts (100%) rename {src => packages/backend}/@types/os-utils.d.ts (100%) rename {src => packages/backend}/@types/package.json.d.ts (100%) rename {src => packages/backend}/@types/probe-image-size.d.ts (100%) rename {assets => packages/backend/assets}/api-doc.png (100%) rename {assets => packages/backend/assets}/apple-touch-icon.png (100%) rename {assets => packages/backend/assets}/favicon.ico (100%) rename {assets => packages/backend/assets}/favicon.png (100%) rename {assets => packages/backend/assets}/icons/192.png (100%) rename {assets => packages/backend/assets}/icons/512.png (100%) rename {assets => packages/backend/assets}/mi-white.png (100%) rename {assets => packages/backend/assets}/redoc.html (100%) rename {assets => packages/backend/assets}/robots.txt (100%) rename {assets => packages/backend/assets}/user-unknown.png (100%) rename migration/1000000000000-Init.ts => packages/backend/migration/1000000000000-Init.js (99%) rename migration/1556348509290-Pages.ts => packages/backend/migration/1556348509290-Pages.js (91%) rename migration/1556746559567-UserProfile.ts => packages/backend/migration/1556746559567-UserProfile.js (70%) create mode 100644 packages/backend/migration/1557476068003-PinnedUsers.js rename migration/1557761316509-AddSomeUrls.ts => packages/backend/migration/1557761316509-AddSomeUrls.js (71%) rename migration/1557932705754-ObjectStorageSetting.ts => packages/backend/migration/1557932705754-ObjectStorageSetting.js (88%) rename migration/1558072954435-PageLike.ts => packages/backend/migration/1558072954435-PageLike.js (85%) rename migration/1558103093633-UserGroup.ts => packages/backend/migration/1558103093633-UserGroup.js (93%) rename migration/1558257926829-UserGroupInvite.ts => packages/backend/migration/1558257926829-UserGroupInvite.js (87%) create mode 100644 packages/backend/migration/1558266512381-UserListJoining.js rename migration/1561706992953-webauthn.ts => packages/backend/migration/1561706992953-webauthn.js (90%) rename migration/1561873850023-ChartIndexes.ts => packages/backend/migration/1561873850023-ChartIndexes.js (98%) create mode 100644 packages/backend/migration/1562422242907-PasswordLessLogin.js rename migration/1562444565093-PinnedPage.ts => packages/backend/migration/1562444565093-PinnedPage.js (75%) create mode 100644 packages/backend/migration/1562448332510-PageTitleHideOption.js rename migration/1562869971568-ModerationLog.ts => packages/backend/migration/1562869971568-ModerationLog.js (77%) rename migration/1563757595828-UsedUsername.ts => packages/backend/migration/1563757595828-UsedUsername.js (54%) create mode 100644 packages/backend/migration/1565634203341-room.js create mode 100644 packages/backend/migration/1571220798684-CustomEmojiCategory.js rename migration/1572760203493-nodeinfo.ts => packages/backend/migration/1572760203493-nodeinfo.js (88%) create mode 100644 packages/backend/migration/1576269851876-TalkFederationId.js create mode 100644 packages/backend/migration/1576869585998-ProxyRemoteFiles.js rename migration/1579267006611-v12.ts => packages/backend/migration/1579267006611-v12.js (91%) create mode 100644 packages/backend/migration/1579270193251-v12-2.js create mode 100644 packages/backend/migration/1579282808087-v12-3.js rename migration/1579544426412-v12-4.ts => packages/backend/migration/1579544426412-v12-4.js (67%) rename migration/1579977526288-v12-5.ts => packages/backend/migration/1579977526288-v12-5.js (95%) rename migration/1579993013959-v12-6.ts => packages/backend/migration/1579993013959-v12-6.js (69%) rename migration/1580069531114-v12-7.ts => packages/backend/migration/1580069531114-v12-7.js (83%) rename migration/1580148575182-v12-8.ts => packages/backend/migration/1580148575182-v12-8.js (64%) create mode 100644 packages/backend/migration/1580154400017-v12-9.js rename migration/1580276619901-v12-10.ts => packages/backend/migration/1580276619901-v12-10.js (67%) rename migration/1580331224276-v12-11.ts => packages/backend/migration/1580331224276-v12-11.js (70%) rename migration/1580508795118-v12-12.ts => packages/backend/migration/1580508795118-v12-12.js (93%) create mode 100644 packages/backend/migration/1580543501339-v12-13.js rename migration/1580864313253-v12-14.ts => packages/backend/migration/1580864313253-v12-14.js (77%) rename migration/1581526429287-user-group-invitation.ts => packages/backend/migration/1581526429287-user-group-invitation.js (91%) rename migration/1581695816408-user-group-antenna.ts => packages/backend/migration/1581695816408-user-group-antenna.js (85%) create mode 100644 packages/backend/migration/1581708415836-drive-user-folder-id-index.js rename migration/1581979837262-promo.ts => packages/backend/migration/1581979837262-promo.js (89%) create mode 100644 packages/backend/migration/1582019042083-featured-injecttion.js create mode 100644 packages/backend/migration/1582210532752-antenna-exclude.js create mode 100644 packages/backend/migration/1582875306439-note-reaction-length.js rename migration/1585361548360-miauth.ts => packages/backend/migration/1585361548360-miauth.js (91%) rename migration/1585385921215-custom-notification.ts => packages/backend/migration/1585385921215-custom-notification.js (93%) create mode 100644 packages/backend/migration/1585772678853-ap-url.js create mode 100644 packages/backend/migration/1586624197029-AddObjectStorageUseProxy.js create mode 100644 packages/backend/migration/1586641139527-remote-reaction.js create mode 100644 packages/backend/migration/1586708940386-pageAiScript.js rename migration/1588044505511-hCaptcha.ts => packages/backend/migration/1588044505511-hCaptcha.js (68%) rename migration/1589023282116-pubRelay.ts => packages/backend/migration/1589023282116-pubRelay.js (71%) create mode 100644 packages/backend/migration/1595075960584-blurhash.js rename migration/1595077605646-blurhash-for-avatar-banner.ts => packages/backend/migration/1595077605646-blurhash-for-avatar-banner.js (67%) create mode 100644 packages/backend/migration/1595676934834-instance-icon-url.js rename migration/1595771249699-word-mute.ts => packages/backend/migration/1595771249699-word-mute.js (87%) rename migration/1595782306083-word-mute2.ts => packages/backend/migration/1595782306083-word-mute2.js (66%) rename migration/1596548170836-channel.ts => packages/backend/migration/1596548170836-channel.js (95%) create mode 100644 packages/backend/migration/1596786425167-channel2.js create mode 100644 packages/backend/migration/1597230137744-objectStorageSetPublicRead.js rename migration/1597236229720-IncludingNotificationTypes.ts => packages/backend/migration/1597236229720-IncludingNotificationTypes.js (62%) create mode 100644 packages/backend/migration/1597385880794-add-sensitive-index.js rename migration/1597459042300-channel-unread.ts => packages/backend/migration/1597459042300-channel-unread.js (78%) create mode 100644 packages/backend/migration/1597893996136-ChannelNoteIdDescIndex.js rename migration/1600353287890-mutingNotificationTypes.ts => packages/backend/migration/1600353287890-mutingNotificationTypes.js (77%) rename migration/1603094348345-refine-abuse-user-report.ts => packages/backend/migration/1603094348345-refine-abuse-user-report.js (87%) rename migration/1603095701770-refine-abuse-user-report2.ts => packages/backend/migration/1603095701770-refine-abuse-user-report2.js (70%) create mode 100644 packages/backend/migration/1603776877564-instance-theme-color.js create mode 100644 packages/backend/migration/1603781553011-instance-favicon.js create mode 100644 packages/backend/migration/1604821689616-delete-auto-watch.js create mode 100644 packages/backend/migration/1605408848373-clip-description.js rename migration/1605408971051-comments.ts => packages/backend/migration/1605408971051-comments.js (99%) create mode 100644 packages/backend/migration/1605585339718-instance-pinned-pages.js rename migration/1605965516823-instance-images.ts => packages/backend/migration/1605965516823-instance-images.js (54%) rename migration/1606191203881-no-crawle.ts => packages/backend/migration/1606191203881-no-crawle.js (60%) create mode 100644 packages/backend/migration/1607151207216-instance-pinned-clip.js rename migration/1607353487793-isExplorable.ts => packages/backend/migration/1607353487793-isExplorable.js (66%) rename migration/1610277136869-registry.ts => packages/backend/migration/1610277136869-registry.js (85%) rename migration/1610277585759-registry2.ts => packages/backend/migration/1610277585759-registry2.js (59%) create mode 100644 packages/backend/migration/1610283021566-registry3.js rename migration/1611354329133-followersUri.ts => packages/backend/migration/1611354329133-followersUri.js (63%) rename migration/1611397665007-gallery.ts => packages/backend/migration/1611397665007-gallery.js (93%) create mode 100644 packages/backend/migration/1611547387175-objectStorageS3ForcePathStyle.js create mode 100644 packages/backend/migration/1612619156584-announcement-email.js create mode 100644 packages/backend/migration/1613155914446-emailNotificationTypes.js create mode 100644 packages/backend/migration/1613181457597-user-lang.js create mode 100644 packages/backend/migration/1613503367223-use-bigint-for-driveUsage.js create mode 100644 packages/backend/migration/1615965918224-chart-v2.js rename migration/1615966519402-chart-v2-2.ts => packages/backend/migration/1615966519402-chart-v2-2.js (80%) rename migration/1618637372000-user-last-active-date.ts => packages/backend/migration/1618637372000-user-last-active-date.js (55%) create mode 100644 packages/backend/migration/1618639857000-user-hide-online-status.js rename migration/1619942102890-password-reset.ts => packages/backend/migration/1619942102890-password-reset.js (78%) rename migration/1620019354680-ad.ts => packages/backend/migration/1620019354680-ad.js (78%) create mode 100644 packages/backend/migration/1620364649428-ad2.js create mode 100644 packages/backend/migration/1621479946000-add-note-indexes.js create mode 100644 packages/backend/migration/1622679304522-user-profile-description-length.js create mode 100644 packages/backend/migration/1622681548499-log-message-length.js rename migration/1629004542760-chart-reindex.ts => packages/backend/migration/1629004542760-chart-reindex.js (98%) create mode 100644 packages/backend/migration/1629024377804-deepl-integration.js create mode 100644 packages/backend/migration/1629288472000-fix-channel-userId.js create mode 100644 packages/backend/migration/1629512953000-user-is-deleted.js create mode 100644 packages/backend/migration/1629778475000-deepl-integration2.js create mode 100644 packages/backend/migration/1633068642000-email-required-for-signup.js rename migration/1633071909016-user-pending.ts => packages/backend/migration/1633071909016-user-pending.js (68%) create mode 100644 packages/backend/migration/1634486652000-user-public-reactions.js create mode 100644 packages/backend/migration/1634902659689-delete-log.js rename migration/1635500777168-note-thread-mute.ts => packages/backend/migration/1635500777168-note-thread-mute.js (84%) rename migration/1636197624383-ff-visibility.ts => packages/backend/migration/1636197624383-ff-visibility.js (60%) rename ormconfig.js => packages/backend/ormconfig.js (91%) create mode 100644 packages/backend/package.json rename {src => packages/backend/src}/boot/index.ts (91%) rename {src => packages/backend/src}/boot/master.ts (98%) rename {src => packages/backend/src}/boot/worker.ts (100%) rename {src => packages/backend/src}/config/index.ts (100%) rename {src => packages/backend/src}/config/load.ts (91%) rename {src => packages/backend/src}/config/types.ts (100%) rename {src => packages/backend/src}/const.ts (100%) rename {src => packages/backend/src}/daemons/janitor.ts (100%) rename {src => packages/backend/src}/daemons/queue-stats.ts (100%) rename {src => packages/backend/src}/daemons/server-stats.ts (100%) rename {src => packages/backend/src}/db/elasticsearch.ts (100%) rename {src => packages/backend/src}/db/logger.ts (100%) rename {src => packages/backend/src}/db/postgre.ts (100%) rename {src => packages/backend/src}/db/redis.ts (100%) rename {src => packages/backend/src}/env.ts (100%) rename {src => packages/backend/src}/games/reversi/core.ts (100%) rename {src => packages/backend/src}/games/reversi/maps.ts (100%) rename {src => packages/backend/src}/games/reversi/package.json (100%) rename {src => packages/backend/src}/games/reversi/tsconfig.json (100%) rename {src => packages/backend/src}/global.d.ts (100%) rename {src => packages/backend/src}/index.ts (77%) rename {src => packages/backend/src}/mfm/from-html.ts (100%) rename {src => packages/backend/src}/mfm/to-html.ts (87%) rename {src => packages/backend/src}/misc/antenna-cache.ts (100%) rename {src => packages/backend/src}/misc/api-permissions.ts (100%) rename {src => packages/backend/src}/misc/app-lock.ts (100%) rename {src => packages/backend/src}/misc/before-shutdown.ts (100%) rename {src => packages/backend/src}/misc/cache.ts (100%) rename {src => packages/backend/src}/misc/cafy-id.ts (100%) rename {src => packages/backend/src}/misc/captcha.ts (100%) rename {src => packages/backend/src}/misc/check-hit-antenna.ts (96%) rename {src => packages/backend/src}/misc/check-word-mute.ts (100%) rename {src => packages/backend/src}/misc/content-disposition.ts (100%) rename {src => packages/backend/src}/misc/convert-host.ts (100%) rename {src => packages/backend/src}/misc/count-same-renotes.ts (100%) rename {src => packages/backend/src}/misc/create-temp.ts (100%) rename {src => packages/backend/src}/misc/detect-url-mime.ts (100%) rename {src => packages/backend/src}/misc/download-text-file.ts (100%) rename {src => packages/backend/src}/misc/download-url.ts (100%) rename {src => packages/backend/src}/misc/emoji-regex.ts (100%) rename {src => packages/backend/src}/misc/extract-custom-emojis-from-mfm.ts (100%) rename {src => packages/backend/src}/misc/extract-hashtags.ts (100%) rename {src => packages/backend/src}/misc/extract-mentions.ts (100%) rename {src => packages/backend/src}/misc/fetch-meta.ts (100%) rename {src => packages/backend/src}/misc/fetch-proxy-account.ts (100%) rename {src => packages/backend/src}/misc/fetch.ts (100%) rename {src => packages/backend/src}/misc/gen-avatar.ts (100%) rename {src => packages/backend/src}/misc/gen-id.ts (100%) rename {src => packages/backend/src}/misc/gen-key-pair.ts (100%) rename {src => packages/backend/src}/misc/get-file-info.ts (100%) rename {src => packages/backend/src}/misc/get-note-summary.ts (63%) rename {src => packages/backend/src}/misc/get-reaction-emoji.ts (100%) rename {src => packages/backend/src}/misc/hard-limits.ts (100%) rename {src => packages/backend/src}/misc/i18n.ts (100%) rename {src => packages/backend/src}/misc/id/aid.ts (100%) rename {src => packages/backend/src}/misc/id/meid.ts (100%) rename {src => packages/backend/src}/misc/id/meidg.ts (100%) rename {src => packages/backend/src}/misc/id/object-id.ts (100%) rename {src => packages/backend/src}/misc/identifiable-error.ts (100%) rename {src => packages/backend/src}/misc/is-blocker-user-related.ts (100%) rename {src => packages/backend/src}/misc/is-duplicate-key-value-error.ts (100%) rename {src => packages/backend/src}/misc/is-muted-user-related.ts (100%) rename {src => packages/backend/src}/misc/is-quote.ts (100%) rename {src => packages/backend/src}/misc/keypair-store.ts (100%) rename {src => packages/backend/src}/misc/normalize-for-search.ts (100%) rename {src => packages/backend/src}/misc/nyaize.ts (100%) rename {src => packages/backend/src}/misc/populate-emojis.ts (100%) rename {src => packages/backend/src}/misc/reaction-lib.ts (100%) rename {src => packages/backend/src}/misc/safe-for-sql.ts (100%) rename {src => packages/backend/src}/misc/schema.ts (100%) rename {src => packages/backend/src}/misc/secure-rndstr.ts (100%) rename {src => packages/backend/src}/misc/show-machine-info.ts (100%) rename {src => packages/backend/src}/misc/simple-schema.ts (100%) rename {src => packages/backend/src}/misc/truncate.ts (100%) rename {src => packages/backend/src}/models/entities/abuse-user-report.ts (100%) rename {src => packages/backend/src}/models/entities/access-token.ts (100%) rename {src => packages/backend/src}/models/entities/ad.ts (100%) rename {src => packages/backend/src}/models/entities/announcement-read.ts (100%) rename {src => packages/backend/src}/models/entities/announcement.ts (100%) rename {src => packages/backend/src}/models/entities/antenna-note.ts (100%) rename {src => packages/backend/src}/models/entities/antenna.ts (100%) rename {src => packages/backend/src}/models/entities/app.ts (100%) rename {src => packages/backend/src}/models/entities/attestation-challenge.ts (100%) rename {src => packages/backend/src}/models/entities/auth-session.ts (100%) rename {src => packages/backend/src}/models/entities/blocking.ts (100%) rename {src => packages/backend/src}/models/entities/channel-following.ts (100%) rename {src => packages/backend/src}/models/entities/channel-note-pining.ts (100%) rename {src => packages/backend/src}/models/entities/channel.ts (100%) rename {src => packages/backend/src}/models/entities/clip-note.ts (100%) rename {src => packages/backend/src}/models/entities/clip.ts (100%) rename {src => packages/backend/src}/models/entities/drive-file.ts (100%) rename {src => packages/backend/src}/models/entities/drive-folder.ts (100%) rename {src => packages/backend/src}/models/entities/emoji.ts (100%) rename {src => packages/backend/src}/models/entities/follow-request.ts (100%) rename {src => packages/backend/src}/models/entities/following.ts (100%) rename {src => packages/backend/src}/models/entities/gallery-like.ts (100%) rename {src => packages/backend/src}/models/entities/gallery-post.ts (100%) rename {src => packages/backend/src}/models/entities/games/reversi/game.ts (100%) rename {src => packages/backend/src}/models/entities/games/reversi/matching.ts (100%) rename {src => packages/backend/src}/models/entities/hashtag.ts (100%) rename {src => packages/backend/src}/models/entities/instance.ts (100%) rename {src => packages/backend/src}/models/entities/messaging-message.ts (100%) rename {src => packages/backend/src}/models/entities/meta.ts (100%) rename {src => packages/backend/src}/models/entities/moderation-log.ts (100%) rename {src => packages/backend/src}/models/entities/muted-note.ts (100%) rename {src => packages/backend/src}/models/entities/muting.ts (100%) rename {src => packages/backend/src}/models/entities/note-favorite.ts (100%) rename {src => packages/backend/src}/models/entities/note-reaction.ts (100%) rename {src => packages/backend/src}/models/entities/note-thread-muting.ts (100%) rename {src => packages/backend/src}/models/entities/note-unread.ts (100%) rename {src => packages/backend/src}/models/entities/note-watching.ts (100%) rename {src => packages/backend/src}/models/entities/note.ts (100%) rename {src => packages/backend/src}/models/entities/notification.ts (100%) rename {src => packages/backend/src}/models/entities/page-like.ts (100%) rename {src => packages/backend/src}/models/entities/page.ts (100%) rename {src => packages/backend/src}/models/entities/password-reset-request.ts (100%) rename {src => packages/backend/src}/models/entities/poll-vote.ts (100%) rename {src => packages/backend/src}/models/entities/poll.ts (100%) rename {src => packages/backend/src}/models/entities/promo-note.ts (100%) rename {src => packages/backend/src}/models/entities/promo-read.ts (100%) rename {src => packages/backend/src}/models/entities/registration-tickets.ts (100%) rename {src => packages/backend/src}/models/entities/registry-item.ts (100%) rename {src => packages/backend/src}/models/entities/relay.ts (100%) rename {src => packages/backend/src}/models/entities/signin.ts (100%) rename {src => packages/backend/src}/models/entities/sw-subscription.ts (100%) rename {src => packages/backend/src}/models/entities/used-username.ts (100%) rename {src => packages/backend/src}/models/entities/user-group-invitation.ts (100%) rename {src => packages/backend/src}/models/entities/user-group-joining.ts (100%) rename {src => packages/backend/src}/models/entities/user-group.ts (100%) rename {src => packages/backend/src}/models/entities/user-keypair.ts (100%) rename {src => packages/backend/src}/models/entities/user-list-joining.ts (100%) rename {src => packages/backend/src}/models/entities/user-list.ts (100%) rename {src => packages/backend/src}/models/entities/user-note-pining.ts (100%) rename {src => packages/backend/src}/models/entities/user-pending.ts (100%) rename {src => packages/backend/src}/models/entities/user-profile.ts (100%) rename {src => packages/backend/src}/models/entities/user-publickey.ts (100%) rename {src => packages/backend/src}/models/entities/user-security-key.ts (100%) rename {src => packages/backend/src}/models/entities/user.ts (100%) rename {src => packages/backend/src}/models/id.ts (100%) rename {src => packages/backend/src}/models/index.ts (100%) rename {src => packages/backend/src}/models/repositories/abuse-user-report.ts (100%) rename {src => packages/backend/src}/models/repositories/antenna.ts (100%) rename {src => packages/backend/src}/models/repositories/app.ts (100%) rename {src => packages/backend/src}/models/repositories/auth-session.ts (100%) rename {src => packages/backend/src}/models/repositories/blocking.ts (100%) rename {src => packages/backend/src}/models/repositories/channel.ts (100%) rename {src => packages/backend/src}/models/repositories/clip.ts (100%) rename {src => packages/backend/src}/models/repositories/drive-file.ts (100%) rename {src => packages/backend/src}/models/repositories/drive-folder.ts (100%) rename {src => packages/backend/src}/models/repositories/emoji.ts (100%) rename {src => packages/backend/src}/models/repositories/federation-instance.ts (100%) rename {src => packages/backend/src}/models/repositories/follow-request.ts (100%) rename {src => packages/backend/src}/models/repositories/following.ts (100%) rename {src => packages/backend/src}/models/repositories/gallery-like.ts (100%) rename {src => packages/backend/src}/models/repositories/gallery-post.ts (100%) rename {src => packages/backend/src}/models/repositories/games/reversi/game.ts (100%) rename {src => packages/backend/src}/models/repositories/games/reversi/matching.ts (100%) rename {src => packages/backend/src}/models/repositories/hashtag.ts (100%) rename {src => packages/backend/src}/models/repositories/messaging-message.ts (100%) rename {src => packages/backend/src}/models/repositories/moderation-logs.ts (100%) rename {src => packages/backend/src}/models/repositories/muting.ts (100%) rename {src => packages/backend/src}/models/repositories/note-favorite.ts (100%) rename {src => packages/backend/src}/models/repositories/note-reaction.ts (100%) rename {src => packages/backend/src}/models/repositories/note.ts (100%) rename {src => packages/backend/src}/models/repositories/notification.ts (100%) rename {src => packages/backend/src}/models/repositories/page-like.ts (100%) rename {src => packages/backend/src}/models/repositories/page.ts (100%) rename {src => packages/backend/src}/models/repositories/queue.ts (100%) rename {src => packages/backend/src}/models/repositories/relay.ts (100%) rename {src => packages/backend/src}/models/repositories/signin.ts (100%) rename {src => packages/backend/src}/models/repositories/user-group-invitation.ts (100%) rename {src => packages/backend/src}/models/repositories/user-group.ts (100%) rename {src => packages/backend/src}/models/repositories/user-list.ts (100%) rename {src => packages/backend/src}/models/repositories/user.ts (100%) rename {src => packages/backend/src}/prelude/README.md (100%) rename {src => packages/backend/src}/prelude/array.ts (100%) rename {src => packages/backend/src}/prelude/await-all.ts (100%) rename {src => packages/backend/src}/prelude/math.ts (100%) rename {src => packages/backend/src}/prelude/maybe.ts (100%) rename {src => packages/backend/src}/prelude/relation.ts (100%) rename {src => packages/backend/src}/prelude/string.ts (100%) rename {src => packages/backend/src}/prelude/symbol.ts (100%) rename {src => packages/backend/src}/prelude/time.ts (100%) rename {src => packages/backend/src}/prelude/url.ts (100%) rename {src => packages/backend/src}/prelude/xml.ts (100%) rename {src => packages/backend/src}/queue/get-job-info.ts (100%) rename {src => packages/backend/src}/queue/index.ts (100%) rename {src => packages/backend/src}/queue/initialize.ts (100%) rename {src => packages/backend/src}/queue/logger.ts (100%) rename {src => packages/backend/src}/queue/processors/db/delete-account.ts (100%) rename {src => packages/backend/src}/queue/processors/db/delete-drive-files.ts (100%) rename {src => packages/backend/src}/queue/processors/db/export-blocking.ts (100%) rename {src => packages/backend/src}/queue/processors/db/export-following.ts (100%) rename {src => packages/backend/src}/queue/processors/db/export-mute.ts (100%) rename {src => packages/backend/src}/queue/processors/db/export-notes.ts (100%) rename {src => packages/backend/src}/queue/processors/db/export-user-lists.ts (100%) rename {src => packages/backend/src}/queue/processors/db/import-blocking.ts (94%) rename {src => packages/backend/src}/queue/processors/db/import-following.ts (94%) rename {src => packages/backend/src}/queue/processors/db/import-muting.ts (95%) rename {src => packages/backend/src}/queue/processors/db/import-user-lists.ts (94%) rename {src => packages/backend/src}/queue/processors/db/index.ts (100%) rename {src => packages/backend/src}/queue/processors/deliver.ts (100%) rename {src => packages/backend/src}/queue/processors/inbox.ts (100%) rename {src => packages/backend/src}/queue/processors/object-storage/clean-remote-files.ts (100%) rename {src => packages/backend/src}/queue/processors/object-storage/delete-file.ts (100%) rename {src => packages/backend/src}/queue/processors/object-storage/index.ts (100%) rename {src => packages/backend/src}/queue/processors/system/index.ts (100%) rename {src => packages/backend/src}/queue/processors/system/resync-charts.ts (100%) rename {src => packages/backend/src}/queue/queues.ts (100%) rename {src => packages/backend/src}/queue/types.ts (100%) rename {src => packages/backend/src}/remote/activitypub/ap-request.ts (100%) rename {src => packages/backend/src}/remote/activitypub/audience.ts (100%) rename {src => packages/backend/src}/remote/activitypub/db-resolver.ts (100%) rename {src => packages/backend/src}/remote/activitypub/deliver-manager.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/accept/follow.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/accept/index.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/add/index.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/announce/index.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/announce/note.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/block/index.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/create/index.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/create/note.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/delete/actor.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/delete/index.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/delete/note.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/flag/index.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/follow.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/index.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/like.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/move/index.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/read.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/reject/follow.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/reject/index.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/remove/index.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/undo/announce.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/undo/block.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/undo/follow.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/undo/index.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/undo/like.ts (100%) rename {src => packages/backend/src}/remote/activitypub/kernel/update/index.ts (100%) rename {src => packages/backend/src}/remote/activitypub/logger.ts (100%) rename {src => packages/backend/src}/remote/activitypub/misc/contexts.ts (100%) rename {src => packages/backend/src}/remote/activitypub/misc/get-note-html.ts (57%) rename {src => packages/backend/src}/remote/activitypub/misc/html-to-mfm.ts (100%) rename {src => packages/backend/src}/remote/activitypub/misc/ld-signature.ts (100%) rename {src => packages/backend/src}/remote/activitypub/models/icon.ts (100%) rename {src => packages/backend/src}/remote/activitypub/models/identifier.ts (100%) rename {src => packages/backend/src}/remote/activitypub/models/image.ts (100%) rename {src => packages/backend/src}/remote/activitypub/models/mention.ts (100%) rename {src => packages/backend/src}/remote/activitypub/models/note.ts (100%) rename {src => packages/backend/src}/remote/activitypub/models/person.ts (100%) rename {src => packages/backend/src}/remote/activitypub/models/question.ts (100%) rename {src => packages/backend/src}/remote/activitypub/models/tag.ts (100%) rename {src => packages/backend/src}/remote/activitypub/perform.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/accept.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/add.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/announce.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/block.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/create.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/delete.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/document.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/emoji.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/follow-relay.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/follow-user.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/follow.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/hashtag.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/image.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/index.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/key.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/like.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/mention.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/note.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/ordered-collection-page.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/ordered-collection.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/person.ts (97%) rename {src => packages/backend/src}/remote/activitypub/renderer/question.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/read.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/reject.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/remove.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/tombstone.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/undo.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/update.ts (100%) rename {src => packages/backend/src}/remote/activitypub/renderer/vote.ts (100%) rename {src => packages/backend/src}/remote/activitypub/request.ts (100%) rename {src => packages/backend/src}/remote/activitypub/resolver.ts (100%) rename {src => packages/backend/src}/remote/activitypub/type.ts (100%) rename {src => packages/backend/src}/remote/logger.ts (100%) rename {src => packages/backend/src}/remote/resolve-user.ts (100%) rename {src => packages/backend/src}/remote/webfinger.ts (100%) rename {src => packages/backend/src}/server/activitypub.ts (100%) rename {src => packages/backend/src}/server/activitypub/featured.ts (100%) rename {src => packages/backend/src}/server/activitypub/followers.ts (100%) rename {src => packages/backend/src}/server/activitypub/following.ts (100%) rename {src => packages/backend/src}/server/activitypub/outbox.ts (100%) rename {src => packages/backend/src}/server/api/2fa.ts (100%) rename {src => packages/backend/src}/server/api/api-handler.ts (100%) rename {src => packages/backend/src}/server/api/authenticate.ts (100%) rename {src => packages/backend/src}/server/api/call.ts (100%) rename {src => packages/backend/src}/server/api/common/generate-block-query.ts (100%) rename {src => packages/backend/src}/server/api/common/generate-channel-query.ts (100%) rename {src => packages/backend/src}/server/api/common/generate-muted-note-query.ts (100%) rename {src => packages/backend/src}/server/api/common/generate-muted-note-thread-query.ts (100%) rename {src => packages/backend/src}/server/api/common/generate-muted-user-query.ts (100%) rename {src => packages/backend/src}/server/api/common/generate-native-user-token.ts (100%) rename {src => packages/backend/src}/server/api/common/generate-replies-query.ts (100%) rename {src => packages/backend/src}/server/api/common/generate-visibility-query.ts (100%) rename {src => packages/backend/src}/server/api/common/getters.ts (100%) rename {src => packages/backend/src}/server/api/common/inject-featured.ts (100%) rename {src => packages/backend/src}/server/api/common/inject-promo.ts (100%) rename {src => packages/backend/src}/server/api/common/is-native-token.ts (100%) rename {src => packages/backend/src}/server/api/common/make-pagination-query.ts (100%) rename {src => packages/backend/src}/server/api/common/read-messaging-message.ts (100%) rename {src => packages/backend/src}/server/api/common/read-notification.ts (100%) rename {src => packages/backend/src}/server/api/common/signin.ts (100%) rename {src => packages/backend/src}/server/api/common/signup.ts (100%) rename {src => packages/backend/src}/server/api/define.ts (100%) rename {src => packages/backend/src}/server/api/endpoints.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/abuse-user-reports.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/accounts/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/accounts/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/ad/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/ad/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/ad/list.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/ad/update.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/announcements/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/announcements/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/announcements/list.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/announcements/update.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/delete-all-files-of-a-user.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/delete-logs.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/drive/clean-remote-files.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/drive/cleanup.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/drive/files.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/drive/show-file.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/emoji/add.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/emoji/copy.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/emoji/list-remote.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/emoji/list.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/emoji/remove.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/emoji/update.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/federation/delete-all-files.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/federation/remove-all-following.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/federation/update-instance.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/get-index-stats.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/get-table-stats.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/invite.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/moderators/add.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/moderators/remove.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/promo/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/queue/clear.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/queue/deliver-delayed.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/queue/inbox-delayed.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/queue/jobs.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/queue/stats.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/relays/add.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/relays/list.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/relays/remove.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/reset-password.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/resolve-abuse-user-report.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/resync-chart.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/send-email.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/server-info.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/show-moderation-logs.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/show-user.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/show-users.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/silence-user.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/suspend-user.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/unsilence-user.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/unsuspend-user.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/update-meta.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/admin/vacuum.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/announcements.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/antennas/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/antennas/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/antennas/list.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/antennas/notes.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/antennas/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/antennas/update.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/ap/get.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/ap/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/app/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/app/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/auth/accept.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/auth/session/generate.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/auth/session/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/auth/session/userkey.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/blocking/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/blocking/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/blocking/list.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/channels/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/channels/featured.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/channels/follow.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/channels/followed.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/channels/owned.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/channels/pin-note.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/channels/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/channels/timeline.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/channels/unfollow.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/channels/update.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/charts/active-users.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/charts/drive.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/charts/federation.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/charts/hashtag.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/charts/instance.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/charts/network.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/charts/notes.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/charts/user/drive.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/charts/user/following.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/charts/user/notes.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/charts/user/reactions.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/charts/users.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/clips/add-note.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/clips/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/clips/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/clips/list.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/clips/notes.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/clips/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/clips/update.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/files.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/files/attached-notes.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/files/check-existence.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/files/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/files/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/files/find-by-hash.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/files/find.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/files/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/files/update.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/files/upload-from-url.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/folders.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/folders/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/folders/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/folders/find.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/folders/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/folders/update.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/drive/stream.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/email-address/available.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/endpoint.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/endpoints.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/federation/dns.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/federation/followers.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/federation/following.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/federation/instances.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/federation/show-instance.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/federation/update-remote-user.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/federation/users.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/following/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/following/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/following/requests/accept.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/following/requests/cancel.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/following/requests/list.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/following/requests/reject.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/gallery/featured.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/gallery/popular.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/gallery/posts.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/gallery/posts/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/gallery/posts/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/gallery/posts/like.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/gallery/posts/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/gallery/posts/unlike.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/gallery/posts/update.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/games/reversi/games.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/games/reversi/games/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/games/reversi/games/surrender.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/games/reversi/invitations.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/games/reversi/match.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/games/reversi/match/cancel.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/get-online-users-count.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/hashtags/list.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/hashtags/search.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/hashtags/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/hashtags/trend.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/hashtags/users.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/2fa/done.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/2fa/key-done.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/2fa/password-less.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/2fa/register-key.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/2fa/register.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/2fa/remove-key.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/2fa/unregister.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/apps.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/authorized-apps.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/change-password.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/delete-account.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/export-blocking.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/export-following.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/export-mute.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/export-notes.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/export-user-lists.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/favorites.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/gallery/likes.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/gallery/posts.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/get-word-muted-notes-count.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/import-blocking.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/import-following.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/import-muting.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/import-user-lists.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/notifications.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/page-likes.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/pages.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/pin.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/read-all-messaging-messages.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/read-all-unread-notes.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/read-announcement.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/regenerate-token.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/registry/get-all.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/registry/get-detail.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/registry/get.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/registry/keys-with-type.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/registry/keys.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/registry/remove.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/registry/scopes.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/registry/set.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/revoke-token.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/signin-history.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/unpin.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/update-email.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/update.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/i/user-group-invites.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/messaging/history.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/messaging/messages.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/messaging/messages/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/messaging/messages/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/messaging/messages/read.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/meta.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/miauth/gen-token.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/mute/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/mute/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/mute/list.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/my/apps.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/children.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/clips.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/conversation.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/favorites/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/favorites/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/featured.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/global-timeline.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/hybrid-timeline.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/local-timeline.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/mentions.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/polls/recommendation.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/polls/vote.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/reactions.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/reactions/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/reactions/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/renotes.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/replies.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/search-by-tag.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/search.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/state.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/thread-muting/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/thread-muting/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/timeline.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/translate.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/unrenote.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/user-list-timeline.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/watching/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notes/watching/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notifications/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notifications/mark-all-as-read.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/notifications/read.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/page-push.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/pages/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/pages/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/pages/featured.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/pages/like.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/pages/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/pages/unlike.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/pages/update.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/ping.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/pinned-users.ts (90%) rename {src => packages/backend/src}/server/api/endpoints/promo/read.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/request-reset-password.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/reset-db.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/reset-password.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/room/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/room/update.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/server-info.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/stats.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/sw/register.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/sw/unregister.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/username/available.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/clips.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/followers.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/following.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/gallery/posts.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/get-frequently-replied-users.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/groups/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/groups/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/groups/invitations/accept.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/groups/invitations/reject.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/groups/invite.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/groups/joined.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/groups/leave.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/groups/owned.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/groups/pull.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/groups/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/groups/transfer.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/groups/update.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/lists/create.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/lists/delete.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/lists/list.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/lists/pull.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/lists/push.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/lists/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/lists/update.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/notes.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/pages.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/reactions.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/recommendation.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/relation.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/report-abuse.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/search-by-username-and-host.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/search.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/show.ts (100%) rename {src => packages/backend/src}/server/api/endpoints/users/stats.ts (100%) rename {src => packages/backend/src}/server/api/error.ts (100%) rename {src => packages/backend/src}/server/api/index.ts (100%) rename {src => packages/backend/src}/server/api/limiter.ts (86%) rename {src => packages/backend/src}/server/api/logger.ts (100%) rename {src => packages/backend/src}/server/api/openapi/errors.ts (100%) rename {src => packages/backend/src}/server/api/openapi/gen-spec.ts (98%) rename {src => packages/backend/src}/server/api/openapi/schemas.ts (100%) rename {src => packages/backend/src}/server/api/private/signin.ts (100%) rename {src => packages/backend/src}/server/api/private/signup-pending.ts (100%) rename {src => packages/backend/src}/server/api/private/signup.ts (100%) rename {src => packages/backend/src}/server/api/service/discord.ts (100%) rename {src => packages/backend/src}/server/api/service/github.ts (100%) rename {src => packages/backend/src}/server/api/service/twitter.ts (100%) rename {src => packages/backend/src}/server/api/stream/channel.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/admin.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/antenna.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/channel.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/drive.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/games/reversi-game.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/games/reversi.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/global-timeline.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/hashtag.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/home-timeline.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/hybrid-timeline.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/index.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/local-timeline.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/main.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/messaging-index.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/messaging.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/queue-stats.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/server-stats.ts (100%) rename {src => packages/backend/src}/server/api/stream/channels/user-list.ts (100%) rename {src => packages/backend/src}/server/api/stream/index.ts (100%) rename {src => packages/backend/src}/server/api/stream/types.ts (100%) rename {src => packages/backend/src}/server/api/streaming.ts (100%) rename {src => packages/backend/src}/server/file/assets/bad-egg.png (100%) rename {src => packages/backend/src}/server/file/assets/cache-expired.png (100%) rename {src => packages/backend/src}/server/file/assets/dummy.png (100%) rename {src => packages/backend/src}/server/file/assets/not-an-image.png (100%) rename {src => packages/backend/src}/server/file/assets/thumbnail-not-available.png (100%) rename {src => packages/backend/src}/server/file/assets/tombstone.png (100%) rename {src => packages/backend/src}/server/file/index.ts (100%) rename {src => packages/backend/src}/server/file/send-drive-file.ts (100%) rename {src => packages/backend/src}/server/index.ts (97%) rename {src => packages/backend/src}/server/nodeinfo.ts (100%) rename {src => packages/backend/src}/server/proxy/index.ts (100%) rename {src => packages/backend/src}/server/proxy/proxy-media.ts (100%) rename {src => packages/backend/src}/server/web/bios.css (100%) rename {src => packages/backend/src}/server/web/bios.js (100%) rename {src => packages/backend/src}/server/web/boot.js (100%) rename {src => packages/backend/src}/server/web/cli.css (100%) rename {src => packages/backend/src}/server/web/cli.js (100%) rename {src => packages/backend/src}/server/web/feed.ts (100%) rename {src => packages/backend/src}/server/web/index.ts (93%) rename {src => packages/backend/src}/server/web/manifest.json (100%) rename {src => packages/backend/src}/server/web/manifest.ts (100%) rename {src => packages/backend/src}/server/web/style.css (100%) rename {src => packages/backend/src}/server/web/url-preview.ts (100%) rename {src => packages/backend/src}/server/web/views/base.pug (100%) rename {src => packages/backend/src}/server/web/views/bios.pug (100%) rename {src => packages/backend/src}/server/web/views/channel.pug (100%) rename {src => packages/backend/src}/server/web/views/cli.pug (100%) rename {src => packages/backend/src}/server/web/views/clip.pug (100%) rename {src => packages/backend/src}/server/web/views/flush.pug (100%) rename {src => packages/backend/src}/server/web/views/gallery-post.pug (100%) rename {src => packages/backend/src}/server/web/views/info-card.pug (100%) rename {src => packages/backend/src}/server/web/views/note.pug (100%) rename {src => packages/backend/src}/server/web/views/page.pug (100%) rename {src => packages/backend/src}/server/web/views/user.pug (100%) rename {src => packages/backend/src}/server/well-known.ts (96%) rename {src => packages/backend/src}/services/add-note-to-antenna.ts (100%) rename {src => packages/backend/src}/services/blocking/create.ts (100%) rename {src => packages/backend/src}/services/blocking/delete.ts (100%) rename {src => packages/backend/src}/services/chart/charts/classes/active-users.ts (100%) rename {src => packages/backend/src}/services/chart/charts/classes/drive.ts (100%) rename {src => packages/backend/src}/services/chart/charts/classes/federation.ts (100%) rename {src => packages/backend/src}/services/chart/charts/classes/hashtag.ts (100%) rename {src => packages/backend/src}/services/chart/charts/classes/instance.ts (100%) rename {src => packages/backend/src}/services/chart/charts/classes/network.ts (100%) rename {src => packages/backend/src}/services/chart/charts/classes/notes.ts (100%) rename {src => packages/backend/src}/services/chart/charts/classes/per-user-drive.ts (100%) rename {src => packages/backend/src}/services/chart/charts/classes/per-user-following.ts (100%) rename {src => packages/backend/src}/services/chart/charts/classes/per-user-notes.ts (100%) rename {src => packages/backend/src}/services/chart/charts/classes/per-user-reactions.ts (100%) rename {src => packages/backend/src}/services/chart/charts/classes/test-grouped.ts (100%) rename {src => packages/backend/src}/services/chart/charts/classes/test-unique.ts (100%) rename {src => packages/backend/src}/services/chart/charts/classes/test.ts (100%) rename {src => packages/backend/src}/services/chart/charts/classes/users.ts (100%) rename {src => packages/backend/src}/services/chart/charts/schemas/active-users.ts (100%) rename {src => packages/backend/src}/services/chart/charts/schemas/drive.ts (100%) rename {src => packages/backend/src}/services/chart/charts/schemas/federation.ts (100%) rename {src => packages/backend/src}/services/chart/charts/schemas/hashtag.ts (100%) rename {src => packages/backend/src}/services/chart/charts/schemas/instance.ts (100%) rename {src => packages/backend/src}/services/chart/charts/schemas/network.ts (100%) rename {src => packages/backend/src}/services/chart/charts/schemas/notes.ts (100%) rename {src => packages/backend/src}/services/chart/charts/schemas/per-user-drive.ts (100%) rename {src => packages/backend/src}/services/chart/charts/schemas/per-user-following.ts (100%) rename {src => packages/backend/src}/services/chart/charts/schemas/per-user-notes.ts (100%) rename {src => packages/backend/src}/services/chart/charts/schemas/per-user-reactions.ts (100%) rename {src => packages/backend/src}/services/chart/charts/schemas/test-grouped.ts (100%) rename {src => packages/backend/src}/services/chart/charts/schemas/test-unique.ts (100%) rename {src => packages/backend/src}/services/chart/charts/schemas/test.ts (100%) rename {src => packages/backend/src}/services/chart/charts/schemas/users.ts (100%) rename {src => packages/backend/src}/services/chart/core.ts (100%) rename {src => packages/backend/src}/services/chart/entities.ts (100%) rename {src => packages/backend/src}/services/chart/index.ts (100%) rename {src => packages/backend/src}/services/create-notification.ts (100%) rename {src => packages/backend/src}/services/create-system-user.ts (100%) rename {src => packages/backend/src}/services/drive/add-file.ts (100%) rename {src => packages/backend/src}/services/drive/delete-file.ts (100%) rename {src => packages/backend/src}/services/drive/generate-video-thumbnail.ts (100%) rename {src => packages/backend/src}/services/drive/image-processor.ts (100%) rename {src => packages/backend/src}/services/drive/internal-storage.ts (98%) rename {src => packages/backend/src}/services/drive/logger.ts (100%) rename {src => packages/backend/src}/services/drive/s3.ts (100%) rename {src => packages/backend/src}/services/drive/upload-from-url.ts (100%) rename {src => packages/backend/src}/services/fetch-instance-metadata.ts (100%) rename {src => packages/backend/src}/services/following/create.ts (100%) rename {src => packages/backend/src}/services/following/delete.ts (100%) rename {src => packages/backend/src}/services/following/requests/accept-all.ts (100%) rename {src => packages/backend/src}/services/following/requests/accept.ts (100%) rename {src => packages/backend/src}/services/following/requests/cancel.ts (100%) rename {src => packages/backend/src}/services/following/requests/create.ts (100%) rename {src => packages/backend/src}/services/following/requests/reject.ts (100%) rename {src => packages/backend/src}/services/i/pin.ts (100%) rename {src => packages/backend/src}/services/i/update.ts (100%) rename {src => packages/backend/src}/services/insert-moderation-log.ts (100%) rename {src => packages/backend/src}/services/instance-actor.ts (100%) rename {src => packages/backend/src}/services/logger.ts (98%) rename {src => packages/backend/src}/services/messages/create.ts (100%) rename {src => packages/backend/src}/services/messages/delete.ts (100%) rename {src => packages/backend/src}/services/note/create.ts (98%) rename {src => packages/backend/src}/services/note/delete.ts (100%) rename {src => packages/backend/src}/services/note/polls/update.ts (100%) rename {src => packages/backend/src}/services/note/polls/vote.ts (100%) rename {src => packages/backend/src}/services/note/reaction/create.ts (100%) rename {src => packages/backend/src}/services/note/reaction/delete.ts (100%) rename {src => packages/backend/src}/services/note/read.ts (100%) rename {src => packages/backend/src}/services/note/unread.ts (100%) rename {src => packages/backend/src}/services/note/unwatch.ts (100%) rename {src => packages/backend/src}/services/note/watch.ts (100%) rename {src => packages/backend/src}/services/push-notification.ts (100%) rename {src => packages/backend/src}/services/register-or-fetch-instance-doc.ts (100%) rename {src => packages/backend/src}/services/relay.ts (100%) rename {src => packages/backend/src}/services/send-email-notification.ts (79%) rename {src => packages/backend/src}/services/send-email.ts (100%) rename {src => packages/backend/src}/services/stream.ts (100%) rename {src => packages/backend/src}/services/suspend-user.ts (100%) rename {src => packages/backend/src}/services/unsuspend-user.ts (100%) rename {src => packages/backend/src}/services/update-hashtag.ts (100%) rename {src => packages/backend/src}/services/user-list/push.ts (100%) rename {src => packages/backend/src}/services/validate-email-for-account.ts (100%) rename {src => packages/backend/src}/types.ts (100%) create mode 100644 packages/backend/tools/accept-migration.js create mode 100644 packages/backend/tools/accept-migration.js.map rename {src => packages/backend}/tools/accept-migration.ts (100%) create mode 100644 packages/backend/tools/add-emoji.js create mode 100644 packages/backend/tools/add-emoji.js.map rename {src => packages/backend}/tools/add-emoji.ts (100%) create mode 100644 packages/backend/tools/demote-admin.js create mode 100644 packages/backend/tools/demote-admin.js.map rename {src => packages/backend}/tools/demote-admin.ts (100%) create mode 100644 packages/backend/tools/mark-admin.js create mode 100644 packages/backend/tools/mark-admin.js.map rename {src => packages/backend}/tools/mark-admin.ts (100%) create mode 100644 packages/backend/tools/refresh-question.js create mode 100644 packages/backend/tools/refresh-question.js.map rename {src => packages/backend}/tools/refresh-question.ts (100%) create mode 100644 packages/backend/tools/resync-remote-user.js create mode 100644 packages/backend/tools/resync-remote-user.js.map rename {src => packages/backend}/tools/resync-remote-user.ts (85%) create mode 100644 packages/backend/tools/show-signin-history.js create mode 100644 packages/backend/tools/show-signin-history.js.map rename {src => packages/backend}/tools/show-signin-history.ts (100%) rename {src => packages/backend}/tsconfig.json (82%) create mode 100644 packages/backend/yarn.lock rename {src => packages}/client/.eslintrc (97%) create mode 100644 packages/client/.npmrc rename {src => packages}/client/@types/global.d.ts (94%) rename {src => packages}/client/@types/vue.d.ts (100%) rename {assets/client => packages/client/assets}/about-icon.png (100%) rename {assets/client => packages/client/assets}/fedi.jpg (100%) rename {assets/client => packages/client/assets}/label-red.svg (100%) rename {assets/client => packages/client/assets}/label.svg (100%) rename {assets/client => packages/client/assets}/misskey.svg (100%) rename {assets/client => packages/client/assets}/remove.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/banknote/banknote.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/banknote/banknote.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/banknote/tex.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/bed/bed.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/bed/bed.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/bin/bin.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/bin/bin.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/book/book.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/book/book.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/book2/barcode.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/book2/book2.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/book2/book2.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/book2/texture.afdesign (100%) rename {assets/client => packages/client/assets}/room/furnitures/book2/texture.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/book2/uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/cardboard-box/cardboard-box.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/cardboard-box/cardboard-box.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/cardboard-box2/cardboard-box2.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/cardboard-box2/cardboard-box2.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/cardboard-box2/texture.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/cardboard-box2/uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/cardboard-box3/cardboard-box3.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/cardboard-box3/cardboard-box3.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/cardboard-box3/texture.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/cardboard-box3/texture.xcf (100%) rename {assets/client => packages/client/assets}/room/furnitures/cardboard-box3/uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/carpet-stripe/carpet-stripe.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/carpet-stripe/carpet-stripe.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/chair/chair.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/chair/chair.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/chair2/chair2.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/chair2/chair2.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/color-box/color-box.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/color-box/color-box.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/corkboard/corkboard.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/corkboard/corkboard.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/cube/cube.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/cube/cube.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/cup-noodle/cup-noodle.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/cup-noodle/cup-noodle.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/cup-noodle/noodle.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/desk/desk.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/desk/desk.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/doll-ai/doll-ai.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/doll-ai/doll-ai.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/doll-ai/doll_ai_tex.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/energy-drink/energy-drink.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/energy-drink/energy-drink.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/energy-drink/texture.afdesign (100%) rename {assets/client => packages/client/assets}/room/furnitures/energy-drink/texture.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/energy-drink/uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/eraser/cover.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/eraser/cover.psd (100%) rename {assets/client => packages/client/assets}/room/furnitures/eraser/eraser-uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/eraser/eraser.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/eraser/eraser.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/facial-tissue/facial-tissue-uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/facial-tissue/facial-tissue.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/facial-tissue/facial-tissue.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/facial-tissue/facial-tissue.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/facial-tissue/facial-tissue.psd (100%) rename {assets/client => packages/client/assets}/room/furnitures/fan/fan.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/fan/fan.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/holo-display/holo-display.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/holo-display/holo-display.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/holo-display/ray-uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/holo-display/ray.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/keyboard/keyboard.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/keyboard/keyboard.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/low-table/low-table.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/low-table/low-table.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/mat/mat.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/mat/mat.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/milk/milk-uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/milk/milk.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/milk/milk.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/milk/milk.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/milk/milk.psd (100%) rename {assets/client => packages/client/assets}/room/furnitures/monitor/monitor.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/monitor/monitor.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/monitor/monitor.psd (100%) rename {assets/client => packages/client/assets}/room/furnitures/monitor/screen-uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/monitor/screen.jpg (100%) rename {assets/client => packages/client/assets}/room/furnitures/moon/moon.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/moon/moon.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/moon/moon.jpg (100%) rename {assets/client => packages/client/assets}/room/furnitures/mousepad/mousepad.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/mousepad/mousepad.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/pc/motherboard-uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/pc/motherboard-uv.psd (100%) rename {assets/client => packages/client/assets}/room/furnitures/pc/motherboard.jpg (100%) rename {assets/client => packages/client/assets}/room/furnitures/pc/pc.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/pc/pc.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/pencil/pencil.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/pencil/pencil.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/photoframe/photo-uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/photoframe/photo.jpg (100%) rename {assets/client => packages/client/assets}/room/furnitures/photoframe/photoframe.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/photoframe/photoframe.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/piano/piano.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/piano/piano.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/pinguin/pinguin.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/pinguin/pinguin.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/plant/plant-soil-uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/plant/plant-soil.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/plant/plant-soil.psd (100%) rename {assets/client => packages/client/assets}/room/furnitures/plant/plant.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/plant/plant.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/plant2/plant2.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/plant2/plant2.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/plant2/soil.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/poster-h/poster-h.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/poster-h/poster-h.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/poster-h/uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/poster-v/poster-v.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/poster-v/poster-v.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/poster-v/uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/pudding/pudding.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/pudding/pudding.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/rubik-cube/rubik-cube.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/rubik-cube/rubik-cube.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/server/rack-uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/server/rack.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/server/server.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/server/server.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/server/server.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/server/uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/sofa/sofa.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/sofa/sofa.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/spiral/spiral.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/spiral/spiral.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/tv/screen-uv.png (100%) rename {assets/client => packages/client/assets}/room/furnitures/tv/tv.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/tv/tv.glb (100%) rename {assets/client => packages/client/assets}/room/furnitures/wall-clock/wall-clock.blend (100%) rename {assets/client => packages/client/assets}/room/furnitures/wall-clock/wall-clock.glb (100%) rename {assets/client => packages/client/assets}/room/rooms/default/default.blend (100%) rename {assets/client => packages/client/assets}/room/rooms/default/default.glb (100%) rename {assets/client => packages/client/assets}/room/rooms/washitsu/husuma-uv.png (100%) rename {assets/client => packages/client/assets}/room/rooms/washitsu/husuma.png (100%) rename {assets/client => packages/client/assets}/room/rooms/washitsu/tatami-single1600.png (100%) rename {assets/client => packages/client/assets}/room/rooms/washitsu/tatami-uv.png (100%) rename {assets/client => packages/client/assets}/room/rooms/washitsu/tatami.afdesign (100%) rename {assets/client => packages/client/assets}/room/rooms/washitsu/tatami.png (100%) rename {assets/client => packages/client/assets}/room/rooms/washitsu/washitsu.blend (100%) rename {assets/client => packages/client/assets}/room/rooms/washitsu/washitsu.glb (100%) rename {assets/client => packages/client/assets}/sounds/aisha/1.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/aisha/2.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/aisha/3.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/noizenecio/kick_gaba.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/noizenecio/kick_gaba2.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/down.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/kick.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/pirori-square-wet.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/pirori-wet.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/pirori.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/poi1.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/poi2.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/pope1.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/pope2.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/popo.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/queue-jammed.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/reverved.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/ryukyu.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/snare.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/square-pico.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/triple.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/up.mp3 (100%) rename {assets/client => packages/client/assets}/sounds/syuilo/waon.mp3 (100%) rename {assets/client => packages/client/assets}/sparkle-spritesheet.png (100%) rename {assets/client => packages/client/assets}/unread.svg (100%) create mode 100644 packages/client/package.json rename {src/client => packages/client/src}/account.ts (93%) rename {src/client => packages/client/src}/components/abuse-report-window.vue (87%) rename {src/client => packages/client/src}/components/analog-clock.vue (100%) rename {src/client => packages/client/src}/components/autocomplete.vue (95%) rename {src/client => packages/client/src}/components/avatars.vue (93%) rename {src/client => packages/client/src}/components/captcha.vue (100%) rename {src/client => packages/client/src}/components/channel-follow-button.vue (98%) rename {src/client => packages/client/src}/components/channel-preview.vue (100%) rename {src/client => packages/client/src}/components/chart.vue (99%) rename {src/client => packages/client/src}/components/code-core.vue (100%) rename {src/client => packages/client/src}/components/code.vue (100%) rename {src/client => packages/client/src}/components/cw-button.vue (96%) rename {src/client => packages/client/src}/components/date-separated-list.vue (98%) rename {src/client => packages/client/src}/components/debobigego/base.vue (100%) rename {src/client => packages/client/src}/components/debobigego/button.vue (100%) rename {src/client => packages/client/src}/components/debobigego/debobigego.scss (100%) rename {src/client => packages/client/src}/components/debobigego/group.vue (100%) rename {src/client => packages/client/src}/components/debobigego/info.vue (100%) rename {src/client => packages/client/src}/components/debobigego/input.vue (100%) rename {src/client => packages/client/src}/components/debobigego/key-value-view.vue (100%) rename {src/client => packages/client/src}/components/debobigego/link.vue (100%) rename {src/client => packages/client/src}/components/debobigego/object-view.vue (100%) rename {src/client => packages/client/src}/components/debobigego/pagination.vue (95%) rename {src/client => packages/client/src}/components/debobigego/radios.vue (97%) rename {src/client => packages/client/src}/components/debobigego/range.vue (100%) rename {src/client => packages/client/src}/components/debobigego/select.vue (100%) rename {src/client => packages/client/src}/components/debobigego/suspense.vue (97%) rename {src/client => packages/client/src}/components/debobigego/switch.vue (100%) rename {src/client => packages/client/src}/components/debobigego/textarea.vue (100%) rename {src/client => packages/client/src}/components/debobigego/tuple.vue (100%) rename {src/client => packages/client/src}/components/dialog.vue (95%) rename {src/client => packages/client/src}/components/drive-file-thumbnail.vue (95%) rename {src/client => packages/client/src}/components/drive-select-dialog.vue (91%) rename {src/client => packages/client/src}/components/drive-window.vue (91%) rename {src/client => packages/client/src}/components/drive.file.vue (94%) rename {src/client => packages/client/src}/components/drive.folder.vue (99%) rename {src/client => packages/client/src}/components/drive.nav-folder.vue (98%) rename {src/client => packages/client/src}/components/drive.vue (99%) rename {src/client => packages/client/src}/components/emoji-picker-dialog.vue (92%) rename {src/client => packages/client/src}/components/emoji-picker-window.vue (96%) rename {src/client => packages/client/src}/components/emoji-picker.section.vue (92%) rename {src/client => packages/client/src}/components/emoji-picker.vue (96%) rename {src/client => packages/client/src}/components/featured-photos.vue (93%) rename {src/client => packages/client/src}/components/file-type-icon.vue (92%) rename {src/client => packages/client/src}/components/follow-button.vue (99%) rename {src/client => packages/client/src}/components/forgot-password.vue (89%) rename {src/client => packages/client/src}/components/form-dialog.vue (98%) rename {src/client => packages/client/src}/components/form/input.vue (99%) rename {src/client => packages/client/src}/components/form/radio.vue (100%) rename {src/client => packages/client/src}/components/form/radios.vue (100%) rename {src/client => packages/client/src}/components/form/range.vue (100%) rename {src/client => packages/client/src}/components/form/section.vue (100%) rename {src/client => packages/client/src}/components/form/select.vue (98%) rename {src/client => packages/client/src}/components/form/slot.vue (100%) rename {src/client => packages/client/src}/components/form/switch.vue (100%) rename {src/client => packages/client/src}/components/form/textarea.vue (98%) rename {src/client => packages/client/src}/components/formula-core.vue (80%) rename {src/client => packages/client/src}/components/formula.vue (93%) rename {src/client => packages/client/src}/components/gallery-post-preview.vue (92%) rename {src/client => packages/client/src}/components/global/a.vue (90%) rename {src/client => packages/client/src}/components/global/acct.vue (93%) rename {src/client => packages/client/src}/components/global/ad.vue (94%) rename {src/client => packages/client/src}/components/global/avatar.vue (91%) rename {src/client => packages/client/src}/components/global/ellipsis.vue (100%) rename {src/client => packages/client/src}/components/global/emoji.vue (94%) rename {src/client => packages/client/src}/components/global/error.vue (93%) rename {src/client => packages/client/src}/components/global/header.vue (96%) rename {src/client => packages/client/src}/components/global/i18n.ts (100%) rename {src/client => packages/client/src}/components/global/loading.vue (100%) rename {src/client => packages/client/src}/components/global/misskey-flavored-markdown.vue (99%) rename {src/client => packages/client/src}/components/global/spacer.vue (100%) rename {src/client => packages/client/src}/components/global/sticky-container.vue (100%) rename {src/client => packages/client/src}/components/global/time.vue (100%) rename {src/client => packages/client/src}/components/global/url.vue (92%) rename {src/client => packages/client/src}/components/global/user-name.vue (100%) rename {src/client => packages/client/src}/components/google.vue (96%) rename {src/client => packages/client/src}/components/image-viewer.vue (91%) rename {src/client => packages/client/src}/components/img-with-blurhash.vue (100%) rename {src/client => packages/client/src}/components/index.ts (100%) rename {src/client => packages/client/src}/components/instance-stats.vue (92%) rename {src/client => packages/client/src}/components/instance-ticker.vue (95%) rename {src/client => packages/client/src}/components/launch-pad.vue (95%) rename {src/client => packages/client/src}/components/link.vue (87%) rename {src/client => packages/client/src}/components/media-banner.vue (95%) rename {src/client => packages/client/src}/components/media-caption.vue (91%) rename {src/client => packages/client/src}/components/media-image.vue (91%) rename {src/client => packages/client/src}/components/media-list.vue (97%) rename {src/client => packages/client/src}/components/media-video.vue (98%) rename {src/client => packages/client/src}/components/mention.vue (85%) rename {src/client => packages/client/src}/components/mfm.ts (92%) rename {src/client => packages/client/src}/components/mini-chart.vue (98%) rename {src/client => packages/client/src}/components/modal-page-window.vue (92%) rename {src/client => packages/client/src}/components/note-detailed.vue (97%) rename {src/client => packages/client/src}/components/note-header.vue (94%) rename {src/client => packages/client/src}/components/note-preview.vue (100%) rename {src/client => packages/client/src}/components/note-simple.vue (98%) rename {src/client => packages/client/src}/components/note.sub.vue (98%) rename {src/client => packages/client/src}/components/note.vue (97%) rename {src/client => packages/client/src}/components/notes.vue (96%) rename {src/client => packages/client/src}/components/notification-setting-window.vue (95%) rename {src/client => packages/client/src}/components/notification.vue (97%) rename {src/client => packages/client/src}/components/notifications.vue (95%) rename {src/client => packages/client/src}/components/number-diff.vue (94%) rename {src/client => packages/client/src}/components/page-preview.vue (96%) rename {src/client => packages/client/src}/components/page-window.vue (91%) rename {src/client => packages/client/src}/components/page/page.block.vue (92%) rename {src/client => packages/client/src}/components/page/page.button.vue (90%) rename {src/client => packages/client/src}/components/page/page.canvas.vue (83%) rename {src/client => packages/client/src}/components/page/page.counter.vue (85%) rename {src/client => packages/client/src}/components/page/page.if.vue (84%) rename {src/client => packages/client/src}/components/page/page.image.vue (79%) rename {src/client => packages/client/src}/components/page/page.note.vue (79%) rename {src/client => packages/client/src}/components/page/page.number-input.vue (86%) rename {src/client => packages/client/src}/components/page/page.post.vue (92%) rename {src/client => packages/client/src}/components/page/page.radio-button.vue (84%) rename {src/client => packages/client/src}/components/page/page.section.vue (86%) rename {src/client => packages/client/src}/components/page/page.switch.vue (86%) rename {src/client => packages/client/src}/components/page/page.text-input.vue (86%) rename {src/client => packages/client/src}/components/page/page.text.vue (79%) rename {src/client => packages/client/src}/components/page/page.textarea-input.vue (80%) rename {src/client => packages/client/src}/components/page/page.textarea.vue (85%) rename {src/client => packages/client/src}/components/page/page.vue (89%) rename {src/client => packages/client/src}/components/particle.vue (100%) rename {src/client => packages/client/src}/components/poll-editor.vue (97%) rename {src/client => packages/client/src}/components/poll.vue (97%) rename {src/client => packages/client/src}/components/post-form-attaches.vue (97%) rename {src/client => packages/client/src}/components/post-form-dialog.vue (78%) rename {src/client => packages/client/src}/components/post-form.vue (97%) rename {src/client => packages/client/src}/components/queue-chart.vue (97%) rename {src/client => packages/client/src}/components/reaction-icon.vue (100%) rename {src/client => packages/client/src}/components/reaction-tooltip.vue (100%) rename {src/client => packages/client/src}/components/reactions-viewer.details.vue (100%) rename {src/client => packages/client/src}/components/reactions-viewer.reaction.vue (95%) rename {src/client => packages/client/src}/components/reactions-viewer.vue (100%) rename {src/client => packages/client/src}/components/remote-caution.vue (94%) rename {src/client => packages/client/src}/components/sample.vue (87%) rename {src/client => packages/client/src}/components/signin-dialog.vue (90%) rename {src/client => packages/client/src}/components/signin.vue (95%) mode change 100755 => 100644 rename {src/client => packages/client/src}/components/signup-dialog.vue (92%) rename {src/client => packages/client/src}/components/signup.vue (98%) rename {src/client => packages/client/src}/components/sparkle.vue (97%) rename {src/client => packages/client/src}/components/sub-note-content.vue (97%) rename {src/client => packages/client/src}/components/tab.vue (100%) rename {src/client => packages/client/src}/components/taskmanager.api-window.vue (92%) rename {src/client => packages/client/src}/components/taskmanager.vue (95%) rename {src/client => packages/client/src}/components/timeline.vue (98%) rename {src/client => packages/client/src}/components/toast.vue (100%) rename {src/client => packages/client/src}/components/token-generate-window.vue (94%) rename {src/client => packages/client/src}/components/ui/button.vue (100%) rename {src/client => packages/client/src}/components/ui/container.vue (100%) rename {src/client => packages/client/src}/components/ui/context-menu.vue (97%) rename {src/client => packages/client/src}/components/ui/folder.vue (100%) rename {src/client => packages/client/src}/components/ui/hr.vue (76%) rename {src/client => packages/client/src}/components/ui/info.vue (95%) rename {src/client => packages/client/src}/components/ui/menu.vue (98%) rename {src/client => packages/client/src}/components/ui/modal-window.vue (100%) rename {src/client => packages/client/src}/components/ui/modal.vue (100%) rename {src/client => packages/client/src}/components/ui/pagination.vue (96%) rename {src/client => packages/client/src}/components/ui/popup-menu.vue (100%) rename {src/client => packages/client/src}/components/ui/popup.vue (100%) rename {src/client => packages/client/src}/components/ui/super-menu.vue (100%) rename {src/client => packages/client/src}/components/ui/tooltip.vue (100%) rename {src/client => packages/client/src}/components/ui/window.vue (99%) rename {src/client => packages/client/src}/components/updated.vue (87%) rename {src/client => packages/client/src}/components/url-preview-popup.vue (96%) rename {src/client => packages/client/src}/components/url-preview.vue (98%) rename {src/client => packages/client/src}/components/user-info.vue (96%) rename {src/client => packages/client/src}/components/user-list.vue (94%) rename {src/client => packages/client/src}/components/user-online-indicator.vue (100%) rename {src/client => packages/client/src}/components/user-preview.vue (96%) rename {src/client => packages/client/src}/components/user-select-dialog.vue (97%) rename {src/client => packages/client/src}/components/users-dialog.vue (96%) rename {src/client => packages/client/src}/components/visibility-picker.vue (98%) rename {src/client => packages/client/src}/components/waiting-dialog.vue (96%) rename {src/client => packages/client/src}/components/widgets.vue (94%) rename {src/client => packages/client/src}/config.ts (100%) rename {src/client => packages/client/src}/directives/anim.ts (100%) rename {src/client => packages/client/src}/directives/appear.ts (100%) rename {src/client => packages/client/src}/directives/click-anime.ts (93%) rename {src/client => packages/client/src}/directives/follow-append.ts (91%) rename {src/client => packages/client/src}/directives/get-size.ts (100%) rename {src/client => packages/client/src}/directives/hotkey.ts (100%) rename {src/client => packages/client/src}/directives/index.ts (100%) rename {src/client => packages/client/src}/directives/particle.ts (80%) rename {src/client => packages/client/src}/directives/size.ts (100%) rename {src/client => packages/client/src}/directives/sticky-container.ts (100%) rename {src/client => packages/client/src}/directives/tooltip.ts (91%) rename {src/client => packages/client/src}/directives/user-preview.ts (96%) rename {src => packages/client/src}/emojilist.json (100%) rename {src/client => packages/client/src}/events.ts (100%) rename {src/client => packages/client/src}/filters/bytes.ts (100%) rename {src/client => packages/client/src}/filters/note.ts (100%) rename {src/client => packages/client/src}/filters/number.ts (100%) create mode 100644 packages/client/src/filters/user.ts rename {src/client => packages/client/src}/i18n.ts (80%) rename {src/client => packages/client/src}/init.ts (84%) rename {src/client => packages/client/src}/instance.ts (100%) rename {src/client => packages/client/src}/menu.ts (95%) rename {src/client => packages/client/src}/os.ts (91%) rename {src/client => packages/client/src}/pages/_error_.vue (88%) rename {src/client => packages/client/src}/pages/_loading_.vue (80%) rename {src/client => packages/client/src}/pages/about-misskey.vue (90%) rename {src/client => packages/client/src}/pages/about.vue (80%) rename {src/client => packages/client/src}/pages/admin/abuses.vue (91%) rename {src/client => packages/client/src}/pages/admin/ads.vue (90%) rename {src/client => packages/client/src}/pages/admin/announcements.vue (91%) rename {src/client => packages/client/src}/pages/admin/bot-protection.vue (85%) rename {src/client => packages/client/src}/pages/admin/database.vue (69%) rename {src/client => packages/client/src}/pages/admin/email-settings.vue (82%) rename {src/client => packages/client/src}/pages/admin/emoji-edit-dialog.vue (89%) rename {src/client => packages/client/src}/pages/admin/emojis.vue (94%) rename {src/client => packages/client/src}/pages/admin/file-dialog.vue (86%) rename {src/client => packages/client/src}/pages/admin/files-settings.vue (80%) rename {src/client => packages/client/src}/pages/admin/files.vue (89%) rename {src/client => packages/client/src}/pages/admin/index.vue (94%) rename {src/client => packages/client/src}/pages/admin/instance-block.vue (63%) rename {src/client => packages/client/src}/pages/admin/instance.vue (93%) rename {src/client => packages/client/src}/pages/admin/integrations-discord.vue (76%) rename {src/client => packages/client/src}/pages/admin/integrations-github.vue (76%) rename {src/client => packages/client/src}/pages/admin/integrations-twitter.vue (76%) rename {src/client => packages/client/src}/pages/admin/integrations.vue (70%) rename {src/client => packages/client/src}/pages/admin/metrics.vue (95%) rename {src/client => packages/client/src}/pages/admin/object-storage.vue (90%) rename {src/client => packages/client/src}/pages/admin/other-settings.vue (74%) rename {src/client => packages/client/src}/pages/admin/overview.vue (88%) rename {src/client => packages/client/src}/pages/admin/proxy-account.vue (69%) rename {src/client => packages/client/src}/pages/admin/queue.chart.vue (94%) rename {src/client => packages/client/src}/pages/admin/queue.vue (83%) rename {src/client => packages/client/src}/pages/admin/relays.vue (84%) rename {src/client => packages/client/src}/pages/admin/security.vue (75%) rename {src/client => packages/client/src}/pages/admin/service-worker.vue (75%) rename {src/client => packages/client/src}/pages/admin/settings.vue (85%) rename {src/client => packages/client/src}/pages/admin/users.vue (93%) rename {src/client => packages/client/src}/pages/advanced-theme-editor.vue (93%) rename {src/client => packages/client/src}/pages/announcements.vue (89%) rename {src/client => packages/client/src}/pages/antenna-timeline.vue (91%) rename {src/client => packages/client/src}/pages/api-console.vue (86%) rename {src/client => packages/client/src}/pages/auth.form.vue (93%) rename {src/client => packages/client/src}/pages/auth.vue (93%) mode change 100755 => 100644 rename {src/client => packages/client/src}/pages/channel-editor.vue (89%) rename {src/client => packages/client/src}/pages/channel.vue (91%) rename {src/client => packages/client/src}/pages/channels.vue (87%) rename {src/client => packages/client/src}/pages/clip.vue (91%) rename {src/client => packages/client/src}/pages/drive.vue (75%) rename {src/client => packages/client/src}/pages/emojis.category.vue (86%) rename {src/client => packages/client/src}/pages/emojis.emoji.vue (94%) rename {src/client => packages/client/src}/pages/emojis.vue (87%) rename {src/client => packages/client/src}/pages/explore.vue (94%) rename {src/client => packages/client/src}/pages/favorites.vue (82%) rename {src/client => packages/client/src}/pages/featured.vue (80%) rename {src/client => packages/client/src}/pages/federation.vue (95%) rename {src/client => packages/client/src}/pages/follow-requests.vue (94%) rename {src/client => packages/client/src}/pages/follow.vue (90%) rename {src/client => packages/client/src}/pages/gallery/edit.vue (84%) rename {src/client => packages/client/src}/pages/gallery/index.vue (85%) rename {src/client => packages/client/src}/pages/gallery/post.vue (91%) rename {src/client => packages/client/src}/pages/instance-info.vue (89%) rename {src/client => packages/client/src}/pages/mentions.vue (79%) rename {src/client => packages/client/src}/pages/messages.vue (81%) rename {src/client => packages/client/src}/pages/messaging/index.vue (94%) rename {src/client => packages/client/src}/pages/messaging/messaging-room.form.vue (97%) rename {src/client => packages/client/src}/pages/messaging/messaging-room.message.vue (96%) rename {src/client => packages/client/src}/pages/messaging/messaging-room.vue (96%) rename {src/client => packages/client/src}/pages/mfm-cheat-sheet.vue (99%) rename {src/client => packages/client/src}/pages/miauth.vue (91%) rename {src/client => packages/client/src}/pages/my-antennas/create.vue (88%) rename {src/client => packages/client/src}/pages/my-antennas/edit.vue (85%) rename {src/client => packages/client/src}/pages/my-antennas/editor.vue (93%) rename {src/client => packages/client/src}/pages/my-antennas/index.vue (88%) rename {src/client => packages/client/src}/pages/my-clips/index.vue (90%) rename {src/client => packages/client/src}/pages/my-groups/group.vue (95%) rename {src/client => packages/client/src}/pages/my-groups/index.vue (89%) rename {src/client => packages/client/src}/pages/my-lists/index.vue (85%) rename {src/client => packages/client/src}/pages/my-lists/list.vue (94%) rename {src/client => packages/client/src}/pages/not-found.vue (84%) rename {src/client => packages/client/src}/pages/note.vue (92%) rename {src/client => packages/client/src}/pages/notifications.vue (88%) rename {src/client => packages/client/src}/pages/page-editor/els/page-editor.el.button.vue (93%) rename {src/client => packages/client/src}/pages/page-editor/els/page-editor.el.canvas.vue (93%) rename {src/client => packages/client/src}/pages/page-editor/els/page-editor.el.counter.vue (91%) rename {src/client => packages/client/src}/pages/page-editor/els/page-editor.el.if.vue (95%) rename {src/client => packages/client/src}/pages/page-editor/els/page-editor.el.image.vue (91%) rename {src/client => packages/client/src}/pages/page-editor/els/page-editor.el.note.vue (86%) rename {src/client => packages/client/src}/pages/page-editor/els/page-editor.el.number-input.vue (91%) rename {src/client => packages/client/src}/pages/page-editor/els/page-editor.el.post.vue (84%) rename {src/client => packages/client/src}/pages/page-editor/els/page-editor.el.radio-button.vue (90%) rename {src/client => packages/client/src}/pages/page-editor/els/page-editor.el.section.vue (98%) rename {src/client => packages/client/src}/pages/page-editor/els/page-editor.el.switch.vue (87%) rename {src/client => packages/client/src}/pages/page-editor/els/page-editor.el.text-input.vue (91%) rename {src/client => packages/client/src}/pages/page-editor/els/page-editor.el.text.vue (96%) rename {src/client => packages/client/src}/pages/page-editor/els/page-editor.el.textarea-input.vue (87%) rename {src/client => packages/client/src}/pages/page-editor/els/page-editor.el.textarea.vue (96%) rename {src/client => packages/client/src}/pages/page-editor/page-editor.blocks.vue (98%) rename {src/client => packages/client/src}/pages/page-editor/page-editor.container.vue (100%) rename {src/client => packages/client/src}/pages/page-editor/page-editor.script-block.vue (96%) rename {src/client => packages/client/src}/pages/page-editor/page-editor.vue (95%) rename {src/client => packages/client/src}/pages/page.vue (93%) rename {src/client => packages/client/src}/pages/pages.vue (88%) rename {src/client => packages/client/src}/pages/preview.vue (80%) rename {src/client => packages/client/src}/pages/reset-password.vue (66%) rename {src/client => packages/client/src}/pages/reversi/game.board.vue (97%) rename {src/client => packages/client/src}/pages/reversi/game.setting.vue (97%) rename {src/client => packages/client/src}/pages/reversi/game.vue (94%) rename {src/client => packages/client/src}/pages/reversi/index.vue (96%) rename {src/client => packages/client/src}/pages/room/preview.vue (98%) rename {src/client => packages/client/src}/pages/room/room.vue (92%) rename {src/client => packages/client/src}/pages/scratchpad.vue (91%) rename {src/client => packages/client/src}/pages/search.vue (85%) rename {src/client => packages/client/src}/pages/settings/2fa.vue (91%) rename {src/client => packages/client/src}/pages/settings/account-info.vue (89%) rename {src/client => packages/client/src}/pages/settings/accounts.vue (82%) rename {src/client => packages/client/src}/pages/settings/api.vue (67%) rename {src/client => packages/client/src}/pages/settings/apps.vue (82%) rename {src/client => packages/client/src}/pages/settings/custom-css.vue (59%) rename {src/client => packages/client/src}/pages/settings/deck.vue (79%) rename {src/client => packages/client/src}/pages/settings/delete-account.vue (74%) rename {src/client => packages/client/src}/pages/settings/drive.vue (87%) rename {src/client => packages/client/src}/pages/settings/email-address.vue (78%) rename {src/client => packages/client/src}/pages/settings/email-notification.vue (84%) rename {src/client => packages/client/src}/pages/settings/email.vue (76%) rename {src/client => packages/client/src}/pages/settings/experimental-features.vue (54%) rename {src/client => packages/client/src}/pages/settings/general.vue (90%) rename {src/client => packages/client/src}/pages/settings/import-export.vue (92%) rename {src/client => packages/client/src}/pages/settings/index.vue (95%) rename {src/client => packages/client/src}/pages/settings/integration.vue (94%) rename {src/client => packages/client/src}/pages/settings/menu.vue (83%) rename {src/client => packages/client/src}/pages/settings/mute-block.vue (77%) rename {src/client => packages/client/src}/pages/settings/notifications.vue (77%) rename {src/client => packages/client/src}/pages/settings/other.vue (76%) rename {src/client => packages/client/src}/pages/settings/plugin.install.vue (78%) rename {src/client => packages/client/src}/pages/settings/plugin.manage.vue (84%) rename {src/client => packages/client/src}/pages/settings/plugin.vue (72%) rename {src/client => packages/client/src}/pages/settings/privacy.vue (90%) rename {src/client => packages/client/src}/pages/settings/profile.vue (91%) rename {src/client => packages/client/src}/pages/settings/reaction.vue (88%) rename {src/client => packages/client/src}/pages/settings/registry.keys.vue (80%) rename {src/client => packages/client/src}/pages/settings/registry.value.vue (82%) rename {src/client => packages/client/src}/pages/settings/registry.vue (75%) rename {src/client => packages/client/src}/pages/settings/security.vue (88%) rename {src/client => packages/client/src}/pages/settings/sounds.vue (87%) rename {src/client => packages/client/src}/pages/settings/theme.install.vue (72%) rename {src/client => packages/client/src}/pages/settings/theme.manage.vue (75%) rename {src/client => packages/client/src}/pages/settings/theme.vue (92%) rename {src/client => packages/client/src}/pages/settings/update.vue (74%) rename {src/client => packages/client/src}/pages/settings/word-mute.vue (83%) rename {src/client => packages/client/src}/pages/share.vue (92%) rename {src/client => packages/client/src}/pages/signup-complete.vue (81%) rename {src/client => packages/client/src}/pages/tag.vue (83%) rename {src/client => packages/client/src}/pages/test.vue (94%) rename {src/client => packages/client/src}/pages/theme-editor.vue (94%) rename {src/client => packages/client/src}/pages/timeline.tutorial.vue (98%) rename {src/client => packages/client/src}/pages/timeline.vue (94%) rename {src/client => packages/client/src}/pages/user-ap-info.vue (79%) rename {src/client => packages/client/src}/pages/user-info.vue (86%) rename {src/client => packages/client/src}/pages/user-list-timeline.vue (90%) rename {src/client => packages/client/src}/pages/user/clips.vue (92%) rename {src/client => packages/client/src}/pages/user/follow-list.vue (89%) rename {src/client => packages/client/src}/pages/user/gallery.vue (85%) rename {src/client => packages/client/src}/pages/user/index.activity.vue (80%) rename {src/client => packages/client/src}/pages/user/index.photos.vue (87%) rename {src/client => packages/client/src}/pages/user/index.timeline.vue (90%) rename {src/client => packages/client/src}/pages/user/index.vue (96%) rename {src/client => packages/client/src}/pages/user/pages.vue (83%) rename {src/client => packages/client/src}/pages/user/reactions.vue (88%) rename {src/client => packages/client/src}/pages/v.vue (87%) rename {src/client => packages/client/src}/pages/welcome.entrance.a.vue (92%) rename {src/client => packages/client/src}/pages/welcome.entrance.b.vue (89%) rename {src/client => packages/client/src}/pages/welcome.entrance.c.vue (92%) rename {src/client => packages/client/src}/pages/welcome.setup.vue (89%) rename {src/client => packages/client/src}/pages/welcome.timeline.vue (89%) rename {src/client => packages/client/src}/pages/welcome.vue (81%) rename {src/client => packages/client/src}/pizzax.ts (100%) rename {src/client => packages/client/src}/plugin.ts (96%) rename {src/client => packages/client/src}/router.ts (97%) rename {src/client => packages/client/src}/scripts/2fa.ts (100%) rename {src/client => packages/client/src}/scripts/aiscript/api.ts (95%) create mode 100644 packages/client/src/scripts/array.ts rename {src/client => packages/client/src}/scripts/autocomplete.ts (98%) rename {src/client => packages/client/src}/scripts/check-word-mute.ts (100%) rename {src/client => packages/client/src}/scripts/collect-page-vars.ts (100%) rename {src/client => packages/client/src}/scripts/contains.ts (100%) rename {src/client => packages/client/src}/scripts/copy-to-clipboard.ts (100%) rename {src/misc => packages/client/src/scripts}/emojilist.ts (100%) rename {src/client => packages/client/src}/scripts/extract-avg-color-from-blurhash.ts (100%) create mode 100644 packages/client/src/scripts/extract-mentions.ts rename {src/misc => packages/client/src/scripts}/extract-url-from-mfm.ts (94%) rename {src/client => packages/client/src}/scripts/focus.ts (100%) rename {src/client => packages/client/src}/scripts/form.ts (100%) rename {src/misc => packages/client/src/scripts}/format-time-string.ts (100%) create mode 100644 packages/client/src/scripts/games/reversi/core.ts create mode 100644 packages/client/src/scripts/games/reversi/maps.ts create mode 100644 packages/client/src/scripts/games/reversi/package.json create mode 100644 packages/client/src/scripts/games/reversi/tsconfig.json rename {src/client => packages/client/src}/scripts/gen-search-query.ts (77%) rename {src/client => packages/client/src}/scripts/get-account-from-id.ts (82%) rename {src/client => packages/client/src}/scripts/get-md5.ts (100%) create mode 100644 packages/client/src/scripts/get-note-summary.ts rename {src/client => packages/client/src}/scripts/get-static-image-url.ts (83%) rename {src/client => packages/client/src}/scripts/get-user-menu.ts (91%) rename {src/client => packages/client/src}/scripts/hotkey.ts (100%) rename {src/client => packages/client/src}/scripts/hpml/block.ts (100%) rename {src/client => packages/client/src}/scripts/hpml/evaluator.ts (98%) rename {src/client => packages/client/src}/scripts/hpml/expr.ts (100%) rename {src/client => packages/client/src}/scripts/hpml/index.ts (100%) rename {src/client => packages/client/src}/scripts/hpml/lib.ts (100%) rename {src/client => packages/client/src}/scripts/hpml/type-checker.ts (100%) create mode 100644 packages/client/src/scripts/i18n.ts rename {src/client => packages/client/src}/scripts/idb-proxy.ts (100%) rename {src/client => packages/client/src}/scripts/initialize-sw.ts (92%) rename {src/client => packages/client/src}/scripts/is-device-darkmode.ts (100%) rename {src/client => packages/client/src}/scripts/is-device-touch.ts (100%) rename {src/client => packages/client/src}/scripts/is-mobile.ts (100%) rename {src/client => packages/client/src}/scripts/keycode.ts (100%) rename {src/client => packages/client/src}/scripts/loading.ts (100%) rename {src/client => packages/client/src}/scripts/login-id.ts (100%) rename {src/client => packages/client/src}/scripts/lookup-user.ts (78%) create mode 100644 packages/client/src/scripts/mfm-tags.ts rename {src/client => packages/client/src}/scripts/paging.ts (99%) rename {src/client => packages/client/src}/scripts/physics.ts (100%) rename {src/client => packages/client/src}/scripts/please-login.ts (58%) rename {src/client => packages/client/src}/scripts/popout.ts (95%) rename {src/client => packages/client/src}/scripts/reaction-picker.ts (88%) rename {src/client => packages/client/src}/scripts/room/furniture.ts (100%) rename {src/client => packages/client/src}/scripts/room/furnitures.json5 (100%) rename {src/client => packages/client/src}/scripts/room/room.ts (98%) rename {src/client => packages/client/src}/scripts/scroll.ts (100%) rename {src/client => packages/client/src}/scripts/search.ts (93%) rename {src/client => packages/client/src}/scripts/select-file.ts (94%) rename {src/client => packages/client/src}/scripts/show-suspended-dialog.ts (72%) rename {src/client => packages/client/src}/scripts/sound.ts (88%) rename {src/client => packages/client/src}/scripts/sticky-sidebar.ts (100%) rename {src/client => packages/client/src}/scripts/theme-editor.ts (100%) rename {src/client => packages/client/src}/scripts/theme.ts (80%) create mode 100644 packages/client/src/scripts/time.ts rename {src/misc => packages/client/src/scripts}/twemoji-base.ts (100%) rename {src/client => packages/client/src}/scripts/unison-reload.ts (100%) create mode 100644 packages/client/src/scripts/url.ts rename {src/client => packages/client/src}/store.ts (98%) rename {src/client => packages/client/src}/style.scss (100%) rename {src/client => packages/client/src}/sw/compose-notification.ts (93%) rename {src/client => packages/client/src}/sw/sw.ts (96%) rename {src/client => packages/client/src}/symbols.ts (100%) rename {src/client => packages/client/src}/theme-store.ts (93%) rename {src/client => packages/client/src}/themes/_dark.json5 (100%) rename {src/client => packages/client/src}/themes/_light.json5 (100%) rename {src/client => packages/client/src}/themes/d-astro.json5 (100%) rename {src/client => packages/client/src}/themes/d-black.json5 (100%) rename {src/client => packages/client/src}/themes/d-botanical.json5 (100%) rename {src/client => packages/client/src}/themes/d-dark.json5 (100%) rename {src/client => packages/client/src}/themes/d-future.json5 (100%) rename {src/client => packages/client/src}/themes/d-persimmon.json5 (100%) rename {src/client => packages/client/src}/themes/d-pumpkin.json5 (100%) rename {src/client => packages/client/src}/themes/l-apricot.json5 (100%) rename {src/client => packages/client/src}/themes/l-light.json5 (100%) rename {src/client => packages/client/src}/themes/l-rainy.json5 (100%) rename {src/client => packages/client/src}/themes/l-sushi.json5 (100%) rename {src/client => packages/client/src}/themes/l-vivid.json5 (100%) rename {src/client => packages/client/src}/ui/_common_/common.vue (91%) rename {src/client => packages/client/src}/ui/_common_/sidebar.vue (96%) rename {src/client => packages/client/src}/ui/_common_/stream-indicator.vue (97%) rename {src/client => packages/client/src}/ui/_common_/upload.vue (99%) rename {src/client => packages/client/src}/ui/chat/date-separated-list.vue (98%) rename {src/client => packages/client/src}/ui/chat/header-clock.vue (97%) rename {src/client => packages/client/src}/ui/chat/index.vue (96%) rename {src/client => packages/client/src}/ui/chat/note-header.vue (94%) rename {src/client => packages/client/src}/ui/chat/note-preview.vue (94%) rename {src/client => packages/client/src}/ui/chat/note.sub.vue (96%) rename {src/client => packages/client/src}/ui/chat/note.vue (96%) rename {src/client => packages/client/src}/ui/chat/notes.vue (95%) rename {src/client => packages/client/src}/ui/chat/pages/channel.vue (95%) rename {src/client => packages/client/src}/ui/chat/pages/timeline.vue (94%) rename {src/client => packages/client/src}/ui/chat/post-form.vue (95%) rename {src/client => packages/client/src}/ui/chat/side.vue (92%) rename {src/client => packages/client/src}/ui/chat/store.ts (100%) rename {src/client => packages/client/src}/ui/chat/sub-note-content.vue (89%) rename {src/client => packages/client/src}/ui/chat/widgets.vue (96%) rename {src/client => packages/client/src}/ui/classic.header.vue (92%) rename {src/client => packages/client/src}/ui/classic.side.vue (93%) rename {src/client => packages/client/src}/ui/classic.sidebar.vue (92%) rename {src/client => packages/client/src}/ui/classic.vue (97%) rename {src/client => packages/client/src}/ui/classic.widgets.vue (97%) rename {src/client => packages/client/src}/ui/deck.vue (94%) rename {src/client => packages/client/src}/ui/deck/antenna-column.vue (94%) rename {src/client => packages/client/src}/ui/deck/column-core.vue (100%) rename {src/client => packages/client/src}/ui/deck/column.vue (99%) rename {src/client => packages/client/src}/ui/deck/deck-store.ts (99%) rename {src/client => packages/client/src}/ui/deck/direct-column.vue (86%) rename {src/client => packages/client/src}/ui/deck/list-column.vue (94%) rename {src/client => packages/client/src}/ui/deck/main-column.vue (90%) rename {src/client => packages/client/src}/ui/deck/mentions-column.vue (85%) rename {src/client => packages/client/src}/ui/deck/notifications-column.vue (84%) rename {src/client => packages/client/src}/ui/deck/tl-column.vue (96%) rename {src/client => packages/client/src}/ui/deck/widgets-column.vue (96%) rename {src/client => packages/client/src}/ui/desktop.vue (78%) rename {src/client => packages/client/src}/ui/universal.vue (96%) rename {src/client => packages/client/src}/ui/universal.widgets.vue (94%) rename {src/client => packages/client/src}/ui/visitor.vue (100%) rename {src/client => packages/client/src}/ui/visitor/a.vue (93%) rename {src/client => packages/client/src}/ui/visitor/b.vue (93%) rename {src/client => packages/client/src}/ui/visitor/header.vue (95%) rename {src/client => packages/client/src}/ui/visitor/kanban.vue (93%) rename {src/client => packages/client/src}/ui/zen.vue (96%) rename {src/client => packages/client/src}/widgets/activity.calendar.vue (98%) rename {src/client => packages/client/src}/widgets/activity.chart.vue (98%) rename {src/client => packages/client/src}/widgets/activity.vue (94%) rename {src/client => packages/client/src}/widgets/aichan.vue (92%) rename {src/client => packages/client/src}/widgets/aiscript.vue (94%) rename {src/client => packages/client/src}/widgets/button.vue (90%) rename {src/client => packages/client/src}/widgets/calendar.vue (99%) rename {src/client => packages/client/src}/widgets/clock.vue (83%) rename {src/client => packages/client/src}/widgets/define.ts (94%) rename {src/client => packages/client/src}/widgets/digital-clock.vue (98%) rename {src/client => packages/client/src}/widgets/federation.vue (95%) rename {src/client => packages/client/src}/widgets/index.ts (100%) rename {src/client => packages/client/src}/widgets/job-queue.vue (97%) rename {src/client => packages/client/src}/widgets/memo.vue (94%) rename {src/client => packages/client/src}/widgets/notifications.vue (82%) rename {src/client => packages/client/src}/widgets/online-users.vue (97%) rename {src/client => packages/client/src}/widgets/photos.vue (92%) rename {src/client => packages/client/src}/widgets/post-form.vue (85%) rename {src/client => packages/client/src}/widgets/rss.vue (94%) rename {src/client => packages/client/src}/widgets/server-metric/cpu-mem.vue (100%) rename {src/client => packages/client/src}/widgets/server-metric/cpu.vue (100%) rename {src/client => packages/client/src}/widgets/server-metric/disk.vue (95%) rename {src/client => packages/client/src}/widgets/server-metric/index.vue (94%) rename {src/client => packages/client/src}/widgets/server-metric/mem.vue (96%) rename {src/client => packages/client/src}/widgets/server-metric/net.vue (98%) rename {src/client => packages/client/src}/widgets/server-metric/pie.vue (100%) rename {src/client => packages/client/src}/widgets/slideshow.vue (98%) rename {src/client => packages/client/src}/widgets/timeline.vue (95%) rename {src/client => packages/client/src}/widgets/trends.vue (92%) rename {src => packages}/client/tsconfig.json (85%) rename webpack.config.ts => packages/client/webpack.config.js (82%) create mode 100644 packages/client/yarn.lock rename {src => packages}/meta.json (100%) delete mode 100644 src/client/filters/user.ts delete mode 100644 src/mfm/fn-name-list.ts delete mode 100644 src/misc/acct.ts delete mode 100644 src/misc/get-user-name.ts delete mode 100644 src/misc/license.ts delete mode 100644 src/server/api/openapi/description.ts delete mode 100644 src/well-known-services.ts delete mode 100644 vetur.config.js diff --git a/.gitignore b/.gitignore index f8baa43848..9928d93aa2 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,7 @@ /.idea # Node.js -/node_modules +node_modules report.*.json # Cypress @@ -20,7 +20,7 @@ cypress/videos # misskey /build -/built +built /data /.cache-loader /db diff --git a/.imgbotconfig b/.imgbotconfig deleted file mode 100644 index 6a1dfe1ed3..0000000000 --- a/.imgbotconfig +++ /dev/null @@ -1,5 +0,0 @@ -{ - "ignoredFiles": [ - "test/resources/*" - ] -} diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000000..91d3a3ade7 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,71 @@ +/** + * Gulp tasks + */ + +const fs = require('fs'); +const gulp = require('gulp'); +const rimraf = require('rimraf'); +const replace = require('gulp-replace'); +const terser = require('gulp-terser'); +const cssnano = require('gulp-cssnano'); + +const locales = require('./locales'); +const meta = require('./package.json'); + +gulp.task('copy:backend:views', () => + gulp.src('./packages/backend/src/server/web/views/**/*').pipe(gulp.dest('./packages/backend/built/server/web/views')) +); + +gulp.task('copy:client:fonts', () => + gulp.src('./packages/client/node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/_client_dist_/fonts/')) +); + +gulp.task('copy:client:locales', cb => { + fs.mkdirSync('./built/_client_dist_/locales', { recursive: true }); + + const v = { '_version_': meta.version }; + + for (const [lang, locale] of Object.entries(locales)) { + fs.writeFileSync(`./built/_client_dist_/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8'); + } + + cb(); +}); + +gulp.task('build:backend:script', () => { + return gulp.src(['./packages/backend/src/server/web/boot.js', './packages/backend/src/server/web/bios.js', './packages/backend/src/server/web/cli.js']) + .pipe(replace('VERSION', JSON.stringify(meta.version))) + .pipe(replace('LANGS', JSON.stringify(Object.keys(locales)))) + .pipe(terser({ + toplevel: true + })) + .pipe(gulp.dest('./packages/backend/built/server/web/')); +}); + +gulp.task('build:backend:style', () => { + return gulp.src(['./packages/backend/src/server/web/style.css', './packages/backend/src/server/web/bios.css', './packages/backend/src/server/web/cli.css']) + .pipe(cssnano({ + zindex: false + })) + .pipe(gulp.dest('./packages/backend/built/server/web/')); +}); + +gulp.task('clean', cb => + rimraf('./built', cb) +); + +gulp.task('cleanall', gulp.parallel('clean', cb => + rimraf('./node_modules', cb) +)); + +gulp.task('build', gulp.parallel( + 'copy:client:locales', 'copy:backend:views', 'build:backend:script', 'build:backend:style', 'copy:client:fonts' +)); + +gulp.task('default', gulp.task('build')); + +gulp.task('watch', () => { + gulp.watch([ + './packages/**/*', + ], { ignoreInitial: false }, gulp.task('build')); +}); diff --git a/gulpfile.ts b/gulpfile.ts deleted file mode 100644 index 2cdcbdb6fc..0000000000 --- a/gulpfile.ts +++ /dev/null @@ -1,80 +0,0 @@ -/** - * Gulp tasks - */ - -import * as fs from 'fs'; -import * as gulp from 'gulp'; -import rimraf from 'rimraf'; -const replace = require('gulp-replace'); -const terser = require('gulp-terser'); -const cssnano = require('gulp-cssnano'); - -const locales: { [x: string]: any } = require('./locales'); -const meta = require('./package.json'); - -gulp.task('build:copy:views', () => - gulp.src('./src/server/web/views/**/*').pipe(gulp.dest('./built/server/web/views')) -); - -gulp.task('build:copy:fonts', () => - gulp.src('./node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/assets/fonts/')) -); - -gulp.task('build:copy:locales', cb => { - fs.mkdirSync('./built/assets/locales', { recursive: true }); - - const v = { '_version_': meta.version }; - - for (const [lang, locale] of Object.entries(locales)) { - fs.writeFileSync(`./built/assets/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8'); - } - - cb(); -}); - -gulp.task('build:client:script', () => { - return gulp.src(['./src/server/web/boot.js', './src/server/web/bios.js', './src/server/web/cli.js']) - .pipe(replace('VERSION', JSON.stringify(meta.version))) - .pipe(replace('LANGS', JSON.stringify(Object.keys(locales)))) - .pipe(terser({ - toplevel: true - })) - .pipe(gulp.dest('./built/server/web/')); -}); - -gulp.task('build:client:style', () => { - return gulp.src(['./src/server/web/style.css', './src/server/web/bios.css', './src/server/web/cli.css']) - .pipe(cssnano({ - zindex: false - })) - .pipe(gulp.dest('./built/server/web/')); -}); - -gulp.task('build:copy', gulp.parallel('build:copy:locales', 'build:copy:views', 'build:client:script', 'build:client:style', 'build:copy:fonts', () => - gulp.src([ - './src/emojilist.json', - './src/**/assets/**/*', - '!./src/client/assets/**/*' - ]).pipe(gulp.dest('./built/')) -)); - -gulp.task('clean', cb => - rimraf('./built', cb) -); - -gulp.task('cleanall', gulp.parallel('clean', cb => - rimraf('./node_modules', cb) -)); - -gulp.task('build', gulp.parallel( - 'build:copy', -)); - -gulp.task('default', gulp.task('build')); - -gulp.task('watch', () => { - gulp.watch([ - './src/**/*', - '!./src/client/**/*' - ], { ignoreInitial: false }, gulp.task('build')); -}); diff --git a/index.js b/index.js deleted file mode 100644 index aa103e667e..0000000000 --- a/index.js +++ /dev/null @@ -1,17 +0,0 @@ -/* -import * as fs from 'fs'; - -if (fs.existsSync('./built')) { - import('./built/index.js').then(built => built()); -} else { - console.log('Built code is not found. Probably an error occurred during a build or you just forgot to build.'); -} -*/ - -const fs = require('fs'); - -if (fs.existsSync('./built')) { - require('./built').default(); -} else { - console.log('Built code is not found. Probably an error occurred during a build or you just forgot to build.'); -} diff --git a/migration/1557476068003-PinnedUsers.ts b/migration/1557476068003-PinnedUsers.ts deleted file mode 100644 index 4e7222aafc..0000000000 --- a/migration/1557476068003-PinnedUsers.ts +++ /dev/null @@ -1,13 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class PinnedUsers1557476068003 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedUsers" character varying(256) array NOT NULL DEFAULT '{}'::varchar[]`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedUsers"`); - } - -} diff --git a/migration/1558266512381-UserListJoining.ts b/migration/1558266512381-UserListJoining.ts deleted file mode 100644 index f4a917045d..0000000000 --- a/migration/1558266512381-UserListJoining.ts +++ /dev/null @@ -1,13 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class UserListJoining1558266512381 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`CREATE UNIQUE INDEX "IDX_90f7da835e4c10aca6853621e1" ON "user_list_joining" ("userId", "userListId") `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`DROP INDEX "IDX_90f7da835e4c10aca6853621e1"`); - } - -} diff --git a/migration/1562422242907-PasswordLessLogin.ts b/migration/1562422242907-PasswordLessLogin.ts deleted file mode 100644 index e789a34334..0000000000 --- a/migration/1562422242907-PasswordLessLogin.ts +++ /dev/null @@ -1,13 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class PasswordLessLogin1562422242907 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" ADD COLUMN "usePasswordLessLogin" boolean DEFAULT false NOT NULL`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "usePasswordLessLogin"`); - } - -} diff --git a/migration/1562448332510-PageTitleHideOption.ts b/migration/1562448332510-PageTitleHideOption.ts deleted file mode 100644 index acc9b7e26f..0000000000 --- a/migration/1562448332510-PageTitleHideOption.ts +++ /dev/null @@ -1,13 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class PageTitleHideOption1562448332510 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "page" ADD "hideTitleWhenPinned" boolean NOT NULL DEFAULT false`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "hideTitleWhenPinned"`); - } - -} diff --git a/migration/1565634203341-room.ts b/migration/1565634203341-room.ts deleted file mode 100644 index 783b375ff9..0000000000 --- a/migration/1565634203341-room.ts +++ /dev/null @@ -1,13 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class room1565634203341 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "room" jsonb NOT NULL DEFAULT '{}'`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "room"`); - } - -} diff --git a/migration/1571220798684-CustomEmojiCategory.ts b/migration/1571220798684-CustomEmojiCategory.ts deleted file mode 100644 index 37f63fa3d0..0000000000 --- a/migration/1571220798684-CustomEmojiCategory.ts +++ /dev/null @@ -1,13 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class CustomEmojiCategory1571220798684 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "emoji" ADD "category" character varying(128)`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "emoji" DROP COLUMN "category"`, undefined); - } - -} diff --git a/migration/1576269851876-TalkFederationId.ts b/migration/1576269851876-TalkFederationId.ts deleted file mode 100644 index 57e86c8b03..0000000000 --- a/migration/1576269851876-TalkFederationId.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class TalkFederationId1576269851876 implements MigrationInterface { - name = 'TalkFederationId1576269851876' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "messaging_message" ADD "uri" character varying(512)`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "messaging_message" DROP COLUMN "uri"`, undefined); - } - -} diff --git a/migration/1576869585998-ProxyRemoteFiles.ts b/migration/1576869585998-ProxyRemoteFiles.ts deleted file mode 100644 index 1d15370bb6..0000000000 --- a/migration/1576869585998-ProxyRemoteFiles.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class ProxyRemoteFiles1576869585998 implements MigrationInterface { - name = 'ProxyRemoteFiles1576869585998' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" ADD "proxyRemoteFiles" boolean NOT NULL DEFAULT false`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "proxyRemoteFiles"`, undefined); - } - -} diff --git a/migration/1579270193251-v12-2.ts b/migration/1579270193251-v12-2.ts deleted file mode 100644 index efad0cd560..0000000000 --- a/migration/1579270193251-v12-2.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class v1221579270193251 implements MigrationInterface { - name = 'v1221579270193251' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "announcement_read" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "announcement_read" DROP COLUMN "createdAt"`, undefined); - } - -} diff --git a/migration/1579282808087-v12-3.ts b/migration/1579282808087-v12-3.ts deleted file mode 100644 index a330caa978..0000000000 --- a/migration/1579282808087-v12-3.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class v1231579282808087 implements MigrationInterface { - name = 'v1231579282808087' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "announcement" ADD "updatedAt" TIMESTAMP WITH TIME ZONE`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "announcement" DROP COLUMN "updatedAt"`, undefined); - } - -} diff --git a/migration/1580154400017-v12-9.ts b/migration/1580154400017-v12-9.ts deleted file mode 100644 index de06d26e49..0000000000 --- a/migration/1580154400017-v12-9.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class v1291580154400017 implements MigrationInterface { - name = 'v1291580154400017' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "antenna" ADD "withReplies" boolean NOT NULL DEFAULT false`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "withReplies"`, undefined); - } - -} diff --git a/migration/1580543501339-v12-13.ts b/migration/1580543501339-v12-13.ts deleted file mode 100644 index 7f5d8b8030..0000000000 --- a/migration/1580543501339-v12-13.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class v12131580543501339 implements MigrationInterface { - name = 'v12131580543501339' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`CREATE INDEX "IDX_NOTE_TAGS" ON "note" USING gin ("tags")`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`DROP INDEX "IDX_NOTE_TAGS"`, undefined); - } - -} diff --git a/migration/1581708415836-drive-user-folder-id-index.ts b/migration/1581708415836-drive-user-folder-id-index.ts deleted file mode 100644 index e7a7628ff0..0000000000 --- a/migration/1581708415836-drive-user-folder-id-index.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class driveUserFolderIdIndex1581708415836 implements MigrationInterface { - name = 'driveUserFolderIdIndex1581708415836' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`CREATE INDEX "IDX_55720b33a61a7c806a8215b825" ON "drive_file" ("userId", "folderId", "id") `, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`DROP INDEX "IDX_55720b33a61a7c806a8215b825"`, undefined); - } - -} diff --git a/migration/1582019042083-featured-injecttion.ts b/migration/1582019042083-featured-injecttion.ts deleted file mode 100644 index 9c84989979..0000000000 --- a/migration/1582019042083-featured-injecttion.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class featuredInjecttion1582019042083 implements MigrationInterface { - name = 'featuredInjecttion1582019042083' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "injectFeaturedNote" boolean NOT NULL DEFAULT true`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "injectFeaturedNote"`, undefined); - } - -} diff --git a/migration/1582210532752-antenna-exclude.ts b/migration/1582210532752-antenna-exclude.ts deleted file mode 100644 index bff47a3ec6..0000000000 --- a/migration/1582210532752-antenna-exclude.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class antennaExclude1582210532752 implements MigrationInterface { - name = 'antennaExclude1582210532752' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "antenna" ADD "excludeKeywords" jsonb NOT NULL DEFAULT '[]'`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "excludeKeywords"`, undefined); - } - -} diff --git a/migration/1582875306439-note-reaction-length.ts b/migration/1582875306439-note-reaction-length.ts deleted file mode 100644 index b9af61eb0e..0000000000 --- a/migration/1582875306439-note-reaction-length.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class noteReactionLength1582875306439 implements MigrationInterface { - name = 'noteReactionLength1582875306439' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(130)`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(128)`, undefined); - } - -} diff --git a/migration/1585772678853-ap-url.ts b/migration/1585772678853-ap-url.ts deleted file mode 100644 index 622d097276..0000000000 --- a/migration/1585772678853-ap-url.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* tslint:disable:quotemark class-name indent */ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class apUrl1585772678853 implements MigrationInterface { - name = 'apUrl1585772678853' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "note" ADD "url" character varying(512)`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "url"`, undefined); - } - -} diff --git a/migration/1586624197029-AddObjectStorageUseProxy.ts b/migration/1586624197029-AddObjectStorageUseProxy.ts deleted file mode 100644 index deadf94834..0000000000 --- a/migration/1586624197029-AddObjectStorageUseProxy.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from 'typeorm'; - -export class AddObjectStorageUseProxy1586624197029 implements MigrationInterface { - name = 'AddObjectStorageUseProxy1586624197029' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageUseProxy" boolean NOT NULL DEFAULT true`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageUseProxy"`, undefined); - } - -} diff --git a/migration/1586641139527-remote-reaction.ts b/migration/1586641139527-remote-reaction.ts deleted file mode 100644 index 5a7fb36e35..0000000000 --- a/migration/1586641139527-remote-reaction.ts +++ /dev/null @@ -1,12 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class remoteReaction1586641139527 implements MigrationInterface { - name = 'remoteReaction1586641139527' - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(260)`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(130)`, undefined); - } -} diff --git a/migration/1586708940386-pageAiScript.ts b/migration/1586708940386-pageAiScript.ts deleted file mode 100644 index fdd6e76b9b..0000000000 --- a/migration/1586708940386-pageAiScript.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class pageAiScript1586708940386 implements MigrationInterface { - name = 'pageAiScript1586708940386' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "page" ADD "script" character varying(16384) NOT NULL DEFAULT ''`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "script"`, undefined); - } - -} diff --git a/migration/1595075960584-blurhash.ts b/migration/1595075960584-blurhash.ts deleted file mode 100644 index 7c716ae172..0000000000 --- a/migration/1595075960584-blurhash.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class blurhash1595075960584 implements MigrationInterface { - name = 'blurhash1595075960584' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "drive_file" ADD "blurhash" character varying(128)`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "blurhash"`); - } - -} diff --git a/migration/1595676934834-instance-icon-url.ts b/migration/1595676934834-instance-icon-url.ts deleted file mode 100644 index c75370f174..0000000000 --- a/migration/1595676934834-instance-icon-url.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class instanceIconUrl1595676934834 implements MigrationInterface { - name = 'instanceIconUrl1595676934834' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "instance" ADD "iconUrl" character varying(256) DEFAULT null`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "iconUrl"`); - } - -} diff --git a/migration/1596786425167-channel2.ts b/migration/1596786425167-channel2.ts deleted file mode 100644 index 0233f7ab0f..0000000000 --- a/migration/1596786425167-channel2.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class channel21596786425167 implements MigrationInterface { - name = 'channel21596786425167' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "channel_following" ADD "readCursor" TIMESTAMP WITH TIME ZONE NOT NULL`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "channel_following" DROP COLUMN "readCursor"`); - } - -} diff --git a/migration/1597230137744-objectStorageSetPublicRead.ts b/migration/1597230137744-objectStorageSetPublicRead.ts deleted file mode 100644 index f040f2afdd..0000000000 --- a/migration/1597230137744-objectStorageSetPublicRead.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class objectStorageSetPublicRead1597230137744 implements MigrationInterface { - name = 'objectStorageSetPublicRead1597230137744' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageSetPublicRead" boolean NOT NULL DEFAULT false`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageSetPublicRead"`); - } - -} diff --git a/migration/1597385880794-add-sensitive-index.ts b/migration/1597385880794-add-sensitive-index.ts deleted file mode 100644 index ff6251ac0a..0000000000 --- a/migration/1597385880794-add-sensitive-index.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class addSensitiveIndex1597385880794 implements MigrationInterface { - name = 'addSensitiveIndex1597385880794' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`CREATE INDEX "IDX_a7eba67f8b3fa27271e85d2e26" ON "drive_file" ("isSensitive") `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`DROP INDEX "IDX_a7eba67f8b3fa27271e85d2e26"`); - } - -} diff --git a/migration/1597893996136-ChannelNoteIdDescIndex.ts b/migration/1597893996136-ChannelNoteIdDescIndex.ts deleted file mode 100644 index 6cbd865fc6..0000000000 --- a/migration/1597893996136-ChannelNoteIdDescIndex.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class ChannelNoteIdDescIndex1597893996136 implements MigrationInterface { - name = 'ChannelNoteIdDescIndex1597893996136' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`DROP INDEX "IDX_f22169eb10657bded6d875ac8f"`); - await queryRunner.query(`CREATE INDEX "IDX_note_on_channelId_and_id_desc" ON "note" ("channelId", "id" desc)`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`DROP INDEX "IDX_note_on_channelId_and_id_desc"`); - await queryRunner.query(`CREATE INDEX "IDX_f22169eb10657bded6d875ac8f" ON "note" ("channelId") `); - } - -} diff --git a/migration/1603776877564-instance-theme-color.ts b/migration/1603776877564-instance-theme-color.ts deleted file mode 100644 index 80c9d516fc..0000000000 --- a/migration/1603776877564-instance-theme-color.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class instanceThemeColor1603776877564 implements MigrationInterface { - name = 'instanceThemeColor1603776877564' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "instance" ADD "themeColor" character varying(64) DEFAULT null`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "themeColor"`); - } - -} diff --git a/migration/1603781553011-instance-favicon.ts b/migration/1603781553011-instance-favicon.ts deleted file mode 100644 index d748c43f5e..0000000000 --- a/migration/1603781553011-instance-favicon.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class instanceFavicon1603781553011 implements MigrationInterface { - name = 'instanceFavicon1603781553011' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "instance" ADD "faviconUrl" character varying(256) DEFAULT null`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "faviconUrl"`); - } - -} diff --git a/migration/1604821689616-delete-auto-watch.ts b/migration/1604821689616-delete-auto-watch.ts deleted file mode 100644 index e47a4cf1db..0000000000 --- a/migration/1604821689616-delete-auto-watch.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class deleteAutoWatch1604821689616 implements MigrationInterface { - name = 'deleteAutoWatch1604821689616' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "autoWatch"`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "autoWatch" boolean NOT NULL DEFAULT false`); - } - -} diff --git a/migration/1605408848373-clip-description.ts b/migration/1605408848373-clip-description.ts deleted file mode 100644 index b352173e4c..0000000000 --- a/migration/1605408848373-clip-description.ts +++ /dev/null @@ -1,15 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class clipDescription1605408848373 implements MigrationInterface { - name = 'clipDescription1605408848373' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "clip" ADD "description" character varying(2048) DEFAULT null`); - } - - public async down(queryRunner: QueryRunner): Promise { - - await queryRunner.query(`ALTER TABLE "clip" DROP COLUMN "description"`); - } - -} diff --git a/migration/1605585339718-instance-pinned-pages.ts b/migration/1605585339718-instance-pinned-pages.ts deleted file mode 100644 index f593461306..0000000000 --- a/migration/1605585339718-instance-pinned-pages.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class instancePinnedPages1605585339718 implements MigrationInterface { - name = 'instancePinnedPages1605585339718' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedPages" character varying(512) array NOT NULL DEFAULT '{"/featured", "/channels", "/explore", "/pages", "/about-misskey"}'::varchar[]`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedPages"`); - } - -} diff --git a/migration/1607151207216-instance-pinned-clip.ts b/migration/1607151207216-instance-pinned-clip.ts deleted file mode 100644 index 7e2c8b7de0..0000000000 --- a/migration/1607151207216-instance-pinned-clip.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class instancePinnedClip1607151207216 implements MigrationInterface { - name = 'instancePinnedClip1607151207216' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedClipId" character varying(32)`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedClipId"`); - } - -} diff --git a/migration/1610283021566-registry3.ts b/migration/1610283021566-registry3.ts deleted file mode 100644 index 61f235fb22..0000000000 --- a/migration/1610283021566-registry3.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class registry31610283021566 implements MigrationInterface { - name = 'registry31610283021566' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "registry_item" ALTER COLUMN "value" DROP NOT NULL`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "registry_item" ALTER COLUMN "value" SET NOT NULL`); - } - -} diff --git a/migration/1611547387175-objectStorageS3ForcePathStyle.ts b/migration/1611547387175-objectStorageS3ForcePathStyle.ts deleted file mode 100644 index 1506a29007..0000000000 --- a/migration/1611547387175-objectStorageS3ForcePathStyle.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class objectStorageS3ForcePathStyle1611547387175 implements MigrationInterface { - name = 'objectStorageS3ForcePathStyle1611547387175' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageS3ForcePathStyle" boolean NOT NULL DEFAULT true`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageS3ForcePathStyle"`); - } - -} diff --git a/migration/1612619156584-announcement-email.ts b/migration/1612619156584-announcement-email.ts deleted file mode 100644 index 0371daf8fa..0000000000 --- a/migration/1612619156584-announcement-email.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class announcementEmail1612619156584 implements MigrationInterface { - name = 'announcementEmail1612619156584' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "receiveAnnouncementEmail" boolean NOT NULL DEFAULT true`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "receiveAnnouncementEmail"`); - } - -} diff --git a/migration/1613155914446-emailNotificationTypes.ts b/migration/1613155914446-emailNotificationTypes.ts deleted file mode 100644 index d6908aecfa..0000000000 --- a/migration/1613155914446-emailNotificationTypes.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class emailNotificationTypes1613155914446 implements MigrationInterface { - name = 'emailNotificationTypes1613155914446' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "emailNotificationTypes" jsonb NOT NULL DEFAULT '["follow","receiveFollowRequest","groupInvited"]'`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "emailNotificationTypes"`); - } - -} diff --git a/migration/1613181457597-user-lang.ts b/migration/1613181457597-user-lang.ts deleted file mode 100644 index ac1fc88c99..0000000000 --- a/migration/1613181457597-user-lang.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class userLang1613181457597 implements MigrationInterface { - name = 'userLang1613181457597' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "lang" character varying(32)`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "lang"`); - } - -} diff --git a/migration/1613503367223-use-bigint-for-driveUsage.ts b/migration/1613503367223-use-bigint-for-driveUsage.ts deleted file mode 100644 index d04e817ec5..0000000000 --- a/migration/1613503367223-use-bigint-for-driveUsage.ts +++ /dev/null @@ -1,15 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class useBigintForDriveUsage1613503367223 implements MigrationInterface { - name = 'useBigintForDriveUsage1613503367223' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "instance" ALTER COLUMN "driveUsage" TYPE bigint`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "driveUsage"`); - await queryRunner.query(`ALTER TABLE "instance" ADD "driveUsage" integer NOT NULL DEFAULT 0`); - } - -} diff --git a/migration/1615965918224-chart-v2.ts b/migration/1615965918224-chart-v2.ts deleted file mode 100644 index cacbd1945b..0000000000 --- a/migration/1615965918224-chart-v2.ts +++ /dev/null @@ -1,218 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class chartV21615965918224 implements MigrationInterface { - name = 'chartV21615965918224' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`DELETE FROM "__chart__active_users" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__drive" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__federation" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__hashtag" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__instance" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__network" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__notes" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__per_user_drive" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__per_user_following" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__per_user_notes" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__per_user_reaction" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__test" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__test_grouped" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__test_unique" WHERE "span" = 'day'`); - await queryRunner.query(`DELETE FROM "__chart__users" WHERE "span" = 'day'`); - - await queryRunner.query(`DROP INDEX "IDX_15e91a03aeeac9dbccdf43fc06"`); - await queryRunner.query(`DROP INDEX "IDX_20f57cc8f142c131340ee16742"`); - await queryRunner.query(`DROP INDEX "IDX_c26e2c1cbb6e911e0554b27416"`); - await queryRunner.query(`DROP INDEX "IDX_3fa0d0f17ca72e3dc80999a032"`); - await queryRunner.query(`DROP INDEX "IDX_6e1df243476e20cbf86572ecc0"`); - await queryRunner.query(`DROP INDEX "IDX_06690fc959f1c9fdaf21928222"`); - await queryRunner.query(`DROP INDEX "IDX_e447064455928cf627590ef527"`); - await queryRunner.query(`DROP INDEX "IDX_2d416e6af791a82e338c79d480"`); - await queryRunner.query(`DROP INDEX "IDX_e9cd07672b37d8966cf3709283"`); - await queryRunner.query(`DROP INDEX "IDX_fcc181fb8283009c61cc4083ef"`); - await queryRunner.query(`DROP INDEX "IDX_49975586f50ed7b800fdd88fbd"`); - await queryRunner.query(`DROP INDEX "IDX_6d6f156ceefc6bc5f273a0e370"`); - await queryRunner.query(`DROP INDEX "IDX_c12f0af4a66cdd30c2287ce8aa"`); - await queryRunner.query(`DROP INDEX "IDX_d0a4f79af5a97b08f37b547197"`); - await queryRunner.query(`DROP INDEX "IDX_f5448d9633cff74208d850aabe"`); - await queryRunner.query(`DROP INDEX "IDX_f8dd01baeded2ffa833e0a610a"`); - await queryRunner.query(`DROP INDEX "IDX_08fac0eb3b11f04c200c0b40dd"`); - await queryRunner.query(`DROP INDEX "IDX_9ff6944f01acb756fdc92d7563"`); - await queryRunner.query(`DROP INDEX "IDX_e69096589f11e3baa98ddd64d0"`); - await queryRunner.query(`DROP INDEX "IDX_0c9a159c5082cbeef3ca6706b5"`); - await queryRunner.query(`DROP INDEX "IDX_924fc196c80ca24bae01dd37e4"`); - await queryRunner.query(`DROP INDEX "IDX_328f259961e60c4fa0bfcf55ca"`); - await queryRunner.query(`DROP INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53"`); - await queryRunner.query(`DROP INDEX "IDX_f2aeafde2ae6fbad38e857631b"`); - await queryRunner.query(`DROP INDEX "IDX_f92dd6d03f8d994f29987f6214"`); - await queryRunner.query(`DROP INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f"`); - await queryRunner.query(`DROP INDEX "IDX_4db3b84c7be0d3464714f3e0b1"`); - await queryRunner.query(`DROP INDEX "IDX_8d2cbbc8114d90d19b44d626b6"`); - await queryRunner.query(`DROP INDEX "IDX_046feeb12e9ef5f783f409866a"`); - await queryRunner.query(`DROP INDEX "IDX_f68a5ab958f9f5fa17a32ac23b"`); - await queryRunner.query(`DROP INDEX "IDX_65633a106bce43fc7c5c30a5c7"`); - await queryRunner.query(`DROP INDEX "IDX_edeb73c09c3143a81bcb34d569"`); - await queryRunner.query(`DROP INDEX "IDX_e316f01a6d24eb31db27f88262"`); - await queryRunner.query(`DROP INDEX "IDX_2be7ec6cebddc14dc11e206686"`); - await queryRunner.query(`DROP INDEX "IDX_a5133470f4825902e170328ca5"`); - await queryRunner.query(`DROP INDEX "IDX_84e661abb7bd1e51b690d4b017"`); - await queryRunner.query(`DROP INDEX "IDX_5c73bf61da4f6e6f15bae88ed1"`); - await queryRunner.query(`DROP INDEX "IDX_d70c86baedc68326be11f9c0ce"`); - await queryRunner.query(`DROP INDEX "IDX_66e1e1ecd2f29e57778af35b59"`); - await queryRunner.query(`DROP INDEX "IDX_92255988735563f0fe4aba1f05"`); - await queryRunner.query(`DROP INDEX "IDX_c5870993e25c3d5771f91f5003"`); - await queryRunner.query(`DROP INDEX "IDX_f170de677ea75ad4533de2723e"`); - await queryRunner.query(`DROP INDEX "IDX_7c184198ecf66a8d3ecb253ab3"`); - await queryRunner.query(`DROP INDEX "IDX_f091abb24193d50c653c6b77fc"`); - await queryRunner.query(`DROP INDEX "IDX_a770a57c70e668cc61590c9161"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__active_users_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___local_count"`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___remote_count"`); - await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__drive_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__federation_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__hashtag_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___local_count"`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___remote_count"`); - await queryRunner.query(`ALTER TABLE "__chart__instance" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__instance_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__instance" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__network" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__network_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__network" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__notes" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__notes_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__notes" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__per_user_drive_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__per_user_following_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__per_user_notes_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__per_user_reaction_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__test_grouped" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__test_grouped_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__test_grouped" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__test_unique" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__test_unique_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__test_unique" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__test_unique" DROP COLUMN "___foo"`); - await queryRunner.query(`ALTER TABLE "__chart__test" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__test_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__test" DROP COLUMN "unique"`); - await queryRunner.query(`ALTER TABLE "__chart__users" DROP COLUMN "span"`); - await queryRunner.query(`DROP TYPE "public"."__chart__users_span_enum"`); - await queryRunner.query(`ALTER TABLE "__chart__users" DROP COLUMN "unique"`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "__chart__users" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__users_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__users" ADD "span" "__chart__users_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__test" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__test_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__test" ADD "span" "__chart__test_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__test_unique" ADD "___foo" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__test_unique" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__test_unique_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__test_unique" ADD "span" "__chart__test_unique_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__test_grouped" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__test_grouped_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__test_grouped" ADD "span" "__chart__test_grouped_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__per_user_reaction_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ADD "span" "__chart__per_user_reaction_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__per_user_notes_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ADD "span" "__chart__per_user_notes_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__per_user_following_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ADD "span" "__chart__per_user_following_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__per_user_drive_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ADD "span" "__chart__per_user_drive_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__notes_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__notes" ADD "span" "__chart__notes_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__network" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__network_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__network" ADD "span" "__chart__network_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__instance_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__instance" ADD "span" "__chart__instance_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___remote_count" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___local_count" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__hashtag_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "span" "__chart__hashtag_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__federation_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "span" "__chart__federation_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__drive_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "span" "__chart__drive_span_enum" NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___remote_count" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___local_count" bigint NOT NULL`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); - await queryRunner.query(`CREATE TYPE "public"."__chart__active_users_span_enum" AS ENUM('hour', 'day')`); - await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "span" "__chart__active_users_span_enum" NOT NULL`); - await queryRunner.query(`CREATE INDEX "IDX_a770a57c70e668cc61590c9161" ON "__chart__users" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_f091abb24193d50c653c6b77fc" ON "__chart__users" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_7c184198ecf66a8d3ecb253ab3" ON "__chart__users" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_f170de677ea75ad4533de2723e" ON "__chart__test" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_c5870993e25c3d5771f91f5003" ON "__chart__test" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_92255988735563f0fe4aba1f05" ON "__chart__test" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_66e1e1ecd2f29e57778af35b59" ON "__chart__test_unique" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_d70c86baedc68326be11f9c0ce" ON "__chart__test_unique" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_5c73bf61da4f6e6f15bae88ed1" ON "__chart__test_unique" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_84e661abb7bd1e51b690d4b017" ON "__chart__test_grouped" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_a5133470f4825902e170328ca5" ON "__chart__test_grouped" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_2be7ec6cebddc14dc11e206686" ON "__chart__test_grouped" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_e316f01a6d24eb31db27f88262" ON "__chart__per_user_reaction" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_edeb73c09c3143a81bcb34d569" ON "__chart__per_user_reaction" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_65633a106bce43fc7c5c30a5c7" ON "__chart__per_user_reaction" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_f68a5ab958f9f5fa17a32ac23b" ON "__chart__per_user_notes" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_046feeb12e9ef5f783f409866a" ON "__chart__per_user_notes" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_8d2cbbc8114d90d19b44d626b6" ON "__chart__per_user_notes" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_4db3b84c7be0d3464714f3e0b1" ON "__chart__per_user_following" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f" ON "__chart__per_user_following" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_f92dd6d03f8d994f29987f6214" ON "__chart__per_user_following" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_f2aeafde2ae6fbad38e857631b" ON "__chart__per_user_drive" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53" ON "__chart__per_user_drive" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_328f259961e60c4fa0bfcf55ca" ON "__chart__per_user_drive" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_924fc196c80ca24bae01dd37e4" ON "__chart__notes" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_0c9a159c5082cbeef3ca6706b5" ON "__chart__notes" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_e69096589f11e3baa98ddd64d0" ON "__chart__notes" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_9ff6944f01acb756fdc92d7563" ON "__chart__network" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_08fac0eb3b11f04c200c0b40dd" ON "__chart__network" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_f8dd01baeded2ffa833e0a610a" ON "__chart__network" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_f5448d9633cff74208d850aabe" ON "__chart__instance" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_d0a4f79af5a97b08f37b547197" ON "__chart__instance" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_c12f0af4a66cdd30c2287ce8aa" ON "__chart__instance" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_6d6f156ceefc6bc5f273a0e370" ON "__chart__hashtag" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_49975586f50ed7b800fdd88fbd" ON "__chart__hashtag" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_fcc181fb8283009c61cc4083ef" ON "__chart__hashtag" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_e9cd07672b37d8966cf3709283" ON "__chart__federation" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_2d416e6af791a82e338c79d480" ON "__chart__federation" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_e447064455928cf627590ef527" ON "__chart__federation" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_06690fc959f1c9fdaf21928222" ON "__chart__drive" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_6e1df243476e20cbf86572ecc0" ON "__chart__drive" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_3fa0d0f17ca72e3dc80999a032" ON "__chart__drive" ("span") `); - await queryRunner.query(`CREATE INDEX "IDX_c26e2c1cbb6e911e0554b27416" ON "__chart__active_users" ("date", "group", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_20f57cc8f142c131340ee16742" ON "__chart__active_users" ("date", "span") `); - await queryRunner.query(`CREATE INDEX "IDX_15e91a03aeeac9dbccdf43fc06" ON "__chart__active_users" ("span") `); - } - -} diff --git a/migration/1618639857000-user-hide-online-status.ts b/migration/1618639857000-user-hide-online-status.ts deleted file mode 100644 index d5d77f9837..0000000000 --- a/migration/1618639857000-user-hide-online-status.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class userHideOnlineStatus1618639857000 implements MigrationInterface { - name = 'userHideOnlineStatus1618639857000' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user" ADD "hideOnlineStatus" boolean NOT NULL DEFAULT false`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "hideOnlineStatus"`); - } - -} diff --git a/migration/1620364649428-ad2.ts b/migration/1620364649428-ad2.ts deleted file mode 100644 index a2d7f563c2..0000000000 --- a/migration/1620364649428-ad2.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class ad21620364649428 implements MigrationInterface { - name = 'ad21620364649428' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "ad" ADD "ratio" integer NOT NULL DEFAULT '1'`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "ad" DROP COLUMN "ratio"`); - } - -} diff --git a/migration/1621479946000-add-note-indexes.ts b/migration/1621479946000-add-note-indexes.ts deleted file mode 100644 index 53d49964a7..0000000000 --- a/migration/1621479946000-add-note-indexes.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class addNoteIndexes1621479946000 implements MigrationInterface { - name = 'addNoteIndexes1621479946000' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`CREATE INDEX "IDX_NOTE_MENTIONS" ON "note" USING gin ("mentions")`, undefined); - await queryRunner.query(`CREATE INDEX "IDX_NOTE_VISIBLE_USER_IDS" ON "note" USING gin ("visibleUserIds")`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`DROP INDEX "IDX_NOTE_MENTIONS"`, undefined); - await queryRunner.query(`DROP INDEX "IDX_NOTE_VISIBLE_USER_IDS"`, undefined); - } - -} diff --git a/migration/1622679304522-user-profile-description-length.ts b/migration/1622679304522-user-profile-description-length.ts deleted file mode 100644 index 015d1e24b7..0000000000 --- a/migration/1622679304522-user-profile-description-length.ts +++ /dev/null @@ -1,13 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class userProfileDescriptionLength1622679304522 implements MigrationInterface { - name = 'userProfileDescriptionLength1622679304522'; - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "description" TYPE character varying(2048)`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "description" TYPE character varying(1024)`, undefined); - } -} diff --git a/migration/1622681548499-log-message-length.ts b/migration/1622681548499-log-message-length.ts deleted file mode 100644 index ef8c33982b..0000000000 --- a/migration/1622681548499-log-message-length.ts +++ /dev/null @@ -1,12 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class logMessageLength1622681548499 implements MigrationInterface { - name = 'logMessageLength1622681548499'; - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "log" ALTER COLUMN "message" TYPE character varying(2048)`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "log" ALTER COLUMN "message" TYPE character varying(1024)`, undefined); - } -} diff --git a/migration/1629024377804-deepl-integration.ts b/migration/1629024377804-deepl-integration.ts deleted file mode 100644 index 639f947c7d..0000000000 --- a/migration/1629024377804-deepl-integration.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class deeplIntegration1629024377804 implements MigrationInterface { - name = 'deeplIntegration1629024377804' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" ADD "deeplAuthKey" character varying(128)`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "deeplAuthKey"`); - } - -} diff --git a/migration/1629288472000-fix-channel-userId.ts b/migration/1629288472000-fix-channel-userId.ts deleted file mode 100644 index cd8f81bb01..0000000000 --- a/migration/1629288472000-fix-channel-userId.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class fixChannelUserId1629288472000 implements MigrationInterface { - name = 'fixChannelUserId1629288472000' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "channel" ALTER COLUMN "userId" DROP NOT NULL;`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "channel" ALTER COLUMN "userId" SET NOT NULL;`); - } - -} diff --git a/migration/1629512953000-user-is-deleted.ts b/migration/1629512953000-user-is-deleted.ts deleted file mode 100644 index 10b7d1d7b7..0000000000 --- a/migration/1629512953000-user-is-deleted.ts +++ /dev/null @@ -1,15 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class isUserDeleted1629512953000 implements MigrationInterface { - name = 'isUserDeleted1629512953000' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user" ADD "isDeleted" boolean NOT NULL DEFAULT false`); - await queryRunner.query(`COMMENT ON COLUMN "user"."isDeleted" IS 'Whether the User is deleted.'`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "isDeleted"`); - } - -} diff --git a/migration/1629778475000-deepl-integration2.ts b/migration/1629778475000-deepl-integration2.ts deleted file mode 100644 index 67e5ea02ae..0000000000 --- a/migration/1629778475000-deepl-integration2.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class deeplIntegration21629778475000 implements MigrationInterface { - name = 'deeplIntegration21629778475000' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" ADD "deeplIsPro" boolean NOT NULL DEFAULT false`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "deeplIsPro"`); - } - -} diff --git a/migration/1633068642000-email-required-for-signup.ts b/migration/1633068642000-email-required-for-signup.ts deleted file mode 100644 index ab7be7a0d1..0000000000 --- a/migration/1633068642000-email-required-for-signup.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class emailRequiredForSignup1633068642000 implements MigrationInterface { - name = 'emailRequiredForSignup1633068642000' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" ADD "emailRequiredForSignup" boolean NOT NULL DEFAULT false`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "emailRequiredForSignup"`); - } - -} diff --git a/migration/1634486652000-user-public-reactions.ts b/migration/1634486652000-user-public-reactions.ts deleted file mode 100644 index da57a13269..0000000000 --- a/migration/1634486652000-user-public-reactions.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class userPublicReactions1634486652000 implements MigrationInterface { - name = 'userPublicReactions1634486652000' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" ADD "publicReactions" boolean NOT NULL DEFAULT false`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "publicReactions"`); - } - -} diff --git a/migration/1634902659689-delete-log.ts b/migration/1634902659689-delete-log.ts deleted file mode 100644 index 5264d585c7..0000000000 --- a/migration/1634902659689-delete-log.ts +++ /dev/null @@ -1,13 +0,0 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class deleteLog1634902659689 implements MigrationInterface { - name = 'deleteLog1634902659689' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`DROP TABLE "log"`); - } - - public async down(queryRunner: QueryRunner): Promise { - } - -} diff --git a/package.json b/package.json index 1b0e43e1c3..66d52e578b 100644 --- a/package.json +++ b/package.json @@ -6,248 +6,41 @@ "type": "git", "url": "https://github.com/misskey-dev/misskey.git" }, - "main": "./index.js", "private": true, "scripts": { - "start": "node --experimental-json-modules ./index.js", - "start:test": "cross-env NODE_ENV=test node --experimental-json-modules ./index.js", + "start": "cd packages/backend && node --experimental-json-modules ./built/index.js", + "start:test": "cd packages/backend && cross-env NODE_ENV=test node --experimental-json-modules ./index.js", "init": "npm run migrate", - "ormconfig": "node ./built/ormconfig.js", - "migrate": "ts-node ./node_modules/typeorm/cli.js migration:run", + "ormconfig": "node ./packages/backend/ormconfig.js", + "migrate": "cd packages/backend && npx typeorm migration:run", "migrateandstart": "npm run migrate && npm run start", - "build": "npm run build-webpack && npm run build-ts && npm run build-gulp", - "build-webpack": "webpack", - "build-ts": "tsc -p src/tsconfig.json || echo done. && tsc-alias -p src/tsconfig.json", + "build": "npm run build-client && npm run build-backend && npm run build-gulp", + "build-client": "cd packages/client && npm run build", + "build-backend": "cd packages/backend && npm run build", "build-gulp": "gulp build", "watch": "concurrently \"npm:watch-*\"", "watch-webpack": "webpack --watch", - "watch-ts": "tsc -w -p src/tsconfig.json && tsc-alias -w -p src/tsconfig.json", + "watch-ts": "tsc -w -p packages/tsconfig.json && tsc-alias -w -p packages/tsconfig.json", "watch-gulp": "gulp watch", "clean": "gulp clean", "cleanall": "gulp cleanall", - "lint": "tslint 'src/**/*.ts'", + "lint": "tslint 'packages/**/*.ts'", "cy:open": "cypress open", "cy:run": "cypress run", "e2e": "start-server-and-test start:test http://localhost:61812 cy:run", - "mocha": "cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=\"./test/tsconfig.json\" mocha", + "mocha": "cd packages/backend && cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=\"./test/tsconfig.json\" mocha", "test": "npm run mocha", "format": "gulp format" }, - "resolutions": { - "chokidar": "^3.3.1", - "lodash": "^4.17.21" - }, "dependencies": { - "@discordapp/twemoji": "13.1.0", - "@elastic/elasticsearch": "7.11.0", - "@koa/cors": "3.1.0", - "@koa/multer": "3.0.0", - "@koa/router": "9.0.1", - "@sentry/browser": "5.29.2", - "@sentry/tracing": "5.29.2", - "@sinonjs/fake-timers": "7.1.2", - "@syuilo/aiscript": "0.11.1", - "@types/bcryptjs": "2.4.2", - "@types/bull": "3.15.5", - "@types/cbor": "6.0.0", - "@types/dateformat": "3.0.1", - "@types/escape-regexp": "0.0.0", - "@types/glob": "7.2.0", "@types/gulp": "4.0.9", "@types/gulp-rename": "2.0.1", - "@types/is-url": "1.2.30", - "@types/js-yaml": "4.0.4", - "@types/jsdom": "16.2.13", - "@types/jsonld": "1.5.6", - "@types/katex": "0.11.1", - "@types/koa": "2.13.4", - "@types/koa-bodyparser": "4.3.3", - "@types/koa-cors": "0.0.2", - "@types/koa-favicon": "2.0.21", - "@types/koa-logger": "3.1.2", - "@types/koa-mount": "4.0.1", - "@types/koa-send": "4.1.3", - "@types/koa-views": "7.0.0", - "@types/koa__cors": "3.0.3", - "@types/koa__multer": "2.0.4", - "@types/koa__router": "8.0.8", - "@types/matter-js": "0.17.6", - "@types/mocha": "8.2.3", - "@types/node": "16.11.7", - "@types/node-fetch": "2.5.12", - "@types/nodemailer": "6.4.4", - "@types/nprogress": "0.2.0", - "@types/oauth": "0.9.1", - "@types/parse5": "6.0.2", - "@types/parsimmon": "1.10.6", - "@types/portscanner": "2.1.1", - "@types/pug": "2.0.5", - "@types/punycode": "2.1.0", - "@types/qrcode": "1.4.1", - "@types/random-seed": "0.3.3", - "@types/ratelimiter": "3.4.2", - "@types/redis": "2.8.32", - "@types/rename": "1.0.4", - "@types/request-stats": "3.0.0", - "@types/rimraf": "3.0.2", - "@types/seedrandom": "2.4.28", - "@types/sharp": "0.29.3", - "@types/sinonjs__fake-timers": "6.0.4", - "@types/speakeasy": "2.0.6", - "@types/throttle-debounce": "2.1.0", - "@types/tinycolor2": "1.4.3", - "@types/tmp": "0.2.2", - "@types/uuid": "8.3.1", - "@types/web-push": "3.3.2", - "@types/webpack": "5.28.0", - "@types/webpack-stream": "3.2.12", - "@types/websocket": "1.0.4", - "@types/ws": "8.2.0", - "@typescript-eslint/parser": "5.1.0", - "@vue/compiler-sfc": "3.2.21", - "abort-controller": "3.0.0", - "autobind-decorator": "2.4.0", - "autosize": "4.0.4", - "autwh": "0.1.0", - "aws-sdk": "2.1013.0", - "bcryptjs": "2.4.3", - "blurhash": "1.1.4", - "broadcast-channel": "4.5.0", - "bull": "4.1.0", - "cacheable-lookup": "6.0.4", - "cafy": "15.2.1", - "cbor": "8.1.0", - "chalk": "4.1.2", - "chart.js": "3.6.0", - "chartjs-adapter-date-fns": "2.0.0", - "chartjs-plugin-zoom": "1.1.1", - "cli-highlight": "2.1.11", - "compare-versions": "3.6.0", - "concurrently": "6.3.0", - "content-disposition": "0.5.3", - "crc-32": "1.2.0", - "css-loader": "6.5.1", - "cssnano": "5.0.10", - "date-fns": "2.25.0", - "dateformat": "4.5.1", - "deep-email-validator": "0.1.18", - "escape-regexp": "0.0.1", - "eslint": "8.2.0", - "eslint-plugin-vue": "8.0.3", - "eventemitter3": "4.0.7", - "feed": "4.2.2", - "file-type": "16.5.3", - "fluent-ffmpeg": "2.1.2", - "glob": "7.2.0", - "got": "11.8.2", "gulp": "4.0.2", "gulp-cssnano": "2.1.3", "gulp-rename": "2.0.0", "gulp-replace": "1.1.3", "gulp-terser": "2.1.0", - "gulp-tslint": "8.1.4", - "hpagent": "0.1.2", - "http-signature": "1.3.5", - "idb-keyval": "5.1.3", - "insert-text-at-cursor": "0.3.0", - "ip-cidr": "3.0.4", - "is-svg": "4.3.1", - "js-yaml": "4.1.0", - "jsdom": "16.7.0", - "json5": "2.2.0", - "json5-loader": "4.0.1", - "jsonld": "5.2.0", - "jsrsasign": "8.0.20", - "katex": "0.13.18", - "koa": "2.13.4", - "koa-bodyparser": "4.3.0", - "koa-favicon": "2.1.0", - "koa-json-body": "5.3.0", - "koa-logger": "3.2.1", - "koa-mount": "4.0.0", - "koa-send": "5.0.1", - "koa-slow": "2.1.0", - "koa-views": "7.0.2", - "langmap": "0.0.16", - "matter-js": "0.17.1", - "mfm-js": "0.20.0", - "misskey-js": "0.0.8", - "mocha": "8.4.0", - "ms": "2.1.3", - "multer": "1.4.3", - "nested-property": "4.0.0", - "node-fetch": "2.6.1", - "nodemailer": "6.7.0", - "os-utils": "0.0.14", - "parse5": "6.0.1", - "pg": "8.7.1", - "photoswipe": "git://github.com/dimsemenov/photoswipe#v5-beta", - "portscanner": "2.2.0", - "postcss": "8.3.11", - "postcss-loader": "6.2.0", - "prismjs": "1.25.0", - "private-ip": "2.3.3", - "probe-image-size": "7.2.1", - "promise-limit": "2.7.0", - "pug": "3.0.2", - "punycode": "2.1.1", - "pureimage": "0.3.5", - "qrcode": "1.4.4", - "random-seed": "0.3.0", - "ratelimiter": "3.4.1", - "re2": "1.16.0", - "redis": "3.1.2", - "redis-lock": "0.1.4", - "reflect-metadata": "0.1.13", - "rename": "1.0.4", - "request-stats": "3.0.0", - "require-all": "3.0.0", - "rimraf": "3.0.2", - "rndstr": "1.0.0", - "s-age": "1.1.2", - "sass": "1.43.4", - "sass-loader": "12.3.0", - "seedrandom": "3.0.5", - "sharp": "0.29.2", - "speakeasy": "2.0.0", - "strict-event-emitter-types": "2.0.0", - "stringz": "2.1.0", - "style-loader": "3.3.1", - "summaly": "2.4.1", - "syslog-pro": "1.0.0", - "systeminformation": "5.9.9", - "syuilo-password-strength": "0.0.1", - "textarea-caret": "3.1.0", - "three": "0.117.1", - "throttle-debounce": "3.0.1", - "tinycolor2": "1.4.2", - "tmp": "0.2.1", - "ts-loader": "9.2.6", - "ts-node": "10.4.0", - "tsc-alias": "1.3.10", - "tsconfig-paths": "3.11.0", - "tslint": "6.1.3", - "tslint-sonarts": "1.9.0", - "twemoji-parser": "13.1.0", - "typeorm": "0.2.39", - "typescript": "4.4.4", - "ulid": "2.3.0", - "uuid": "8.3.2", - "v-debounce": "0.1.2", - "vanilla-tilt": "1.7.2", - "vue": "3.2.21", - "vue-loader": "16.7.0", - "vue-prism-editor": "2.0.0-alpha.2", - "vue-router": "4.0.5", - "vue-style-loader": "4.1.3", - "vue-svg-loader": "0.17.0-beta.2", - "vuedraggable": "4.0.1", - "web-push": "3.4.5", - "webpack": "5.63.0", - "webpack-cli": "4.9.1", - "websocket": "1.0.34", - "ws": "8.2.3", - "xev": "2.0.1" + "gulp-tslint": "8.1.4" }, "devDependencies": { "@redocly/openapi-core": "1.0.0-beta.54", diff --git a/src/.eslintrc b/packages/backend/.eslintrc similarity index 100% rename from src/.eslintrc rename to packages/backend/.eslintrc diff --git a/.mocharc.json b/packages/backend/.mocharc.json similarity index 100% rename from .mocharc.json rename to packages/backend/.mocharc.json diff --git a/packages/backend/.npmrc b/packages/backend/.npmrc new file mode 100644 index 0000000000..6b5f38e890 --- /dev/null +++ b/packages/backend/.npmrc @@ -0,0 +1,2 @@ +save-exact = true +package-lock = false diff --git a/src/@types/hcaptcha.d.ts b/packages/backend/@types/hcaptcha.d.ts similarity index 100% rename from src/@types/hcaptcha.d.ts rename to packages/backend/@types/hcaptcha.d.ts diff --git a/src/@types/http-signature.d.ts b/packages/backend/@types/http-signature.d.ts similarity index 100% rename from src/@types/http-signature.d.ts rename to packages/backend/@types/http-signature.d.ts diff --git a/src/@types/jsrsasign.d.ts b/packages/backend/@types/jsrsasign.d.ts similarity index 100% rename from src/@types/jsrsasign.d.ts rename to packages/backend/@types/jsrsasign.d.ts diff --git a/src/@types/koa-json-body.d.ts b/packages/backend/@types/koa-json-body.d.ts similarity index 100% rename from src/@types/koa-json-body.d.ts rename to packages/backend/@types/koa-json-body.d.ts diff --git a/src/@types/koa-slow.d.ts b/packages/backend/@types/koa-slow.d.ts similarity index 100% rename from src/@types/koa-slow.d.ts rename to packages/backend/@types/koa-slow.d.ts diff --git a/src/@types/langmap.d.ts b/packages/backend/@types/langmap.d.ts similarity index 100% rename from src/@types/langmap.d.ts rename to packages/backend/@types/langmap.d.ts diff --git a/src/@types/ms.d.ts b/packages/backend/@types/ms.d.ts similarity index 100% rename from src/@types/ms.d.ts rename to packages/backend/@types/ms.d.ts diff --git a/src/@types/os-utils.d.ts b/packages/backend/@types/os-utils.d.ts similarity index 100% rename from src/@types/os-utils.d.ts rename to packages/backend/@types/os-utils.d.ts diff --git a/src/@types/package.json.d.ts b/packages/backend/@types/package.json.d.ts similarity index 100% rename from src/@types/package.json.d.ts rename to packages/backend/@types/package.json.d.ts diff --git a/src/@types/probe-image-size.d.ts b/packages/backend/@types/probe-image-size.d.ts similarity index 100% rename from src/@types/probe-image-size.d.ts rename to packages/backend/@types/probe-image-size.d.ts diff --git a/assets/api-doc.png b/packages/backend/assets/api-doc.png similarity index 100% rename from assets/api-doc.png rename to packages/backend/assets/api-doc.png diff --git a/assets/apple-touch-icon.png b/packages/backend/assets/apple-touch-icon.png similarity index 100% rename from assets/apple-touch-icon.png rename to packages/backend/assets/apple-touch-icon.png diff --git a/assets/favicon.ico b/packages/backend/assets/favicon.ico similarity index 100% rename from assets/favicon.ico rename to packages/backend/assets/favicon.ico diff --git a/assets/favicon.png b/packages/backend/assets/favicon.png similarity index 100% rename from assets/favicon.png rename to packages/backend/assets/favicon.png diff --git a/assets/icons/192.png b/packages/backend/assets/icons/192.png similarity index 100% rename from assets/icons/192.png rename to packages/backend/assets/icons/192.png diff --git a/assets/icons/512.png b/packages/backend/assets/icons/512.png similarity index 100% rename from assets/icons/512.png rename to packages/backend/assets/icons/512.png diff --git a/assets/mi-white.png b/packages/backend/assets/mi-white.png similarity index 100% rename from assets/mi-white.png rename to packages/backend/assets/mi-white.png diff --git a/assets/redoc.html b/packages/backend/assets/redoc.html similarity index 100% rename from assets/redoc.html rename to packages/backend/assets/redoc.html diff --git a/assets/robots.txt b/packages/backend/assets/robots.txt similarity index 100% rename from assets/robots.txt rename to packages/backend/assets/robots.txt diff --git a/assets/user-unknown.png b/packages/backend/assets/user-unknown.png similarity index 100% rename from assets/user-unknown.png rename to packages/backend/assets/user-unknown.png diff --git a/migration/1000000000000-Init.ts b/packages/backend/migration/1000000000000-Init.js similarity index 99% rename from migration/1000000000000-Init.ts rename to packages/backend/migration/1000000000000-Init.js index ce54d8a7ef..19b2166003 100644 --- a/migration/1000000000000-Init.ts +++ b/packages/backend/migration/1000000000000-Init.js @@ -1,8 +1,7 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class Init1000000000000 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class Init1000000000000 { + async up(queryRunner) { await queryRunner.query(`CREATE TYPE "log_level_enum" AS ENUM('error', 'warning', 'info', 'success', 'debug')`); await queryRunner.query(`CREATE TABLE "log" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "domain" character varying(64) array NOT NULL DEFAULT '{}'::varchar[], "level" "log_level_enum" NOT NULL, "worker" character varying(8) NOT NULL, "machine" character varying(128) NOT NULL, "message" character varying(1024) NOT NULL, "data" jsonb NOT NULL DEFAULT '{}', CONSTRAINT "PK_350604cbdf991d5930d9e618fbd" PRIMARY KEY ("id"))`); await queryRunner.query(`CREATE INDEX "IDX_8e4eb51a35d81b64dda28eed0a" ON "log" ("createdAt") `); @@ -241,8 +240,7 @@ export class Init1000000000000 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "user_publickey" ADD CONSTRAINT "FK_10c146e4b39b443ede016f6736d" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); await queryRunner.query(`ALTER TABLE "user_profile" ADD CONSTRAINT "FK_51cb79b5555effaf7d69ba1cff9" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "user_profile" DROP CONSTRAINT "FK_51cb79b5555effaf7d69ba1cff9"`); await queryRunner.query(`ALTER TABLE "user_publickey" DROP CONSTRAINT "FK_10c146e4b39b443ede016f6736d"`); await queryRunner.query(`ALTER TABLE "user_keypair" DROP CONSTRAINT "FK_f4853eb41ab722fe05f81cedeb6"`); @@ -481,5 +479,5 @@ export class Init1000000000000 implements MigrationInterface { await queryRunner.query(`DROP TABLE "log"`); await queryRunner.query(`DROP TYPE "log_level_enum"`); } - } +exports.Init1000000000000 = Init1000000000000; diff --git a/migration/1556348509290-Pages.ts b/packages/backend/migration/1556348509290-Pages.js similarity index 91% rename from migration/1556348509290-Pages.ts rename to packages/backend/migration/1556348509290-Pages.js index c44b4b1f79..d69d172587 100644 --- a/migration/1556348509290-Pages.ts +++ b/packages/backend/migration/1556348509290-Pages.js @@ -1,8 +1,7 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class Pages1556348509290 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class Pages1556348509290 { + async up(queryRunner) { await queryRunner.query(`CREATE TYPE "page_visibility_enum" AS ENUM('public', 'followers', 'specified')`); await queryRunner.query(`CREATE TABLE "page" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "title" character varying(256) NOT NULL, "name" character varying(256) NOT NULL, "summary" character varying(256), "alignCenter" boolean NOT NULL, "font" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "eyeCatchingImageId" character varying(32), "content" jsonb NOT NULL DEFAULT '[]', "variables" jsonb NOT NULL DEFAULT '[]', "visibility" "page_visibility_enum" NOT NULL, "visibleUserIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], CONSTRAINT "PK_742f4117e065c5b6ad21b37ba1f" PRIMARY KEY ("id"))`); await queryRunner.query(`CREATE INDEX "IDX_fbb4297c927a9b85e9cefa2eb1" ON "page" ("createdAt") `); @@ -14,8 +13,7 @@ export class Pages1556348509290 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "page" ADD CONSTRAINT "FK_ae1d917992dd0c9d9bbdad06c4a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); await queryRunner.query(`ALTER TABLE "page" ADD CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10" FOREIGN KEY ("eyeCatchingImageId") REFERENCES "drive_file"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "page" DROP CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10"`); await queryRunner.query(`ALTER TABLE "page" DROP CONSTRAINT "FK_ae1d917992dd0c9d9bbdad06c4a"`); await queryRunner.query(`DROP INDEX "IDX_2133ef8317e4bdb839c0dcbf13"`); @@ -27,5 +25,5 @@ export class Pages1556348509290 implements MigrationInterface { await queryRunner.query(`DROP TABLE "page"`); await queryRunner.query(`DROP TYPE "page_visibility_enum"`); } - } +exports.Pages1556348509290 = Pages1556348509290; diff --git a/migration/1556746559567-UserProfile.ts b/packages/backend/migration/1556746559567-UserProfile.js similarity index 70% rename from migration/1556746559567-UserProfile.ts rename to packages/backend/migration/1556746559567-UserProfile.js index 2dc7349cc1..3a082b882d 100644 --- a/migration/1556746559567-UserProfile.ts +++ b/packages/backend/migration/1556746559567-UserProfile.js @@ -1,16 +1,14 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class UserProfile1556746559567 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class UserProfile1556746559567 { + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "githubId" TYPE VARCHAR(64) USING "githubId"::VARCHAR(64)`); await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "discordExpiresDate" TYPE VARCHAR(64) USING "discordExpiresDate"::VARCHAR(64)`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`UPDATE "user_profile" SET github = FALSE, discord = FALSE`); await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "githubId" TYPE INTEGER USING NULL`); await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "discordExpiresDate" TYPE INTEGER USING NULL`); } - } +exports.UserProfile1556746559567 = UserProfile1556746559567; diff --git a/packages/backend/migration/1557476068003-PinnedUsers.js b/packages/backend/migration/1557476068003-PinnedUsers.js new file mode 100644 index 0000000000..c5e7fe748f --- /dev/null +++ b/packages/backend/migration/1557476068003-PinnedUsers.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.PinnedUsers1557476068003 = PinnedUsers1557476068003; diff --git a/migration/1557761316509-AddSomeUrls.ts b/packages/backend/migration/1557761316509-AddSomeUrls.js similarity index 71% rename from migration/1557761316509-AddSomeUrls.ts rename to packages/backend/migration/1557761316509-AddSomeUrls.js index 926999de6c..f6a7b409c2 100644 --- a/migration/1557761316509-AddSomeUrls.ts +++ b/packages/backend/migration/1557761316509-AddSomeUrls.js @@ -1,16 +1,15 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class AddSomeUrls1557761316509 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class AddSomeUrls1557761316509 { + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "meta" ADD "ToSUrl" character varying(512)`); await queryRunner.query(`ALTER TABLE "meta" ADD "repositoryUrl" character varying(512) NOT NULL DEFAULT 'https://github.com/misskey-dev/misskey'`); await queryRunner.query(`ALTER TABLE "meta" ADD "feedbackUrl" character varying(512) DEFAULT 'https://github.com/misskey-dev/misskey/issues/new'`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { 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 "ToSUrl"`); } } +exports.AddSomeUrls1557761316509 = AddSomeUrls1557761316509; diff --git a/migration/1557932705754-ObjectStorageSetting.ts b/packages/backend/migration/1557932705754-ObjectStorageSetting.js similarity index 88% rename from migration/1557932705754-ObjectStorageSetting.ts rename to packages/backend/migration/1557932705754-ObjectStorageSetting.js index dde6aa65f9..d798ac5ca6 100644 --- a/migration/1557932705754-ObjectStorageSetting.ts +++ b/packages/backend/migration/1557932705754-ObjectStorageSetting.js @@ -1,8 +1,7 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class ObjectStorageSetting1557932705754 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class ObjectStorageSetting1557932705754 { + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "meta" ADD "useObjectStorage" boolean NOT NULL DEFAULT false`); await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageBucket" character varying(512)`); await queryRunner.query(`ALTER TABLE "meta" ADD "objectStoragePrefix" character varying(512)`); @@ -14,8 +13,7 @@ export class ObjectStorageSetting1557932705754 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "meta" ADD "objectStoragePort" integer`); await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageUseSSL" boolean NOT NULL DEFAULT true`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageUseSSL"`); await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStoragePort"`); await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageSecretKey"`); @@ -27,5 +25,5 @@ export class ObjectStorageSetting1557932705754 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageBucket"`); await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "useObjectStorage"`); } - } +exports.ObjectStorageSetting1557932705754 = ObjectStorageSetting1557932705754; diff --git a/migration/1558072954435-PageLike.ts b/packages/backend/migration/1558072954435-PageLike.js similarity index 85% rename from migration/1558072954435-PageLike.ts rename to packages/backend/migration/1558072954435-PageLike.js index 93cdb8afeb..7038434971 100644 --- a/migration/1558072954435-PageLike.ts +++ b/packages/backend/migration/1558072954435-PageLike.js @@ -1,8 +1,7 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class PageLike1558072954435 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class PageLike1558072954435 { + async up(queryRunner) { 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"))`); await queryRunner.query(`CREATE INDEX "IDX_0e61efab7f88dbb79c9166dbb4" ON "page_like" ("userId") `); await queryRunner.query(`CREATE UNIQUE INDEX "IDX_4ce6fb9c70529b4c8ac46c9bfa" ON "page_like" ("userId", "pageId") `); @@ -10,8 +9,7 @@ export class PageLike1558072954435 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "page_like" ADD CONSTRAINT "FK_0e61efab7f88dbb79c9166dbb48" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); await queryRunner.query(`ALTER TABLE "page_like" ADD CONSTRAINT "FK_cf8782626dced3176038176a847" FOREIGN KEY ("pageId") REFERENCES "page"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "page_like" DROP CONSTRAINT "FK_cf8782626dced3176038176a847"`); await queryRunner.query(`ALTER TABLE "page_like" DROP CONSTRAINT "FK_0e61efab7f88dbb79c9166dbb48"`); await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "likedCount"`); @@ -19,5 +17,5 @@ export class PageLike1558072954435 implements MigrationInterface { await queryRunner.query(`DROP INDEX "IDX_0e61efab7f88dbb79c9166dbb4"`); await queryRunner.query(`DROP TABLE "page_like"`); } - } +exports.PageLike1558072954435 = PageLike1558072954435; diff --git a/migration/1558103093633-UserGroup.ts b/packages/backend/migration/1558103093633-UserGroup.js similarity index 93% rename from migration/1558103093633-UserGroup.ts rename to packages/backend/migration/1558103093633-UserGroup.js index 04783b8dfa..9c1e511286 100644 --- a/migration/1558103093633-UserGroup.ts +++ b/packages/backend/migration/1558103093633-UserGroup.js @@ -1,8 +1,7 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class UserGroup1558103093633 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class UserGroup1558103093633 { + async up(queryRunner) { 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"))`); await queryRunner.query(`CREATE INDEX "IDX_20e30aa35180e317e133d75316" ON "user_group" ("createdAt") `); await queryRunner.query(`CREATE INDEX "IDX_3d6b372788ab01be58853003c9" ON "user_group" ("userId") `); @@ -19,8 +18,7 @@ export class UserGroup1558103093633 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_f3a1b4bd0c7cabba958a0c0b231" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); await queryRunner.query(`ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_67dc758bc0566985d1b3d399865" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "user_group_joining" DROP CONSTRAINT "FK_67dc758bc0566985d1b3d399865"`); await queryRunner.query(`ALTER TABLE "user_group_joining" DROP CONSTRAINT "FK_f3a1b4bd0c7cabba958a0c0b231"`); await queryRunner.query(`ALTER TABLE "user_group" DROP CONSTRAINT "FK_3d6b372788ab01be58853003c93"`); @@ -37,5 +35,5 @@ export class UserGroup1558103093633 implements MigrationInterface { await queryRunner.query(`DROP INDEX "IDX_20e30aa35180e317e133d75316"`); await queryRunner.query(`DROP TABLE "user_group"`); } - } +exports.UserGroup1558103093633 = UserGroup1558103093633; diff --git a/migration/1558257926829-UserGroupInvite.ts b/packages/backend/migration/1558257926829-UserGroupInvite.js similarity index 87% rename from migration/1558257926829-UserGroupInvite.ts rename to packages/backend/migration/1558257926829-UserGroupInvite.js index a78e479228..e8a575e74f 100644 --- a/migration/1558257926829-UserGroupInvite.ts +++ b/packages/backend/migration/1558257926829-UserGroupInvite.js @@ -1,8 +1,7 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class UserGroupInvite1558257926829 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class UserGroupInvite1558257926829 { + async up(queryRunner) { 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"))`); await queryRunner.query(`CREATE INDEX "IDX_1039988afa3bf991185b277fe0" ON "user_group_invite" ("userId") `); await queryRunner.query(`CREATE INDEX "IDX_e10924607d058004304611a436" ON "user_group_invite" ("userGroupId") `); @@ -11,8 +10,7 @@ export class UserGroupInvite1558257926829 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_1039988afa3bf991185b277fe03" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); await queryRunner.query(`ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_e10924607d058004304611a436a" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "user_group_invite" DROP CONSTRAINT "FK_e10924607d058004304611a436a"`); await queryRunner.query(`ALTER TABLE "user_group_invite" DROP CONSTRAINT "FK_1039988afa3bf991185b277fe03"`); await queryRunner.query(`DROP INDEX "IDX_d9ecaed8c6dc43f3592c229282"`); @@ -21,5 +19,5 @@ export class UserGroupInvite1558257926829 implements MigrationInterface { await queryRunner.query(`DROP INDEX "IDX_1039988afa3bf991185b277fe0"`); await queryRunner.query(`DROP TABLE "user_group_invite"`); } - } +exports.UserGroupInvite1558257926829 = UserGroupInvite1558257926829; diff --git a/packages/backend/migration/1558266512381-UserListJoining.js b/packages/backend/migration/1558266512381-UserListJoining.js new file mode 100644 index 0000000000..b31f7bd3d1 --- /dev/null +++ b/packages/backend/migration/1558266512381-UserListJoining.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.UserListJoining1558266512381 = UserListJoining1558266512381; diff --git a/migration/1561706992953-webauthn.ts b/packages/backend/migration/1561706992953-webauthn.js similarity index 90% rename from migration/1561706992953-webauthn.ts rename to packages/backend/migration/1561706992953-webauthn.js index fc1f0c042f..f05054f553 100644 --- a/migration/1561706992953-webauthn.ts +++ b/packages/backend/migration/1561706992953-webauthn.js @@ -1,8 +1,7 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class webauthn1561706992953 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class webauthn1561706992953 { + async up(queryRunner) { 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"))`); await queryRunner.query(`CREATE INDEX "IDX_f1a461a618fa1755692d0e0d59" ON "attestation_challenge" ("userId") `); await queryRunner.query(`CREATE INDEX "IDX_47efb914aed1f72dd39a306c7b" ON "attestation_challenge" ("challenge") `); @@ -13,8 +12,7 @@ export class webauthn1561706992953 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "attestation_challenge" ADD CONSTRAINT "FK_f1a461a618fa1755692d0e0d592" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); await queryRunner.query(`ALTER TABLE "user_security_key" ADD CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "user_security_key" DROP CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447"`); await queryRunner.query(`ALTER TABLE "attestation_challenge" DROP CONSTRAINT "FK_f1a461a618fa1755692d0e0d592"`); await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "securityKeysAvailable"`); @@ -25,5 +23,5 @@ export class webauthn1561706992953 implements MigrationInterface { await queryRunner.query(`DROP INDEX "IDX_f1a461a618fa1755692d0e0d59"`); await queryRunner.query(`DROP TABLE "attestation_challenge"`); } - } +exports.webauthn1561706992953 = webauthn1561706992953; diff --git a/migration/1561873850023-ChartIndexes.ts b/packages/backend/migration/1561873850023-ChartIndexes.js similarity index 98% rename from migration/1561873850023-ChartIndexes.ts rename to packages/backend/migration/1561873850023-ChartIndexes.js index b870ad3b7d..559cb70cb3 100644 --- a/migration/1561873850023-ChartIndexes.ts +++ b/packages/backend/migration/1561873850023-ChartIndexes.js @@ -1,8 +1,7 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class ChartIndexes1561873850023 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class ChartIndexes1561873850023 { + async up(queryRunner) { await queryRunner.query(`CREATE INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc" ON "__chart__active_users" ("date") `); await queryRunner.query(`CREATE INDEX "IDX_15e91a03aeeac9dbccdf43fc06" ON "__chart__active_users" ("span") `); await queryRunner.query(`CREATE INDEX "IDX_00ed5f86db1f7efafb1978bf21" ON "__chart__active_users" ("group") `); @@ -94,8 +93,7 @@ export class ChartIndexes1561873850023 implements MigrationInterface { await queryRunner.query(`CREATE INDEX "IDX_337e9599f278bd7537fe30876f" ON "__chart__users" ("date", "group") `); await queryRunner.query(`CREATE INDEX "IDX_a770a57c70e668cc61590c9161" ON "__chart__users" ("span", "date", "group") `); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`DROP INDEX "IDX_a770a57c70e668cc61590c9161"`); await queryRunner.query(`DROP INDEX "IDX_337e9599f278bd7537fe30876f"`); await queryRunner.query(`DROP INDEX "IDX_f091abb24193d50c653c6b77fc"`); @@ -197,5 +195,5 @@ export class ChartIndexes1561873850023 implements MigrationInterface { await queryRunner.query(`DROP INDEX "IDX_c5d46cbfda48b1c33ed852e21b"`); await queryRunner.query(`DROP INDEX "IDX_8cb40cfc8f3c28261e6f887b03"`); } - } +exports.ChartIndexes1561873850023 = ChartIndexes1561873850023; diff --git a/packages/backend/migration/1562422242907-PasswordLessLogin.js b/packages/backend/migration/1562422242907-PasswordLessLogin.js new file mode 100644 index 0000000000..bed879ade1 --- /dev/null +++ b/packages/backend/migration/1562422242907-PasswordLessLogin.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.PasswordLessLogin1562422242907 = PasswordLessLogin1562422242907; diff --git a/migration/1562444565093-PinnedPage.ts b/packages/backend/migration/1562444565093-PinnedPage.js similarity index 75% rename from migration/1562444565093-PinnedPage.ts rename to packages/backend/migration/1562444565093-PinnedPage.js index 4bdee22748..f0aac3a4b3 100644 --- a/migration/1562444565093-PinnedPage.ts +++ b/packages/backend/migration/1562444565093-PinnedPage.js @@ -1,17 +1,15 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class PinnedPage1562444565093 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class PinnedPage1562444565093 { + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "user_profile" ADD "pinnedPageId" character varying(32)`); await queryRunner.query(`ALTER TABLE "user_profile" ADD CONSTRAINT "UQ_6dc44f1ceb65b1e72bacef2ca27" UNIQUE ("pinnedPageId")`); await queryRunner.query(`ALTER TABLE "user_profile" ADD CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27" FOREIGN KEY ("pinnedPageId") REFERENCES "page"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "user_profile" DROP CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27"`); await queryRunner.query(`ALTER TABLE "user_profile" DROP CONSTRAINT "UQ_6dc44f1ceb65b1e72bacef2ca27"`); await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "pinnedPageId"`); } - } +exports.PinnedPage1562444565093 = PinnedPage1562444565093; diff --git a/packages/backend/migration/1562448332510-PageTitleHideOption.js b/packages/backend/migration/1562448332510-PageTitleHideOption.js new file mode 100644 index 0000000000..238b742262 --- /dev/null +++ b/packages/backend/migration/1562448332510-PageTitleHideOption.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.PageTitleHideOption1562448332510 = PageTitleHideOption1562448332510; diff --git a/migration/1562869971568-ModerationLog.ts b/packages/backend/migration/1562869971568-ModerationLog.js similarity index 77% rename from migration/1562869971568-ModerationLog.ts rename to packages/backend/migration/1562869971568-ModerationLog.js index b37f38ee5d..c8953c513e 100644 --- a/migration/1562869971568-ModerationLog.ts +++ b/packages/backend/migration/1562869971568-ModerationLog.js @@ -1,17 +1,15 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class ModerationLog1562869971568 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class ModerationLog1562869971568 { + async up(queryRunner) { 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"))`); await queryRunner.query(`CREATE INDEX "IDX_a08ad074601d204e0f69da9a95" ON "moderation_log" ("userId") `); await queryRunner.query(`ALTER TABLE "moderation_log" ADD CONSTRAINT "FK_a08ad074601d204e0f69da9a954" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "moderation_log" DROP CONSTRAINT "FK_a08ad074601d204e0f69da9a954"`); await queryRunner.query(`DROP INDEX "IDX_a08ad074601d204e0f69da9a95"`); await queryRunner.query(`DROP TABLE "moderation_log"`); } - } +exports.ModerationLog1562869971568 = ModerationLog1562869971568; diff --git a/migration/1563757595828-UsedUsername.ts b/packages/backend/migration/1563757595828-UsedUsername.js similarity index 54% rename from migration/1563757595828-UsedUsername.ts rename to packages/backend/migration/1563757595828-UsedUsername.js index a076fcc0c5..0e59fdd45b 100644 --- a/migration/1563757595828-UsedUsername.ts +++ b/packages/backend/migration/1563757595828-UsedUsername.js @@ -1,13 +1,11 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class UsedUsername1563757595828 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class UsedUsername1563757595828 { + async up(queryRunner) { 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"))`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`DROP TABLE "used_username"`); } - } +exports.UsedUsername1563757595828 = UsedUsername1563757595828; diff --git a/packages/backend/migration/1565634203341-room.js b/packages/backend/migration/1565634203341-room.js new file mode 100644 index 0000000000..49ca5ea502 --- /dev/null +++ b/packages/backend/migration/1565634203341-room.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.room1565634203341 = room1565634203341; diff --git a/packages/backend/migration/1571220798684-CustomEmojiCategory.js b/packages/backend/migration/1571220798684-CustomEmojiCategory.js new file mode 100644 index 0000000000..c67c437dec --- /dev/null +++ b/packages/backend/migration/1571220798684-CustomEmojiCategory.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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); + } +} +exports.CustomEmojiCategory1571220798684 = CustomEmojiCategory1571220798684; diff --git a/migration/1572760203493-nodeinfo.ts b/packages/backend/migration/1572760203493-nodeinfo.js similarity index 88% rename from migration/1572760203493-nodeinfo.ts rename to packages/backend/migration/1572760203493-nodeinfo.js index 88d8df7239..a3ca5d7180 100644 --- a/migration/1572760203493-nodeinfo.ts +++ b/packages/backend/migration/1572760203493-nodeinfo.js @@ -1,8 +1,7 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class nodeinfo1572760203493 implements MigrationInterface { - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class nodeinfo1572760203493 { + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "system"`, undefined); await queryRunner.query(`ALTER TABLE "instance" ADD "softwareName" character varying(64) DEFAULT null`, undefined); await queryRunner.query(`ALTER TABLE "instance" ADD "softwareVersion" character varying(64) DEFAULT null`, undefined); @@ -13,8 +12,7 @@ export class nodeinfo1572760203493 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "instance" ADD "maintainerEmail" character varying(256) DEFAULT null`, undefined); await queryRunner.query(`ALTER TABLE "instance" ADD "infoUpdatedAt" TIMESTAMP WITH TIME ZONE`, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "infoUpdatedAt"`, undefined); await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "maintainerEmail"`, undefined); await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "maintainerName"`, undefined); @@ -25,5 +23,5 @@ export class nodeinfo1572760203493 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "softwareName"`, undefined); await queryRunner.query(`ALTER TABLE "instance" ADD "system" character varying(64)`, undefined); } - } +exports.nodeinfo1572760203493 = nodeinfo1572760203493; diff --git a/packages/backend/migration/1576269851876-TalkFederationId.js b/packages/backend/migration/1576269851876-TalkFederationId.js new file mode 100644 index 0000000000..63a8f8a9a3 --- /dev/null +++ b/packages/backend/migration/1576269851876-TalkFederationId.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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); + } +} +exports.TalkFederationId1576269851876 = TalkFederationId1576269851876; diff --git a/packages/backend/migration/1576869585998-ProxyRemoteFiles.js b/packages/backend/migration/1576869585998-ProxyRemoteFiles.js new file mode 100644 index 0000000000..867ae3d6e7 --- /dev/null +++ b/packages/backend/migration/1576869585998-ProxyRemoteFiles.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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); + } +} +exports.ProxyRemoteFiles1576869585998 = ProxyRemoteFiles1576869585998; diff --git a/migration/1579267006611-v12.ts b/packages/backend/migration/1579267006611-v12.js similarity index 91% rename from migration/1579267006611-v12.ts rename to packages/backend/migration/1579267006611-v12.js index 2c15283fa4..ccc5247736 100644 --- a/migration/1579267006611-v12.ts +++ b/packages/backend/migration/1579267006611-v12.js @@ -1,9 +1,10 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class v121579267006611 implements MigrationInterface { - name = 'v121579267006611' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class v121579267006611 { + constructor() { + this.name = 'v121579267006611'; + } + async up(queryRunner) { 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"))`, undefined); await queryRunner.query(`CREATE INDEX "IDX_118ec703e596086fc4515acb39" ON "announcement" ("createdAt") `, undefined); await queryRunner.query(`CREATE TABLE "announcement_read" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "announcementId" character varying(32) NOT NULL, CONSTRAINT "PK_4b90ad1f42681d97b2683890c5e" PRIMARY KEY ("id"))`, undefined); @@ -16,8 +17,7 @@ export class v121579267006611 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "announcement_read" ADD CONSTRAINT "FK_8288151386172b8109f7239ab28" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); await queryRunner.query(`ALTER TABLE "announcement_read" ADD CONSTRAINT "FK_603a7b1e7aa0533c6c88e9bfafe" FOREIGN KEY ("announcementId") REFERENCES "announcement"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "announcement_read" DROP CONSTRAINT "FK_603a7b1e7aa0533c6c88e9bfafe"`, undefined); await queryRunner.query(`ALTER TABLE "announcement_read" DROP CONSTRAINT "FK_8288151386172b8109f7239ab28"`, undefined); await queryRunner.query(`ALTER TABLE "meta" ADD "enableEmojiReaction" boolean NOT NULL DEFAULT true`, undefined); @@ -30,5 +30,5 @@ export class v121579267006611 implements MigrationInterface { await queryRunner.query(`DROP INDEX "IDX_118ec703e596086fc4515acb39"`, undefined); await queryRunner.query(`DROP TABLE "announcement"`, undefined); } - } +exports.v121579267006611 = v121579267006611; diff --git a/packages/backend/migration/1579270193251-v12-2.js b/packages/backend/migration/1579270193251-v12-2.js new file mode 100644 index 0000000000..7f67645aaf --- /dev/null +++ b/packages/backend/migration/1579270193251-v12-2.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class v1221579270193251 { + constructor() { + this.name = 'v1221579270193251'; + } + async up(queryRunner) { + await queryRunner.query(`ALTER TABLE "announcement_read" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`, undefined); + } + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "announcement_read" DROP COLUMN "createdAt"`, undefined); + } +} +exports.v1221579270193251 = v1221579270193251; diff --git a/packages/backend/migration/1579282808087-v12-3.js b/packages/backend/migration/1579282808087-v12-3.js new file mode 100644 index 0000000000..80fa234a54 --- /dev/null +++ b/packages/backend/migration/1579282808087-v12-3.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class v1231579282808087 { + constructor() { + this.name = 'v1231579282808087'; + } + async up(queryRunner) { + await queryRunner.query(`ALTER TABLE "announcement" ADD "updatedAt" TIMESTAMP WITH TIME ZONE`, undefined); + } + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "announcement" DROP COLUMN "updatedAt"`, undefined); + } +} +exports.v1231579282808087 = v1231579282808087; diff --git a/migration/1579544426412-v12-4.ts b/packages/backend/migration/1579544426412-v12-4.js similarity index 67% rename from migration/1579544426412-v12-4.ts rename to packages/backend/migration/1579544426412-v12-4.js index d35b25d045..ef2b804f58 100644 --- a/migration/1579544426412-v12-4.ts +++ b/packages/backend/migration/1579544426412-v12-4.js @@ -1,16 +1,16 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class v1241579544426412 implements MigrationInterface { - name = 'v1241579544426412' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class v1241579544426412 { + constructor() { + this.name = 'v1241579544426412'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "notification" ADD "followRequestId" character varying(32)`, undefined); await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_bd7fab507621e635b32cd31892c" FOREIGN KEY ("followRequestId") REFERENCES "follow_request"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_bd7fab507621e635b32cd31892c"`, undefined); await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "followRequestId"`, undefined); } - } +exports.v1241579544426412 = v1241579544426412; diff --git a/migration/1579977526288-v12-5.ts b/packages/backend/migration/1579977526288-v12-5.js similarity index 95% rename from migration/1579977526288-v12-5.ts rename to packages/backend/migration/1579977526288-v12-5.js index 5f824a676e..1d2ed09664 100644 --- a/migration/1579977526288-v12-5.ts +++ b/packages/backend/migration/1579977526288-v12-5.js @@ -1,9 +1,10 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class v1251579977526288 implements MigrationInterface { - name = 'v1251579977526288' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class v1251579977526288 { + constructor() { + this.name = 'v1251579977526288'; + } + async up(queryRunner) { 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"))`, undefined); await queryRunner.query(`CREATE INDEX "IDX_2b5ec6c574d6802c94c80313fb" ON "clip" ("userId") `, undefined); await queryRunner.query(`CREATE TABLE "clip_note" ("id" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "clipId" character varying(32) NOT NULL, CONSTRAINT "PK_e94cda2f40a99b57e032a1a738b" PRIMARY KEY ("id"))`, undefined); @@ -26,8 +27,7 @@ export class v1251579977526288 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "antenna_note" ADD CONSTRAINT "FK_bd0397be22147e17210940e125b" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); await queryRunner.query(`ALTER TABLE "antenna_note" ADD CONSTRAINT "FK_0d775946662d2575dfd2068a5f5" FOREIGN KEY ("antennaId") REFERENCES "antenna"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "antenna_note" DROP CONSTRAINT "FK_0d775946662d2575dfd2068a5f5"`, undefined); await queryRunner.query(`ALTER TABLE "antenna_note" DROP CONSTRAINT "FK_bd0397be22147e17210940e125b"`, undefined); await queryRunner.query(`ALTER TABLE "antenna" DROP CONSTRAINT "FK_709d7d32053d0dd7620f678eeb9"`, undefined); @@ -50,5 +50,5 @@ export class v1251579977526288 implements MigrationInterface { await queryRunner.query(`DROP INDEX "IDX_2b5ec6c574d6802c94c80313fb"`, undefined); await queryRunner.query(`DROP TABLE "clip"`, undefined); } - } +exports.v1251579977526288 = v1251579977526288; diff --git a/migration/1579993013959-v12-6.ts b/packages/backend/migration/1579993013959-v12-6.js similarity index 69% rename from migration/1579993013959-v12-6.ts rename to packages/backend/migration/1579993013959-v12-6.js index 4fa4623c3e..e6c3a40a34 100644 --- a/migration/1579993013959-v12-6.ts +++ b/packages/backend/migration/1579993013959-v12-6.js @@ -1,18 +1,18 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class v1261579993013959 implements MigrationInterface { - name = 'v1261579993013959' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class v1261579993013959 { + constructor() { + this.name = 'v1261579993013959'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "hasNewNote"`, undefined); await queryRunner.query(`ALTER TABLE "antenna_note" ADD "read" boolean NOT NULL DEFAULT false`, undefined); await queryRunner.query(`CREATE INDEX "IDX_9937ea48d7ae97ffb4f3f063a4" ON "antenna_note" ("read") `, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`DROP INDEX "IDX_9937ea48d7ae97ffb4f3f063a4"`, undefined); await queryRunner.query(`ALTER TABLE "antenna_note" DROP COLUMN "read"`, undefined); await queryRunner.query(`ALTER TABLE "antenna" ADD "hasNewNote" boolean NOT NULL DEFAULT false`, undefined); } - } +exports.v1261579993013959 = v1261579993013959; diff --git a/migration/1580069531114-v12-7.ts b/packages/backend/migration/1580069531114-v12-7.js similarity index 83% rename from migration/1580069531114-v12-7.ts rename to packages/backend/migration/1580069531114-v12-7.js index 227e7cceb6..7915603b8f 100644 --- a/migration/1580069531114-v12-7.ts +++ b/packages/backend/migration/1580069531114-v12-7.js @@ -1,9 +1,10 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class v1271580069531114 implements MigrationInterface { - name = 'v1271580069531114' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class v1271580069531114 { + constructor() { + this.name = 'v1271580069531114'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "antenna" ADD "users" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[]`, undefined); await queryRunner.query(`ALTER TABLE "antenna" ADD "caseSensitive" boolean NOT NULL DEFAULT false`, undefined); await queryRunner.query(`ALTER TYPE "public"."antenna_src_enum" RENAME TO "antenna_src_enum_old"`, undefined); @@ -11,8 +12,7 @@ export class v1271580069531114 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum" USING "src"::"text"::"antenna_src_enum"`, undefined); await queryRunner.query(`DROP TYPE "antenna_src_enum_old"`, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`CREATE TYPE "antenna_src_enum_old" AS ENUM('home', 'all', 'list')`, undefined); await queryRunner.query(`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum_old" USING "src"::"text"::"antenna_src_enum_old"`, undefined); await queryRunner.query(`DROP TYPE "antenna_src_enum"`, undefined); @@ -20,5 +20,5 @@ export class v1271580069531114 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "caseSensitive"`, undefined); await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "users"`, undefined); } - } +exports.v1271580069531114 = v1271580069531114; diff --git a/migration/1580148575182-v12-8.ts b/packages/backend/migration/1580148575182-v12-8.js similarity index 64% rename from migration/1580148575182-v12-8.ts rename to packages/backend/migration/1580148575182-v12-8.js index c63bdb4eb4..43fbc70e4b 100644 --- a/migration/1580148575182-v12-8.ts +++ b/packages/backend/migration/1580148575182-v12-8.js @@ -1,16 +1,16 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class v1281580148575182 implements MigrationInterface { - name = 'v1281580148575182' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class v1281580148575182 { + constructor() { + this.name = 'v1281580148575182'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_ec5c201576192ba8904c345c5cc"`, undefined); await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "appId"`, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "note" ADD "appId" character varying(32)`, undefined); await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_ec5c201576192ba8904c345c5cc" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE SET NULL ON UPDATE NO ACTION`, undefined); } - } +exports.v1281580148575182 = v1281580148575182; diff --git a/packages/backend/migration/1580154400017-v12-9.js b/packages/backend/migration/1580154400017-v12-9.js new file mode 100644 index 0000000000..f47611868f --- /dev/null +++ b/packages/backend/migration/1580154400017-v12-9.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class v1291580154400017 { + constructor() { + this.name = 'v1291580154400017'; + } + async up(queryRunner) { + await queryRunner.query(`ALTER TABLE "antenna" ADD "withReplies" boolean NOT NULL DEFAULT false`, undefined); + } + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "withReplies"`, undefined); + } +} +exports.v1291580154400017 = v1291580154400017; diff --git a/migration/1580276619901-v12-10.ts b/packages/backend/migration/1580276619901-v12-10.js similarity index 67% rename from migration/1580276619901-v12-10.ts rename to packages/backend/migration/1580276619901-v12-10.js index f48f42b4ac..301d0ceb91 100644 --- a/migration/1580276619901-v12-10.ts +++ b/packages/backend/migration/1580276619901-v12-10.js @@ -1,19 +1,19 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class v12101580276619901 implements MigrationInterface { - name = 'v12101580276619901' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`TRUNCATE TABLE "notification"`, undefined); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class v12101580276619901 { + constructor() { + this.name = 'v12101580276619901'; + } + async up(queryRunner) { + await queryRunner.query(`TRUNCATE TABLE "notification"`, undefined); await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "type"`, undefined); await queryRunner.query(`CREATE TYPE "notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted')`, undefined); await queryRunner.query(`ALTER TABLE "notification" ADD "type" "notification_type_enum" NOT NULL`, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "type"`, undefined); await queryRunner.query(`DROP TYPE "notification_type_enum"`, undefined); await queryRunner.query(`ALTER TABLE "notification" ADD "type" character varying(32) NOT NULL`, undefined); } - } +exports.v12101580276619901 = v12101580276619901; diff --git a/migration/1580331224276-v12-11.ts b/packages/backend/migration/1580331224276-v12-11.js similarity index 70% rename from migration/1580331224276-v12-11.ts rename to packages/backend/migration/1580331224276-v12-11.js index 30794b80e3..fb5124baa5 100644 --- a/migration/1580331224276-v12-11.ts +++ b/packages/backend/migration/1580331224276-v12-11.js @@ -1,18 +1,18 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class v12111580331224276 implements MigrationInterface { - name = 'v12111580331224276' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class v12111580331224276 { + constructor() { + this.name = 'v12111580331224276'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "isMarkedAsClosed"`, undefined); await queryRunner.query(`ALTER TABLE "instance" ADD "isSuspended" boolean NOT NULL DEFAULT false`, undefined); await queryRunner.query(`CREATE INDEX "IDX_34500da2e38ac393f7bb6b299c" ON "instance" ("isSuspended") `, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`DROP INDEX "IDX_34500da2e38ac393f7bb6b299c"`, undefined); await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "isSuspended"`, undefined); await queryRunner.query(`ALTER TABLE "instance" ADD "isMarkedAsClosed" boolean NOT NULL DEFAULT false`, undefined); } - } +exports.v12111580331224276 = v12111580331224276; diff --git a/migration/1580508795118-v12-12.ts b/packages/backend/migration/1580508795118-v12-12.js similarity index 93% rename from migration/1580508795118-v12-12.ts rename to packages/backend/migration/1580508795118-v12-12.js index 99791b051b..eb70ba3cef 100644 --- a/migration/1580508795118-v12-12.ts +++ b/packages/backend/migration/1580508795118-v12-12.js @@ -1,9 +1,10 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class v12121580508795118 implements MigrationInterface { - name = 'v12121580508795118' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class v12121580508795118 { + constructor() { + this.name = 'v12121580508795118'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitter"`, undefined); await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitterAccessToken"`, undefined); await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitterAccessTokenSecret"`, undefined); @@ -22,8 +23,7 @@ export class v12121580508795118 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordDiscriminator"`, undefined); await queryRunner.query(`ALTER TABLE "user_profile" ADD "integrations" jsonb NOT NULL DEFAULT '{}'`, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "integrations"`, undefined); await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordDiscriminator" character varying(64) DEFAULT NULL`, undefined); await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordUsername" character varying(64) DEFAULT NULL`, undefined); @@ -42,5 +42,5 @@ export class v12121580508795118 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitterAccessToken" character varying(64) DEFAULT NULL`, undefined); await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitter" boolean NOT NULL DEFAULT false`, undefined); } - } +exports.v12121580508795118 = v12121580508795118; diff --git a/packages/backend/migration/1580543501339-v12-13.js b/packages/backend/migration/1580543501339-v12-13.js new file mode 100644 index 0000000000..7dae7178b1 --- /dev/null +++ b/packages/backend/migration/1580543501339-v12-13.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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); + } +} +exports.v12131580543501339 = v12131580543501339; diff --git a/migration/1580864313253-v12-14.ts b/packages/backend/migration/1580864313253-v12-14.js similarity index 77% rename from migration/1580864313253-v12-14.ts rename to packages/backend/migration/1580864313253-v12-14.js index 7bf38e5c65..b1939c51b5 100644 --- a/migration/1580864313253-v12-14.ts +++ b/packages/backend/migration/1580864313253-v12-14.js @@ -1,20 +1,20 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class v12141580864313253 implements MigrationInterface { - name = 'v12141580864313253' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class v12141580864313253 { + constructor() { + this.name = 'v12141580864313253'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "meta" RENAME COLUMN "proxyAccount" TO "proxyAccountId"`, undefined); await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "proxyAccountId"`, undefined); await queryRunner.query(`ALTER TABLE "meta" ADD "proxyAccountId" character varying(32)`, undefined); await queryRunner.query(`ALTER TABLE "meta" ADD CONSTRAINT "FK_ab1bc0c1e209daa77b8e8d212ad" FOREIGN KEY ("proxyAccountId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "meta" DROP CONSTRAINT "FK_ab1bc0c1e209daa77b8e8d212ad"`, undefined); await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "proxyAccountId"`, undefined); await queryRunner.query(`ALTER TABLE "meta" ADD "proxyAccountId" character varying(128)`, undefined); await queryRunner.query(`ALTER TABLE "meta" RENAME COLUMN "proxyAccountId" TO "proxyAccount"`, undefined); } - } +exports.v12141580864313253 = v12141580864313253; diff --git a/migration/1581526429287-user-group-invitation.ts b/packages/backend/migration/1581526429287-user-group-invitation.js similarity index 91% rename from migration/1581526429287-user-group-invitation.ts rename to packages/backend/migration/1581526429287-user-group-invitation.js index 26ea54e0b8..80946c94ac 100644 --- a/migration/1581526429287-user-group-invitation.ts +++ b/packages/backend/migration/1581526429287-user-group-invitation.js @@ -1,9 +1,10 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class userGroupInvitation1581526429287 implements MigrationInterface { - name = 'userGroupInvitation1581526429287' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class userGroupInvitation1581526429287 { + constructor() { + this.name = 'userGroupInvitation1581526429287'; + } + async up(queryRunner) { await queryRunner.query(`CREATE TABLE "user_group_invitation" ("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_160c63ec02bf23f6a5c5e8140d6" PRIMARY KEY ("id"))`, undefined); await queryRunner.query(`CREATE INDEX "IDX_bfbc6305547539369fe73eb144" ON "user_group_invitation" ("userId") `, undefined); await queryRunner.query(`CREATE INDEX "IDX_5cc8c468090e129857e9fecce5" ON "user_group_invitation" ("userGroupId") `, undefined); @@ -18,8 +19,7 @@ export class userGroupInvitation1581526429287 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "user_group_invitation" ADD CONSTRAINT "FK_5cc8c468090e129857e9fecce5a" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_8fe87814e978053a53b1beb7e98" FOREIGN KEY ("userGroupInvitationId") REFERENCES "user_group_invitation"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_8fe87814e978053a53b1beb7e98"`, undefined); await queryRunner.query(`ALTER TABLE "user_group_invitation" DROP CONSTRAINT "FK_5cc8c468090e129857e9fecce5a"`, undefined); await queryRunner.query(`ALTER TABLE "user_group_invitation" DROP CONSTRAINT "FK_bfbc6305547539369fe73eb144a"`, undefined); @@ -34,5 +34,5 @@ export class userGroupInvitation1581526429287 implements MigrationInterface { await queryRunner.query(`DROP INDEX "IDX_bfbc6305547539369fe73eb144"`, undefined); await queryRunner.query(`DROP TABLE "user_group_invitation"`, undefined); } - } +exports.userGroupInvitation1581526429287 = userGroupInvitation1581526429287; diff --git a/migration/1581695816408-user-group-antenna.ts b/packages/backend/migration/1581695816408-user-group-antenna.js similarity index 85% rename from migration/1581695816408-user-group-antenna.ts rename to packages/backend/migration/1581695816408-user-group-antenna.js index 15eb2fe11b..307b5b0579 100644 --- a/migration/1581695816408-user-group-antenna.ts +++ b/packages/backend/migration/1581695816408-user-group-antenna.js @@ -1,9 +1,10 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class userGroupAntenna1581695816408 implements MigrationInterface { - name = 'userGroupAntenna1581695816408' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class userGroupAntenna1581695816408 { + constructor() { + this.name = 'userGroupAntenna1581695816408'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "antenna" ADD "userGroupJoiningId" character varying(32)`, undefined); await queryRunner.query(`ALTER TYPE "public"."antenna_src_enum" RENAME TO "antenna_src_enum_old"`, undefined); await queryRunner.query(`CREATE TYPE "antenna_src_enum" AS ENUM('home', 'all', 'users', 'list', 'group')`, undefined); @@ -13,8 +14,7 @@ export class userGroupAntenna1581695816408 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "antenna" ADD "users" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[]`, undefined); await queryRunner.query(`ALTER TABLE "antenna" ADD CONSTRAINT "FK_ccbf5a8c0be4511133dcc50ddeb" FOREIGN KEY ("userGroupJoiningId") REFERENCES "user_group_joining"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "antenna" DROP CONSTRAINT "FK_ccbf5a8c0be4511133dcc50ddeb"`, undefined); await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "users"`, undefined); await queryRunner.query(`ALTER TABLE "antenna" ADD "users" character varying array NOT NULL DEFAULT '{}'`, undefined); @@ -24,5 +24,5 @@ export class userGroupAntenna1581695816408 implements MigrationInterface { await queryRunner.query(`ALTER TYPE "antenna_src_enum_old" RENAME TO "antenna_src_enum"`, undefined); await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "userGroupJoiningId"`, undefined); } - } +exports.userGroupAntenna1581695816408 = userGroupAntenna1581695816408; diff --git a/packages/backend/migration/1581708415836-drive-user-folder-id-index.js b/packages/backend/migration/1581708415836-drive-user-folder-id-index.js new file mode 100644 index 0000000000..8029ef1399 --- /dev/null +++ b/packages/backend/migration/1581708415836-drive-user-folder-id-index.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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); + } +} +exports.driveUserFolderIdIndex1581708415836 = driveUserFolderIdIndex1581708415836; diff --git a/migration/1581979837262-promo.ts b/packages/backend/migration/1581979837262-promo.js similarity index 89% rename from migration/1581979837262-promo.ts rename to packages/backend/migration/1581979837262-promo.js index 2c4f25c4d7..d2c5bac17d 100644 --- a/migration/1581979837262-promo.ts +++ b/packages/backend/migration/1581979837262-promo.js @@ -1,9 +1,10 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class promo1581979837262 implements MigrationInterface { - name = 'promo1581979837262' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class promo1581979837262 { + constructor() { + this.name = 'promo1581979837262'; + } + async up(queryRunner) { await queryRunner.query(`CREATE TABLE "promo_note" ("noteId" character varying(32) NOT NULL, "expiresAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, CONSTRAINT "REL_e263909ca4fe5d57f8d4230dd5" UNIQUE ("noteId"), CONSTRAINT "PK_e263909ca4fe5d57f8d4230dd5c" PRIMARY KEY ("noteId"))`, undefined); await queryRunner.query(`CREATE INDEX "IDX_83f0862e9bae44af52ced7099e" ON "promo_note" ("userId") `, undefined); await queryRunner.query(`CREATE TABLE "promo_read" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_61917c1541002422b703318b7c9" PRIMARY KEY ("id"))`, undefined); @@ -13,8 +14,7 @@ export class promo1581979837262 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "promo_read" ADD CONSTRAINT "FK_9657d55550c3d37bfafaf7d4b05" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); await queryRunner.query(`ALTER TABLE "promo_read" ADD CONSTRAINT "FK_a46a1a603ecee695d7db26da5f4" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "promo_read" DROP CONSTRAINT "FK_a46a1a603ecee695d7db26da5f4"`, undefined); await queryRunner.query(`ALTER TABLE "promo_read" DROP CONSTRAINT "FK_9657d55550c3d37bfafaf7d4b05"`, undefined); await queryRunner.query(`ALTER TABLE "promo_note" DROP CONSTRAINT "FK_e263909ca4fe5d57f8d4230dd5c"`, undefined); @@ -24,5 +24,5 @@ export class promo1581979837262 implements MigrationInterface { await queryRunner.query(`DROP INDEX "IDX_83f0862e9bae44af52ced7099e"`, undefined); await queryRunner.query(`DROP TABLE "promo_note"`, undefined); } - } +exports.promo1581979837262 = promo1581979837262; diff --git a/packages/backend/migration/1582019042083-featured-injecttion.js b/packages/backend/migration/1582019042083-featured-injecttion.js new file mode 100644 index 0000000000..9779e2a08f --- /dev/null +++ b/packages/backend/migration/1582019042083-featured-injecttion.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class featuredInjecttion1582019042083 { + constructor() { + this.name = 'featuredInjecttion1582019042083'; + } + async up(queryRunner) { + await queryRunner.query(`ALTER TABLE "user_profile" ADD "injectFeaturedNote" boolean NOT NULL DEFAULT true`, undefined); + } + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "injectFeaturedNote"`, undefined); + } +} +exports.featuredInjecttion1582019042083 = featuredInjecttion1582019042083; diff --git a/packages/backend/migration/1582210532752-antenna-exclude.js b/packages/backend/migration/1582210532752-antenna-exclude.js new file mode 100644 index 0000000000..cc095b4b59 --- /dev/null +++ b/packages/backend/migration/1582210532752-antenna-exclude.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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); + } +} +exports.antennaExclude1582210532752 = antennaExclude1582210532752; diff --git a/packages/backend/migration/1582875306439-note-reaction-length.js b/packages/backend/migration/1582875306439-note-reaction-length.js new file mode 100644 index 0000000000..bdee1ef14f --- /dev/null +++ b/packages/backend/migration/1582875306439-note-reaction-length.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class noteReactionLength1582875306439 { + constructor() { + this.name = 'noteReactionLength1582875306439'; + } + async up(queryRunner) { + await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(130)`, undefined); + } + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(128)`, undefined); + } +} +exports.noteReactionLength1582875306439 = noteReactionLength1582875306439; diff --git a/migration/1585361548360-miauth.ts b/packages/backend/migration/1585361548360-miauth.js similarity index 91% rename from migration/1585361548360-miauth.ts rename to packages/backend/migration/1585361548360-miauth.js index 22d6c207ff..c1a695dd27 100644 --- a/migration/1585361548360-miauth.ts +++ b/packages/backend/migration/1585361548360-miauth.js @@ -1,9 +1,10 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class miauth1585361548360 implements MigrationInterface { - name = 'miauth1585361548360' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class miauth1585361548360 { + constructor() { + this.name = 'miauth1585361548360'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "access_token" ADD "lastUsedAt" TIMESTAMP WITH TIME ZONE DEFAULT null`, undefined); await queryRunner.query(`ALTER TABLE "access_token" ADD "session" character varying(128) DEFAULT null`, undefined); await queryRunner.query(`ALTER TABLE "access_token" ADD "name" character varying(128) DEFAULT null`, undefined); @@ -17,8 +18,7 @@ export class miauth1585361548360 implements MigrationInterface { await queryRunner.query(`CREATE INDEX "IDX_bf3a053c07d9fb5d87317c56ee" ON "access_token" ("session") `, undefined); await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560"`, undefined); await queryRunner.query(`DROP INDEX "IDX_bf3a053c07d9fb5d87317c56ee"`, undefined); await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" DROP DEFAULT`, undefined); @@ -32,5 +32,5 @@ export class miauth1585361548360 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "session"`, undefined); await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "lastUsedAt"`, undefined); } - } +exports.miauth1585361548360 = miauth1585361548360; diff --git a/migration/1585385921215-custom-notification.ts b/packages/backend/migration/1585385921215-custom-notification.js similarity index 93% rename from migration/1585385921215-custom-notification.ts rename to packages/backend/migration/1585385921215-custom-notification.js index 24c29d53e5..7f94c741a5 100644 --- a/migration/1585385921215-custom-notification.ts +++ b/packages/backend/migration/1585385921215-custom-notification.js @@ -1,9 +1,10 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class customNotification1585385921215 implements MigrationInterface { - name = 'customNotification1585385921215' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class customNotification1585385921215 { + constructor() { + this.name = 'customNotification1585385921215'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "notification" ADD "customBody" character varying(2048)`, undefined); await queryRunner.query(`ALTER TABLE "notification" ADD "customHeader" character varying(256)`, undefined); await queryRunner.query(`ALTER TABLE "notification" ADD "customIcon" character varying(1024)`, undefined); @@ -23,8 +24,7 @@ export class customNotification1585385921215 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_e22bf6bda77b6adc1fd9e75c8c9" FOREIGN KEY ("appAccessTokenId") REFERENCES "access_token"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_e22bf6bda77b6adc1fd9e75c8c9"`, undefined); await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710"`, undefined); await queryRunner.query(`DROP INDEX "IDX_e22bf6bda77b6adc1fd9e75c8c"`, undefined); @@ -44,5 +44,5 @@ export class customNotification1585385921215 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customHeader"`, undefined); await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customBody"`, undefined); } - } +exports.customNotification1585385921215 = customNotification1585385921215; diff --git a/packages/backend/migration/1585772678853-ap-url.js b/packages/backend/migration/1585772678853-ap-url.js new file mode 100644 index 0000000000..f7c1f87b80 --- /dev/null +++ b/packages/backend/migration/1585772678853-ap-url.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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); + } +} +exports.apUrl1585772678853 = apUrl1585772678853; diff --git a/packages/backend/migration/1586624197029-AddObjectStorageUseProxy.js b/packages/backend/migration/1586624197029-AddObjectStorageUseProxy.js new file mode 100644 index 0000000000..9fcef0c90d --- /dev/null +++ b/packages/backend/migration/1586624197029-AddObjectStorageUseProxy.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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); + } +} +exports.AddObjectStorageUseProxy1586624197029 = AddObjectStorageUseProxy1586624197029; diff --git a/packages/backend/migration/1586641139527-remote-reaction.js b/packages/backend/migration/1586641139527-remote-reaction.js new file mode 100644 index 0000000000..a9d362474b --- /dev/null +++ b/packages/backend/migration/1586641139527-remote-reaction.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class remoteReaction1586641139527 { + constructor() { + this.name = 'remoteReaction1586641139527'; + } + async up(queryRunner) { + await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(260)`, undefined); + } + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(130)`, undefined); + } +} +exports.remoteReaction1586641139527 = remoteReaction1586641139527; diff --git a/packages/backend/migration/1586708940386-pageAiScript.js b/packages/backend/migration/1586708940386-pageAiScript.js new file mode 100644 index 0000000000..089ff6e27a --- /dev/null +++ b/packages/backend/migration/1586708940386-pageAiScript.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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); + } +} +exports.pageAiScript1586708940386 = pageAiScript1586708940386; diff --git a/migration/1588044505511-hCaptcha.ts b/packages/backend/migration/1588044505511-hCaptcha.js similarity index 68% rename from migration/1588044505511-hCaptcha.ts rename to packages/backend/migration/1588044505511-hCaptcha.js index a3f4e93670..9b2524afba 100644 --- a/migration/1588044505511-hCaptcha.ts +++ b/packages/backend/migration/1588044505511-hCaptcha.js @@ -1,18 +1,18 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class hCaptcha1588044505511 implements MigrationInterface { - name = 'hCaptcha1588044505511' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class hCaptcha1588044505511 { + constructor() { + this.name = 'hCaptcha1588044505511'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "meta" ADD "enableHcaptcha" boolean NOT NULL DEFAULT false`, undefined); await queryRunner.query(`ALTER TABLE "meta" ADD "hcaptchaSiteKey" character varying(64)`, undefined); await queryRunner.query(`ALTER TABLE "meta" ADD "hcaptchaSecretKey" character varying(64)`, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "hcaptchaSecretKey"`, undefined); await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "hcaptchaSiteKey"`, undefined); await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableHcaptcha"`, undefined); } - } +exports.hCaptcha1588044505511 = hCaptcha1588044505511; diff --git a/migration/1589023282116-pubRelay.ts b/packages/backend/migration/1589023282116-pubRelay.js similarity index 71% rename from migration/1589023282116-pubRelay.ts rename to packages/backend/migration/1589023282116-pubRelay.js index 3b9d359915..f03384a51a 100644 --- a/migration/1589023282116-pubRelay.ts +++ b/packages/backend/migration/1589023282116-pubRelay.js @@ -1,18 +1,18 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class pubRelay1589023282116 implements MigrationInterface { - name = 'pubRelay1589023282116' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class pubRelay1589023282116 { + constructor() { + this.name = 'pubRelay1589023282116'; + } + async up(queryRunner) { await queryRunner.query(`CREATE TYPE "relay_status_enum" AS ENUM('requesting', 'accepted', 'rejected')`, undefined); await queryRunner.query(`CREATE TABLE "relay" ("id" character varying(32) NOT NULL, "inbox" character varying(512) NOT NULL, "status" "relay_status_enum" NOT NULL, CONSTRAINT "PK_78ebc9cfddf4292633b7ba57aee" PRIMARY KEY ("id"))`, undefined); await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0d9a1738f2cf7f3b1c3334dfab" ON "relay" ("inbox") `, undefined); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`DROP INDEX "IDX_0d9a1738f2cf7f3b1c3334dfab"`, undefined); await queryRunner.query(`DROP TABLE "relay"`, undefined); await queryRunner.query(`DROP TYPE "relay_status_enum"`, undefined); } - } +exports.pubRelay1589023282116 = pubRelay1589023282116; diff --git a/packages/backend/migration/1595075960584-blurhash.js b/packages/backend/migration/1595075960584-blurhash.js new file mode 100644 index 0000000000..3bd9c46f13 --- /dev/null +++ b/packages/backend/migration/1595075960584-blurhash.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.blurhash1595075960584 = blurhash1595075960584; diff --git a/migration/1595077605646-blurhash-for-avatar-banner.ts b/packages/backend/migration/1595077605646-blurhash-for-avatar-banner.js similarity index 67% rename from migration/1595077605646-blurhash-for-avatar-banner.ts rename to packages/backend/migration/1595077605646-blurhash-for-avatar-banner.js index fcf161c350..c2a9c97561 100644 --- a/migration/1595077605646-blurhash-for-avatar-banner.ts +++ b/packages/backend/migration/1595077605646-blurhash-for-avatar-banner.js @@ -1,20 +1,20 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class blurhashForAvatarBanner1595077605646 implements MigrationInterface { - name = 'blurhashForAvatarBanner1595077605646' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class blurhashForAvatarBanner1595077605646 { + constructor() { + this.name = 'blurhashForAvatarBanner1595077605646'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "avatarColor"`); await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "bannerColor"`); await queryRunner.query(`ALTER TABLE "user" ADD "avatarBlurhash" character varying(128)`); await queryRunner.query(`ALTER TABLE "user" ADD "bannerBlurhash" character varying(128)`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "bannerBlurhash"`); await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "avatarBlurhash"`); await queryRunner.query(`ALTER TABLE "user" ADD "bannerColor" character varying(32)`); await queryRunner.query(`ALTER TABLE "user" ADD "avatarColor" character varying(32)`); } - } +exports.blurhashForAvatarBanner1595077605646 = blurhashForAvatarBanner1595077605646; diff --git a/packages/backend/migration/1595676934834-instance-icon-url.js b/packages/backend/migration/1595676934834-instance-icon-url.js new file mode 100644 index 0000000000..21ae26c55d --- /dev/null +++ b/packages/backend/migration/1595676934834-instance-icon-url.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.instanceIconUrl1595676934834 = instanceIconUrl1595676934834; diff --git a/migration/1595771249699-word-mute.ts b/packages/backend/migration/1595771249699-word-mute.js similarity index 87% rename from migration/1595771249699-word-mute.ts rename to packages/backend/migration/1595771249699-word-mute.js index 1a9114d921..0dd3a55565 100644 --- a/migration/1595771249699-word-mute.ts +++ b/packages/backend/migration/1595771249699-word-mute.js @@ -1,9 +1,10 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class wordMute1595771249699 implements MigrationInterface { - name = 'wordMute1595771249699' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class wordMute1595771249699 { + constructor() { + this.name = 'wordMute1595771249699'; + } + async up(queryRunner) { await queryRunner.query(`CREATE TABLE "muted_note" ("id" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, CONSTRAINT "PK_897e2eff1c0b9b64e55ca1418a4" PRIMARY KEY ("id"))`); await queryRunner.query(`CREATE INDEX "IDX_70ab9786313d78e4201d81cdb8" ON "muted_note" ("noteId") `); await queryRunner.query(`CREATE INDEX "IDX_d8e07aa18c2d64e86201601aec" ON "muted_note" ("userId") `); @@ -14,8 +15,7 @@ export class wordMute1595771249699 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "muted_note" ADD CONSTRAINT "FK_70ab9786313d78e4201d81cdb89" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); await queryRunner.query(`ALTER TABLE "muted_note" ADD CONSTRAINT "FK_d8e07aa18c2d64e86201601aec1" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "muted_note" DROP CONSTRAINT "FK_d8e07aa18c2d64e86201601aec1"`); await queryRunner.query(`ALTER TABLE "muted_note" DROP CONSTRAINT "FK_70ab9786313d78e4201d81cdb89"`); await queryRunner.query(`DROP INDEX "IDX_3befe6f999c86aff06eb0257b4"`); @@ -26,5 +26,5 @@ export class wordMute1595771249699 implements MigrationInterface { await queryRunner.query(`DROP INDEX "IDX_70ab9786313d78e4201d81cdb8"`); await queryRunner.query(`DROP TABLE "muted_note"`); } - } +exports.wordMute1595771249699 = wordMute1595771249699; diff --git a/migration/1595782306083-word-mute2.ts b/packages/backend/migration/1595782306083-word-mute2.js similarity index 66% rename from migration/1595782306083-word-mute2.ts rename to packages/backend/migration/1595782306083-word-mute2.js index d68c12740e..29c707e952 100644 --- a/migration/1595782306083-word-mute2.ts +++ b/packages/backend/migration/1595782306083-word-mute2.js @@ -1,18 +1,18 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class wordMute21595782306083 implements MigrationInterface { - name = 'wordMute21595782306083' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class wordMute21595782306083 { + constructor() { + this.name = 'wordMute21595782306083'; + } + async up(queryRunner) { await queryRunner.query(`CREATE TYPE "muted_note_reason_enum" AS ENUM('word', 'manual', 'spam', 'other')`); await queryRunner.query(`ALTER TABLE "muted_note" ADD "reason" "muted_note_reason_enum" NOT NULL`); await queryRunner.query(`CREATE INDEX "IDX_636e977ff90b23676fb5624b25" ON "muted_note" ("reason") `); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`DROP INDEX "IDX_636e977ff90b23676fb5624b25"`); await queryRunner.query(`ALTER TABLE "muted_note" DROP COLUMN "reason"`); await queryRunner.query(`DROP TYPE "muted_note_reason_enum"`); } - } +exports.wordMute21595782306083 = wordMute21595782306083; diff --git a/migration/1596548170836-channel.ts b/packages/backend/migration/1596548170836-channel.js similarity index 95% rename from migration/1596548170836-channel.ts rename to packages/backend/migration/1596548170836-channel.js index 4e3ebb330a..bce812d5e3 100644 --- a/migration/1596548170836-channel.ts +++ b/packages/backend/migration/1596548170836-channel.js @@ -1,9 +1,10 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class channel1596548170836 implements MigrationInterface { - name = 'channel1596548170836' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class channel1596548170836 { + constructor() { + this.name = 'channel1596548170836'; + } + async up(queryRunner) { await queryRunner.query(`CREATE TABLE "channel" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "lastNotedAt" TIMESTAMP WITH TIME ZONE, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "description" character varying(2048), "bannerId" character varying(32), "notesCount" integer NOT NULL DEFAULT 0, "usersCount" integer NOT NULL DEFAULT 0, CONSTRAINT "PK_590f33ee6ee7d76437acf362e39" PRIMARY KEY ("id"))`); await queryRunner.query(`CREATE INDEX "IDX_71cb7b435b7c0d4843317e7e16" ON "channel" ("createdAt") `); await queryRunner.query(`CREATE INDEX "IDX_29ef80c6f13bcea998447fce43" ON "channel" ("lastNotedAt") `); @@ -28,8 +29,7 @@ export class channel1596548170836 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "channel_note_pining" ADD CONSTRAINT "FK_8125f950afd3093acb10d2db8a8" FOREIGN KEY ("channelId") REFERENCES "channel"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); await queryRunner.query(`ALTER TABLE "channel_note_pining" ADD CONSTRAINT "FK_10b19ef67d297ea9de325cd4502" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "channel_note_pining" DROP CONSTRAINT "FK_10b19ef67d297ea9de325cd4502"`); await queryRunner.query(`ALTER TABLE "channel_note_pining" DROP CONSTRAINT "FK_8125f950afd3093acb10d2db8a8"`); await queryRunner.query(`ALTER TABLE "channel_following" DROP CONSTRAINT "FK_6d8084ec9496e7334a4602707e1"`); @@ -54,5 +54,5 @@ export class channel1596548170836 implements MigrationInterface { await queryRunner.query(`DROP INDEX "IDX_71cb7b435b7c0d4843317e7e16"`); await queryRunner.query(`DROP TABLE "channel"`); } - } +exports.channel1596548170836 = channel1596548170836; diff --git a/packages/backend/migration/1596786425167-channel2.js b/packages/backend/migration/1596786425167-channel2.js new file mode 100644 index 0000000000..160c73b06c --- /dev/null +++ b/packages/backend/migration/1596786425167-channel2.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.channel21596786425167 = channel21596786425167; diff --git a/packages/backend/migration/1597230137744-objectStorageSetPublicRead.js b/packages/backend/migration/1597230137744-objectStorageSetPublicRead.js new file mode 100644 index 0000000000..d208c425ec --- /dev/null +++ b/packages/backend/migration/1597230137744-objectStorageSetPublicRead.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.objectStorageSetPublicRead1597230137744 = objectStorageSetPublicRead1597230137744; diff --git a/migration/1597236229720-IncludingNotificationTypes.ts b/packages/backend/migration/1597236229720-IncludingNotificationTypes.js similarity index 62% rename from migration/1597236229720-IncludingNotificationTypes.ts rename to packages/backend/migration/1597236229720-IncludingNotificationTypes.js index be57824c0b..0efbf2fe5a 100644 --- a/migration/1597236229720-IncludingNotificationTypes.ts +++ b/packages/backend/migration/1597236229720-IncludingNotificationTypes.js @@ -1,16 +1,16 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class IncludingNotificationTypes1597236229720 implements MigrationInterface { - name = 'IncludingNotificationTypes1597236229720' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class IncludingNotificationTypes1597236229720 { + constructor() { + this.name = 'IncludingNotificationTypes1597236229720'; + } + async up(queryRunner) { await queryRunner.query(`CREATE TYPE "user_profile_includingnotificationtypes_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`); await queryRunner.query(`ALTER TABLE "user_profile" ADD "includingNotificationTypes" "user_profile_includingnotificationtypes_enum" array`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "includingNotificationTypes"`); await queryRunner.query(`DROP TYPE "user_profile_includingnotificationtypes_enum"`); } - } +exports.IncludingNotificationTypes1597236229720 = IncludingNotificationTypes1597236229720; diff --git a/packages/backend/migration/1597385880794-add-sensitive-index.js b/packages/backend/migration/1597385880794-add-sensitive-index.js new file mode 100644 index 0000000000..69fd394b03 --- /dev/null +++ b/packages/backend/migration/1597385880794-add-sensitive-index.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.addSensitiveIndex1597385880794 = addSensitiveIndex1597385880794; diff --git a/migration/1597459042300-channel-unread.ts b/packages/backend/migration/1597459042300-channel-unread.js similarity index 78% rename from migration/1597459042300-channel-unread.ts rename to packages/backend/migration/1597459042300-channel-unread.js index a0f862114d..629aa6009d 100644 --- a/migration/1597459042300-channel-unread.ts +++ b/packages/backend/migration/1597459042300-channel-unread.js @@ -1,10 +1,11 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class channelUnread1597459042300 implements MigrationInterface { - name = 'channelUnread1597459042300' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`TRUNCATE TABLE "note_unread"`, undefined); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class channelUnread1597459042300 { + constructor() { + this.name = 'channelUnread1597459042300'; + } + async up(queryRunner) { + await queryRunner.query(`TRUNCATE TABLE "note_unread"`, undefined); await queryRunner.query(`ALTER TABLE "channel_following" DROP COLUMN "readCursor"`); await queryRunner.query(`ALTER TABLE "note_unread" ADD "isMentioned" boolean NOT NULL`); await queryRunner.query(`ALTER TABLE "note_unread" ADD "noteChannelId" character varying(32)`); @@ -13,8 +14,7 @@ export class channelUnread1597459042300 implements MigrationInterface { await queryRunner.query(`CREATE INDEX "IDX_29e8c1d579af54d4232939f994" ON "note_unread" ("noteUserId") `); await queryRunner.query(`CREATE INDEX "IDX_6a57f051d82c6d4036c141e107" ON "note_unread" ("noteChannelId") `); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`DROP INDEX "IDX_6a57f051d82c6d4036c141e107"`); await queryRunner.query(`DROP INDEX "IDX_29e8c1d579af54d4232939f994"`); await queryRunner.query(`DROP INDEX "IDX_89a29c9237b8c3b6b3cbb4cb30"`); @@ -23,5 +23,5 @@ export class channelUnread1597459042300 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "note_unread" DROP COLUMN "isMentioned"`); await queryRunner.query(`ALTER TABLE "channel_following" ADD "readCursor" TIMESTAMP WITH TIME ZONE NOT NULL`); } - } +exports.channelUnread1597459042300 = channelUnread1597459042300; diff --git a/packages/backend/migration/1597893996136-ChannelNoteIdDescIndex.js b/packages/backend/migration/1597893996136-ChannelNoteIdDescIndex.js new file mode 100644 index 0000000000..770ac1887e --- /dev/null +++ b/packages/backend/migration/1597893996136-ChannelNoteIdDescIndex.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class ChannelNoteIdDescIndex1597893996136 { + constructor() { + this.name = 'ChannelNoteIdDescIndex1597893996136'; + } + async up(queryRunner) { + await queryRunner.query(`DROP INDEX "IDX_f22169eb10657bded6d875ac8f"`); + await queryRunner.query(`CREATE INDEX "IDX_note_on_channelId_and_id_desc" ON "note" ("channelId", "id" desc)`); + } + async down(queryRunner) { + await queryRunner.query(`DROP INDEX "IDX_note_on_channelId_and_id_desc"`); + await queryRunner.query(`CREATE INDEX "IDX_f22169eb10657bded6d875ac8f" ON "note" ("channelId") `); + } +} +exports.ChannelNoteIdDescIndex1597893996136 = ChannelNoteIdDescIndex1597893996136; diff --git a/migration/1600353287890-mutingNotificationTypes.ts b/packages/backend/migration/1600353287890-mutingNotificationTypes.js similarity index 77% rename from migration/1600353287890-mutingNotificationTypes.ts rename to packages/backend/migration/1600353287890-mutingNotificationTypes.js index 914bad8e3f..d39a6f2e44 100644 --- a/migration/1600353287890-mutingNotificationTypes.ts +++ b/packages/backend/migration/1600353287890-mutingNotificationTypes.js @@ -1,20 +1,20 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class mutingNotificationTypes1600353287890 implements MigrationInterface { - name = 'mutingNotificationTypes1600353287890' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class mutingNotificationTypes1600353287890 { + constructor() { + this.name = 'mutingNotificationTypes1600353287890'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "includingNotificationTypes"`); await queryRunner.query(`DROP TYPE "public"."user_profile_includingnotificationtypes_enum"`); await queryRunner.query(`CREATE TYPE "user_profile_mutingnotificationtypes_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`); await queryRunner.query(`ALTER TABLE "user_profile" ADD "mutingNotificationTypes" "user_profile_mutingnotificationtypes_enum" array NOT NULL DEFAULT '{}'`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "mutingNotificationTypes"`); await queryRunner.query(`DROP TYPE "user_profile_mutingnotificationtypes_enum"`); await queryRunner.query(`CREATE TYPE "public"."user_profile_includingnotificationtypes_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`); await queryRunner.query(`ALTER TABLE "user_profile" ADD "includingNotificationTypes" "user_profile_includingnotificationtypes_enum" array`); } - } +exports.mutingNotificationTypes1600353287890 = mutingNotificationTypes1600353287890; diff --git a/migration/1603094348345-refine-abuse-user-report.ts b/packages/backend/migration/1603094348345-refine-abuse-user-report.js similarity index 87% rename from migration/1603094348345-refine-abuse-user-report.ts rename to packages/backend/migration/1603094348345-refine-abuse-user-report.js index ce74a88d48..b01a5d80aa 100644 --- a/migration/1603094348345-refine-abuse-user-report.ts +++ b/packages/backend/migration/1603094348345-refine-abuse-user-report.js @@ -1,9 +1,10 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class refineAbuseUserReport1603094348345 implements MigrationInterface { - name = 'refineAbuseUserReport1603094348345' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class refineAbuseUserReport1603094348345 { + constructor() { + this.name = 'refineAbuseUserReport1603094348345'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_d049123c413e68ca52abe734203"`); await queryRunner.query(`DROP INDEX "IDX_d049123c413e68ca52abe73420"`); await queryRunner.query(`DROP INDEX "IDX_5cd442c3b2e74fdd99dae20243"`); @@ -15,8 +16,7 @@ export class refineAbuseUserReport1603094348345 implements MigrationInterface { await queryRunner.query(`CREATE INDEX "IDX_2b15aaf4a0dc5be3499af7ab6a" ON "abuse_user_report" ("resolved") `); await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_08b883dd5fdd6f9c4c1572b36de" FOREIGN KEY ("assigneeId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_08b883dd5fdd6f9c4c1572b36de"`); await queryRunner.query(`DROP INDEX "IDX_2b15aaf4a0dc5be3499af7ab6a"`); await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "comment"`); @@ -28,5 +28,5 @@ export class refineAbuseUserReport1603094348345 implements MigrationInterface { await queryRunner.query(`CREATE INDEX "IDX_d049123c413e68ca52abe73420" ON "abuse_user_report" ("userId") `); await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_d049123c413e68ca52abe734203" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); } - } +exports.refineAbuseUserReport1603094348345 = refineAbuseUserReport1603094348345; diff --git a/migration/1603095701770-refine-abuse-user-report2.ts b/packages/backend/migration/1603095701770-refine-abuse-user-report2.js similarity index 70% rename from migration/1603095701770-refine-abuse-user-report2.ts rename to packages/backend/migration/1603095701770-refine-abuse-user-report2.js index 18e0c05ac2..32b4e0bd21 100644 --- a/migration/1603095701770-refine-abuse-user-report2.ts +++ b/packages/backend/migration/1603095701770-refine-abuse-user-report2.js @@ -1,20 +1,20 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class refineAbuseUserReport21603095701770 implements MigrationInterface { - name = 'refineAbuseUserReport21603095701770' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class refineAbuseUserReport21603095701770 { + constructor() { + this.name = 'refineAbuseUserReport21603095701770'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "targetUserHost" character varying(128)`); await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "reporterHost" character varying(128)`); await queryRunner.query(`CREATE INDEX "IDX_4ebbf7f93cdc10e8d1ef2fc6cd" ON "abuse_user_report" ("targetUserHost") `); await queryRunner.query(`CREATE INDEX "IDX_f8d8b93740ad12c4ce8213a199" ON "abuse_user_report" ("reporterHost") `); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`DROP INDEX "IDX_f8d8b93740ad12c4ce8213a199"`); await queryRunner.query(`DROP INDEX "IDX_4ebbf7f93cdc10e8d1ef2fc6cd"`); await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "reporterHost"`); await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "targetUserHost"`); } - } +exports.refineAbuseUserReport21603095701770 = refineAbuseUserReport21603095701770; diff --git a/packages/backend/migration/1603776877564-instance-theme-color.js b/packages/backend/migration/1603776877564-instance-theme-color.js new file mode 100644 index 0000000000..315305f531 --- /dev/null +++ b/packages/backend/migration/1603776877564-instance-theme-color.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.instanceThemeColor1603776877564 = instanceThemeColor1603776877564; diff --git a/packages/backend/migration/1603781553011-instance-favicon.js b/packages/backend/migration/1603781553011-instance-favicon.js new file mode 100644 index 0000000000..451989f91d --- /dev/null +++ b/packages/backend/migration/1603781553011-instance-favicon.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.instanceFavicon1603781553011 = instanceFavicon1603781553011; diff --git a/packages/backend/migration/1604821689616-delete-auto-watch.js b/packages/backend/migration/1604821689616-delete-auto-watch.js new file mode 100644 index 0000000000..9d972dd3f5 --- /dev/null +++ b/packages/backend/migration/1604821689616-delete-auto-watch.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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`); + } +} +exports.deleteAutoWatch1604821689616 = deleteAutoWatch1604821689616; diff --git a/packages/backend/migration/1605408848373-clip-description.js b/packages/backend/migration/1605408848373-clip-description.js new file mode 100644 index 0000000000..acbe2b0c8d --- /dev/null +++ b/packages/backend/migration/1605408848373-clip-description.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.clipDescription1605408848373 = clipDescription1605408848373; diff --git a/migration/1605408971051-comments.ts b/packages/backend/migration/1605408971051-comments.js similarity index 99% rename from migration/1605408971051-comments.ts rename to packages/backend/migration/1605408971051-comments.js index c69ae29a9b..6e5dacbb64 100644 --- a/migration/1605408971051-comments.ts +++ b/packages/backend/migration/1605408971051-comments.js @@ -1,9 +1,10 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class comments1605408971051 implements MigrationInterface { - name = 'comments1605408971051' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class comments1605408971051 { + constructor() { + this.name = 'comments1605408971051'; + } + async up(queryRunner) { await queryRunner.query(`COMMENT ON COLUMN "log"."createdAt" IS 'The created date of the Log.'`); await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."createdAt" IS 'The created date of the DriveFolder.'`); await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."name" IS 'The name of the DriveFolder.'`); @@ -216,8 +217,7 @@ export class comments1605408971051 implements MigrationInterface { await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followerId" IS 'The follower user ID.'`); await queryRunner.query(`COMMENT ON COLUMN "channel_note_pining"."createdAt" IS 'The created date of the ChannelNotePining.'`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`COMMENT ON COLUMN "channel_note_pining"."createdAt" IS NULL`); await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followerId" IS NULL`); await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followeeId" IS NULL`); @@ -430,5 +430,5 @@ export class comments1605408971051 implements MigrationInterface { await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."createdAt" IS NULL`); await queryRunner.query(`COMMENT ON COLUMN "log"."createdAt" IS NULL`); } - } +exports.comments1605408971051 = comments1605408971051; diff --git a/packages/backend/migration/1605585339718-instance-pinned-pages.js b/packages/backend/migration/1605585339718-instance-pinned-pages.js new file mode 100644 index 0000000000..8d23572762 --- /dev/null +++ b/packages/backend/migration/1605585339718-instance-pinned-pages.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class instancePinnedPages1605585339718 { + constructor() { + this.name = 'instancePinnedPages1605585339718'; + } + async up(queryRunner) { + await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedPages" character varying(512) array NOT NULL DEFAULT '{"/featured", "/channels", "/explore", "/pages", "/about-misskey"}'::varchar[]`); + } + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedPages"`); + } +} +exports.instancePinnedPages1605585339718 = instancePinnedPages1605585339718; diff --git a/migration/1605965516823-instance-images.ts b/packages/backend/migration/1605965516823-instance-images.js similarity index 54% rename from migration/1605965516823-instance-images.ts rename to packages/backend/migration/1605965516823-instance-images.js index bf8d408563..f078428bad 100644 --- a/migration/1605965516823-instance-images.ts +++ b/packages/backend/migration/1605965516823-instance-images.js @@ -1,16 +1,16 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class instanceImages1605965516823 implements MigrationInterface { - name = 'instanceImages1605965516823' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class instanceImages1605965516823 { + constructor() { + this.name = 'instanceImages1605965516823'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "meta" ADD "backgroundImageUrl" character varying(512)`); await queryRunner.query(`ALTER TABLE "meta" ADD "logoImageUrl" character varying(512)`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "logoImageUrl"`); await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "backgroundImageUrl"`); } - } +exports.instanceImages1605965516823 = instanceImages1605965516823; diff --git a/migration/1606191203881-no-crawle.ts b/packages/backend/migration/1606191203881-no-crawle.js similarity index 60% rename from migration/1606191203881-no-crawle.ts rename to packages/backend/migration/1606191203881-no-crawle.js index accc8f8fe2..2c5fdaed21 100644 --- a/migration/1606191203881-no-crawle.ts +++ b/packages/backend/migration/1606191203881-no-crawle.js @@ -1,16 +1,16 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class noCrawle1606191203881 implements MigrationInterface { - name = 'noCrawle1606191203881' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class noCrawle1606191203881 { + constructor() { + this.name = 'noCrawle1606191203881'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "user_profile" ADD "noCrawle" boolean NOT NULL DEFAULT false`); await queryRunner.query(`COMMENT ON COLUMN "user_profile"."noCrawle" IS 'Whether reject index by crawler.'`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`COMMENT ON COLUMN "user_profile"."noCrawle" IS 'Whether reject index by crawler.'`); await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "noCrawle"`); } - } +exports.noCrawle1606191203881 = noCrawle1606191203881; diff --git a/packages/backend/migration/1607151207216-instance-pinned-clip.js b/packages/backend/migration/1607151207216-instance-pinned-clip.js new file mode 100644 index 0000000000..3bd4792964 --- /dev/null +++ b/packages/backend/migration/1607151207216-instance-pinned-clip.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.instancePinnedClip1607151207216 = instancePinnedClip1607151207216; diff --git a/migration/1607353487793-isExplorable.ts b/packages/backend/migration/1607353487793-isExplorable.js similarity index 66% rename from migration/1607353487793-isExplorable.ts rename to packages/backend/migration/1607353487793-isExplorable.js index 034f8c3845..3ddd0cb32f 100644 --- a/migration/1607353487793-isExplorable.ts +++ b/packages/backend/migration/1607353487793-isExplorable.js @@ -1,18 +1,18 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class isExplorable1607353487793 implements MigrationInterface { - name = 'isExplorable1607353487793' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class isExplorable1607353487793 { + constructor() { + this.name = 'isExplorable1607353487793'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "user" ADD "isExplorable" boolean NOT NULL DEFAULT true`); await queryRunner.query(`COMMENT ON COLUMN "user"."isExplorable" IS 'Whether the User is explorable.'`); await queryRunner.query(`CREATE INDEX "IDX_d5a1b83c7cab66f167e6888188" ON "user" ("isExplorable") `); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`DROP INDEX "IDX_d5a1b83c7cab66f167e6888188"`); await queryRunner.query(`COMMENT ON COLUMN "user"."isExplorable" IS 'Whether the User is explorable.'`); await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "isExplorable"`); } - } +exports.isExplorable1607353487793 = isExplorable1607353487793; diff --git a/migration/1610277136869-registry.ts b/packages/backend/migration/1610277136869-registry.js similarity index 85% rename from migration/1610277136869-registry.ts rename to packages/backend/migration/1610277136869-registry.js index 46c8113c16..a7b5af84b6 100644 --- a/migration/1610277136869-registry.ts +++ b/packages/backend/migration/1610277136869-registry.js @@ -1,22 +1,22 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class registry1610277136869 implements MigrationInterface { - name = 'registry1610277136869' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class registry1610277136869 { + constructor() { + this.name = 'registry1610277136869'; + } + async up(queryRunner) { await queryRunner.query(`CREATE TABLE "registry_item" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "key" character varying(1024) NOT NULL, "scope" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[], "domain" character varying(512), CONSTRAINT "PK_64b3f7e6008b4d89b826cd3af95" PRIMARY KEY ("id")); COMMENT ON COLUMN "registry_item"."createdAt" IS 'The created date of the RegistryItem.'; COMMENT ON COLUMN "registry_item"."updatedAt" IS 'The updated date of the RegistryItem.'; COMMENT ON COLUMN "registry_item"."userId" IS 'The owner ID.'; COMMENT ON COLUMN "registry_item"."key" IS 'The key of the RegistryItem.'`); await queryRunner.query(`CREATE INDEX "IDX_fb9d21ba0abb83223263df6bcb" ON "registry_item" ("userId") `); await queryRunner.query(`CREATE INDEX "IDX_22baca135bb8a3ea1a83d13df3" ON "registry_item" ("scope") `); await queryRunner.query(`CREATE INDEX "IDX_0a72bdfcdb97c0eca11fe7ecad" ON "registry_item" ("domain") `); await queryRunner.query(`ALTER TABLE "registry_item" ADD CONSTRAINT "FK_fb9d21ba0abb83223263df6bcb3" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "registry_item" DROP CONSTRAINT "FK_fb9d21ba0abb83223263df6bcb3"`); await queryRunner.query(`DROP INDEX "IDX_0a72bdfcdb97c0eca11fe7ecad"`); await queryRunner.query(`DROP INDEX "IDX_22baca135bb8a3ea1a83d13df3"`); await queryRunner.query(`DROP INDEX "IDX_fb9d21ba0abb83223263df6bcb"`); await queryRunner.query(`DROP TABLE "registry_item"`); } - } +exports.registry1610277136869 = registry1610277136869; diff --git a/migration/1610277585759-registry2.ts b/packages/backend/migration/1610277585759-registry2.js similarity index 59% rename from migration/1610277585759-registry2.ts rename to packages/backend/migration/1610277585759-registry2.js index 2f2d80c486..aa1417e186 100644 --- a/migration/1610277585759-registry2.ts +++ b/packages/backend/migration/1610277585759-registry2.js @@ -1,16 +1,16 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class registry21610277585759 implements MigrationInterface { - name = 'registry21610277585759' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class registry21610277585759 { + constructor() { + this.name = 'registry21610277585759'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "registry_item" ADD "value" jsonb NOT NULL DEFAULT '{}'`); await queryRunner.query(`COMMENT ON COLUMN "registry_item"."value" IS 'The value of the RegistryItem.'`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`COMMENT ON COLUMN "registry_item"."value" IS 'The value of the RegistryItem.'`); await queryRunner.query(`ALTER TABLE "registry_item" DROP COLUMN "value"`); } - } +exports.registry21610277585759 = registry21610277585759; diff --git a/packages/backend/migration/1610283021566-registry3.js b/packages/backend/migration/1610283021566-registry3.js new file mode 100644 index 0000000000..7089cee1f2 --- /dev/null +++ b/packages/backend/migration/1610283021566-registry3.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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`); + } +} +exports.registry31610283021566 = registry31610283021566; diff --git a/migration/1611354329133-followersUri.ts b/packages/backend/migration/1611354329133-followersUri.js similarity index 63% rename from migration/1611354329133-followersUri.ts rename to packages/backend/migration/1611354329133-followersUri.js index 5114418aed..e944da73ab 100644 --- a/migration/1611354329133-followersUri.ts +++ b/packages/backend/migration/1611354329133-followersUri.js @@ -1,16 +1,16 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class followersUri1611354329133 implements MigrationInterface { - name = 'followersUri1611354329133' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class followersUri1611354329133 { + constructor() { + this.name = 'followersUri1611354329133'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "user" ADD "followersUri" varchar(512) DEFAULT NULL`); await queryRunner.query(`COMMENT ON COLUMN "user"."followersUri" IS 'The URI of the user Follower Collection. It will be null if the origin of the user is local.'`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`COMMENT ON COLUMN "user"."followersUri" IS 'The URI of the user Follower Collection. It will be null if the origin of the user is local.'`); await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "followersUri"`); } - } +exports.followersUri1611354329133 = followersUri1611354329133; diff --git a/migration/1611397665007-gallery.ts b/packages/backend/migration/1611397665007-gallery.js similarity index 93% rename from migration/1611397665007-gallery.ts rename to packages/backend/migration/1611397665007-gallery.js index 1b64490feb..9cf73cbcf3 100644 --- a/migration/1611397665007-gallery.ts +++ b/packages/backend/migration/1611397665007-gallery.js @@ -1,9 +1,10 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class gallery1611397665007 implements MigrationInterface { - name = 'gallery1611397665007' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class gallery1611397665007 { + constructor() { + this.name = 'gallery1611397665007'; + } + async up(queryRunner) { await queryRunner.query(`CREATE TABLE "gallery_post" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "title" character varying(256) NOT NULL, "description" character varying(2048), "userId" character varying(32) NOT NULL, "fileIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], "isSensitive" boolean NOT NULL DEFAULT false, "likedCount" integer NOT NULL DEFAULT '0', "tags" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], CONSTRAINT "PK_8e90d7b6015f2c4518881b14753" PRIMARY KEY ("id")); COMMENT ON COLUMN "gallery_post"."createdAt" IS 'The created date of the GalleryPost.'; COMMENT ON COLUMN "gallery_post"."updatedAt" IS 'The updated date of the GalleryPost.'; COMMENT ON COLUMN "gallery_post"."userId" IS 'The ID of author.'; COMMENT ON COLUMN "gallery_post"."isSensitive" IS 'Whether the post is sensitive.'`); await queryRunner.query(`CREATE INDEX "IDX_8f1a239bd077c8864a20c62c2c" ON "gallery_post" ("createdAt") `); await queryRunner.query(`CREATE INDEX "IDX_f631d37835adb04792e361807c" ON "gallery_post" ("updatedAt") `); @@ -19,8 +20,7 @@ export class gallery1611397665007 implements MigrationInterface { await queryRunner.query(`ALTER TABLE "gallery_like" ADD CONSTRAINT "FK_8fd5215095473061855ceb948cf" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); await queryRunner.query(`ALTER TABLE "gallery_like" ADD CONSTRAINT "FK_b1cb568bfe569e47b7051699fc8" FOREIGN KEY ("postId") REFERENCES "gallery_post"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "gallery_like" DROP CONSTRAINT "FK_b1cb568bfe569e47b7051699fc8"`); await queryRunner.query(`ALTER TABLE "gallery_like" DROP CONSTRAINT "FK_8fd5215095473061855ceb948cf"`); await queryRunner.query(`ALTER TABLE "gallery_post" DROP CONSTRAINT "FK_985b836dddd8615e432d7043ddb"`); @@ -36,5 +36,5 @@ export class gallery1611397665007 implements MigrationInterface { await queryRunner.query(`DROP INDEX "IDX_8f1a239bd077c8864a20c62c2c"`); await queryRunner.query(`DROP TABLE "gallery_post"`); } - } +exports.gallery1611397665007 = gallery1611397665007; diff --git a/packages/backend/migration/1611547387175-objectStorageS3ForcePathStyle.js b/packages/backend/migration/1611547387175-objectStorageS3ForcePathStyle.js new file mode 100644 index 0000000000..50a6189948 --- /dev/null +++ b/packages/backend/migration/1611547387175-objectStorageS3ForcePathStyle.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.objectStorageS3ForcePathStyle1611547387175 = objectStorageS3ForcePathStyle1611547387175; diff --git a/packages/backend/migration/1612619156584-announcement-email.js b/packages/backend/migration/1612619156584-announcement-email.js new file mode 100644 index 0000000000..bbd04679bb --- /dev/null +++ b/packages/backend/migration/1612619156584-announcement-email.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.announcementEmail1612619156584 = announcementEmail1612619156584; diff --git a/packages/backend/migration/1613155914446-emailNotificationTypes.js b/packages/backend/migration/1613155914446-emailNotificationTypes.js new file mode 100644 index 0000000000..30fa4924b5 --- /dev/null +++ b/packages/backend/migration/1613155914446-emailNotificationTypes.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class emailNotificationTypes1613155914446 { + constructor() { + this.name = 'emailNotificationTypes1613155914446'; + } + async up(queryRunner) { + await queryRunner.query(`ALTER TABLE "user_profile" ADD "emailNotificationTypes" jsonb NOT NULL DEFAULT '["follow","receiveFollowRequest","groupInvited"]'`); + } + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "emailNotificationTypes"`); + } +} +exports.emailNotificationTypes1613155914446 = emailNotificationTypes1613155914446; diff --git a/packages/backend/migration/1613181457597-user-lang.js b/packages/backend/migration/1613181457597-user-lang.js new file mode 100644 index 0000000000..f6be7cdab9 --- /dev/null +++ b/packages/backend/migration/1613181457597-user-lang.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.userLang1613181457597 = userLang1613181457597; diff --git a/packages/backend/migration/1613503367223-use-bigint-for-driveUsage.js b/packages/backend/migration/1613503367223-use-bigint-for-driveUsage.js new file mode 100644 index 0000000000..91956ad786 --- /dev/null +++ b/packages/backend/migration/1613503367223-use-bigint-for-driveUsage.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class useBigintForDriveUsage1613503367223 { + constructor() { + this.name = 'useBigintForDriveUsage1613503367223'; + } + async up(queryRunner) { + await queryRunner.query(`ALTER TABLE "instance" ALTER COLUMN "driveUsage" TYPE bigint`); + } + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "driveUsage"`); + await queryRunner.query(`ALTER TABLE "instance" ADD "driveUsage" integer NOT NULL DEFAULT 0`); + } +} +exports.useBigintForDriveUsage1613503367223 = useBigintForDriveUsage1613503367223; diff --git a/packages/backend/migration/1615965918224-chart-v2.js b/packages/backend/migration/1615965918224-chart-v2.js new file mode 100644 index 0000000000..95f44879b9 --- /dev/null +++ b/packages/backend/migration/1615965918224-chart-v2.js @@ -0,0 +1,217 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class chartV21615965918224 { + constructor() { + this.name = 'chartV21615965918224'; + } + async up(queryRunner) { + await queryRunner.query(`DELETE FROM "__chart__active_users" WHERE "span" = 'day'`); + await queryRunner.query(`DELETE FROM "__chart__drive" WHERE "span" = 'day'`); + await queryRunner.query(`DELETE FROM "__chart__federation" WHERE "span" = 'day'`); + await queryRunner.query(`DELETE FROM "__chart__hashtag" WHERE "span" = 'day'`); + await queryRunner.query(`DELETE FROM "__chart__instance" WHERE "span" = 'day'`); + await queryRunner.query(`DELETE FROM "__chart__network" WHERE "span" = 'day'`); + await queryRunner.query(`DELETE FROM "__chart__notes" WHERE "span" = 'day'`); + await queryRunner.query(`DELETE FROM "__chart__per_user_drive" WHERE "span" = 'day'`); + await queryRunner.query(`DELETE FROM "__chart__per_user_following" WHERE "span" = 'day'`); + await queryRunner.query(`DELETE FROM "__chart__per_user_notes" WHERE "span" = 'day'`); + await queryRunner.query(`DELETE FROM "__chart__per_user_reaction" WHERE "span" = 'day'`); + await queryRunner.query(`DELETE FROM "__chart__test" WHERE "span" = 'day'`); + await queryRunner.query(`DELETE FROM "__chart__test_grouped" WHERE "span" = 'day'`); + await queryRunner.query(`DELETE FROM "__chart__test_unique" WHERE "span" = 'day'`); + await queryRunner.query(`DELETE FROM "__chart__users" WHERE "span" = 'day'`); + await queryRunner.query(`DROP INDEX "IDX_15e91a03aeeac9dbccdf43fc06"`); + await queryRunner.query(`DROP INDEX "IDX_20f57cc8f142c131340ee16742"`); + await queryRunner.query(`DROP INDEX "IDX_c26e2c1cbb6e911e0554b27416"`); + await queryRunner.query(`DROP INDEX "IDX_3fa0d0f17ca72e3dc80999a032"`); + await queryRunner.query(`DROP INDEX "IDX_6e1df243476e20cbf86572ecc0"`); + await queryRunner.query(`DROP INDEX "IDX_06690fc959f1c9fdaf21928222"`); + await queryRunner.query(`DROP INDEX "IDX_e447064455928cf627590ef527"`); + await queryRunner.query(`DROP INDEX "IDX_2d416e6af791a82e338c79d480"`); + await queryRunner.query(`DROP INDEX "IDX_e9cd07672b37d8966cf3709283"`); + await queryRunner.query(`DROP INDEX "IDX_fcc181fb8283009c61cc4083ef"`); + await queryRunner.query(`DROP INDEX "IDX_49975586f50ed7b800fdd88fbd"`); + await queryRunner.query(`DROP INDEX "IDX_6d6f156ceefc6bc5f273a0e370"`); + await queryRunner.query(`DROP INDEX "IDX_c12f0af4a66cdd30c2287ce8aa"`); + await queryRunner.query(`DROP INDEX "IDX_d0a4f79af5a97b08f37b547197"`); + await queryRunner.query(`DROP INDEX "IDX_f5448d9633cff74208d850aabe"`); + await queryRunner.query(`DROP INDEX "IDX_f8dd01baeded2ffa833e0a610a"`); + await queryRunner.query(`DROP INDEX "IDX_08fac0eb3b11f04c200c0b40dd"`); + await queryRunner.query(`DROP INDEX "IDX_9ff6944f01acb756fdc92d7563"`); + await queryRunner.query(`DROP INDEX "IDX_e69096589f11e3baa98ddd64d0"`); + await queryRunner.query(`DROP INDEX "IDX_0c9a159c5082cbeef3ca6706b5"`); + await queryRunner.query(`DROP INDEX "IDX_924fc196c80ca24bae01dd37e4"`); + await queryRunner.query(`DROP INDEX "IDX_328f259961e60c4fa0bfcf55ca"`); + await queryRunner.query(`DROP INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53"`); + await queryRunner.query(`DROP INDEX "IDX_f2aeafde2ae6fbad38e857631b"`); + await queryRunner.query(`DROP INDEX "IDX_f92dd6d03f8d994f29987f6214"`); + await queryRunner.query(`DROP INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f"`); + await queryRunner.query(`DROP INDEX "IDX_4db3b84c7be0d3464714f3e0b1"`); + await queryRunner.query(`DROP INDEX "IDX_8d2cbbc8114d90d19b44d626b6"`); + await queryRunner.query(`DROP INDEX "IDX_046feeb12e9ef5f783f409866a"`); + await queryRunner.query(`DROP INDEX "IDX_f68a5ab958f9f5fa17a32ac23b"`); + await queryRunner.query(`DROP INDEX "IDX_65633a106bce43fc7c5c30a5c7"`); + await queryRunner.query(`DROP INDEX "IDX_edeb73c09c3143a81bcb34d569"`); + await queryRunner.query(`DROP INDEX "IDX_e316f01a6d24eb31db27f88262"`); + await queryRunner.query(`DROP INDEX "IDX_2be7ec6cebddc14dc11e206686"`); + await queryRunner.query(`DROP INDEX "IDX_a5133470f4825902e170328ca5"`); + await queryRunner.query(`DROP INDEX "IDX_84e661abb7bd1e51b690d4b017"`); + await queryRunner.query(`DROP INDEX "IDX_5c73bf61da4f6e6f15bae88ed1"`); + await queryRunner.query(`DROP INDEX "IDX_d70c86baedc68326be11f9c0ce"`); + await queryRunner.query(`DROP INDEX "IDX_66e1e1ecd2f29e57778af35b59"`); + await queryRunner.query(`DROP INDEX "IDX_92255988735563f0fe4aba1f05"`); + await queryRunner.query(`DROP INDEX "IDX_c5870993e25c3d5771f91f5003"`); + await queryRunner.query(`DROP INDEX "IDX_f170de677ea75ad4533de2723e"`); + await queryRunner.query(`DROP INDEX "IDX_7c184198ecf66a8d3ecb253ab3"`); + await queryRunner.query(`DROP INDEX "IDX_f091abb24193d50c653c6b77fc"`); + await queryRunner.query(`DROP INDEX "IDX_a770a57c70e668cc61590c9161"`); + await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "span"`); + await queryRunner.query(`DROP TYPE "public"."__chart__active_users_span_enum"`); + await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique"`); + await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___local_count"`); + await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___remote_count"`); + await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "span"`); + await queryRunner.query(`DROP TYPE "public"."__chart__drive_span_enum"`); + await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "unique"`); + await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "span"`); + await queryRunner.query(`DROP TYPE "public"."__chart__federation_span_enum"`); + await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "unique"`); + await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "span"`); + await queryRunner.query(`DROP TYPE "public"."__chart__hashtag_span_enum"`); + await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "unique"`); + await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___local_count"`); + await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___remote_count"`); + await queryRunner.query(`ALTER TABLE "__chart__instance" DROP COLUMN "span"`); + await queryRunner.query(`DROP TYPE "public"."__chart__instance_span_enum"`); + await queryRunner.query(`ALTER TABLE "__chart__instance" DROP COLUMN "unique"`); + await queryRunner.query(`ALTER TABLE "__chart__network" DROP COLUMN "span"`); + await queryRunner.query(`DROP TYPE "public"."__chart__network_span_enum"`); + await queryRunner.query(`ALTER TABLE "__chart__network" DROP COLUMN "unique"`); + await queryRunner.query(`ALTER TABLE "__chart__notes" DROP COLUMN "span"`); + await queryRunner.query(`DROP TYPE "public"."__chart__notes_span_enum"`); + await queryRunner.query(`ALTER TABLE "__chart__notes" DROP COLUMN "unique"`); + await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" DROP COLUMN "span"`); + await queryRunner.query(`DROP TYPE "public"."__chart__per_user_drive_span_enum"`); + await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" DROP COLUMN "unique"`); + await queryRunner.query(`ALTER TABLE "__chart__per_user_following" DROP COLUMN "span"`); + await queryRunner.query(`DROP TYPE "public"."__chart__per_user_following_span_enum"`); + await queryRunner.query(`ALTER TABLE "__chart__per_user_following" DROP COLUMN "unique"`); + await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" DROP COLUMN "span"`); + await queryRunner.query(`DROP TYPE "public"."__chart__per_user_notes_span_enum"`); + await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" DROP COLUMN "unique"`); + await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" DROP COLUMN "span"`); + await queryRunner.query(`DROP TYPE "public"."__chart__per_user_reaction_span_enum"`); + await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" DROP COLUMN "unique"`); + await queryRunner.query(`ALTER TABLE "__chart__test_grouped" DROP COLUMN "span"`); + await queryRunner.query(`DROP TYPE "public"."__chart__test_grouped_span_enum"`); + await queryRunner.query(`ALTER TABLE "__chart__test_grouped" DROP COLUMN "unique"`); + await queryRunner.query(`ALTER TABLE "__chart__test_unique" DROP COLUMN "span"`); + await queryRunner.query(`DROP TYPE "public"."__chart__test_unique_span_enum"`); + await queryRunner.query(`ALTER TABLE "__chart__test_unique" DROP COLUMN "unique"`); + await queryRunner.query(`ALTER TABLE "__chart__test_unique" DROP COLUMN "___foo"`); + await queryRunner.query(`ALTER TABLE "__chart__test" DROP COLUMN "span"`); + await queryRunner.query(`DROP TYPE "public"."__chart__test_span_enum"`); + await queryRunner.query(`ALTER TABLE "__chart__test" DROP COLUMN "unique"`); + await queryRunner.query(`ALTER TABLE "__chart__users" DROP COLUMN "span"`); + await queryRunner.query(`DROP TYPE "public"."__chart__users_span_enum"`); + await queryRunner.query(`ALTER TABLE "__chart__users" DROP COLUMN "unique"`); + } + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "__chart__users" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); + await queryRunner.query(`CREATE TYPE "public"."__chart__users_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`ALTER TABLE "__chart__users" ADD "span" "__chart__users_span_enum" NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__test" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); + await queryRunner.query(`CREATE TYPE "public"."__chart__test_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`ALTER TABLE "__chart__test" ADD "span" "__chart__test_span_enum" NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__test_unique" ADD "___foo" bigint NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__test_unique" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); + await queryRunner.query(`CREATE TYPE "public"."__chart__test_unique_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`ALTER TABLE "__chart__test_unique" ADD "span" "__chart__test_unique_span_enum" NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__test_grouped" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); + await queryRunner.query(`CREATE TYPE "public"."__chart__test_grouped_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`ALTER TABLE "__chart__test_grouped" ADD "span" "__chart__test_grouped_span_enum" NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); + await queryRunner.query(`CREATE TYPE "public"."__chart__per_user_reaction_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ADD "span" "__chart__per_user_reaction_span_enum" NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); + await queryRunner.query(`CREATE TYPE "public"."__chart__per_user_notes_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ADD "span" "__chart__per_user_notes_span_enum" NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); + await queryRunner.query(`CREATE TYPE "public"."__chart__per_user_following_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ADD "span" "__chart__per_user_following_span_enum" NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); + await queryRunner.query(`CREATE TYPE "public"."__chart__per_user_drive_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ADD "span" "__chart__per_user_drive_span_enum" NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__notes" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); + await queryRunner.query(`CREATE TYPE "public"."__chart__notes_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`ALTER TABLE "__chart__notes" ADD "span" "__chart__notes_span_enum" NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__network" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); + await queryRunner.query(`CREATE TYPE "public"."__chart__network_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`ALTER TABLE "__chart__network" ADD "span" "__chart__network_span_enum" NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__instance" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); + await queryRunner.query(`CREATE TYPE "public"."__chart__instance_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`ALTER TABLE "__chart__instance" ADD "span" "__chart__instance_span_enum" NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___remote_count" bigint NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___local_count" bigint NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); + await queryRunner.query(`CREATE TYPE "public"."__chart__hashtag_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "span" "__chart__hashtag_span_enum" NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); + await queryRunner.query(`CREATE TYPE "public"."__chart__federation_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "span" "__chart__federation_span_enum" NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); + await queryRunner.query(`CREATE TYPE "public"."__chart__drive_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "span" "__chart__drive_span_enum" NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___remote_count" bigint NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___local_count" bigint NOT NULL`); + await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique" jsonb NOT NULL DEFAULT '{}'`); + await queryRunner.query(`CREATE TYPE "public"."__chart__active_users_span_enum" AS ENUM('hour', 'day')`); + await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "span" "__chart__active_users_span_enum" NOT NULL`); + await queryRunner.query(`CREATE INDEX "IDX_a770a57c70e668cc61590c9161" ON "__chart__users" ("date", "group", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_f091abb24193d50c653c6b77fc" ON "__chart__users" ("date", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_7c184198ecf66a8d3ecb253ab3" ON "__chart__users" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_f170de677ea75ad4533de2723e" ON "__chart__test" ("date", "group", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_c5870993e25c3d5771f91f5003" ON "__chart__test" ("date", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_92255988735563f0fe4aba1f05" ON "__chart__test" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_66e1e1ecd2f29e57778af35b59" ON "__chart__test_unique" ("date", "group", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_d70c86baedc68326be11f9c0ce" ON "__chart__test_unique" ("date", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_5c73bf61da4f6e6f15bae88ed1" ON "__chart__test_unique" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_84e661abb7bd1e51b690d4b017" ON "__chart__test_grouped" ("date", "group", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_a5133470f4825902e170328ca5" ON "__chart__test_grouped" ("date", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_2be7ec6cebddc14dc11e206686" ON "__chart__test_grouped" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_e316f01a6d24eb31db27f88262" ON "__chart__per_user_reaction" ("date", "group", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_edeb73c09c3143a81bcb34d569" ON "__chart__per_user_reaction" ("date", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_65633a106bce43fc7c5c30a5c7" ON "__chart__per_user_reaction" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_f68a5ab958f9f5fa17a32ac23b" ON "__chart__per_user_notes" ("date", "group", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_046feeb12e9ef5f783f409866a" ON "__chart__per_user_notes" ("date", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_8d2cbbc8114d90d19b44d626b6" ON "__chart__per_user_notes" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_4db3b84c7be0d3464714f3e0b1" ON "__chart__per_user_following" ("date", "group", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f" ON "__chart__per_user_following" ("date", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_f92dd6d03f8d994f29987f6214" ON "__chart__per_user_following" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_f2aeafde2ae6fbad38e857631b" ON "__chart__per_user_drive" ("date", "group", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53" ON "__chart__per_user_drive" ("date", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_328f259961e60c4fa0bfcf55ca" ON "__chart__per_user_drive" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_924fc196c80ca24bae01dd37e4" ON "__chart__notes" ("date", "group", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_0c9a159c5082cbeef3ca6706b5" ON "__chart__notes" ("date", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_e69096589f11e3baa98ddd64d0" ON "__chart__notes" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_9ff6944f01acb756fdc92d7563" ON "__chart__network" ("date", "group", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_08fac0eb3b11f04c200c0b40dd" ON "__chart__network" ("date", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_f8dd01baeded2ffa833e0a610a" ON "__chart__network" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_f5448d9633cff74208d850aabe" ON "__chart__instance" ("date", "group", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_d0a4f79af5a97b08f37b547197" ON "__chart__instance" ("date", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_c12f0af4a66cdd30c2287ce8aa" ON "__chart__instance" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_6d6f156ceefc6bc5f273a0e370" ON "__chart__hashtag" ("date", "group", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_49975586f50ed7b800fdd88fbd" ON "__chart__hashtag" ("date", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_fcc181fb8283009c61cc4083ef" ON "__chart__hashtag" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_e9cd07672b37d8966cf3709283" ON "__chart__federation" ("date", "group", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_2d416e6af791a82e338c79d480" ON "__chart__federation" ("date", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_e447064455928cf627590ef527" ON "__chart__federation" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_06690fc959f1c9fdaf21928222" ON "__chart__drive" ("date", "group", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_6e1df243476e20cbf86572ecc0" ON "__chart__drive" ("date", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_3fa0d0f17ca72e3dc80999a032" ON "__chart__drive" ("span") `); + await queryRunner.query(`CREATE INDEX "IDX_c26e2c1cbb6e911e0554b27416" ON "__chart__active_users" ("date", "group", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_20f57cc8f142c131340ee16742" ON "__chart__active_users" ("date", "span") `); + await queryRunner.query(`CREATE INDEX "IDX_15e91a03aeeac9dbccdf43fc06" ON "__chart__active_users" ("span") `); + } +} +exports.chartV21615965918224 = chartV21615965918224; diff --git a/migration/1615966519402-chart-v2-2.ts b/packages/backend/migration/1615966519402-chart-v2-2.js similarity index 80% rename from migration/1615966519402-chart-v2-2.ts rename to packages/backend/migration/1615966519402-chart-v2-2.js index a694f9542a..85a83df1a2 100644 --- a/migration/1615966519402-chart-v2-2.ts +++ b/packages/backend/migration/1615966519402-chart-v2-2.js @@ -1,22 +1,22 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class chartV221615966519402 implements MigrationInterface { - name = 'chartV221615966519402' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class chartV221615966519402 { + constructor() { + this.name = 'chartV221615966519402'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___local_users" character varying array NOT NULL DEFAULT '{}'::varchar[]`); await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___remote_users" character varying array NOT NULL DEFAULT '{}'::varchar[]`); await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___local_users" character varying array NOT NULL DEFAULT '{}'::varchar[]`); await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___remote_users" character varying array NOT NULL DEFAULT '{}'::varchar[]`); await queryRunner.query(`ALTER TABLE "__chart__test_unique" ADD "___foo" character varying array NOT NULL DEFAULT '{}'::varchar[]`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "__chart__test_unique" DROP COLUMN "___foo"`); await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___remote_users"`); await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___local_users"`); await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___remote_users"`); await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___local_users"`); } - } +exports.chartV221615966519402 = chartV221615966519402; diff --git a/migration/1618637372000-user-last-active-date.ts b/packages/backend/migration/1618637372000-user-last-active-date.js similarity index 55% rename from migration/1618637372000-user-last-active-date.ts rename to packages/backend/migration/1618637372000-user-last-active-date.js index a66c433a3a..03fc011e4d 100644 --- a/migration/1618637372000-user-last-active-date.ts +++ b/packages/backend/migration/1618637372000-user-last-active-date.js @@ -1,16 +1,16 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class userLastActiveDate1618637372000 implements MigrationInterface { - name = 'userLastActiveDate1618637372000' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class userLastActiveDate1618637372000 { + constructor() { + this.name = 'userLastActiveDate1618637372000'; + } + async up(queryRunner) { await queryRunner.query(`ALTER TABLE "user" ADD "lastActiveDate" TIMESTAMP WITH TIME ZONE DEFAULT NULL`); await queryRunner.query(`CREATE INDEX "IDX_seoignmeoprigmkpodgrjmkpormg" ON "user" ("lastActiveDate") `); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`DROP INDEX "IDX_seoignmeoprigmkpodgrjmkpormg"`); await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "lastActiveDate"`); } - } +exports.userLastActiveDate1618637372000 = userLastActiveDate1618637372000; diff --git a/packages/backend/migration/1618639857000-user-hide-online-status.js b/packages/backend/migration/1618639857000-user-hide-online-status.js new file mode 100644 index 0000000000..0b1e341005 --- /dev/null +++ b/packages/backend/migration/1618639857000-user-hide-online-status.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.userHideOnlineStatus1618639857000 = userHideOnlineStatus1618639857000; diff --git a/migration/1619942102890-password-reset.ts b/packages/backend/migration/1619942102890-password-reset.js similarity index 78% rename from migration/1619942102890-password-reset.ts rename to packages/backend/migration/1619942102890-password-reset.js index 66854cb025..9505be4b84 100644 --- a/migration/1619942102890-password-reset.ts +++ b/packages/backend/migration/1619942102890-password-reset.js @@ -1,20 +1,20 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class passwordReset1619942102890 implements MigrationInterface { - name = 'passwordReset1619942102890' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class passwordReset1619942102890 { + constructor() { + this.name = 'passwordReset1619942102890'; + } + async up(queryRunner) { await queryRunner.query(`CREATE TABLE "password_reset_request" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "token" character varying(256) NOT NULL, "userId" character varying(32) NOT NULL, CONSTRAINT "PK_fcf4b02eae1403a2edaf87fd074" PRIMARY KEY ("id"))`); await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0b575fa9a4cfe638a925949285" ON "password_reset_request" ("token") `); await queryRunner.query(`CREATE INDEX "IDX_4bb7fd4a34492ae0e6cc8d30ac" ON "password_reset_request" ("userId") `); await queryRunner.query(`ALTER TABLE "password_reset_request" ADD CONSTRAINT "FK_4bb7fd4a34492ae0e6cc8d30ac8" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "password_reset_request" DROP CONSTRAINT "FK_4bb7fd4a34492ae0e6cc8d30ac8"`); await queryRunner.query(`DROP INDEX "IDX_4bb7fd4a34492ae0e6cc8d30ac"`); await queryRunner.query(`DROP INDEX "IDX_0b575fa9a4cfe638a925949285"`); await queryRunner.query(`DROP TABLE "password_reset_request"`); } - } +exports.passwordReset1619942102890 = passwordReset1619942102890; diff --git a/migration/1620019354680-ad.ts b/packages/backend/migration/1620019354680-ad.js similarity index 78% rename from migration/1620019354680-ad.ts rename to packages/backend/migration/1620019354680-ad.js index 27fb99f181..655629bc3b 100644 --- a/migration/1620019354680-ad.ts +++ b/packages/backend/migration/1620019354680-ad.js @@ -1,18 +1,18 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class ad1620019354680 implements MigrationInterface { - name = 'ad1620019354680' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class ad1620019354680 { + constructor() { + this.name = 'ad1620019354680'; + } + async up(queryRunner) { await queryRunner.query(`CREATE TABLE "ad" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "expiresAt" TIMESTAMP WITH TIME ZONE NOT NULL, "place" character varying(32) NOT NULL, "priority" character varying(32) NOT NULL, "url" character varying(1024) NOT NULL, "imageUrl" character varying(1024) NOT NULL, "memo" character varying(8192) NOT NULL, CONSTRAINT "PK_0193d5ef09746e88e9ea92c634d" PRIMARY KEY ("id")); COMMENT ON COLUMN "ad"."createdAt" IS 'The created date of the Ad.'; COMMENT ON COLUMN "ad"."expiresAt" IS 'The expired date of the Ad.'`); await queryRunner.query(`CREATE INDEX "IDX_1129c2ef687fc272df040bafaa" ON "ad" ("createdAt") `); await queryRunner.query(`CREATE INDEX "IDX_2da24ce20ad209f1d9dc032457" ON "ad" ("expiresAt") `); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`DROP INDEX "IDX_2da24ce20ad209f1d9dc032457"`); await queryRunner.query(`DROP INDEX "IDX_1129c2ef687fc272df040bafaa"`); await queryRunner.query(`DROP TABLE "ad"`); } - } +exports.ad1620019354680 = ad1620019354680; diff --git a/packages/backend/migration/1620364649428-ad2.js b/packages/backend/migration/1620364649428-ad2.js new file mode 100644 index 0000000000..7f2213f6a6 --- /dev/null +++ b/packages/backend/migration/1620364649428-ad2.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.ad21620364649428 = ad21620364649428; diff --git a/packages/backend/migration/1621479946000-add-note-indexes.js b/packages/backend/migration/1621479946000-add-note-indexes.js new file mode 100644 index 0000000000..1bf9827f6f --- /dev/null +++ b/packages/backend/migration/1621479946000-add-note-indexes.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class addNoteIndexes1621479946000 { + constructor() { + this.name = 'addNoteIndexes1621479946000'; + } + async up(queryRunner) { + await queryRunner.query(`CREATE INDEX "IDX_NOTE_MENTIONS" ON "note" USING gin ("mentions")`, undefined); + await queryRunner.query(`CREATE INDEX "IDX_NOTE_VISIBLE_USER_IDS" ON "note" USING gin ("visibleUserIds")`, undefined); + } + async down(queryRunner) { + await queryRunner.query(`DROP INDEX "IDX_NOTE_MENTIONS"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_NOTE_VISIBLE_USER_IDS"`, undefined); + } +} +exports.addNoteIndexes1621479946000 = addNoteIndexes1621479946000; diff --git a/packages/backend/migration/1622679304522-user-profile-description-length.js b/packages/backend/migration/1622679304522-user-profile-description-length.js new file mode 100644 index 0000000000..237870d6c6 --- /dev/null +++ b/packages/backend/migration/1622679304522-user-profile-description-length.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class userProfileDescriptionLength1622679304522 { + constructor() { + this.name = 'userProfileDescriptionLength1622679304522'; + } + async up(queryRunner) { + await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "description" TYPE character varying(2048)`, undefined); + } + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "description" TYPE character varying(1024)`, undefined); + } +} +exports.userProfileDescriptionLength1622679304522 = userProfileDescriptionLength1622679304522; diff --git a/packages/backend/migration/1622681548499-log-message-length.js b/packages/backend/migration/1622681548499-log-message-length.js new file mode 100644 index 0000000000..cb2ad288ba --- /dev/null +++ b/packages/backend/migration/1622681548499-log-message-length.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class logMessageLength1622681548499 { + constructor() { + this.name = 'logMessageLength1622681548499'; + } + async up(queryRunner) { + await queryRunner.query(`ALTER TABLE "log" ALTER COLUMN "message" TYPE character varying(2048)`, undefined); + } + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "log" ALTER COLUMN "message" TYPE character varying(1024)`, undefined); + } +} +exports.logMessageLength1622681548499 = logMessageLength1622681548499; diff --git a/migration/1629004542760-chart-reindex.ts b/packages/backend/migration/1629004542760-chart-reindex.js similarity index 98% rename from migration/1629004542760-chart-reindex.ts rename to packages/backend/migration/1629004542760-chart-reindex.js index c3d09f51ba..927ea312e0 100644 --- a/migration/1629004542760-chart-reindex.ts +++ b/packages/backend/migration/1629004542760-chart-reindex.js @@ -1,9 +1,10 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class chartReindex1629004542760 implements MigrationInterface { - name = 'chartReindex1629004542760' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class chartReindex1629004542760 { + constructor() { + this.name = 'chartReindex1629004542760'; + } + async up(queryRunner) { await queryRunner.query(`DELETE FROM "__chart__active_users" a USING "__chart__active_users" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); await queryRunner.query(`DELETE FROM "__chart__drive" a USING "__chart__drive" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); await queryRunner.query(`DELETE FROM "__chart__federation" a USING "__chart__federation" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`); @@ -94,8 +95,7 @@ export class chartReindex1629004542760 implements MigrationInterface { await queryRunner.query(`CREATE UNIQUE INDEX "IDX_337e9599f278bd7537fe30876f" ON "__chart__users" ("date", "group") `); await queryRunner.query(`CREATE UNIQUE INDEX "IDX_66feba81e1795d176d06c0b1e6" ON "__chart__users" ("date") WHERE "group" IS NULL`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`DROP INDEX "IDX_66feba81e1795d176d06c0b1e6"`); await queryRunner.query(`DROP INDEX "IDX_337e9599f278bd7537fe30876f"`); await queryRunner.query(`DROP INDEX "IDX_dab383a36f3c9db4a0c9b02cf3"`); @@ -178,5 +178,5 @@ export class chartReindex1629004542760 implements MigrationInterface { await queryRunner.query(`CREATE INDEX "IDX_00ed5f86db1f7efafb1978bf21" ON "__chart__active_users" ("group") `); await queryRunner.query(`CREATE INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc" ON "__chart__active_users" ("date") `); } - } +exports.chartReindex1629004542760 = chartReindex1629004542760; diff --git a/packages/backend/migration/1629024377804-deepl-integration.js b/packages/backend/migration/1629024377804-deepl-integration.js new file mode 100644 index 0000000000..a2bd3b1885 --- /dev/null +++ b/packages/backend/migration/1629024377804-deepl-integration.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.deeplIntegration1629024377804 = deeplIntegration1629024377804; diff --git a/packages/backend/migration/1629288472000-fix-channel-userId.js b/packages/backend/migration/1629288472000-fix-channel-userId.js new file mode 100644 index 0000000000..d0e8baa06c --- /dev/null +++ b/packages/backend/migration/1629288472000-fix-channel-userId.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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;`); + } +} +exports.fixChannelUserId1629288472000 = fixChannelUserId1629288472000; diff --git a/packages/backend/migration/1629512953000-user-is-deleted.js b/packages/backend/migration/1629512953000-user-is-deleted.js new file mode 100644 index 0000000000..0083907192 --- /dev/null +++ b/packages/backend/migration/1629512953000-user-is-deleted.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class isUserDeleted1629512953000 { + constructor() { + this.name = 'isUserDeleted1629512953000'; + } + async up(queryRunner) { + await queryRunner.query(`ALTER TABLE "user" ADD "isDeleted" boolean NOT NULL DEFAULT false`); + await queryRunner.query(`COMMENT ON COLUMN "user"."isDeleted" IS 'Whether the User is deleted.'`); + } + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "isDeleted"`); + } +} +exports.isUserDeleted1629512953000 = isUserDeleted1629512953000; diff --git a/packages/backend/migration/1629778475000-deepl-integration2.js b/packages/backend/migration/1629778475000-deepl-integration2.js new file mode 100644 index 0000000000..50365f4bb5 --- /dev/null +++ b/packages/backend/migration/1629778475000-deepl-integration2.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.deeplIntegration21629778475000 = deeplIntegration21629778475000; diff --git a/packages/backend/migration/1633068642000-email-required-for-signup.js b/packages/backend/migration/1633068642000-email-required-for-signup.js new file mode 100644 index 0000000000..9793cac00a --- /dev/null +++ b/packages/backend/migration/1633068642000-email-required-for-signup.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.emailRequiredForSignup1633068642000 = emailRequiredForSignup1633068642000; diff --git a/migration/1633071909016-user-pending.ts b/packages/backend/migration/1633071909016-user-pending.js similarity index 68% rename from migration/1633071909016-user-pending.ts rename to packages/backend/migration/1633071909016-user-pending.js index 28b556888a..92a5139944 100644 --- a/migration/1633071909016-user-pending.ts +++ b/packages/backend/migration/1633071909016-user-pending.js @@ -1,16 +1,16 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class userPending1633071909016 implements MigrationInterface { - name = 'userPending1633071909016' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class userPending1633071909016 { + constructor() { + this.name = 'userPending1633071909016'; + } + async up(queryRunner) { await queryRunner.query(`CREATE TABLE "user_pending" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "code" character varying(128) NOT NULL, "username" character varying(128) NOT NULL, "email" character varying(128) NOT NULL, "password" character varying(128) NOT NULL, CONSTRAINT "PK_d4c84e013c98ec02d19b8fbbafa" PRIMARY KEY ("id"))`); await queryRunner.query(`CREATE UNIQUE INDEX "IDX_4e5c4c99175638ec0761714ab0" ON "user_pending" ("code") `); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`DROP INDEX "IDX_4e5c4c99175638ec0761714ab0"`); await queryRunner.query(`DROP TABLE "user_pending"`); } - } +exports.userPending1633071909016 = userPending1633071909016; diff --git a/packages/backend/migration/1634486652000-user-public-reactions.js b/packages/backend/migration/1634486652000-user-public-reactions.js new file mode 100644 index 0000000000..1447abe6a1 --- /dev/null +++ b/packages/backend/migration/1634486652000-user-public-reactions.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +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"`); + } +} +exports.userPublicReactions1634486652000 = userPublicReactions1634486652000; diff --git a/packages/backend/migration/1634902659689-delete-log.js b/packages/backend/migration/1634902659689-delete-log.js new file mode 100644 index 0000000000..b2162519f6 --- /dev/null +++ b/packages/backend/migration/1634902659689-delete-log.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class deleteLog1634902659689 { + constructor() { + this.name = 'deleteLog1634902659689'; + } + async up(queryRunner) { + await queryRunner.query(`DROP TABLE "log"`); + } + async down(queryRunner) { + } +} +exports.deleteLog1634902659689 = deleteLog1634902659689; diff --git a/migration/1635500777168-note-thread-mute.ts b/packages/backend/migration/1635500777168-note-thread-mute.js similarity index 84% rename from migration/1635500777168-note-thread-mute.ts rename to packages/backend/migration/1635500777168-note-thread-mute.js index aed10d18d7..1e01952748 100644 --- a/migration/1635500777168-note-thread-mute.ts +++ b/packages/backend/migration/1635500777168-note-thread-mute.js @@ -1,9 +1,10 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class noteThreadMute1635500777168 implements MigrationInterface { - name = 'noteThreadMute1635500777168' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class noteThreadMute1635500777168 { + constructor() { + this.name = 'noteThreadMute1635500777168'; + } + async up(queryRunner) { await queryRunner.query(`CREATE TABLE "note_thread_muting" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "threadId" character varying(256) NOT NULL, CONSTRAINT "PK_ec5936d94d1a0369646d12a3a47" PRIMARY KEY ("id"))`); await queryRunner.query(`CREATE INDEX "IDX_29c11c7deb06615076f8c95b80" ON "note_thread_muting" ("userId") `); await queryRunner.query(`CREATE INDEX "IDX_c426394644267453e76f036926" ON "note_thread_muting" ("threadId") `); @@ -12,8 +13,7 @@ export class noteThreadMute1635500777168 implements MigrationInterface { await queryRunner.query(`CREATE INDEX "IDX_d4ebdef929896d6dc4a3c5bb48" ON "note" ("threadId") `); await queryRunner.query(`ALTER TABLE "note_thread_muting" ADD CONSTRAINT "FK_29c11c7deb06615076f8c95b80a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "note_thread_muting" DROP CONSTRAINT "FK_29c11c7deb06615076f8c95b80a"`); await queryRunner.query(`DROP INDEX "public"."IDX_d4ebdef929896d6dc4a3c5bb48"`); await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "threadId"`); @@ -22,5 +22,5 @@ export class noteThreadMute1635500777168 implements MigrationInterface { await queryRunner.query(`DROP INDEX "public"."IDX_29c11c7deb06615076f8c95b80"`); await queryRunner.query(`DROP TABLE "note_thread_muting"`); } - } +exports.noteThreadMute1635500777168 = noteThreadMute1635500777168; diff --git a/migration/1636197624383-ff-visibility.ts b/packages/backend/migration/1636197624383-ff-visibility.js similarity index 60% rename from migration/1636197624383-ff-visibility.ts rename to packages/backend/migration/1636197624383-ff-visibility.js index 8829aeb884..9e8d5a3dc8 100644 --- a/migration/1636197624383-ff-visibility.ts +++ b/packages/backend/migration/1636197624383-ff-visibility.js @@ -1,16 +1,16 @@ -import {MigrationInterface, QueryRunner} from "typeorm"; - -export class ffVisibility1636197624383 implements MigrationInterface { - name = 'ffVisibility1636197624383' - - public async up(queryRunner: QueryRunner): Promise { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class ffVisibility1636197624383 { + constructor() { + this.name = 'ffVisibility1636197624383'; + } + async up(queryRunner) { await queryRunner.query(`CREATE TYPE "public"."user_profile_ffvisibility_enum" AS ENUM('public', 'followers', 'private')`); await queryRunner.query(`ALTER TABLE "user_profile" ADD "ffVisibility" "public"."user_profile_ffvisibility_enum" NOT NULL DEFAULT 'public'`); } - - public async down(queryRunner: QueryRunner): Promise { + async down(queryRunner) { await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "ffVisibility"`); await queryRunner.query(`DROP TYPE "public"."user_profile_ffvisibility_enum"`); } - } +exports.ffVisibility1636197624383 = ffVisibility1636197624383; diff --git a/ormconfig.js b/packages/backend/ormconfig.js similarity index 91% rename from ormconfig.js rename to packages/backend/ormconfig.js index 8a0196947e..524181cb89 100644 --- a/ormconfig.js +++ b/packages/backend/ormconfig.js @@ -10,7 +10,7 @@ module.exports = { database: config.db.db, extra: config.db.extra, entities: entities, - migrations: ['migration/*.ts'], + migrations: ['migration/*.js'], cli: { migrationsDir: 'migration' } diff --git a/packages/backend/package.json b/packages/backend/package.json new file mode 100644 index 0000000000..87c5c0464a --- /dev/null +++ b/packages/backend/package.json @@ -0,0 +1,199 @@ +{ + "main": "./index.js", + "private": true, + "scripts": { + "init": "npm run migrate", + "build": "tsc -p tsconfig.json || echo done. && tsc-alias -p tsconfig.json", + "watch": "tsc -w -p tsconfig.json && tsc-alias -w -p tsconfig.json", + "lint": "tslint '**/*.ts'", + "mocha": "cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=\"./test/tsconfig.json\" mocha", + "test": "npm run mocha" + }, + "resolutions": { + "chokidar": "^3.3.1", + "lodash": "^4.17.21" + }, + "dependencies": { + "@discordapp/twemoji": "13.1.0", + "@elastic/elasticsearch": "7.11.0", + "@koa/cors": "3.1.0", + "@koa/multer": "3.0.0", + "@koa/router": "9.0.1", + "@sinonjs/fake-timers": "7.1.2", + "@syuilo/aiscript": "0.11.1", + "@types/bcryptjs": "2.4.2", + "@types/bull": "3.15.5", + "@types/cbor": "6.0.0", + "@types/dateformat": "3.0.1", + "@types/escape-regexp": "0.0.0", + "@types/glob": "7.2.0", + "@types/is-url": "1.2.30", + "@types/js-yaml": "4.0.4", + "@types/jsdom": "16.2.13", + "@types/jsonld": "1.5.6", + "@types/koa": "2.13.4", + "@types/koa-bodyparser": "4.3.3", + "@types/koa-cors": "0.0.2", + "@types/koa-favicon": "2.0.21", + "@types/koa-logger": "3.1.2", + "@types/koa-mount": "4.0.1", + "@types/koa-send": "4.1.3", + "@types/koa-views": "7.0.0", + "@types/koa__cors": "3.0.3", + "@types/koa__multer": "2.0.4", + "@types/koa__router": "8.0.8", + "@types/mocha": "8.2.3", + "@types/node": "16.11.7", + "@types/node-fetch": "2.5.12", + "@types/nodemailer": "6.4.4", + "@types/nprogress": "0.2.0", + "@types/oauth": "0.9.1", + "@types/parse5": "6.0.2", + "@types/parsimmon": "1.10.6", + "@types/portscanner": "2.1.1", + "@types/pug": "2.0.5", + "@types/punycode": "2.1.0", + "@types/qrcode": "1.4.1", + "@types/random-seed": "0.3.3", + "@types/ratelimiter": "3.4.2", + "@types/redis": "2.8.32", + "@types/rename": "1.0.4", + "@types/request-stats": "3.0.0", + "@types/rimraf": "3.0.2", + "@types/seedrandom": "2.4.28", + "@types/sharp": "0.29.3", + "@types/sinonjs__fake-timers": "6.0.4", + "@types/speakeasy": "2.0.6", + "@types/throttle-debounce": "2.1.0", + "@types/tinycolor2": "1.4.3", + "@types/tmp": "0.2.2", + "@types/uuid": "8.3.1", + "@types/web-push": "3.3.2", + "@types/webpack": "5.28.0", + "@types/webpack-stream": "3.2.12", + "@types/websocket": "1.0.4", + "@types/ws": "8.2.0", + "@typescript-eslint/parser": "5.1.0", + "abort-controller": "3.0.0", + "autobind-decorator": "2.4.0", + "autosize": "4.0.4", + "autwh": "0.1.0", + "aws-sdk": "2.1013.0", + "bcryptjs": "2.4.3", + "blurhash": "1.1.4", + "broadcast-channel": "4.5.0", + "bull": "4.1.0", + "cacheable-lookup": "6.0.4", + "cafy": "15.2.1", + "cbor": "8.1.0", + "chalk": "4.1.2", + "chart.js": "3.6.0", + "chartjs-adapter-date-fns": "2.0.0", + "chartjs-plugin-zoom": "1.1.1", + "cli-highlight": "2.1.11", + "compare-versions": "3.6.0", + "concurrently": "6.3.0", + "content-disposition": "0.5.3", + "crc-32": "1.2.0", + "css-loader": "6.5.1", + "cssnano": "5.0.10", + "date-fns": "2.25.0", + "dateformat": "4.5.1", + "deep-email-validator": "0.1.18", + "escape-regexp": "0.0.1", + "eslint": "8.2.0", + "eslint-plugin-vue": "8.0.3", + "eventemitter3": "4.0.7", + "feed": "4.2.2", + "file-type": "16.5.3", + "fluent-ffmpeg": "2.1.2", + "glob": "7.2.0", + "got": "11.8.2", + "hpagent": "0.1.2", + "http-signature": "1.3.5", + "idb-keyval": "5.1.3", + "insert-text-at-cursor": "0.3.0", + "ip-cidr": "3.0.4", + "is-svg": "4.3.1", + "js-yaml": "4.1.0", + "jsdom": "16.7.0", + "json5": "2.2.0", + "json5-loader": "4.0.1", + "jsonld": "5.2.0", + "jsrsasign": "8.0.20", + "koa": "2.13.4", + "koa-bodyparser": "4.3.0", + "koa-favicon": "2.1.0", + "koa-json-body": "5.3.0", + "koa-logger": "3.2.1", + "koa-mount": "4.0.0", + "koa-send": "5.0.1", + "koa-slow": "2.1.0", + "koa-views": "7.0.2", + "langmap": "0.0.16", + "mfm-js": "0.20.0", + "misskey-js": "0.0.8", + "mocha": "8.4.0", + "ms": "2.1.3", + "multer": "1.4.3", + "nested-property": "4.0.0", + "node-fetch": "2.6.1", + "nodemailer": "6.7.0", + "os-utils": "0.0.14", + "parse5": "6.0.1", + "pg": "8.7.1", + "portscanner": "2.2.0", + "prismjs": "1.25.0", + "private-ip": "2.3.3", + "probe-image-size": "7.2.1", + "promise-limit": "2.7.0", + "pug": "3.0.2", + "punycode": "2.1.1", + "pureimage": "0.3.5", + "qrcode": "1.4.4", + "random-seed": "0.3.0", + "ratelimiter": "3.4.1", + "re2": "1.16.0", + "redis": "3.1.2", + "redis-lock": "0.1.4", + "reflect-metadata": "0.1.13", + "rename": "1.0.4", + "request-stats": "3.0.0", + "require-all": "3.0.0", + "rimraf": "3.0.2", + "rndstr": "1.0.0", + "s-age": "1.1.2", + "seedrandom": "3.0.5", + "sharp": "0.29.2", + "speakeasy": "2.0.0", + "strict-event-emitter-types": "2.0.0", + "stringz": "2.1.0", + "style-loader": "3.3.1", + "summaly": "2.4.1", + "syslog-pro": "1.0.0", + "systeminformation": "5.9.9", + "throttle-debounce": "3.0.1", + "tinycolor2": "1.4.2", + "tmp": "0.2.1", + "ts-loader": "9.2.6", + "ts-node": "10.4.0", + "tsc-alias": "1.3.10", + "tsconfig-paths": "3.11.0", + "tslint": "6.1.3", + "tslint-sonarts": "1.9.0", + "twemoji-parser": "13.1.0", + "typeorm": "0.2.39", + "typescript": "4.4.4", + "ulid": "2.3.0", + "uuid": "8.3.2", + "web-push": "3.4.5", + "websocket": "1.0.34", + "ws": "8.2.3", + "xev": "2.0.1" + }, + "devDependencies": { + "@redocly/openapi-core": "1.0.0-beta.54", + "@types/fluent-ffmpeg": "2.1.17", + "cross-env": "7.0.3" + } +} diff --git a/src/boot/index.ts b/packages/backend/src/boot/index.ts similarity index 91% rename from src/boot/index.ts rename to packages/backend/src/boot/index.ts index cb4c8536db..1723c32dd0 100644 --- a/src/boot/index.ts +++ b/packages/backend/src/boot/index.ts @@ -18,12 +18,12 @@ const ev = new Xev(); * Init process */ export default async function() { - process.title = `Misskey (${cluster.isMaster ? 'master' : 'worker'})`; + process.title = `Misskey (${cluster.isPrimary ? 'master' : 'worker'})`; - if (cluster.isMaster || envOption.disableClustering) { + if (cluster.isPrimary || envOption.disableClustering) { await masterMain(); - if (cluster.isMaster) { + if (cluster.isPrimary) { ev.mount(); } } diff --git a/src/boot/master.ts b/packages/backend/src/boot/master.ts similarity index 98% rename from src/boot/master.ts rename to packages/backend/src/boot/master.ts index 071b37b76d..eeb7017cb0 100644 --- a/src/boot/master.ts +++ b/packages/backend/src/boot/master.ts @@ -19,7 +19,7 @@ import { initDb } from '../db/postgre'; const _filename = __filename; const _dirname = dirname(_filename); -const meta = JSON.parse(fs.readFileSync(`${_dirname}/../meta.json`, 'utf-8')); +const meta = JSON.parse(fs.readFileSync(`${_dirname}/../../../../built/meta.json`, 'utf-8')); const logger = new Logger('core', 'cyan'); const bootLogger = logger.createSubLogger('boot', 'magenta', false); diff --git a/src/boot/worker.ts b/packages/backend/src/boot/worker.ts similarity index 100% rename from src/boot/worker.ts rename to packages/backend/src/boot/worker.ts diff --git a/src/config/index.ts b/packages/backend/src/config/index.ts similarity index 100% rename from src/config/index.ts rename to packages/backend/src/config/index.ts diff --git a/src/config/load.ts b/packages/backend/src/config/load.ts similarity index 91% rename from src/config/load.ts rename to packages/backend/src/config/load.ts index c7965e6c41..1b5457cdb0 100644 --- a/src/config/load.ts +++ b/packages/backend/src/config/load.ts @@ -15,7 +15,7 @@ const _dirname = dirname(_filename); /** * Path of configuration directory */ -const dir = `${_dirname}/../../.config`; +const dir = `${_dirname}/../../../../.config`; /** * Path of configuration file @@ -25,7 +25,7 @@ const path = process.env.NODE_ENV === 'test' : `${dir}/default.yml`; export default function load() { - const meta = JSON.parse(fs.readFileSync(`${_dirname}/../meta.json`, 'utf-8')); + const meta = JSON.parse(fs.readFileSync(`${_dirname}/../../../../built/meta.json`, 'utf-8')); const config = yaml.load(fs.readFileSync(path, 'utf-8')) as Source; const mixin = {} as Mixin; diff --git a/src/config/types.ts b/packages/backend/src/config/types.ts similarity index 100% rename from src/config/types.ts rename to packages/backend/src/config/types.ts diff --git a/src/const.ts b/packages/backend/src/const.ts similarity index 100% rename from src/const.ts rename to packages/backend/src/const.ts diff --git a/src/daemons/janitor.ts b/packages/backend/src/daemons/janitor.ts similarity index 100% rename from src/daemons/janitor.ts rename to packages/backend/src/daemons/janitor.ts diff --git a/src/daemons/queue-stats.ts b/packages/backend/src/daemons/queue-stats.ts similarity index 100% rename from src/daemons/queue-stats.ts rename to packages/backend/src/daemons/queue-stats.ts diff --git a/src/daemons/server-stats.ts b/packages/backend/src/daemons/server-stats.ts similarity index 100% rename from src/daemons/server-stats.ts rename to packages/backend/src/daemons/server-stats.ts diff --git a/src/db/elasticsearch.ts b/packages/backend/src/db/elasticsearch.ts similarity index 100% rename from src/db/elasticsearch.ts rename to packages/backend/src/db/elasticsearch.ts diff --git a/src/db/logger.ts b/packages/backend/src/db/logger.ts similarity index 100% rename from src/db/logger.ts rename to packages/backend/src/db/logger.ts diff --git a/src/db/postgre.ts b/packages/backend/src/db/postgre.ts similarity index 100% rename from src/db/postgre.ts rename to packages/backend/src/db/postgre.ts diff --git a/src/db/redis.ts b/packages/backend/src/db/redis.ts similarity index 100% rename from src/db/redis.ts rename to packages/backend/src/db/redis.ts diff --git a/src/env.ts b/packages/backend/src/env.ts similarity index 100% rename from src/env.ts rename to packages/backend/src/env.ts diff --git a/src/games/reversi/core.ts b/packages/backend/src/games/reversi/core.ts similarity index 100% rename from src/games/reversi/core.ts rename to packages/backend/src/games/reversi/core.ts diff --git a/src/games/reversi/maps.ts b/packages/backend/src/games/reversi/maps.ts similarity index 100% rename from src/games/reversi/maps.ts rename to packages/backend/src/games/reversi/maps.ts diff --git a/src/games/reversi/package.json b/packages/backend/src/games/reversi/package.json similarity index 100% rename from src/games/reversi/package.json rename to packages/backend/src/games/reversi/package.json diff --git a/src/games/reversi/tsconfig.json b/packages/backend/src/games/reversi/tsconfig.json similarity index 100% rename from src/games/reversi/tsconfig.json rename to packages/backend/src/games/reversi/tsconfig.json diff --git a/src/global.d.ts b/packages/backend/src/global.d.ts similarity index 100% rename from src/global.d.ts rename to packages/backend/src/global.d.ts diff --git a/src/index.ts b/packages/backend/src/index.ts similarity index 77% rename from src/index.ts rename to packages/backend/src/index.ts index db1b53f51b..5e4e377ab0 100644 --- a/src/index.ts +++ b/packages/backend/src/index.ts @@ -8,6 +8,4 @@ require('events').EventEmitter.defaultMaxListeners = 128; import boot from './boot/index'; -export default function() { - return boot(); -} +boot(); diff --git a/src/mfm/from-html.ts b/packages/backend/src/mfm/from-html.ts similarity index 100% rename from src/mfm/from-html.ts rename to packages/backend/src/mfm/from-html.ts diff --git a/src/mfm/to-html.ts b/packages/backend/src/mfm/to-html.ts similarity index 87% rename from src/mfm/to-html.ts rename to packages/backend/src/mfm/to-html.ts index b3678a0dda..343c76fb3e 100644 --- a/src/mfm/to-html.ts +++ b/packages/backend/src/mfm/to-html.ts @@ -3,7 +3,6 @@ import * as mfm from 'mfm-js'; import config from '@/config/index'; import { intersperse } from '@/prelude/array'; import { IMentionedRemoteUsers } from '@/models/entities/note'; -import { wellKnownServices } from '../well-known-services'; export function toHtml(nodes: mfm.MfmNode[] | null, mentionedRemoteUsers: IMentionedRemoteUsers = []) { if (nodes == null) { @@ -109,14 +108,9 @@ export function toHtml(nodes: mfm.MfmNode[] | null, mentionedRemoteUsers: IMenti mention(node) { const a = doc.createElement('a'); const { username, host, acct } = node.props; - const wellKnown = wellKnownServices.find(x => x[0] === host); - if (wellKnown) { - a.href = wellKnown[1](username); - } else { - const remoteUserInfo = mentionedRemoteUsers.find(remoteUser => remoteUser.username === username && remoteUser.host === host); - a.href = remoteUserInfo ? (remoteUserInfo.url ? remoteUserInfo.url : remoteUserInfo.uri) : `${config.url}/${acct}`; - a.className = 'u-url mention'; - } + const remoteUserInfo = mentionedRemoteUsers.find(remoteUser => remoteUser.username === username && remoteUser.host === host); + a.href = remoteUserInfo ? (remoteUserInfo.url ? remoteUserInfo.url : remoteUserInfo.uri) : `${config.url}/${acct}`; + a.className = 'u-url mention'; a.textContent = acct; return a; }, diff --git a/src/misc/antenna-cache.ts b/packages/backend/src/misc/antenna-cache.ts similarity index 100% rename from src/misc/antenna-cache.ts rename to packages/backend/src/misc/antenna-cache.ts diff --git a/src/misc/api-permissions.ts b/packages/backend/src/misc/api-permissions.ts similarity index 100% rename from src/misc/api-permissions.ts rename to packages/backend/src/misc/api-permissions.ts diff --git a/src/misc/app-lock.ts b/packages/backend/src/misc/app-lock.ts similarity index 100% rename from src/misc/app-lock.ts rename to packages/backend/src/misc/app-lock.ts diff --git a/src/misc/before-shutdown.ts b/packages/backend/src/misc/before-shutdown.ts similarity index 100% rename from src/misc/before-shutdown.ts rename to packages/backend/src/misc/before-shutdown.ts diff --git a/src/misc/cache.ts b/packages/backend/src/misc/cache.ts similarity index 100% rename from src/misc/cache.ts rename to packages/backend/src/misc/cache.ts diff --git a/src/misc/cafy-id.ts b/packages/backend/src/misc/cafy-id.ts similarity index 100% rename from src/misc/cafy-id.ts rename to packages/backend/src/misc/cafy-id.ts diff --git a/src/misc/captcha.ts b/packages/backend/src/misc/captcha.ts similarity index 100% rename from src/misc/captcha.ts rename to packages/backend/src/misc/captcha.ts diff --git a/src/misc/check-hit-antenna.ts b/packages/backend/src/misc/check-hit-antenna.ts similarity index 96% rename from src/misc/check-hit-antenna.ts rename to packages/backend/src/misc/check-hit-antenna.ts index 3789054b26..e70b7429c7 100644 --- a/src/misc/check-hit-antenna.ts +++ b/packages/backend/src/misc/check-hit-antenna.ts @@ -3,7 +3,7 @@ import { Note } from '@/models/entities/note'; import { User } from '@/models/entities/user'; import { UserListJoinings, UserGroupJoinings } from '@/models/index'; import { getFullApAccount } from './convert-host'; -import { parseAcct } from '@/misc/acct'; +import * as Acct from 'misskey-js/built/acct'; import { Packed } from './schema'; /** @@ -38,7 +38,7 @@ export async function checkHitAntenna(antenna: Antenna, note: (Note | Packed<'No if (!groupUsers.includes(note.userId)) return false; } else if (antenna.src === 'users') { const accts = antenna.users.map(x => { - const { username, host } = parseAcct(x); + const { username, host } = Acct.parse(x); return getFullApAccount(username, host).toLowerCase(); }); if (!accts.includes(getFullApAccount(noteUser.username, noteUser.host).toLowerCase())) return false; diff --git a/src/misc/check-word-mute.ts b/packages/backend/src/misc/check-word-mute.ts similarity index 100% rename from src/misc/check-word-mute.ts rename to packages/backend/src/misc/check-word-mute.ts diff --git a/src/misc/content-disposition.ts b/packages/backend/src/misc/content-disposition.ts similarity index 100% rename from src/misc/content-disposition.ts rename to packages/backend/src/misc/content-disposition.ts diff --git a/src/misc/convert-host.ts b/packages/backend/src/misc/convert-host.ts similarity index 100% rename from src/misc/convert-host.ts rename to packages/backend/src/misc/convert-host.ts diff --git a/src/misc/count-same-renotes.ts b/packages/backend/src/misc/count-same-renotes.ts similarity index 100% rename from src/misc/count-same-renotes.ts rename to packages/backend/src/misc/count-same-renotes.ts diff --git a/src/misc/create-temp.ts b/packages/backend/src/misc/create-temp.ts similarity index 100% rename from src/misc/create-temp.ts rename to packages/backend/src/misc/create-temp.ts diff --git a/src/misc/detect-url-mime.ts b/packages/backend/src/misc/detect-url-mime.ts similarity index 100% rename from src/misc/detect-url-mime.ts rename to packages/backend/src/misc/detect-url-mime.ts diff --git a/src/misc/download-text-file.ts b/packages/backend/src/misc/download-text-file.ts similarity index 100% rename from src/misc/download-text-file.ts rename to packages/backend/src/misc/download-text-file.ts diff --git a/src/misc/download-url.ts b/packages/backend/src/misc/download-url.ts similarity index 100% rename from src/misc/download-url.ts rename to packages/backend/src/misc/download-url.ts diff --git a/src/misc/emoji-regex.ts b/packages/backend/src/misc/emoji-regex.ts similarity index 100% rename from src/misc/emoji-regex.ts rename to packages/backend/src/misc/emoji-regex.ts diff --git a/src/misc/extract-custom-emojis-from-mfm.ts b/packages/backend/src/misc/extract-custom-emojis-from-mfm.ts similarity index 100% rename from src/misc/extract-custom-emojis-from-mfm.ts rename to packages/backend/src/misc/extract-custom-emojis-from-mfm.ts diff --git a/src/misc/extract-hashtags.ts b/packages/backend/src/misc/extract-hashtags.ts similarity index 100% rename from src/misc/extract-hashtags.ts rename to packages/backend/src/misc/extract-hashtags.ts diff --git a/src/misc/extract-mentions.ts b/packages/backend/src/misc/extract-mentions.ts similarity index 100% rename from src/misc/extract-mentions.ts rename to packages/backend/src/misc/extract-mentions.ts diff --git a/src/misc/fetch-meta.ts b/packages/backend/src/misc/fetch-meta.ts similarity index 100% rename from src/misc/fetch-meta.ts rename to packages/backend/src/misc/fetch-meta.ts diff --git a/src/misc/fetch-proxy-account.ts b/packages/backend/src/misc/fetch-proxy-account.ts similarity index 100% rename from src/misc/fetch-proxy-account.ts rename to packages/backend/src/misc/fetch-proxy-account.ts diff --git a/src/misc/fetch.ts b/packages/backend/src/misc/fetch.ts similarity index 100% rename from src/misc/fetch.ts rename to packages/backend/src/misc/fetch.ts diff --git a/src/misc/gen-avatar.ts b/packages/backend/src/misc/gen-avatar.ts similarity index 100% rename from src/misc/gen-avatar.ts rename to packages/backend/src/misc/gen-avatar.ts diff --git a/src/misc/gen-id.ts b/packages/backend/src/misc/gen-id.ts similarity index 100% rename from src/misc/gen-id.ts rename to packages/backend/src/misc/gen-id.ts diff --git a/src/misc/gen-key-pair.ts b/packages/backend/src/misc/gen-key-pair.ts similarity index 100% rename from src/misc/gen-key-pair.ts rename to packages/backend/src/misc/gen-key-pair.ts diff --git a/src/misc/get-file-info.ts b/packages/backend/src/misc/get-file-info.ts similarity index 100% rename from src/misc/get-file-info.ts rename to packages/backend/src/misc/get-file-info.ts diff --git a/src/misc/get-note-summary.ts b/packages/backend/src/misc/get-note-summary.ts similarity index 63% rename from src/misc/get-note-summary.ts rename to packages/backend/src/misc/get-note-summary.ts index a1866fb209..d7273d1c5b 100644 --- a/src/misc/get-note-summary.ts +++ b/packages/backend/src/misc/get-note-summary.ts @@ -1,14 +1,16 @@ +import { Packed } from './schema'; + /** * 投稿を表す文字列を取得します。 * @param {*} note (packされた)投稿 */ -export const getNoteSummary = (note: any, locale: any): string => { +export const getNoteSummary = (note: Packed<'Note'>): string => { if (note.deletedAt) { - return `(${locale['deletedNote']})`; + return `(❌⛔)`; } if (note.isHidden) { - return `(${locale['invisibleNote']})`; + return `(⛔)`; } let summary = ''; @@ -22,18 +24,18 @@ export const getNoteSummary = (note: any, locale: any): string => { // ファイルが添付されているとき if ((note.files || []).length != 0) { - summary += ` (${locale['withNFiles'].replace('{n}', note.files.length)})`; + summary += ` (📎${note.files!.length})`; } // 投票が添付されているとき if (note.poll) { - summary += ` (${locale['poll']})`; + summary += ` (📊)`; } // 返信のとき if (note.replyId) { if (note.reply) { - summary += `\n\nRE: ${getNoteSummary(note.reply, locale)}`; + summary += `\n\nRE: ${getNoteSummary(note.reply)}`; } else { summary += '\n\nRE: ...'; } @@ -42,7 +44,7 @@ export const getNoteSummary = (note: any, locale: any): string => { // Renoteのとき if (note.renoteId) { if (note.renote) { - summary += `\n\nRN: ${getNoteSummary(note.renote, locale)}`; + summary += `\n\nRN: ${getNoteSummary(note.renote)}`; } else { summary += '\n\nRN: ...'; } diff --git a/src/misc/get-reaction-emoji.ts b/packages/backend/src/misc/get-reaction-emoji.ts similarity index 100% rename from src/misc/get-reaction-emoji.ts rename to packages/backend/src/misc/get-reaction-emoji.ts diff --git a/src/misc/hard-limits.ts b/packages/backend/src/misc/hard-limits.ts similarity index 100% rename from src/misc/hard-limits.ts rename to packages/backend/src/misc/hard-limits.ts diff --git a/src/misc/i18n.ts b/packages/backend/src/misc/i18n.ts similarity index 100% rename from src/misc/i18n.ts rename to packages/backend/src/misc/i18n.ts diff --git a/src/misc/id/aid.ts b/packages/backend/src/misc/id/aid.ts similarity index 100% rename from src/misc/id/aid.ts rename to packages/backend/src/misc/id/aid.ts diff --git a/src/misc/id/meid.ts b/packages/backend/src/misc/id/meid.ts similarity index 100% rename from src/misc/id/meid.ts rename to packages/backend/src/misc/id/meid.ts diff --git a/src/misc/id/meidg.ts b/packages/backend/src/misc/id/meidg.ts similarity index 100% rename from src/misc/id/meidg.ts rename to packages/backend/src/misc/id/meidg.ts diff --git a/src/misc/id/object-id.ts b/packages/backend/src/misc/id/object-id.ts similarity index 100% rename from src/misc/id/object-id.ts rename to packages/backend/src/misc/id/object-id.ts diff --git a/src/misc/identifiable-error.ts b/packages/backend/src/misc/identifiable-error.ts similarity index 100% rename from src/misc/identifiable-error.ts rename to packages/backend/src/misc/identifiable-error.ts diff --git a/src/misc/is-blocker-user-related.ts b/packages/backend/src/misc/is-blocker-user-related.ts similarity index 100% rename from src/misc/is-blocker-user-related.ts rename to packages/backend/src/misc/is-blocker-user-related.ts diff --git a/src/misc/is-duplicate-key-value-error.ts b/packages/backend/src/misc/is-duplicate-key-value-error.ts similarity index 100% rename from src/misc/is-duplicate-key-value-error.ts rename to packages/backend/src/misc/is-duplicate-key-value-error.ts diff --git a/src/misc/is-muted-user-related.ts b/packages/backend/src/misc/is-muted-user-related.ts similarity index 100% rename from src/misc/is-muted-user-related.ts rename to packages/backend/src/misc/is-muted-user-related.ts diff --git a/src/misc/is-quote.ts b/packages/backend/src/misc/is-quote.ts similarity index 100% rename from src/misc/is-quote.ts rename to packages/backend/src/misc/is-quote.ts diff --git a/src/misc/keypair-store.ts b/packages/backend/src/misc/keypair-store.ts similarity index 100% rename from src/misc/keypair-store.ts rename to packages/backend/src/misc/keypair-store.ts diff --git a/src/misc/normalize-for-search.ts b/packages/backend/src/misc/normalize-for-search.ts similarity index 100% rename from src/misc/normalize-for-search.ts rename to packages/backend/src/misc/normalize-for-search.ts diff --git a/src/misc/nyaize.ts b/packages/backend/src/misc/nyaize.ts similarity index 100% rename from src/misc/nyaize.ts rename to packages/backend/src/misc/nyaize.ts diff --git a/src/misc/populate-emojis.ts b/packages/backend/src/misc/populate-emojis.ts similarity index 100% rename from src/misc/populate-emojis.ts rename to packages/backend/src/misc/populate-emojis.ts diff --git a/src/misc/reaction-lib.ts b/packages/backend/src/misc/reaction-lib.ts similarity index 100% rename from src/misc/reaction-lib.ts rename to packages/backend/src/misc/reaction-lib.ts diff --git a/src/misc/safe-for-sql.ts b/packages/backend/src/misc/safe-for-sql.ts similarity index 100% rename from src/misc/safe-for-sql.ts rename to packages/backend/src/misc/safe-for-sql.ts diff --git a/src/misc/schema.ts b/packages/backend/src/misc/schema.ts similarity index 100% rename from src/misc/schema.ts rename to packages/backend/src/misc/schema.ts diff --git a/src/misc/secure-rndstr.ts b/packages/backend/src/misc/secure-rndstr.ts similarity index 100% rename from src/misc/secure-rndstr.ts rename to packages/backend/src/misc/secure-rndstr.ts diff --git a/src/misc/show-machine-info.ts b/packages/backend/src/misc/show-machine-info.ts similarity index 100% rename from src/misc/show-machine-info.ts rename to packages/backend/src/misc/show-machine-info.ts diff --git a/src/misc/simple-schema.ts b/packages/backend/src/misc/simple-schema.ts similarity index 100% rename from src/misc/simple-schema.ts rename to packages/backend/src/misc/simple-schema.ts diff --git a/src/misc/truncate.ts b/packages/backend/src/misc/truncate.ts similarity index 100% rename from src/misc/truncate.ts rename to packages/backend/src/misc/truncate.ts diff --git a/src/models/entities/abuse-user-report.ts b/packages/backend/src/models/entities/abuse-user-report.ts similarity index 100% rename from src/models/entities/abuse-user-report.ts rename to packages/backend/src/models/entities/abuse-user-report.ts diff --git a/src/models/entities/access-token.ts b/packages/backend/src/models/entities/access-token.ts similarity index 100% rename from src/models/entities/access-token.ts rename to packages/backend/src/models/entities/access-token.ts diff --git a/src/models/entities/ad.ts b/packages/backend/src/models/entities/ad.ts similarity index 100% rename from src/models/entities/ad.ts rename to packages/backend/src/models/entities/ad.ts diff --git a/src/models/entities/announcement-read.ts b/packages/backend/src/models/entities/announcement-read.ts similarity index 100% rename from src/models/entities/announcement-read.ts rename to packages/backend/src/models/entities/announcement-read.ts diff --git a/src/models/entities/announcement.ts b/packages/backend/src/models/entities/announcement.ts similarity index 100% rename from src/models/entities/announcement.ts rename to packages/backend/src/models/entities/announcement.ts diff --git a/src/models/entities/antenna-note.ts b/packages/backend/src/models/entities/antenna-note.ts similarity index 100% rename from src/models/entities/antenna-note.ts rename to packages/backend/src/models/entities/antenna-note.ts diff --git a/src/models/entities/antenna.ts b/packages/backend/src/models/entities/antenna.ts similarity index 100% rename from src/models/entities/antenna.ts rename to packages/backend/src/models/entities/antenna.ts diff --git a/src/models/entities/app.ts b/packages/backend/src/models/entities/app.ts similarity index 100% rename from src/models/entities/app.ts rename to packages/backend/src/models/entities/app.ts diff --git a/src/models/entities/attestation-challenge.ts b/packages/backend/src/models/entities/attestation-challenge.ts similarity index 100% rename from src/models/entities/attestation-challenge.ts rename to packages/backend/src/models/entities/attestation-challenge.ts diff --git a/src/models/entities/auth-session.ts b/packages/backend/src/models/entities/auth-session.ts similarity index 100% rename from src/models/entities/auth-session.ts rename to packages/backend/src/models/entities/auth-session.ts diff --git a/src/models/entities/blocking.ts b/packages/backend/src/models/entities/blocking.ts similarity index 100% rename from src/models/entities/blocking.ts rename to packages/backend/src/models/entities/blocking.ts diff --git a/src/models/entities/channel-following.ts b/packages/backend/src/models/entities/channel-following.ts similarity index 100% rename from src/models/entities/channel-following.ts rename to packages/backend/src/models/entities/channel-following.ts diff --git a/src/models/entities/channel-note-pining.ts b/packages/backend/src/models/entities/channel-note-pining.ts similarity index 100% rename from src/models/entities/channel-note-pining.ts rename to packages/backend/src/models/entities/channel-note-pining.ts diff --git a/src/models/entities/channel.ts b/packages/backend/src/models/entities/channel.ts similarity index 100% rename from src/models/entities/channel.ts rename to packages/backend/src/models/entities/channel.ts diff --git a/src/models/entities/clip-note.ts b/packages/backend/src/models/entities/clip-note.ts similarity index 100% rename from src/models/entities/clip-note.ts rename to packages/backend/src/models/entities/clip-note.ts diff --git a/src/models/entities/clip.ts b/packages/backend/src/models/entities/clip.ts similarity index 100% rename from src/models/entities/clip.ts rename to packages/backend/src/models/entities/clip.ts diff --git a/src/models/entities/drive-file.ts b/packages/backend/src/models/entities/drive-file.ts similarity index 100% rename from src/models/entities/drive-file.ts rename to packages/backend/src/models/entities/drive-file.ts diff --git a/src/models/entities/drive-folder.ts b/packages/backend/src/models/entities/drive-folder.ts similarity index 100% rename from src/models/entities/drive-folder.ts rename to packages/backend/src/models/entities/drive-folder.ts diff --git a/src/models/entities/emoji.ts b/packages/backend/src/models/entities/emoji.ts similarity index 100% rename from src/models/entities/emoji.ts rename to packages/backend/src/models/entities/emoji.ts diff --git a/src/models/entities/follow-request.ts b/packages/backend/src/models/entities/follow-request.ts similarity index 100% rename from src/models/entities/follow-request.ts rename to packages/backend/src/models/entities/follow-request.ts diff --git a/src/models/entities/following.ts b/packages/backend/src/models/entities/following.ts similarity index 100% rename from src/models/entities/following.ts rename to packages/backend/src/models/entities/following.ts diff --git a/src/models/entities/gallery-like.ts b/packages/backend/src/models/entities/gallery-like.ts similarity index 100% rename from src/models/entities/gallery-like.ts rename to packages/backend/src/models/entities/gallery-like.ts diff --git a/src/models/entities/gallery-post.ts b/packages/backend/src/models/entities/gallery-post.ts similarity index 100% rename from src/models/entities/gallery-post.ts rename to packages/backend/src/models/entities/gallery-post.ts diff --git a/src/models/entities/games/reversi/game.ts b/packages/backend/src/models/entities/games/reversi/game.ts similarity index 100% rename from src/models/entities/games/reversi/game.ts rename to packages/backend/src/models/entities/games/reversi/game.ts diff --git a/src/models/entities/games/reversi/matching.ts b/packages/backend/src/models/entities/games/reversi/matching.ts similarity index 100% rename from src/models/entities/games/reversi/matching.ts rename to packages/backend/src/models/entities/games/reversi/matching.ts diff --git a/src/models/entities/hashtag.ts b/packages/backend/src/models/entities/hashtag.ts similarity index 100% rename from src/models/entities/hashtag.ts rename to packages/backend/src/models/entities/hashtag.ts diff --git a/src/models/entities/instance.ts b/packages/backend/src/models/entities/instance.ts similarity index 100% rename from src/models/entities/instance.ts rename to packages/backend/src/models/entities/instance.ts diff --git a/src/models/entities/messaging-message.ts b/packages/backend/src/models/entities/messaging-message.ts similarity index 100% rename from src/models/entities/messaging-message.ts rename to packages/backend/src/models/entities/messaging-message.ts diff --git a/src/models/entities/meta.ts b/packages/backend/src/models/entities/meta.ts similarity index 100% rename from src/models/entities/meta.ts rename to packages/backend/src/models/entities/meta.ts diff --git a/src/models/entities/moderation-log.ts b/packages/backend/src/models/entities/moderation-log.ts similarity index 100% rename from src/models/entities/moderation-log.ts rename to packages/backend/src/models/entities/moderation-log.ts diff --git a/src/models/entities/muted-note.ts b/packages/backend/src/models/entities/muted-note.ts similarity index 100% rename from src/models/entities/muted-note.ts rename to packages/backend/src/models/entities/muted-note.ts diff --git a/src/models/entities/muting.ts b/packages/backend/src/models/entities/muting.ts similarity index 100% rename from src/models/entities/muting.ts rename to packages/backend/src/models/entities/muting.ts diff --git a/src/models/entities/note-favorite.ts b/packages/backend/src/models/entities/note-favorite.ts similarity index 100% rename from src/models/entities/note-favorite.ts rename to packages/backend/src/models/entities/note-favorite.ts diff --git a/src/models/entities/note-reaction.ts b/packages/backend/src/models/entities/note-reaction.ts similarity index 100% rename from src/models/entities/note-reaction.ts rename to packages/backend/src/models/entities/note-reaction.ts diff --git a/src/models/entities/note-thread-muting.ts b/packages/backend/src/models/entities/note-thread-muting.ts similarity index 100% rename from src/models/entities/note-thread-muting.ts rename to packages/backend/src/models/entities/note-thread-muting.ts diff --git a/src/models/entities/note-unread.ts b/packages/backend/src/models/entities/note-unread.ts similarity index 100% rename from src/models/entities/note-unread.ts rename to packages/backend/src/models/entities/note-unread.ts diff --git a/src/models/entities/note-watching.ts b/packages/backend/src/models/entities/note-watching.ts similarity index 100% rename from src/models/entities/note-watching.ts rename to packages/backend/src/models/entities/note-watching.ts diff --git a/src/models/entities/note.ts b/packages/backend/src/models/entities/note.ts similarity index 100% rename from src/models/entities/note.ts rename to packages/backend/src/models/entities/note.ts diff --git a/src/models/entities/notification.ts b/packages/backend/src/models/entities/notification.ts similarity index 100% rename from src/models/entities/notification.ts rename to packages/backend/src/models/entities/notification.ts diff --git a/src/models/entities/page-like.ts b/packages/backend/src/models/entities/page-like.ts similarity index 100% rename from src/models/entities/page-like.ts rename to packages/backend/src/models/entities/page-like.ts diff --git a/src/models/entities/page.ts b/packages/backend/src/models/entities/page.ts similarity index 100% rename from src/models/entities/page.ts rename to packages/backend/src/models/entities/page.ts diff --git a/src/models/entities/password-reset-request.ts b/packages/backend/src/models/entities/password-reset-request.ts similarity index 100% rename from src/models/entities/password-reset-request.ts rename to packages/backend/src/models/entities/password-reset-request.ts diff --git a/src/models/entities/poll-vote.ts b/packages/backend/src/models/entities/poll-vote.ts similarity index 100% rename from src/models/entities/poll-vote.ts rename to packages/backend/src/models/entities/poll-vote.ts diff --git a/src/models/entities/poll.ts b/packages/backend/src/models/entities/poll.ts similarity index 100% rename from src/models/entities/poll.ts rename to packages/backend/src/models/entities/poll.ts diff --git a/src/models/entities/promo-note.ts b/packages/backend/src/models/entities/promo-note.ts similarity index 100% rename from src/models/entities/promo-note.ts rename to packages/backend/src/models/entities/promo-note.ts diff --git a/src/models/entities/promo-read.ts b/packages/backend/src/models/entities/promo-read.ts similarity index 100% rename from src/models/entities/promo-read.ts rename to packages/backend/src/models/entities/promo-read.ts diff --git a/src/models/entities/registration-tickets.ts b/packages/backend/src/models/entities/registration-tickets.ts similarity index 100% rename from src/models/entities/registration-tickets.ts rename to packages/backend/src/models/entities/registration-tickets.ts diff --git a/src/models/entities/registry-item.ts b/packages/backend/src/models/entities/registry-item.ts similarity index 100% rename from src/models/entities/registry-item.ts rename to packages/backend/src/models/entities/registry-item.ts diff --git a/src/models/entities/relay.ts b/packages/backend/src/models/entities/relay.ts similarity index 100% rename from src/models/entities/relay.ts rename to packages/backend/src/models/entities/relay.ts diff --git a/src/models/entities/signin.ts b/packages/backend/src/models/entities/signin.ts similarity index 100% rename from src/models/entities/signin.ts rename to packages/backend/src/models/entities/signin.ts diff --git a/src/models/entities/sw-subscription.ts b/packages/backend/src/models/entities/sw-subscription.ts similarity index 100% rename from src/models/entities/sw-subscription.ts rename to packages/backend/src/models/entities/sw-subscription.ts diff --git a/src/models/entities/used-username.ts b/packages/backend/src/models/entities/used-username.ts similarity index 100% rename from src/models/entities/used-username.ts rename to packages/backend/src/models/entities/used-username.ts diff --git a/src/models/entities/user-group-invitation.ts b/packages/backend/src/models/entities/user-group-invitation.ts similarity index 100% rename from src/models/entities/user-group-invitation.ts rename to packages/backend/src/models/entities/user-group-invitation.ts diff --git a/src/models/entities/user-group-joining.ts b/packages/backend/src/models/entities/user-group-joining.ts similarity index 100% rename from src/models/entities/user-group-joining.ts rename to packages/backend/src/models/entities/user-group-joining.ts diff --git a/src/models/entities/user-group.ts b/packages/backend/src/models/entities/user-group.ts similarity index 100% rename from src/models/entities/user-group.ts rename to packages/backend/src/models/entities/user-group.ts diff --git a/src/models/entities/user-keypair.ts b/packages/backend/src/models/entities/user-keypair.ts similarity index 100% rename from src/models/entities/user-keypair.ts rename to packages/backend/src/models/entities/user-keypair.ts diff --git a/src/models/entities/user-list-joining.ts b/packages/backend/src/models/entities/user-list-joining.ts similarity index 100% rename from src/models/entities/user-list-joining.ts rename to packages/backend/src/models/entities/user-list-joining.ts diff --git a/src/models/entities/user-list.ts b/packages/backend/src/models/entities/user-list.ts similarity index 100% rename from src/models/entities/user-list.ts rename to packages/backend/src/models/entities/user-list.ts diff --git a/src/models/entities/user-note-pining.ts b/packages/backend/src/models/entities/user-note-pining.ts similarity index 100% rename from src/models/entities/user-note-pining.ts rename to packages/backend/src/models/entities/user-note-pining.ts diff --git a/src/models/entities/user-pending.ts b/packages/backend/src/models/entities/user-pending.ts similarity index 100% rename from src/models/entities/user-pending.ts rename to packages/backend/src/models/entities/user-pending.ts diff --git a/src/models/entities/user-profile.ts b/packages/backend/src/models/entities/user-profile.ts similarity index 100% rename from src/models/entities/user-profile.ts rename to packages/backend/src/models/entities/user-profile.ts diff --git a/src/models/entities/user-publickey.ts b/packages/backend/src/models/entities/user-publickey.ts similarity index 100% rename from src/models/entities/user-publickey.ts rename to packages/backend/src/models/entities/user-publickey.ts diff --git a/src/models/entities/user-security-key.ts b/packages/backend/src/models/entities/user-security-key.ts similarity index 100% rename from src/models/entities/user-security-key.ts rename to packages/backend/src/models/entities/user-security-key.ts diff --git a/src/models/entities/user.ts b/packages/backend/src/models/entities/user.ts similarity index 100% rename from src/models/entities/user.ts rename to packages/backend/src/models/entities/user.ts diff --git a/src/models/id.ts b/packages/backend/src/models/id.ts similarity index 100% rename from src/models/id.ts rename to packages/backend/src/models/id.ts diff --git a/src/models/index.ts b/packages/backend/src/models/index.ts similarity index 100% rename from src/models/index.ts rename to packages/backend/src/models/index.ts diff --git a/src/models/repositories/abuse-user-report.ts b/packages/backend/src/models/repositories/abuse-user-report.ts similarity index 100% rename from src/models/repositories/abuse-user-report.ts rename to packages/backend/src/models/repositories/abuse-user-report.ts diff --git a/src/models/repositories/antenna.ts b/packages/backend/src/models/repositories/antenna.ts similarity index 100% rename from src/models/repositories/antenna.ts rename to packages/backend/src/models/repositories/antenna.ts diff --git a/src/models/repositories/app.ts b/packages/backend/src/models/repositories/app.ts similarity index 100% rename from src/models/repositories/app.ts rename to packages/backend/src/models/repositories/app.ts diff --git a/src/models/repositories/auth-session.ts b/packages/backend/src/models/repositories/auth-session.ts similarity index 100% rename from src/models/repositories/auth-session.ts rename to packages/backend/src/models/repositories/auth-session.ts diff --git a/src/models/repositories/blocking.ts b/packages/backend/src/models/repositories/blocking.ts similarity index 100% rename from src/models/repositories/blocking.ts rename to packages/backend/src/models/repositories/blocking.ts diff --git a/src/models/repositories/channel.ts b/packages/backend/src/models/repositories/channel.ts similarity index 100% rename from src/models/repositories/channel.ts rename to packages/backend/src/models/repositories/channel.ts diff --git a/src/models/repositories/clip.ts b/packages/backend/src/models/repositories/clip.ts similarity index 100% rename from src/models/repositories/clip.ts rename to packages/backend/src/models/repositories/clip.ts diff --git a/src/models/repositories/drive-file.ts b/packages/backend/src/models/repositories/drive-file.ts similarity index 100% rename from src/models/repositories/drive-file.ts rename to packages/backend/src/models/repositories/drive-file.ts diff --git a/src/models/repositories/drive-folder.ts b/packages/backend/src/models/repositories/drive-folder.ts similarity index 100% rename from src/models/repositories/drive-folder.ts rename to packages/backend/src/models/repositories/drive-folder.ts diff --git a/src/models/repositories/emoji.ts b/packages/backend/src/models/repositories/emoji.ts similarity index 100% rename from src/models/repositories/emoji.ts rename to packages/backend/src/models/repositories/emoji.ts diff --git a/src/models/repositories/federation-instance.ts b/packages/backend/src/models/repositories/federation-instance.ts similarity index 100% rename from src/models/repositories/federation-instance.ts rename to packages/backend/src/models/repositories/federation-instance.ts diff --git a/src/models/repositories/follow-request.ts b/packages/backend/src/models/repositories/follow-request.ts similarity index 100% rename from src/models/repositories/follow-request.ts rename to packages/backend/src/models/repositories/follow-request.ts diff --git a/src/models/repositories/following.ts b/packages/backend/src/models/repositories/following.ts similarity index 100% rename from src/models/repositories/following.ts rename to packages/backend/src/models/repositories/following.ts diff --git a/src/models/repositories/gallery-like.ts b/packages/backend/src/models/repositories/gallery-like.ts similarity index 100% rename from src/models/repositories/gallery-like.ts rename to packages/backend/src/models/repositories/gallery-like.ts diff --git a/src/models/repositories/gallery-post.ts b/packages/backend/src/models/repositories/gallery-post.ts similarity index 100% rename from src/models/repositories/gallery-post.ts rename to packages/backend/src/models/repositories/gallery-post.ts diff --git a/src/models/repositories/games/reversi/game.ts b/packages/backend/src/models/repositories/games/reversi/game.ts similarity index 100% rename from src/models/repositories/games/reversi/game.ts rename to packages/backend/src/models/repositories/games/reversi/game.ts diff --git a/src/models/repositories/games/reversi/matching.ts b/packages/backend/src/models/repositories/games/reversi/matching.ts similarity index 100% rename from src/models/repositories/games/reversi/matching.ts rename to packages/backend/src/models/repositories/games/reversi/matching.ts diff --git a/src/models/repositories/hashtag.ts b/packages/backend/src/models/repositories/hashtag.ts similarity index 100% rename from src/models/repositories/hashtag.ts rename to packages/backend/src/models/repositories/hashtag.ts diff --git a/src/models/repositories/messaging-message.ts b/packages/backend/src/models/repositories/messaging-message.ts similarity index 100% rename from src/models/repositories/messaging-message.ts rename to packages/backend/src/models/repositories/messaging-message.ts diff --git a/src/models/repositories/moderation-logs.ts b/packages/backend/src/models/repositories/moderation-logs.ts similarity index 100% rename from src/models/repositories/moderation-logs.ts rename to packages/backend/src/models/repositories/moderation-logs.ts diff --git a/src/models/repositories/muting.ts b/packages/backend/src/models/repositories/muting.ts similarity index 100% rename from src/models/repositories/muting.ts rename to packages/backend/src/models/repositories/muting.ts diff --git a/src/models/repositories/note-favorite.ts b/packages/backend/src/models/repositories/note-favorite.ts similarity index 100% rename from src/models/repositories/note-favorite.ts rename to packages/backend/src/models/repositories/note-favorite.ts diff --git a/src/models/repositories/note-reaction.ts b/packages/backend/src/models/repositories/note-reaction.ts similarity index 100% rename from src/models/repositories/note-reaction.ts rename to packages/backend/src/models/repositories/note-reaction.ts diff --git a/src/models/repositories/note.ts b/packages/backend/src/models/repositories/note.ts similarity index 100% rename from src/models/repositories/note.ts rename to packages/backend/src/models/repositories/note.ts diff --git a/src/models/repositories/notification.ts b/packages/backend/src/models/repositories/notification.ts similarity index 100% rename from src/models/repositories/notification.ts rename to packages/backend/src/models/repositories/notification.ts diff --git a/src/models/repositories/page-like.ts b/packages/backend/src/models/repositories/page-like.ts similarity index 100% rename from src/models/repositories/page-like.ts rename to packages/backend/src/models/repositories/page-like.ts diff --git a/src/models/repositories/page.ts b/packages/backend/src/models/repositories/page.ts similarity index 100% rename from src/models/repositories/page.ts rename to packages/backend/src/models/repositories/page.ts diff --git a/src/models/repositories/queue.ts b/packages/backend/src/models/repositories/queue.ts similarity index 100% rename from src/models/repositories/queue.ts rename to packages/backend/src/models/repositories/queue.ts diff --git a/src/models/repositories/relay.ts b/packages/backend/src/models/repositories/relay.ts similarity index 100% rename from src/models/repositories/relay.ts rename to packages/backend/src/models/repositories/relay.ts diff --git a/src/models/repositories/signin.ts b/packages/backend/src/models/repositories/signin.ts similarity index 100% rename from src/models/repositories/signin.ts rename to packages/backend/src/models/repositories/signin.ts diff --git a/src/models/repositories/user-group-invitation.ts b/packages/backend/src/models/repositories/user-group-invitation.ts similarity index 100% rename from src/models/repositories/user-group-invitation.ts rename to packages/backend/src/models/repositories/user-group-invitation.ts diff --git a/src/models/repositories/user-group.ts b/packages/backend/src/models/repositories/user-group.ts similarity index 100% rename from src/models/repositories/user-group.ts rename to packages/backend/src/models/repositories/user-group.ts diff --git a/src/models/repositories/user-list.ts b/packages/backend/src/models/repositories/user-list.ts similarity index 100% rename from src/models/repositories/user-list.ts rename to packages/backend/src/models/repositories/user-list.ts diff --git a/src/models/repositories/user.ts b/packages/backend/src/models/repositories/user.ts similarity index 100% rename from src/models/repositories/user.ts rename to packages/backend/src/models/repositories/user.ts diff --git a/src/prelude/README.md b/packages/backend/src/prelude/README.md similarity index 100% rename from src/prelude/README.md rename to packages/backend/src/prelude/README.md diff --git a/src/prelude/array.ts b/packages/backend/src/prelude/array.ts similarity index 100% rename from src/prelude/array.ts rename to packages/backend/src/prelude/array.ts diff --git a/src/prelude/await-all.ts b/packages/backend/src/prelude/await-all.ts similarity index 100% rename from src/prelude/await-all.ts rename to packages/backend/src/prelude/await-all.ts diff --git a/src/prelude/math.ts b/packages/backend/src/prelude/math.ts similarity index 100% rename from src/prelude/math.ts rename to packages/backend/src/prelude/math.ts diff --git a/src/prelude/maybe.ts b/packages/backend/src/prelude/maybe.ts similarity index 100% rename from src/prelude/maybe.ts rename to packages/backend/src/prelude/maybe.ts diff --git a/src/prelude/relation.ts b/packages/backend/src/prelude/relation.ts similarity index 100% rename from src/prelude/relation.ts rename to packages/backend/src/prelude/relation.ts diff --git a/src/prelude/string.ts b/packages/backend/src/prelude/string.ts similarity index 100% rename from src/prelude/string.ts rename to packages/backend/src/prelude/string.ts diff --git a/src/prelude/symbol.ts b/packages/backend/src/prelude/symbol.ts similarity index 100% rename from src/prelude/symbol.ts rename to packages/backend/src/prelude/symbol.ts diff --git a/src/prelude/time.ts b/packages/backend/src/prelude/time.ts similarity index 100% rename from src/prelude/time.ts rename to packages/backend/src/prelude/time.ts diff --git a/src/prelude/url.ts b/packages/backend/src/prelude/url.ts similarity index 100% rename from src/prelude/url.ts rename to packages/backend/src/prelude/url.ts diff --git a/src/prelude/xml.ts b/packages/backend/src/prelude/xml.ts similarity index 100% rename from src/prelude/xml.ts rename to packages/backend/src/prelude/xml.ts diff --git a/src/queue/get-job-info.ts b/packages/backend/src/queue/get-job-info.ts similarity index 100% rename from src/queue/get-job-info.ts rename to packages/backend/src/queue/get-job-info.ts diff --git a/src/queue/index.ts b/packages/backend/src/queue/index.ts similarity index 100% rename from src/queue/index.ts rename to packages/backend/src/queue/index.ts diff --git a/src/queue/initialize.ts b/packages/backend/src/queue/initialize.ts similarity index 100% rename from src/queue/initialize.ts rename to packages/backend/src/queue/initialize.ts diff --git a/src/queue/logger.ts b/packages/backend/src/queue/logger.ts similarity index 100% rename from src/queue/logger.ts rename to packages/backend/src/queue/logger.ts diff --git a/src/queue/processors/db/delete-account.ts b/packages/backend/src/queue/processors/db/delete-account.ts similarity index 100% rename from src/queue/processors/db/delete-account.ts rename to packages/backend/src/queue/processors/db/delete-account.ts diff --git a/src/queue/processors/db/delete-drive-files.ts b/packages/backend/src/queue/processors/db/delete-drive-files.ts similarity index 100% rename from src/queue/processors/db/delete-drive-files.ts rename to packages/backend/src/queue/processors/db/delete-drive-files.ts diff --git a/src/queue/processors/db/export-blocking.ts b/packages/backend/src/queue/processors/db/export-blocking.ts similarity index 100% rename from src/queue/processors/db/export-blocking.ts rename to packages/backend/src/queue/processors/db/export-blocking.ts diff --git a/src/queue/processors/db/export-following.ts b/packages/backend/src/queue/processors/db/export-following.ts similarity index 100% rename from src/queue/processors/db/export-following.ts rename to packages/backend/src/queue/processors/db/export-following.ts diff --git a/src/queue/processors/db/export-mute.ts b/packages/backend/src/queue/processors/db/export-mute.ts similarity index 100% rename from src/queue/processors/db/export-mute.ts rename to packages/backend/src/queue/processors/db/export-mute.ts diff --git a/src/queue/processors/db/export-notes.ts b/packages/backend/src/queue/processors/db/export-notes.ts similarity index 100% rename from src/queue/processors/db/export-notes.ts rename to packages/backend/src/queue/processors/db/export-notes.ts diff --git a/src/queue/processors/db/export-user-lists.ts b/packages/backend/src/queue/processors/db/export-user-lists.ts similarity index 100% rename from src/queue/processors/db/export-user-lists.ts rename to packages/backend/src/queue/processors/db/export-user-lists.ts diff --git a/src/queue/processors/db/import-blocking.ts b/packages/backend/src/queue/processors/db/import-blocking.ts similarity index 94% rename from src/queue/processors/db/import-blocking.ts rename to packages/backend/src/queue/processors/db/import-blocking.ts index 9951da669d..2e77107034 100644 --- a/src/queue/processors/db/import-blocking.ts +++ b/packages/backend/src/queue/processors/db/import-blocking.ts @@ -1,7 +1,7 @@ import * as Bull from 'bull'; import { queueLogger } from '../../logger'; -import { parseAcct } from '@/misc/acct'; +import * as Acct from 'misskey-js/built/acct'; import { resolveUser } from '@/remote/resolve-user'; import { downloadTextFile } from '@/misc/download-text-file'; import { isSelfHost, toPuny } from '@/misc/convert-host'; @@ -37,7 +37,7 @@ export async function importBlocking(job: Bull.Job, done: a try { const acct = line.split(',')[0].trim(); - const { username, host } = parseAcct(acct); + const { username, host } = Acct.parse(acct); let target = isSelfHost(host!) ? await Users.findOne({ host: null, diff --git a/src/queue/processors/db/import-following.ts b/packages/backend/src/queue/processors/db/import-following.ts similarity index 94% rename from src/queue/processors/db/import-following.ts rename to packages/backend/src/queue/processors/db/import-following.ts index 3d7b7ea404..2bd079e4bc 100644 --- a/src/queue/processors/db/import-following.ts +++ b/packages/backend/src/queue/processors/db/import-following.ts @@ -2,7 +2,7 @@ import * as Bull from 'bull'; import { queueLogger } from '../../logger'; import follow from '@/services/following/create'; -import { parseAcct } from '@/misc/acct'; +import * as Acct from 'misskey-js/built/acct'; import { resolveUser } from '@/remote/resolve-user'; import { downloadTextFile } from '@/misc/download-text-file'; import { isSelfHost, toPuny } from '@/misc/convert-host'; @@ -37,7 +37,7 @@ export async function importFollowing(job: Bull.Job, done: try { const acct = line.split(',')[0].trim(); - const { username, host } = parseAcct(acct); + const { username, host } = Acct.parse(acct); let target = isSelfHost(host!) ? await Users.findOne({ host: null, diff --git a/src/queue/processors/db/import-muting.ts b/packages/backend/src/queue/processors/db/import-muting.ts similarity index 95% rename from src/queue/processors/db/import-muting.ts rename to packages/backend/src/queue/processors/db/import-muting.ts index 798f03a627..8060980625 100644 --- a/src/queue/processors/db/import-muting.ts +++ b/packages/backend/src/queue/processors/db/import-muting.ts @@ -1,7 +1,7 @@ import * as Bull from 'bull'; import { queueLogger } from '../../logger'; -import { parseAcct } from '@/misc/acct'; +import * as Acct from 'misskey-js/built/acct'; import { resolveUser } from '@/remote/resolve-user'; import { downloadTextFile } from '@/misc/download-text-file'; import { isSelfHost, toPuny } from '@/misc/convert-host'; @@ -38,7 +38,7 @@ export async function importMuting(job: Bull.Job, done: any try { const acct = line.split(',')[0].trim(); - const { username, host } = parseAcct(acct); + const { username, host } = Acct.parse(acct); let target = isSelfHost(host!) ? await Users.findOne({ host: null, diff --git a/src/queue/processors/db/import-user-lists.ts b/packages/backend/src/queue/processors/db/import-user-lists.ts similarity index 94% rename from src/queue/processors/db/import-user-lists.ts rename to packages/backend/src/queue/processors/db/import-user-lists.ts index 3b8c13262a..46b728b387 100644 --- a/src/queue/processors/db/import-user-lists.ts +++ b/packages/backend/src/queue/processors/db/import-user-lists.ts @@ -1,7 +1,7 @@ import * as Bull from 'bull'; import { queueLogger } from '../../logger'; -import { parseAcct } from '@/misc/acct'; +import * as Acct from 'misskey-js/built/acct'; import { resolveUser } from '@/remote/resolve-user'; import { pushUserToUserList } from '@/services/user-list/push'; import { downloadTextFile } from '@/misc/download-text-file'; @@ -38,7 +38,7 @@ export async function importUserLists(job: Bull.Job, done: try { const listName = line.split(',')[0].trim(); - const { username, host } = parseAcct(line.split(',')[1].trim()); + const { username, host } = Acct.parse(line.split(',')[1].trim()); let list = await UserLists.findOne({ userId: user.id, diff --git a/src/queue/processors/db/index.ts b/packages/backend/src/queue/processors/db/index.ts similarity index 100% rename from src/queue/processors/db/index.ts rename to packages/backend/src/queue/processors/db/index.ts diff --git a/src/queue/processors/deliver.ts b/packages/backend/src/queue/processors/deliver.ts similarity index 100% rename from src/queue/processors/deliver.ts rename to packages/backend/src/queue/processors/deliver.ts diff --git a/src/queue/processors/inbox.ts b/packages/backend/src/queue/processors/inbox.ts similarity index 100% rename from src/queue/processors/inbox.ts rename to packages/backend/src/queue/processors/inbox.ts diff --git a/src/queue/processors/object-storage/clean-remote-files.ts b/packages/backend/src/queue/processors/object-storage/clean-remote-files.ts similarity index 100% rename from src/queue/processors/object-storage/clean-remote-files.ts rename to packages/backend/src/queue/processors/object-storage/clean-remote-files.ts diff --git a/src/queue/processors/object-storage/delete-file.ts b/packages/backend/src/queue/processors/object-storage/delete-file.ts similarity index 100% rename from src/queue/processors/object-storage/delete-file.ts rename to packages/backend/src/queue/processors/object-storage/delete-file.ts diff --git a/src/queue/processors/object-storage/index.ts b/packages/backend/src/queue/processors/object-storage/index.ts similarity index 100% rename from src/queue/processors/object-storage/index.ts rename to packages/backend/src/queue/processors/object-storage/index.ts diff --git a/src/queue/processors/system/index.ts b/packages/backend/src/queue/processors/system/index.ts similarity index 100% rename from src/queue/processors/system/index.ts rename to packages/backend/src/queue/processors/system/index.ts diff --git a/src/queue/processors/system/resync-charts.ts b/packages/backend/src/queue/processors/system/resync-charts.ts similarity index 100% rename from src/queue/processors/system/resync-charts.ts rename to packages/backend/src/queue/processors/system/resync-charts.ts diff --git a/src/queue/queues.ts b/packages/backend/src/queue/queues.ts similarity index 100% rename from src/queue/queues.ts rename to packages/backend/src/queue/queues.ts diff --git a/src/queue/types.ts b/packages/backend/src/queue/types.ts similarity index 100% rename from src/queue/types.ts rename to packages/backend/src/queue/types.ts diff --git a/src/remote/activitypub/ap-request.ts b/packages/backend/src/remote/activitypub/ap-request.ts similarity index 100% rename from src/remote/activitypub/ap-request.ts rename to packages/backend/src/remote/activitypub/ap-request.ts diff --git a/src/remote/activitypub/audience.ts b/packages/backend/src/remote/activitypub/audience.ts similarity index 100% rename from src/remote/activitypub/audience.ts rename to packages/backend/src/remote/activitypub/audience.ts diff --git a/src/remote/activitypub/db-resolver.ts b/packages/backend/src/remote/activitypub/db-resolver.ts similarity index 100% rename from src/remote/activitypub/db-resolver.ts rename to packages/backend/src/remote/activitypub/db-resolver.ts diff --git a/src/remote/activitypub/deliver-manager.ts b/packages/backend/src/remote/activitypub/deliver-manager.ts similarity index 100% rename from src/remote/activitypub/deliver-manager.ts rename to packages/backend/src/remote/activitypub/deliver-manager.ts diff --git a/src/remote/activitypub/kernel/accept/follow.ts b/packages/backend/src/remote/activitypub/kernel/accept/follow.ts similarity index 100% rename from src/remote/activitypub/kernel/accept/follow.ts rename to packages/backend/src/remote/activitypub/kernel/accept/follow.ts diff --git a/src/remote/activitypub/kernel/accept/index.ts b/packages/backend/src/remote/activitypub/kernel/accept/index.ts similarity index 100% rename from src/remote/activitypub/kernel/accept/index.ts rename to packages/backend/src/remote/activitypub/kernel/accept/index.ts diff --git a/src/remote/activitypub/kernel/add/index.ts b/packages/backend/src/remote/activitypub/kernel/add/index.ts similarity index 100% rename from src/remote/activitypub/kernel/add/index.ts rename to packages/backend/src/remote/activitypub/kernel/add/index.ts diff --git a/src/remote/activitypub/kernel/announce/index.ts b/packages/backend/src/remote/activitypub/kernel/announce/index.ts similarity index 100% rename from src/remote/activitypub/kernel/announce/index.ts rename to packages/backend/src/remote/activitypub/kernel/announce/index.ts diff --git a/src/remote/activitypub/kernel/announce/note.ts b/packages/backend/src/remote/activitypub/kernel/announce/note.ts similarity index 100% rename from src/remote/activitypub/kernel/announce/note.ts rename to packages/backend/src/remote/activitypub/kernel/announce/note.ts diff --git a/src/remote/activitypub/kernel/block/index.ts b/packages/backend/src/remote/activitypub/kernel/block/index.ts similarity index 100% rename from src/remote/activitypub/kernel/block/index.ts rename to packages/backend/src/remote/activitypub/kernel/block/index.ts diff --git a/src/remote/activitypub/kernel/create/index.ts b/packages/backend/src/remote/activitypub/kernel/create/index.ts similarity index 100% rename from src/remote/activitypub/kernel/create/index.ts rename to packages/backend/src/remote/activitypub/kernel/create/index.ts diff --git a/src/remote/activitypub/kernel/create/note.ts b/packages/backend/src/remote/activitypub/kernel/create/note.ts similarity index 100% rename from src/remote/activitypub/kernel/create/note.ts rename to packages/backend/src/remote/activitypub/kernel/create/note.ts diff --git a/src/remote/activitypub/kernel/delete/actor.ts b/packages/backend/src/remote/activitypub/kernel/delete/actor.ts similarity index 100% rename from src/remote/activitypub/kernel/delete/actor.ts rename to packages/backend/src/remote/activitypub/kernel/delete/actor.ts diff --git a/src/remote/activitypub/kernel/delete/index.ts b/packages/backend/src/remote/activitypub/kernel/delete/index.ts similarity index 100% rename from src/remote/activitypub/kernel/delete/index.ts rename to packages/backend/src/remote/activitypub/kernel/delete/index.ts diff --git a/src/remote/activitypub/kernel/delete/note.ts b/packages/backend/src/remote/activitypub/kernel/delete/note.ts similarity index 100% rename from src/remote/activitypub/kernel/delete/note.ts rename to packages/backend/src/remote/activitypub/kernel/delete/note.ts diff --git a/src/remote/activitypub/kernel/flag/index.ts b/packages/backend/src/remote/activitypub/kernel/flag/index.ts similarity index 100% rename from src/remote/activitypub/kernel/flag/index.ts rename to packages/backend/src/remote/activitypub/kernel/flag/index.ts diff --git a/src/remote/activitypub/kernel/follow.ts b/packages/backend/src/remote/activitypub/kernel/follow.ts similarity index 100% rename from src/remote/activitypub/kernel/follow.ts rename to packages/backend/src/remote/activitypub/kernel/follow.ts diff --git a/src/remote/activitypub/kernel/index.ts b/packages/backend/src/remote/activitypub/kernel/index.ts similarity index 100% rename from src/remote/activitypub/kernel/index.ts rename to packages/backend/src/remote/activitypub/kernel/index.ts diff --git a/src/remote/activitypub/kernel/like.ts b/packages/backend/src/remote/activitypub/kernel/like.ts similarity index 100% rename from src/remote/activitypub/kernel/like.ts rename to packages/backend/src/remote/activitypub/kernel/like.ts diff --git a/src/remote/activitypub/kernel/move/index.ts b/packages/backend/src/remote/activitypub/kernel/move/index.ts similarity index 100% rename from src/remote/activitypub/kernel/move/index.ts rename to packages/backend/src/remote/activitypub/kernel/move/index.ts diff --git a/src/remote/activitypub/kernel/read.ts b/packages/backend/src/remote/activitypub/kernel/read.ts similarity index 100% rename from src/remote/activitypub/kernel/read.ts rename to packages/backend/src/remote/activitypub/kernel/read.ts diff --git a/src/remote/activitypub/kernel/reject/follow.ts b/packages/backend/src/remote/activitypub/kernel/reject/follow.ts similarity index 100% rename from src/remote/activitypub/kernel/reject/follow.ts rename to packages/backend/src/remote/activitypub/kernel/reject/follow.ts diff --git a/src/remote/activitypub/kernel/reject/index.ts b/packages/backend/src/remote/activitypub/kernel/reject/index.ts similarity index 100% rename from src/remote/activitypub/kernel/reject/index.ts rename to packages/backend/src/remote/activitypub/kernel/reject/index.ts diff --git a/src/remote/activitypub/kernel/remove/index.ts b/packages/backend/src/remote/activitypub/kernel/remove/index.ts similarity index 100% rename from src/remote/activitypub/kernel/remove/index.ts rename to packages/backend/src/remote/activitypub/kernel/remove/index.ts diff --git a/src/remote/activitypub/kernel/undo/announce.ts b/packages/backend/src/remote/activitypub/kernel/undo/announce.ts similarity index 100% rename from src/remote/activitypub/kernel/undo/announce.ts rename to packages/backend/src/remote/activitypub/kernel/undo/announce.ts diff --git a/src/remote/activitypub/kernel/undo/block.ts b/packages/backend/src/remote/activitypub/kernel/undo/block.ts similarity index 100% rename from src/remote/activitypub/kernel/undo/block.ts rename to packages/backend/src/remote/activitypub/kernel/undo/block.ts diff --git a/src/remote/activitypub/kernel/undo/follow.ts b/packages/backend/src/remote/activitypub/kernel/undo/follow.ts similarity index 100% rename from src/remote/activitypub/kernel/undo/follow.ts rename to packages/backend/src/remote/activitypub/kernel/undo/follow.ts diff --git a/src/remote/activitypub/kernel/undo/index.ts b/packages/backend/src/remote/activitypub/kernel/undo/index.ts similarity index 100% rename from src/remote/activitypub/kernel/undo/index.ts rename to packages/backend/src/remote/activitypub/kernel/undo/index.ts diff --git a/src/remote/activitypub/kernel/undo/like.ts b/packages/backend/src/remote/activitypub/kernel/undo/like.ts similarity index 100% rename from src/remote/activitypub/kernel/undo/like.ts rename to packages/backend/src/remote/activitypub/kernel/undo/like.ts diff --git a/src/remote/activitypub/kernel/update/index.ts b/packages/backend/src/remote/activitypub/kernel/update/index.ts similarity index 100% rename from src/remote/activitypub/kernel/update/index.ts rename to packages/backend/src/remote/activitypub/kernel/update/index.ts diff --git a/src/remote/activitypub/logger.ts b/packages/backend/src/remote/activitypub/logger.ts similarity index 100% rename from src/remote/activitypub/logger.ts rename to packages/backend/src/remote/activitypub/logger.ts diff --git a/src/remote/activitypub/misc/contexts.ts b/packages/backend/src/remote/activitypub/misc/contexts.ts similarity index 100% rename from src/remote/activitypub/misc/contexts.ts rename to packages/backend/src/remote/activitypub/misc/contexts.ts diff --git a/src/remote/activitypub/misc/get-note-html.ts b/packages/backend/src/remote/activitypub/misc/get-note-html.ts similarity index 57% rename from src/remote/activitypub/misc/get-note-html.ts rename to packages/backend/src/remote/activitypub/misc/get-note-html.ts index a24ec43a69..043335a5be 100644 --- a/src/remote/activitypub/misc/get-note-html.ts +++ b/packages/backend/src/remote/activitypub/misc/get-note-html.ts @@ -1,10 +1,9 @@ import * as mfm from 'mfm-js'; -import { fnNameList } from '@/mfm/fn-name-list'; import { Note } from '@/models/entities/note'; import { toHtml } from '../../../mfm/to-html'; export default function(note: Note) { - let html = note.text ? toHtml(mfm.parse(note.text, { fnNameList }), JSON.parse(note.mentionedRemoteUsers)) : null; + let html = note.text ? toHtml(mfm.parse(note.text), JSON.parse(note.mentionedRemoteUsers)) : null; if (html == null) html = '

.

'; return html; diff --git a/src/remote/activitypub/misc/html-to-mfm.ts b/packages/backend/src/remote/activitypub/misc/html-to-mfm.ts similarity index 100% rename from src/remote/activitypub/misc/html-to-mfm.ts rename to packages/backend/src/remote/activitypub/misc/html-to-mfm.ts diff --git a/src/remote/activitypub/misc/ld-signature.ts b/packages/backend/src/remote/activitypub/misc/ld-signature.ts similarity index 100% rename from src/remote/activitypub/misc/ld-signature.ts rename to packages/backend/src/remote/activitypub/misc/ld-signature.ts diff --git a/src/remote/activitypub/models/icon.ts b/packages/backend/src/remote/activitypub/models/icon.ts similarity index 100% rename from src/remote/activitypub/models/icon.ts rename to packages/backend/src/remote/activitypub/models/icon.ts diff --git a/src/remote/activitypub/models/identifier.ts b/packages/backend/src/remote/activitypub/models/identifier.ts similarity index 100% rename from src/remote/activitypub/models/identifier.ts rename to packages/backend/src/remote/activitypub/models/identifier.ts diff --git a/src/remote/activitypub/models/image.ts b/packages/backend/src/remote/activitypub/models/image.ts similarity index 100% rename from src/remote/activitypub/models/image.ts rename to packages/backend/src/remote/activitypub/models/image.ts diff --git a/src/remote/activitypub/models/mention.ts b/packages/backend/src/remote/activitypub/models/mention.ts similarity index 100% rename from src/remote/activitypub/models/mention.ts rename to packages/backend/src/remote/activitypub/models/mention.ts diff --git a/src/remote/activitypub/models/note.ts b/packages/backend/src/remote/activitypub/models/note.ts similarity index 100% rename from src/remote/activitypub/models/note.ts rename to packages/backend/src/remote/activitypub/models/note.ts diff --git a/src/remote/activitypub/models/person.ts b/packages/backend/src/remote/activitypub/models/person.ts similarity index 100% rename from src/remote/activitypub/models/person.ts rename to packages/backend/src/remote/activitypub/models/person.ts diff --git a/src/remote/activitypub/models/question.ts b/packages/backend/src/remote/activitypub/models/question.ts similarity index 100% rename from src/remote/activitypub/models/question.ts rename to packages/backend/src/remote/activitypub/models/question.ts diff --git a/src/remote/activitypub/models/tag.ts b/packages/backend/src/remote/activitypub/models/tag.ts similarity index 100% rename from src/remote/activitypub/models/tag.ts rename to packages/backend/src/remote/activitypub/models/tag.ts diff --git a/src/remote/activitypub/perform.ts b/packages/backend/src/remote/activitypub/perform.ts similarity index 100% rename from src/remote/activitypub/perform.ts rename to packages/backend/src/remote/activitypub/perform.ts diff --git a/src/remote/activitypub/renderer/accept.ts b/packages/backend/src/remote/activitypub/renderer/accept.ts similarity index 100% rename from src/remote/activitypub/renderer/accept.ts rename to packages/backend/src/remote/activitypub/renderer/accept.ts diff --git a/src/remote/activitypub/renderer/add.ts b/packages/backend/src/remote/activitypub/renderer/add.ts similarity index 100% rename from src/remote/activitypub/renderer/add.ts rename to packages/backend/src/remote/activitypub/renderer/add.ts diff --git a/src/remote/activitypub/renderer/announce.ts b/packages/backend/src/remote/activitypub/renderer/announce.ts similarity index 100% rename from src/remote/activitypub/renderer/announce.ts rename to packages/backend/src/remote/activitypub/renderer/announce.ts diff --git a/src/remote/activitypub/renderer/block.ts b/packages/backend/src/remote/activitypub/renderer/block.ts similarity index 100% rename from src/remote/activitypub/renderer/block.ts rename to packages/backend/src/remote/activitypub/renderer/block.ts diff --git a/src/remote/activitypub/renderer/create.ts b/packages/backend/src/remote/activitypub/renderer/create.ts similarity index 100% rename from src/remote/activitypub/renderer/create.ts rename to packages/backend/src/remote/activitypub/renderer/create.ts diff --git a/src/remote/activitypub/renderer/delete.ts b/packages/backend/src/remote/activitypub/renderer/delete.ts similarity index 100% rename from src/remote/activitypub/renderer/delete.ts rename to packages/backend/src/remote/activitypub/renderer/delete.ts diff --git a/src/remote/activitypub/renderer/document.ts b/packages/backend/src/remote/activitypub/renderer/document.ts similarity index 100% rename from src/remote/activitypub/renderer/document.ts rename to packages/backend/src/remote/activitypub/renderer/document.ts diff --git a/src/remote/activitypub/renderer/emoji.ts b/packages/backend/src/remote/activitypub/renderer/emoji.ts similarity index 100% rename from src/remote/activitypub/renderer/emoji.ts rename to packages/backend/src/remote/activitypub/renderer/emoji.ts diff --git a/src/remote/activitypub/renderer/follow-relay.ts b/packages/backend/src/remote/activitypub/renderer/follow-relay.ts similarity index 100% rename from src/remote/activitypub/renderer/follow-relay.ts rename to packages/backend/src/remote/activitypub/renderer/follow-relay.ts diff --git a/src/remote/activitypub/renderer/follow-user.ts b/packages/backend/src/remote/activitypub/renderer/follow-user.ts similarity index 100% rename from src/remote/activitypub/renderer/follow-user.ts rename to packages/backend/src/remote/activitypub/renderer/follow-user.ts diff --git a/src/remote/activitypub/renderer/follow.ts b/packages/backend/src/remote/activitypub/renderer/follow.ts similarity index 100% rename from src/remote/activitypub/renderer/follow.ts rename to packages/backend/src/remote/activitypub/renderer/follow.ts diff --git a/src/remote/activitypub/renderer/hashtag.ts b/packages/backend/src/remote/activitypub/renderer/hashtag.ts similarity index 100% rename from src/remote/activitypub/renderer/hashtag.ts rename to packages/backend/src/remote/activitypub/renderer/hashtag.ts diff --git a/src/remote/activitypub/renderer/image.ts b/packages/backend/src/remote/activitypub/renderer/image.ts similarity index 100% rename from src/remote/activitypub/renderer/image.ts rename to packages/backend/src/remote/activitypub/renderer/image.ts diff --git a/src/remote/activitypub/renderer/index.ts b/packages/backend/src/remote/activitypub/renderer/index.ts similarity index 100% rename from src/remote/activitypub/renderer/index.ts rename to packages/backend/src/remote/activitypub/renderer/index.ts diff --git a/src/remote/activitypub/renderer/key.ts b/packages/backend/src/remote/activitypub/renderer/key.ts similarity index 100% rename from src/remote/activitypub/renderer/key.ts rename to packages/backend/src/remote/activitypub/renderer/key.ts diff --git a/src/remote/activitypub/renderer/like.ts b/packages/backend/src/remote/activitypub/renderer/like.ts similarity index 100% rename from src/remote/activitypub/renderer/like.ts rename to packages/backend/src/remote/activitypub/renderer/like.ts diff --git a/src/remote/activitypub/renderer/mention.ts b/packages/backend/src/remote/activitypub/renderer/mention.ts similarity index 100% rename from src/remote/activitypub/renderer/mention.ts rename to packages/backend/src/remote/activitypub/renderer/mention.ts diff --git a/src/remote/activitypub/renderer/note.ts b/packages/backend/src/remote/activitypub/renderer/note.ts similarity index 100% rename from src/remote/activitypub/renderer/note.ts rename to packages/backend/src/remote/activitypub/renderer/note.ts diff --git a/src/remote/activitypub/renderer/ordered-collection-page.ts b/packages/backend/src/remote/activitypub/renderer/ordered-collection-page.ts similarity index 100% rename from src/remote/activitypub/renderer/ordered-collection-page.ts rename to packages/backend/src/remote/activitypub/renderer/ordered-collection-page.ts diff --git a/src/remote/activitypub/renderer/ordered-collection.ts b/packages/backend/src/remote/activitypub/renderer/ordered-collection.ts similarity index 100% rename from src/remote/activitypub/renderer/ordered-collection.ts rename to packages/backend/src/remote/activitypub/renderer/ordered-collection.ts diff --git a/src/remote/activitypub/renderer/person.ts b/packages/backend/src/remote/activitypub/renderer/person.ts similarity index 97% rename from src/remote/activitypub/renderer/person.ts rename to packages/backend/src/remote/activitypub/renderer/person.ts index 7e94abddfc..f2a283a870 100644 --- a/src/remote/activitypub/renderer/person.ts +++ b/packages/backend/src/remote/activitypub/renderer/person.ts @@ -11,7 +11,6 @@ import { IIdentifier } from '../models/identifier'; import renderHashtag from './hashtag'; import { DriveFiles, UserProfiles } from '@/models/index'; import { getUserKeypair } from '@/misc/keypair-store'; -import { fnNameList } from '@/mfm/fn-name-list'; export async function renderPerson(user: ILocalUser) { const id = `${config.url}/users/${user.id}`; @@ -67,7 +66,7 @@ export async function renderPerson(user: ILocalUser) { url: `${config.url}/@${user.username}`, preferredUsername: user.username, name: user.name, - summary: profile.description ? toHtml(mfm.parse(profile.description, { fnNameList })) : null, + summary: profile.description ? toHtml(mfm.parse(profile.description)) : null, icon: avatar ? renderImage(avatar) : null, image: banner ? renderImage(banner) : null, tag, diff --git a/src/remote/activitypub/renderer/question.ts b/packages/backend/src/remote/activitypub/renderer/question.ts similarity index 100% rename from src/remote/activitypub/renderer/question.ts rename to packages/backend/src/remote/activitypub/renderer/question.ts diff --git a/src/remote/activitypub/renderer/read.ts b/packages/backend/src/remote/activitypub/renderer/read.ts similarity index 100% rename from src/remote/activitypub/renderer/read.ts rename to packages/backend/src/remote/activitypub/renderer/read.ts diff --git a/src/remote/activitypub/renderer/reject.ts b/packages/backend/src/remote/activitypub/renderer/reject.ts similarity index 100% rename from src/remote/activitypub/renderer/reject.ts rename to packages/backend/src/remote/activitypub/renderer/reject.ts diff --git a/src/remote/activitypub/renderer/remove.ts b/packages/backend/src/remote/activitypub/renderer/remove.ts similarity index 100% rename from src/remote/activitypub/renderer/remove.ts rename to packages/backend/src/remote/activitypub/renderer/remove.ts diff --git a/src/remote/activitypub/renderer/tombstone.ts b/packages/backend/src/remote/activitypub/renderer/tombstone.ts similarity index 100% rename from src/remote/activitypub/renderer/tombstone.ts rename to packages/backend/src/remote/activitypub/renderer/tombstone.ts diff --git a/src/remote/activitypub/renderer/undo.ts b/packages/backend/src/remote/activitypub/renderer/undo.ts similarity index 100% rename from src/remote/activitypub/renderer/undo.ts rename to packages/backend/src/remote/activitypub/renderer/undo.ts diff --git a/src/remote/activitypub/renderer/update.ts b/packages/backend/src/remote/activitypub/renderer/update.ts similarity index 100% rename from src/remote/activitypub/renderer/update.ts rename to packages/backend/src/remote/activitypub/renderer/update.ts diff --git a/src/remote/activitypub/renderer/vote.ts b/packages/backend/src/remote/activitypub/renderer/vote.ts similarity index 100% rename from src/remote/activitypub/renderer/vote.ts rename to packages/backend/src/remote/activitypub/renderer/vote.ts diff --git a/src/remote/activitypub/request.ts b/packages/backend/src/remote/activitypub/request.ts similarity index 100% rename from src/remote/activitypub/request.ts rename to packages/backend/src/remote/activitypub/request.ts diff --git a/src/remote/activitypub/resolver.ts b/packages/backend/src/remote/activitypub/resolver.ts similarity index 100% rename from src/remote/activitypub/resolver.ts rename to packages/backend/src/remote/activitypub/resolver.ts diff --git a/src/remote/activitypub/type.ts b/packages/backend/src/remote/activitypub/type.ts similarity index 100% rename from src/remote/activitypub/type.ts rename to packages/backend/src/remote/activitypub/type.ts diff --git a/src/remote/logger.ts b/packages/backend/src/remote/logger.ts similarity index 100% rename from src/remote/logger.ts rename to packages/backend/src/remote/logger.ts diff --git a/src/remote/resolve-user.ts b/packages/backend/src/remote/resolve-user.ts similarity index 100% rename from src/remote/resolve-user.ts rename to packages/backend/src/remote/resolve-user.ts diff --git a/src/remote/webfinger.ts b/packages/backend/src/remote/webfinger.ts similarity index 100% rename from src/remote/webfinger.ts rename to packages/backend/src/remote/webfinger.ts diff --git a/src/server/activitypub.ts b/packages/backend/src/server/activitypub.ts similarity index 100% rename from src/server/activitypub.ts rename to packages/backend/src/server/activitypub.ts diff --git a/src/server/activitypub/featured.ts b/packages/backend/src/server/activitypub/featured.ts similarity index 100% rename from src/server/activitypub/featured.ts rename to packages/backend/src/server/activitypub/featured.ts diff --git a/src/server/activitypub/followers.ts b/packages/backend/src/server/activitypub/followers.ts similarity index 100% rename from src/server/activitypub/followers.ts rename to packages/backend/src/server/activitypub/followers.ts diff --git a/src/server/activitypub/following.ts b/packages/backend/src/server/activitypub/following.ts similarity index 100% rename from src/server/activitypub/following.ts rename to packages/backend/src/server/activitypub/following.ts diff --git a/src/server/activitypub/outbox.ts b/packages/backend/src/server/activitypub/outbox.ts similarity index 100% rename from src/server/activitypub/outbox.ts rename to packages/backend/src/server/activitypub/outbox.ts diff --git a/src/server/api/2fa.ts b/packages/backend/src/server/api/2fa.ts similarity index 100% rename from src/server/api/2fa.ts rename to packages/backend/src/server/api/2fa.ts diff --git a/src/server/api/api-handler.ts b/packages/backend/src/server/api/api-handler.ts similarity index 100% rename from src/server/api/api-handler.ts rename to packages/backend/src/server/api/api-handler.ts diff --git a/src/server/api/authenticate.ts b/packages/backend/src/server/api/authenticate.ts similarity index 100% rename from src/server/api/authenticate.ts rename to packages/backend/src/server/api/authenticate.ts diff --git a/src/server/api/call.ts b/packages/backend/src/server/api/call.ts similarity index 100% rename from src/server/api/call.ts rename to packages/backend/src/server/api/call.ts diff --git a/src/server/api/common/generate-block-query.ts b/packages/backend/src/server/api/common/generate-block-query.ts similarity index 100% rename from src/server/api/common/generate-block-query.ts rename to packages/backend/src/server/api/common/generate-block-query.ts diff --git a/src/server/api/common/generate-channel-query.ts b/packages/backend/src/server/api/common/generate-channel-query.ts similarity index 100% rename from src/server/api/common/generate-channel-query.ts rename to packages/backend/src/server/api/common/generate-channel-query.ts diff --git a/src/server/api/common/generate-muted-note-query.ts b/packages/backend/src/server/api/common/generate-muted-note-query.ts similarity index 100% rename from src/server/api/common/generate-muted-note-query.ts rename to packages/backend/src/server/api/common/generate-muted-note-query.ts diff --git a/src/server/api/common/generate-muted-note-thread-query.ts b/packages/backend/src/server/api/common/generate-muted-note-thread-query.ts similarity index 100% rename from src/server/api/common/generate-muted-note-thread-query.ts rename to packages/backend/src/server/api/common/generate-muted-note-thread-query.ts diff --git a/src/server/api/common/generate-muted-user-query.ts b/packages/backend/src/server/api/common/generate-muted-user-query.ts similarity index 100% rename from src/server/api/common/generate-muted-user-query.ts rename to packages/backend/src/server/api/common/generate-muted-user-query.ts diff --git a/src/server/api/common/generate-native-user-token.ts b/packages/backend/src/server/api/common/generate-native-user-token.ts similarity index 100% rename from src/server/api/common/generate-native-user-token.ts rename to packages/backend/src/server/api/common/generate-native-user-token.ts diff --git a/src/server/api/common/generate-replies-query.ts b/packages/backend/src/server/api/common/generate-replies-query.ts similarity index 100% rename from src/server/api/common/generate-replies-query.ts rename to packages/backend/src/server/api/common/generate-replies-query.ts diff --git a/src/server/api/common/generate-visibility-query.ts b/packages/backend/src/server/api/common/generate-visibility-query.ts similarity index 100% rename from src/server/api/common/generate-visibility-query.ts rename to packages/backend/src/server/api/common/generate-visibility-query.ts diff --git a/src/server/api/common/getters.ts b/packages/backend/src/server/api/common/getters.ts similarity index 100% rename from src/server/api/common/getters.ts rename to packages/backend/src/server/api/common/getters.ts diff --git a/src/server/api/common/inject-featured.ts b/packages/backend/src/server/api/common/inject-featured.ts similarity index 100% rename from src/server/api/common/inject-featured.ts rename to packages/backend/src/server/api/common/inject-featured.ts diff --git a/src/server/api/common/inject-promo.ts b/packages/backend/src/server/api/common/inject-promo.ts similarity index 100% rename from src/server/api/common/inject-promo.ts rename to packages/backend/src/server/api/common/inject-promo.ts diff --git a/src/server/api/common/is-native-token.ts b/packages/backend/src/server/api/common/is-native-token.ts similarity index 100% rename from src/server/api/common/is-native-token.ts rename to packages/backend/src/server/api/common/is-native-token.ts diff --git a/src/server/api/common/make-pagination-query.ts b/packages/backend/src/server/api/common/make-pagination-query.ts similarity index 100% rename from src/server/api/common/make-pagination-query.ts rename to packages/backend/src/server/api/common/make-pagination-query.ts diff --git a/src/server/api/common/read-messaging-message.ts b/packages/backend/src/server/api/common/read-messaging-message.ts similarity index 100% rename from src/server/api/common/read-messaging-message.ts rename to packages/backend/src/server/api/common/read-messaging-message.ts diff --git a/src/server/api/common/read-notification.ts b/packages/backend/src/server/api/common/read-notification.ts similarity index 100% rename from src/server/api/common/read-notification.ts rename to packages/backend/src/server/api/common/read-notification.ts diff --git a/src/server/api/common/signin.ts b/packages/backend/src/server/api/common/signin.ts similarity index 100% rename from src/server/api/common/signin.ts rename to packages/backend/src/server/api/common/signin.ts diff --git a/src/server/api/common/signup.ts b/packages/backend/src/server/api/common/signup.ts similarity index 100% rename from src/server/api/common/signup.ts rename to packages/backend/src/server/api/common/signup.ts diff --git a/src/server/api/define.ts b/packages/backend/src/server/api/define.ts similarity index 100% rename from src/server/api/define.ts rename to packages/backend/src/server/api/define.ts diff --git a/src/server/api/endpoints.ts b/packages/backend/src/server/api/endpoints.ts similarity index 100% rename from src/server/api/endpoints.ts rename to packages/backend/src/server/api/endpoints.ts diff --git a/src/server/api/endpoints/admin/abuse-user-reports.ts b/packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts similarity index 100% rename from src/server/api/endpoints/admin/abuse-user-reports.ts rename to packages/backend/src/server/api/endpoints/admin/abuse-user-reports.ts diff --git a/src/server/api/endpoints/admin/accounts/create.ts b/packages/backend/src/server/api/endpoints/admin/accounts/create.ts similarity index 100% rename from src/server/api/endpoints/admin/accounts/create.ts rename to packages/backend/src/server/api/endpoints/admin/accounts/create.ts diff --git a/src/server/api/endpoints/admin/accounts/delete.ts b/packages/backend/src/server/api/endpoints/admin/accounts/delete.ts similarity index 100% rename from src/server/api/endpoints/admin/accounts/delete.ts rename to packages/backend/src/server/api/endpoints/admin/accounts/delete.ts diff --git a/src/server/api/endpoints/admin/ad/create.ts b/packages/backend/src/server/api/endpoints/admin/ad/create.ts similarity index 100% rename from src/server/api/endpoints/admin/ad/create.ts rename to packages/backend/src/server/api/endpoints/admin/ad/create.ts diff --git a/src/server/api/endpoints/admin/ad/delete.ts b/packages/backend/src/server/api/endpoints/admin/ad/delete.ts similarity index 100% rename from src/server/api/endpoints/admin/ad/delete.ts rename to packages/backend/src/server/api/endpoints/admin/ad/delete.ts diff --git a/src/server/api/endpoints/admin/ad/list.ts b/packages/backend/src/server/api/endpoints/admin/ad/list.ts similarity index 100% rename from src/server/api/endpoints/admin/ad/list.ts rename to packages/backend/src/server/api/endpoints/admin/ad/list.ts diff --git a/src/server/api/endpoints/admin/ad/update.ts b/packages/backend/src/server/api/endpoints/admin/ad/update.ts similarity index 100% rename from src/server/api/endpoints/admin/ad/update.ts rename to packages/backend/src/server/api/endpoints/admin/ad/update.ts diff --git a/src/server/api/endpoints/admin/announcements/create.ts b/packages/backend/src/server/api/endpoints/admin/announcements/create.ts similarity index 100% rename from src/server/api/endpoints/admin/announcements/create.ts rename to packages/backend/src/server/api/endpoints/admin/announcements/create.ts diff --git a/src/server/api/endpoints/admin/announcements/delete.ts b/packages/backend/src/server/api/endpoints/admin/announcements/delete.ts similarity index 100% rename from src/server/api/endpoints/admin/announcements/delete.ts rename to packages/backend/src/server/api/endpoints/admin/announcements/delete.ts diff --git a/src/server/api/endpoints/admin/announcements/list.ts b/packages/backend/src/server/api/endpoints/admin/announcements/list.ts similarity index 100% rename from src/server/api/endpoints/admin/announcements/list.ts rename to packages/backend/src/server/api/endpoints/admin/announcements/list.ts diff --git a/src/server/api/endpoints/admin/announcements/update.ts b/packages/backend/src/server/api/endpoints/admin/announcements/update.ts similarity index 100% rename from src/server/api/endpoints/admin/announcements/update.ts rename to packages/backend/src/server/api/endpoints/admin/announcements/update.ts diff --git a/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts b/packages/backend/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts similarity index 100% rename from src/server/api/endpoints/admin/delete-all-files-of-a-user.ts rename to packages/backend/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts diff --git a/src/server/api/endpoints/admin/delete-logs.ts b/packages/backend/src/server/api/endpoints/admin/delete-logs.ts similarity index 100% rename from src/server/api/endpoints/admin/delete-logs.ts rename to packages/backend/src/server/api/endpoints/admin/delete-logs.ts diff --git a/src/server/api/endpoints/admin/drive/clean-remote-files.ts b/packages/backend/src/server/api/endpoints/admin/drive/clean-remote-files.ts similarity index 100% rename from src/server/api/endpoints/admin/drive/clean-remote-files.ts rename to packages/backend/src/server/api/endpoints/admin/drive/clean-remote-files.ts diff --git a/src/server/api/endpoints/admin/drive/cleanup.ts b/packages/backend/src/server/api/endpoints/admin/drive/cleanup.ts similarity index 100% rename from src/server/api/endpoints/admin/drive/cleanup.ts rename to packages/backend/src/server/api/endpoints/admin/drive/cleanup.ts diff --git a/src/server/api/endpoints/admin/drive/files.ts b/packages/backend/src/server/api/endpoints/admin/drive/files.ts similarity index 100% rename from src/server/api/endpoints/admin/drive/files.ts rename to packages/backend/src/server/api/endpoints/admin/drive/files.ts diff --git a/src/server/api/endpoints/admin/drive/show-file.ts b/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts similarity index 100% rename from src/server/api/endpoints/admin/drive/show-file.ts rename to packages/backend/src/server/api/endpoints/admin/drive/show-file.ts diff --git a/src/server/api/endpoints/admin/emoji/add.ts b/packages/backend/src/server/api/endpoints/admin/emoji/add.ts similarity index 100% rename from src/server/api/endpoints/admin/emoji/add.ts rename to packages/backend/src/server/api/endpoints/admin/emoji/add.ts diff --git a/src/server/api/endpoints/admin/emoji/copy.ts b/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts similarity index 100% rename from src/server/api/endpoints/admin/emoji/copy.ts rename to packages/backend/src/server/api/endpoints/admin/emoji/copy.ts diff --git a/src/server/api/endpoints/admin/emoji/list-remote.ts b/packages/backend/src/server/api/endpoints/admin/emoji/list-remote.ts similarity index 100% rename from src/server/api/endpoints/admin/emoji/list-remote.ts rename to packages/backend/src/server/api/endpoints/admin/emoji/list-remote.ts diff --git a/src/server/api/endpoints/admin/emoji/list.ts b/packages/backend/src/server/api/endpoints/admin/emoji/list.ts similarity index 100% rename from src/server/api/endpoints/admin/emoji/list.ts rename to packages/backend/src/server/api/endpoints/admin/emoji/list.ts diff --git a/src/server/api/endpoints/admin/emoji/remove.ts b/packages/backend/src/server/api/endpoints/admin/emoji/remove.ts similarity index 100% rename from src/server/api/endpoints/admin/emoji/remove.ts rename to packages/backend/src/server/api/endpoints/admin/emoji/remove.ts diff --git a/src/server/api/endpoints/admin/emoji/update.ts b/packages/backend/src/server/api/endpoints/admin/emoji/update.ts similarity index 100% rename from src/server/api/endpoints/admin/emoji/update.ts rename to packages/backend/src/server/api/endpoints/admin/emoji/update.ts diff --git a/src/server/api/endpoints/admin/federation/delete-all-files.ts b/packages/backend/src/server/api/endpoints/admin/federation/delete-all-files.ts similarity index 100% rename from src/server/api/endpoints/admin/federation/delete-all-files.ts rename to packages/backend/src/server/api/endpoints/admin/federation/delete-all-files.ts diff --git a/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts b/packages/backend/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts similarity index 100% rename from src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts rename to packages/backend/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts diff --git a/src/server/api/endpoints/admin/federation/remove-all-following.ts b/packages/backend/src/server/api/endpoints/admin/federation/remove-all-following.ts similarity index 100% rename from src/server/api/endpoints/admin/federation/remove-all-following.ts rename to packages/backend/src/server/api/endpoints/admin/federation/remove-all-following.ts diff --git a/src/server/api/endpoints/admin/federation/update-instance.ts b/packages/backend/src/server/api/endpoints/admin/federation/update-instance.ts similarity index 100% rename from src/server/api/endpoints/admin/federation/update-instance.ts rename to packages/backend/src/server/api/endpoints/admin/federation/update-instance.ts diff --git a/src/server/api/endpoints/admin/get-index-stats.ts b/packages/backend/src/server/api/endpoints/admin/get-index-stats.ts similarity index 100% rename from src/server/api/endpoints/admin/get-index-stats.ts rename to packages/backend/src/server/api/endpoints/admin/get-index-stats.ts diff --git a/src/server/api/endpoints/admin/get-table-stats.ts b/packages/backend/src/server/api/endpoints/admin/get-table-stats.ts similarity index 100% rename from src/server/api/endpoints/admin/get-table-stats.ts rename to packages/backend/src/server/api/endpoints/admin/get-table-stats.ts diff --git a/src/server/api/endpoints/admin/invite.ts b/packages/backend/src/server/api/endpoints/admin/invite.ts similarity index 100% rename from src/server/api/endpoints/admin/invite.ts rename to packages/backend/src/server/api/endpoints/admin/invite.ts diff --git a/src/server/api/endpoints/admin/moderators/add.ts b/packages/backend/src/server/api/endpoints/admin/moderators/add.ts similarity index 100% rename from src/server/api/endpoints/admin/moderators/add.ts rename to packages/backend/src/server/api/endpoints/admin/moderators/add.ts diff --git a/src/server/api/endpoints/admin/moderators/remove.ts b/packages/backend/src/server/api/endpoints/admin/moderators/remove.ts similarity index 100% rename from src/server/api/endpoints/admin/moderators/remove.ts rename to packages/backend/src/server/api/endpoints/admin/moderators/remove.ts diff --git a/src/server/api/endpoints/admin/promo/create.ts b/packages/backend/src/server/api/endpoints/admin/promo/create.ts similarity index 100% rename from src/server/api/endpoints/admin/promo/create.ts rename to packages/backend/src/server/api/endpoints/admin/promo/create.ts diff --git a/src/server/api/endpoints/admin/queue/clear.ts b/packages/backend/src/server/api/endpoints/admin/queue/clear.ts similarity index 100% rename from src/server/api/endpoints/admin/queue/clear.ts rename to packages/backend/src/server/api/endpoints/admin/queue/clear.ts diff --git a/src/server/api/endpoints/admin/queue/deliver-delayed.ts b/packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts similarity index 100% rename from src/server/api/endpoints/admin/queue/deliver-delayed.ts rename to packages/backend/src/server/api/endpoints/admin/queue/deliver-delayed.ts diff --git a/src/server/api/endpoints/admin/queue/inbox-delayed.ts b/packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts similarity index 100% rename from src/server/api/endpoints/admin/queue/inbox-delayed.ts rename to packages/backend/src/server/api/endpoints/admin/queue/inbox-delayed.ts diff --git a/src/server/api/endpoints/admin/queue/jobs.ts b/packages/backend/src/server/api/endpoints/admin/queue/jobs.ts similarity index 100% rename from src/server/api/endpoints/admin/queue/jobs.ts rename to packages/backend/src/server/api/endpoints/admin/queue/jobs.ts diff --git a/src/server/api/endpoints/admin/queue/stats.ts b/packages/backend/src/server/api/endpoints/admin/queue/stats.ts similarity index 100% rename from src/server/api/endpoints/admin/queue/stats.ts rename to packages/backend/src/server/api/endpoints/admin/queue/stats.ts diff --git a/src/server/api/endpoints/admin/relays/add.ts b/packages/backend/src/server/api/endpoints/admin/relays/add.ts similarity index 100% rename from src/server/api/endpoints/admin/relays/add.ts rename to packages/backend/src/server/api/endpoints/admin/relays/add.ts diff --git a/src/server/api/endpoints/admin/relays/list.ts b/packages/backend/src/server/api/endpoints/admin/relays/list.ts similarity index 100% rename from src/server/api/endpoints/admin/relays/list.ts rename to packages/backend/src/server/api/endpoints/admin/relays/list.ts diff --git a/src/server/api/endpoints/admin/relays/remove.ts b/packages/backend/src/server/api/endpoints/admin/relays/remove.ts similarity index 100% rename from src/server/api/endpoints/admin/relays/remove.ts rename to packages/backend/src/server/api/endpoints/admin/relays/remove.ts diff --git a/src/server/api/endpoints/admin/reset-password.ts b/packages/backend/src/server/api/endpoints/admin/reset-password.ts similarity index 100% rename from src/server/api/endpoints/admin/reset-password.ts rename to packages/backend/src/server/api/endpoints/admin/reset-password.ts diff --git a/src/server/api/endpoints/admin/resolve-abuse-user-report.ts b/packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts similarity index 100% rename from src/server/api/endpoints/admin/resolve-abuse-user-report.ts rename to packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts diff --git a/src/server/api/endpoints/admin/resync-chart.ts b/packages/backend/src/server/api/endpoints/admin/resync-chart.ts similarity index 100% rename from src/server/api/endpoints/admin/resync-chart.ts rename to packages/backend/src/server/api/endpoints/admin/resync-chart.ts diff --git a/src/server/api/endpoints/admin/send-email.ts b/packages/backend/src/server/api/endpoints/admin/send-email.ts similarity index 100% rename from src/server/api/endpoints/admin/send-email.ts rename to packages/backend/src/server/api/endpoints/admin/send-email.ts diff --git a/src/server/api/endpoints/admin/server-info.ts b/packages/backend/src/server/api/endpoints/admin/server-info.ts similarity index 100% rename from src/server/api/endpoints/admin/server-info.ts rename to packages/backend/src/server/api/endpoints/admin/server-info.ts diff --git a/src/server/api/endpoints/admin/show-moderation-logs.ts b/packages/backend/src/server/api/endpoints/admin/show-moderation-logs.ts similarity index 100% rename from src/server/api/endpoints/admin/show-moderation-logs.ts rename to packages/backend/src/server/api/endpoints/admin/show-moderation-logs.ts diff --git a/src/server/api/endpoints/admin/show-user.ts b/packages/backend/src/server/api/endpoints/admin/show-user.ts similarity index 100% rename from src/server/api/endpoints/admin/show-user.ts rename to packages/backend/src/server/api/endpoints/admin/show-user.ts diff --git a/src/server/api/endpoints/admin/show-users.ts b/packages/backend/src/server/api/endpoints/admin/show-users.ts similarity index 100% rename from src/server/api/endpoints/admin/show-users.ts rename to packages/backend/src/server/api/endpoints/admin/show-users.ts diff --git a/src/server/api/endpoints/admin/silence-user.ts b/packages/backend/src/server/api/endpoints/admin/silence-user.ts similarity index 100% rename from src/server/api/endpoints/admin/silence-user.ts rename to packages/backend/src/server/api/endpoints/admin/silence-user.ts diff --git a/src/server/api/endpoints/admin/suspend-user.ts b/packages/backend/src/server/api/endpoints/admin/suspend-user.ts similarity index 100% rename from src/server/api/endpoints/admin/suspend-user.ts rename to packages/backend/src/server/api/endpoints/admin/suspend-user.ts diff --git a/src/server/api/endpoints/admin/unsilence-user.ts b/packages/backend/src/server/api/endpoints/admin/unsilence-user.ts similarity index 100% rename from src/server/api/endpoints/admin/unsilence-user.ts rename to packages/backend/src/server/api/endpoints/admin/unsilence-user.ts diff --git a/src/server/api/endpoints/admin/unsuspend-user.ts b/packages/backend/src/server/api/endpoints/admin/unsuspend-user.ts similarity index 100% rename from src/server/api/endpoints/admin/unsuspend-user.ts rename to packages/backend/src/server/api/endpoints/admin/unsuspend-user.ts diff --git a/src/server/api/endpoints/admin/update-meta.ts b/packages/backend/src/server/api/endpoints/admin/update-meta.ts similarity index 100% rename from src/server/api/endpoints/admin/update-meta.ts rename to packages/backend/src/server/api/endpoints/admin/update-meta.ts diff --git a/src/server/api/endpoints/admin/vacuum.ts b/packages/backend/src/server/api/endpoints/admin/vacuum.ts similarity index 100% rename from src/server/api/endpoints/admin/vacuum.ts rename to packages/backend/src/server/api/endpoints/admin/vacuum.ts diff --git a/src/server/api/endpoints/announcements.ts b/packages/backend/src/server/api/endpoints/announcements.ts similarity index 100% rename from src/server/api/endpoints/announcements.ts rename to packages/backend/src/server/api/endpoints/announcements.ts diff --git a/src/server/api/endpoints/antennas/create.ts b/packages/backend/src/server/api/endpoints/antennas/create.ts similarity index 100% rename from src/server/api/endpoints/antennas/create.ts rename to packages/backend/src/server/api/endpoints/antennas/create.ts diff --git a/src/server/api/endpoints/antennas/delete.ts b/packages/backend/src/server/api/endpoints/antennas/delete.ts similarity index 100% rename from src/server/api/endpoints/antennas/delete.ts rename to packages/backend/src/server/api/endpoints/antennas/delete.ts diff --git a/src/server/api/endpoints/antennas/list.ts b/packages/backend/src/server/api/endpoints/antennas/list.ts similarity index 100% rename from src/server/api/endpoints/antennas/list.ts rename to packages/backend/src/server/api/endpoints/antennas/list.ts diff --git a/src/server/api/endpoints/antennas/notes.ts b/packages/backend/src/server/api/endpoints/antennas/notes.ts similarity index 100% rename from src/server/api/endpoints/antennas/notes.ts rename to packages/backend/src/server/api/endpoints/antennas/notes.ts diff --git a/src/server/api/endpoints/antennas/show.ts b/packages/backend/src/server/api/endpoints/antennas/show.ts similarity index 100% rename from src/server/api/endpoints/antennas/show.ts rename to packages/backend/src/server/api/endpoints/antennas/show.ts diff --git a/src/server/api/endpoints/antennas/update.ts b/packages/backend/src/server/api/endpoints/antennas/update.ts similarity index 100% rename from src/server/api/endpoints/antennas/update.ts rename to packages/backend/src/server/api/endpoints/antennas/update.ts diff --git a/src/server/api/endpoints/ap/get.ts b/packages/backend/src/server/api/endpoints/ap/get.ts similarity index 100% rename from src/server/api/endpoints/ap/get.ts rename to packages/backend/src/server/api/endpoints/ap/get.ts diff --git a/src/server/api/endpoints/ap/show.ts b/packages/backend/src/server/api/endpoints/ap/show.ts similarity index 100% rename from src/server/api/endpoints/ap/show.ts rename to packages/backend/src/server/api/endpoints/ap/show.ts diff --git a/src/server/api/endpoints/app/create.ts b/packages/backend/src/server/api/endpoints/app/create.ts similarity index 100% rename from src/server/api/endpoints/app/create.ts rename to packages/backend/src/server/api/endpoints/app/create.ts diff --git a/src/server/api/endpoints/app/show.ts b/packages/backend/src/server/api/endpoints/app/show.ts similarity index 100% rename from src/server/api/endpoints/app/show.ts rename to packages/backend/src/server/api/endpoints/app/show.ts diff --git a/src/server/api/endpoints/auth/accept.ts b/packages/backend/src/server/api/endpoints/auth/accept.ts similarity index 100% rename from src/server/api/endpoints/auth/accept.ts rename to packages/backend/src/server/api/endpoints/auth/accept.ts diff --git a/src/server/api/endpoints/auth/session/generate.ts b/packages/backend/src/server/api/endpoints/auth/session/generate.ts similarity index 100% rename from src/server/api/endpoints/auth/session/generate.ts rename to packages/backend/src/server/api/endpoints/auth/session/generate.ts diff --git a/src/server/api/endpoints/auth/session/show.ts b/packages/backend/src/server/api/endpoints/auth/session/show.ts similarity index 100% rename from src/server/api/endpoints/auth/session/show.ts rename to packages/backend/src/server/api/endpoints/auth/session/show.ts diff --git a/src/server/api/endpoints/auth/session/userkey.ts b/packages/backend/src/server/api/endpoints/auth/session/userkey.ts similarity index 100% rename from src/server/api/endpoints/auth/session/userkey.ts rename to packages/backend/src/server/api/endpoints/auth/session/userkey.ts diff --git a/src/server/api/endpoints/blocking/create.ts b/packages/backend/src/server/api/endpoints/blocking/create.ts similarity index 100% rename from src/server/api/endpoints/blocking/create.ts rename to packages/backend/src/server/api/endpoints/blocking/create.ts diff --git a/src/server/api/endpoints/blocking/delete.ts b/packages/backend/src/server/api/endpoints/blocking/delete.ts similarity index 100% rename from src/server/api/endpoints/blocking/delete.ts rename to packages/backend/src/server/api/endpoints/blocking/delete.ts diff --git a/src/server/api/endpoints/blocking/list.ts b/packages/backend/src/server/api/endpoints/blocking/list.ts similarity index 100% rename from src/server/api/endpoints/blocking/list.ts rename to packages/backend/src/server/api/endpoints/blocking/list.ts diff --git a/src/server/api/endpoints/channels/create.ts b/packages/backend/src/server/api/endpoints/channels/create.ts similarity index 100% rename from src/server/api/endpoints/channels/create.ts rename to packages/backend/src/server/api/endpoints/channels/create.ts diff --git a/src/server/api/endpoints/channels/featured.ts b/packages/backend/src/server/api/endpoints/channels/featured.ts similarity index 100% rename from src/server/api/endpoints/channels/featured.ts rename to packages/backend/src/server/api/endpoints/channels/featured.ts diff --git a/src/server/api/endpoints/channels/follow.ts b/packages/backend/src/server/api/endpoints/channels/follow.ts similarity index 100% rename from src/server/api/endpoints/channels/follow.ts rename to packages/backend/src/server/api/endpoints/channels/follow.ts diff --git a/src/server/api/endpoints/channels/followed.ts b/packages/backend/src/server/api/endpoints/channels/followed.ts similarity index 100% rename from src/server/api/endpoints/channels/followed.ts rename to packages/backend/src/server/api/endpoints/channels/followed.ts diff --git a/src/server/api/endpoints/channels/owned.ts b/packages/backend/src/server/api/endpoints/channels/owned.ts similarity index 100% rename from src/server/api/endpoints/channels/owned.ts rename to packages/backend/src/server/api/endpoints/channels/owned.ts diff --git a/src/server/api/endpoints/channels/pin-note.ts b/packages/backend/src/server/api/endpoints/channels/pin-note.ts similarity index 100% rename from src/server/api/endpoints/channels/pin-note.ts rename to packages/backend/src/server/api/endpoints/channels/pin-note.ts diff --git a/src/server/api/endpoints/channels/show.ts b/packages/backend/src/server/api/endpoints/channels/show.ts similarity index 100% rename from src/server/api/endpoints/channels/show.ts rename to packages/backend/src/server/api/endpoints/channels/show.ts diff --git a/src/server/api/endpoints/channels/timeline.ts b/packages/backend/src/server/api/endpoints/channels/timeline.ts similarity index 100% rename from src/server/api/endpoints/channels/timeline.ts rename to packages/backend/src/server/api/endpoints/channels/timeline.ts diff --git a/src/server/api/endpoints/channels/unfollow.ts b/packages/backend/src/server/api/endpoints/channels/unfollow.ts similarity index 100% rename from src/server/api/endpoints/channels/unfollow.ts rename to packages/backend/src/server/api/endpoints/channels/unfollow.ts diff --git a/src/server/api/endpoints/channels/update.ts b/packages/backend/src/server/api/endpoints/channels/update.ts similarity index 100% rename from src/server/api/endpoints/channels/update.ts rename to packages/backend/src/server/api/endpoints/channels/update.ts diff --git a/src/server/api/endpoints/charts/active-users.ts b/packages/backend/src/server/api/endpoints/charts/active-users.ts similarity index 100% rename from src/server/api/endpoints/charts/active-users.ts rename to packages/backend/src/server/api/endpoints/charts/active-users.ts diff --git a/src/server/api/endpoints/charts/drive.ts b/packages/backend/src/server/api/endpoints/charts/drive.ts similarity index 100% rename from src/server/api/endpoints/charts/drive.ts rename to packages/backend/src/server/api/endpoints/charts/drive.ts diff --git a/src/server/api/endpoints/charts/federation.ts b/packages/backend/src/server/api/endpoints/charts/federation.ts similarity index 100% rename from src/server/api/endpoints/charts/federation.ts rename to packages/backend/src/server/api/endpoints/charts/federation.ts diff --git a/src/server/api/endpoints/charts/hashtag.ts b/packages/backend/src/server/api/endpoints/charts/hashtag.ts similarity index 100% rename from src/server/api/endpoints/charts/hashtag.ts rename to packages/backend/src/server/api/endpoints/charts/hashtag.ts diff --git a/src/server/api/endpoints/charts/instance.ts b/packages/backend/src/server/api/endpoints/charts/instance.ts similarity index 100% rename from src/server/api/endpoints/charts/instance.ts rename to packages/backend/src/server/api/endpoints/charts/instance.ts diff --git a/src/server/api/endpoints/charts/network.ts b/packages/backend/src/server/api/endpoints/charts/network.ts similarity index 100% rename from src/server/api/endpoints/charts/network.ts rename to packages/backend/src/server/api/endpoints/charts/network.ts diff --git a/src/server/api/endpoints/charts/notes.ts b/packages/backend/src/server/api/endpoints/charts/notes.ts similarity index 100% rename from src/server/api/endpoints/charts/notes.ts rename to packages/backend/src/server/api/endpoints/charts/notes.ts diff --git a/src/server/api/endpoints/charts/user/drive.ts b/packages/backend/src/server/api/endpoints/charts/user/drive.ts similarity index 100% rename from src/server/api/endpoints/charts/user/drive.ts rename to packages/backend/src/server/api/endpoints/charts/user/drive.ts diff --git a/src/server/api/endpoints/charts/user/following.ts b/packages/backend/src/server/api/endpoints/charts/user/following.ts similarity index 100% rename from src/server/api/endpoints/charts/user/following.ts rename to packages/backend/src/server/api/endpoints/charts/user/following.ts diff --git a/src/server/api/endpoints/charts/user/notes.ts b/packages/backend/src/server/api/endpoints/charts/user/notes.ts similarity index 100% rename from src/server/api/endpoints/charts/user/notes.ts rename to packages/backend/src/server/api/endpoints/charts/user/notes.ts diff --git a/src/server/api/endpoints/charts/user/reactions.ts b/packages/backend/src/server/api/endpoints/charts/user/reactions.ts similarity index 100% rename from src/server/api/endpoints/charts/user/reactions.ts rename to packages/backend/src/server/api/endpoints/charts/user/reactions.ts diff --git a/src/server/api/endpoints/charts/users.ts b/packages/backend/src/server/api/endpoints/charts/users.ts similarity index 100% rename from src/server/api/endpoints/charts/users.ts rename to packages/backend/src/server/api/endpoints/charts/users.ts diff --git a/src/server/api/endpoints/clips/add-note.ts b/packages/backend/src/server/api/endpoints/clips/add-note.ts similarity index 100% rename from src/server/api/endpoints/clips/add-note.ts rename to packages/backend/src/server/api/endpoints/clips/add-note.ts diff --git a/src/server/api/endpoints/clips/create.ts b/packages/backend/src/server/api/endpoints/clips/create.ts similarity index 100% rename from src/server/api/endpoints/clips/create.ts rename to packages/backend/src/server/api/endpoints/clips/create.ts diff --git a/src/server/api/endpoints/clips/delete.ts b/packages/backend/src/server/api/endpoints/clips/delete.ts similarity index 100% rename from src/server/api/endpoints/clips/delete.ts rename to packages/backend/src/server/api/endpoints/clips/delete.ts diff --git a/src/server/api/endpoints/clips/list.ts b/packages/backend/src/server/api/endpoints/clips/list.ts similarity index 100% rename from src/server/api/endpoints/clips/list.ts rename to packages/backend/src/server/api/endpoints/clips/list.ts diff --git a/src/server/api/endpoints/clips/notes.ts b/packages/backend/src/server/api/endpoints/clips/notes.ts similarity index 100% rename from src/server/api/endpoints/clips/notes.ts rename to packages/backend/src/server/api/endpoints/clips/notes.ts diff --git a/src/server/api/endpoints/clips/show.ts b/packages/backend/src/server/api/endpoints/clips/show.ts similarity index 100% rename from src/server/api/endpoints/clips/show.ts rename to packages/backend/src/server/api/endpoints/clips/show.ts diff --git a/src/server/api/endpoints/clips/update.ts b/packages/backend/src/server/api/endpoints/clips/update.ts similarity index 100% rename from src/server/api/endpoints/clips/update.ts rename to packages/backend/src/server/api/endpoints/clips/update.ts diff --git a/src/server/api/endpoints/drive.ts b/packages/backend/src/server/api/endpoints/drive.ts similarity index 100% rename from src/server/api/endpoints/drive.ts rename to packages/backend/src/server/api/endpoints/drive.ts diff --git a/src/server/api/endpoints/drive/files.ts b/packages/backend/src/server/api/endpoints/drive/files.ts similarity index 100% rename from src/server/api/endpoints/drive/files.ts rename to packages/backend/src/server/api/endpoints/drive/files.ts diff --git a/src/server/api/endpoints/drive/files/attached-notes.ts b/packages/backend/src/server/api/endpoints/drive/files/attached-notes.ts similarity index 100% rename from src/server/api/endpoints/drive/files/attached-notes.ts rename to packages/backend/src/server/api/endpoints/drive/files/attached-notes.ts diff --git a/src/server/api/endpoints/drive/files/check-existence.ts b/packages/backend/src/server/api/endpoints/drive/files/check-existence.ts similarity index 100% rename from src/server/api/endpoints/drive/files/check-existence.ts rename to packages/backend/src/server/api/endpoints/drive/files/check-existence.ts diff --git a/src/server/api/endpoints/drive/files/create.ts b/packages/backend/src/server/api/endpoints/drive/files/create.ts similarity index 100% rename from src/server/api/endpoints/drive/files/create.ts rename to packages/backend/src/server/api/endpoints/drive/files/create.ts diff --git a/src/server/api/endpoints/drive/files/delete.ts b/packages/backend/src/server/api/endpoints/drive/files/delete.ts similarity index 100% rename from src/server/api/endpoints/drive/files/delete.ts rename to packages/backend/src/server/api/endpoints/drive/files/delete.ts diff --git a/src/server/api/endpoints/drive/files/find-by-hash.ts b/packages/backend/src/server/api/endpoints/drive/files/find-by-hash.ts similarity index 100% rename from src/server/api/endpoints/drive/files/find-by-hash.ts rename to packages/backend/src/server/api/endpoints/drive/files/find-by-hash.ts diff --git a/src/server/api/endpoints/drive/files/find.ts b/packages/backend/src/server/api/endpoints/drive/files/find.ts similarity index 100% rename from src/server/api/endpoints/drive/files/find.ts rename to packages/backend/src/server/api/endpoints/drive/files/find.ts diff --git a/src/server/api/endpoints/drive/files/show.ts b/packages/backend/src/server/api/endpoints/drive/files/show.ts similarity index 100% rename from src/server/api/endpoints/drive/files/show.ts rename to packages/backend/src/server/api/endpoints/drive/files/show.ts diff --git a/src/server/api/endpoints/drive/files/update.ts b/packages/backend/src/server/api/endpoints/drive/files/update.ts similarity index 100% rename from src/server/api/endpoints/drive/files/update.ts rename to packages/backend/src/server/api/endpoints/drive/files/update.ts diff --git a/src/server/api/endpoints/drive/files/upload-from-url.ts b/packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts similarity index 100% rename from src/server/api/endpoints/drive/files/upload-from-url.ts rename to packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts diff --git a/src/server/api/endpoints/drive/folders.ts b/packages/backend/src/server/api/endpoints/drive/folders.ts similarity index 100% rename from src/server/api/endpoints/drive/folders.ts rename to packages/backend/src/server/api/endpoints/drive/folders.ts diff --git a/src/server/api/endpoints/drive/folders/create.ts b/packages/backend/src/server/api/endpoints/drive/folders/create.ts similarity index 100% rename from src/server/api/endpoints/drive/folders/create.ts rename to packages/backend/src/server/api/endpoints/drive/folders/create.ts diff --git a/src/server/api/endpoints/drive/folders/delete.ts b/packages/backend/src/server/api/endpoints/drive/folders/delete.ts similarity index 100% rename from src/server/api/endpoints/drive/folders/delete.ts rename to packages/backend/src/server/api/endpoints/drive/folders/delete.ts diff --git a/src/server/api/endpoints/drive/folders/find.ts b/packages/backend/src/server/api/endpoints/drive/folders/find.ts similarity index 100% rename from src/server/api/endpoints/drive/folders/find.ts rename to packages/backend/src/server/api/endpoints/drive/folders/find.ts diff --git a/src/server/api/endpoints/drive/folders/show.ts b/packages/backend/src/server/api/endpoints/drive/folders/show.ts similarity index 100% rename from src/server/api/endpoints/drive/folders/show.ts rename to packages/backend/src/server/api/endpoints/drive/folders/show.ts diff --git a/src/server/api/endpoints/drive/folders/update.ts b/packages/backend/src/server/api/endpoints/drive/folders/update.ts similarity index 100% rename from src/server/api/endpoints/drive/folders/update.ts rename to packages/backend/src/server/api/endpoints/drive/folders/update.ts diff --git a/src/server/api/endpoints/drive/stream.ts b/packages/backend/src/server/api/endpoints/drive/stream.ts similarity index 100% rename from src/server/api/endpoints/drive/stream.ts rename to packages/backend/src/server/api/endpoints/drive/stream.ts diff --git a/src/server/api/endpoints/email-address/available.ts b/packages/backend/src/server/api/endpoints/email-address/available.ts similarity index 100% rename from src/server/api/endpoints/email-address/available.ts rename to packages/backend/src/server/api/endpoints/email-address/available.ts diff --git a/src/server/api/endpoints/endpoint.ts b/packages/backend/src/server/api/endpoints/endpoint.ts similarity index 100% rename from src/server/api/endpoints/endpoint.ts rename to packages/backend/src/server/api/endpoints/endpoint.ts diff --git a/src/server/api/endpoints/endpoints.ts b/packages/backend/src/server/api/endpoints/endpoints.ts similarity index 100% rename from src/server/api/endpoints/endpoints.ts rename to packages/backend/src/server/api/endpoints/endpoints.ts diff --git a/src/server/api/endpoints/federation/dns.ts b/packages/backend/src/server/api/endpoints/federation/dns.ts similarity index 100% rename from src/server/api/endpoints/federation/dns.ts rename to packages/backend/src/server/api/endpoints/federation/dns.ts diff --git a/src/server/api/endpoints/federation/followers.ts b/packages/backend/src/server/api/endpoints/federation/followers.ts similarity index 100% rename from src/server/api/endpoints/federation/followers.ts rename to packages/backend/src/server/api/endpoints/federation/followers.ts diff --git a/src/server/api/endpoints/federation/following.ts b/packages/backend/src/server/api/endpoints/federation/following.ts similarity index 100% rename from src/server/api/endpoints/federation/following.ts rename to packages/backend/src/server/api/endpoints/federation/following.ts diff --git a/src/server/api/endpoints/federation/instances.ts b/packages/backend/src/server/api/endpoints/federation/instances.ts similarity index 100% rename from src/server/api/endpoints/federation/instances.ts rename to packages/backend/src/server/api/endpoints/federation/instances.ts diff --git a/src/server/api/endpoints/federation/show-instance.ts b/packages/backend/src/server/api/endpoints/federation/show-instance.ts similarity index 100% rename from src/server/api/endpoints/federation/show-instance.ts rename to packages/backend/src/server/api/endpoints/federation/show-instance.ts diff --git a/src/server/api/endpoints/federation/update-remote-user.ts b/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts similarity index 100% rename from src/server/api/endpoints/federation/update-remote-user.ts rename to packages/backend/src/server/api/endpoints/federation/update-remote-user.ts diff --git a/src/server/api/endpoints/federation/users.ts b/packages/backend/src/server/api/endpoints/federation/users.ts similarity index 100% rename from src/server/api/endpoints/federation/users.ts rename to packages/backend/src/server/api/endpoints/federation/users.ts diff --git a/src/server/api/endpoints/following/create.ts b/packages/backend/src/server/api/endpoints/following/create.ts similarity index 100% rename from src/server/api/endpoints/following/create.ts rename to packages/backend/src/server/api/endpoints/following/create.ts diff --git a/src/server/api/endpoints/following/delete.ts b/packages/backend/src/server/api/endpoints/following/delete.ts similarity index 100% rename from src/server/api/endpoints/following/delete.ts rename to packages/backend/src/server/api/endpoints/following/delete.ts diff --git a/src/server/api/endpoints/following/requests/accept.ts b/packages/backend/src/server/api/endpoints/following/requests/accept.ts similarity index 100% rename from src/server/api/endpoints/following/requests/accept.ts rename to packages/backend/src/server/api/endpoints/following/requests/accept.ts diff --git a/src/server/api/endpoints/following/requests/cancel.ts b/packages/backend/src/server/api/endpoints/following/requests/cancel.ts similarity index 100% rename from src/server/api/endpoints/following/requests/cancel.ts rename to packages/backend/src/server/api/endpoints/following/requests/cancel.ts diff --git a/src/server/api/endpoints/following/requests/list.ts b/packages/backend/src/server/api/endpoints/following/requests/list.ts similarity index 100% rename from src/server/api/endpoints/following/requests/list.ts rename to packages/backend/src/server/api/endpoints/following/requests/list.ts diff --git a/src/server/api/endpoints/following/requests/reject.ts b/packages/backend/src/server/api/endpoints/following/requests/reject.ts similarity index 100% rename from src/server/api/endpoints/following/requests/reject.ts rename to packages/backend/src/server/api/endpoints/following/requests/reject.ts diff --git a/src/server/api/endpoints/gallery/featured.ts b/packages/backend/src/server/api/endpoints/gallery/featured.ts similarity index 100% rename from src/server/api/endpoints/gallery/featured.ts rename to packages/backend/src/server/api/endpoints/gallery/featured.ts diff --git a/src/server/api/endpoints/gallery/popular.ts b/packages/backend/src/server/api/endpoints/gallery/popular.ts similarity index 100% rename from src/server/api/endpoints/gallery/popular.ts rename to packages/backend/src/server/api/endpoints/gallery/popular.ts diff --git a/src/server/api/endpoints/gallery/posts.ts b/packages/backend/src/server/api/endpoints/gallery/posts.ts similarity index 100% rename from src/server/api/endpoints/gallery/posts.ts rename to packages/backend/src/server/api/endpoints/gallery/posts.ts diff --git a/src/server/api/endpoints/gallery/posts/create.ts b/packages/backend/src/server/api/endpoints/gallery/posts/create.ts similarity index 100% rename from src/server/api/endpoints/gallery/posts/create.ts rename to packages/backend/src/server/api/endpoints/gallery/posts/create.ts diff --git a/src/server/api/endpoints/gallery/posts/delete.ts b/packages/backend/src/server/api/endpoints/gallery/posts/delete.ts similarity index 100% rename from src/server/api/endpoints/gallery/posts/delete.ts rename to packages/backend/src/server/api/endpoints/gallery/posts/delete.ts diff --git a/src/server/api/endpoints/gallery/posts/like.ts b/packages/backend/src/server/api/endpoints/gallery/posts/like.ts similarity index 100% rename from src/server/api/endpoints/gallery/posts/like.ts rename to packages/backend/src/server/api/endpoints/gallery/posts/like.ts diff --git a/src/server/api/endpoints/gallery/posts/show.ts b/packages/backend/src/server/api/endpoints/gallery/posts/show.ts similarity index 100% rename from src/server/api/endpoints/gallery/posts/show.ts rename to packages/backend/src/server/api/endpoints/gallery/posts/show.ts diff --git a/src/server/api/endpoints/gallery/posts/unlike.ts b/packages/backend/src/server/api/endpoints/gallery/posts/unlike.ts similarity index 100% rename from src/server/api/endpoints/gallery/posts/unlike.ts rename to packages/backend/src/server/api/endpoints/gallery/posts/unlike.ts diff --git a/src/server/api/endpoints/gallery/posts/update.ts b/packages/backend/src/server/api/endpoints/gallery/posts/update.ts similarity index 100% rename from src/server/api/endpoints/gallery/posts/update.ts rename to packages/backend/src/server/api/endpoints/gallery/posts/update.ts diff --git a/src/server/api/endpoints/games/reversi/games.ts b/packages/backend/src/server/api/endpoints/games/reversi/games.ts similarity index 100% rename from src/server/api/endpoints/games/reversi/games.ts rename to packages/backend/src/server/api/endpoints/games/reversi/games.ts diff --git a/src/server/api/endpoints/games/reversi/games/show.ts b/packages/backend/src/server/api/endpoints/games/reversi/games/show.ts similarity index 100% rename from src/server/api/endpoints/games/reversi/games/show.ts rename to packages/backend/src/server/api/endpoints/games/reversi/games/show.ts diff --git a/src/server/api/endpoints/games/reversi/games/surrender.ts b/packages/backend/src/server/api/endpoints/games/reversi/games/surrender.ts similarity index 100% rename from src/server/api/endpoints/games/reversi/games/surrender.ts rename to packages/backend/src/server/api/endpoints/games/reversi/games/surrender.ts diff --git a/src/server/api/endpoints/games/reversi/invitations.ts b/packages/backend/src/server/api/endpoints/games/reversi/invitations.ts similarity index 100% rename from src/server/api/endpoints/games/reversi/invitations.ts rename to packages/backend/src/server/api/endpoints/games/reversi/invitations.ts diff --git a/src/server/api/endpoints/games/reversi/match.ts b/packages/backend/src/server/api/endpoints/games/reversi/match.ts similarity index 100% rename from src/server/api/endpoints/games/reversi/match.ts rename to packages/backend/src/server/api/endpoints/games/reversi/match.ts diff --git a/src/server/api/endpoints/games/reversi/match/cancel.ts b/packages/backend/src/server/api/endpoints/games/reversi/match/cancel.ts similarity index 100% rename from src/server/api/endpoints/games/reversi/match/cancel.ts rename to packages/backend/src/server/api/endpoints/games/reversi/match/cancel.ts diff --git a/src/server/api/endpoints/get-online-users-count.ts b/packages/backend/src/server/api/endpoints/get-online-users-count.ts similarity index 100% rename from src/server/api/endpoints/get-online-users-count.ts rename to packages/backend/src/server/api/endpoints/get-online-users-count.ts diff --git a/src/server/api/endpoints/hashtags/list.ts b/packages/backend/src/server/api/endpoints/hashtags/list.ts similarity index 100% rename from src/server/api/endpoints/hashtags/list.ts rename to packages/backend/src/server/api/endpoints/hashtags/list.ts diff --git a/src/server/api/endpoints/hashtags/search.ts b/packages/backend/src/server/api/endpoints/hashtags/search.ts similarity index 100% rename from src/server/api/endpoints/hashtags/search.ts rename to packages/backend/src/server/api/endpoints/hashtags/search.ts diff --git a/src/server/api/endpoints/hashtags/show.ts b/packages/backend/src/server/api/endpoints/hashtags/show.ts similarity index 100% rename from src/server/api/endpoints/hashtags/show.ts rename to packages/backend/src/server/api/endpoints/hashtags/show.ts diff --git a/src/server/api/endpoints/hashtags/trend.ts b/packages/backend/src/server/api/endpoints/hashtags/trend.ts similarity index 100% rename from src/server/api/endpoints/hashtags/trend.ts rename to packages/backend/src/server/api/endpoints/hashtags/trend.ts diff --git a/src/server/api/endpoints/hashtags/users.ts b/packages/backend/src/server/api/endpoints/hashtags/users.ts similarity index 100% rename from src/server/api/endpoints/hashtags/users.ts rename to packages/backend/src/server/api/endpoints/hashtags/users.ts diff --git a/src/server/api/endpoints/i.ts b/packages/backend/src/server/api/endpoints/i.ts similarity index 100% rename from src/server/api/endpoints/i.ts rename to packages/backend/src/server/api/endpoints/i.ts diff --git a/src/server/api/endpoints/i/2fa/done.ts b/packages/backend/src/server/api/endpoints/i/2fa/done.ts similarity index 100% rename from src/server/api/endpoints/i/2fa/done.ts rename to packages/backend/src/server/api/endpoints/i/2fa/done.ts diff --git a/src/server/api/endpoints/i/2fa/key-done.ts b/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts similarity index 100% rename from src/server/api/endpoints/i/2fa/key-done.ts rename to packages/backend/src/server/api/endpoints/i/2fa/key-done.ts diff --git a/src/server/api/endpoints/i/2fa/password-less.ts b/packages/backend/src/server/api/endpoints/i/2fa/password-less.ts similarity index 100% rename from src/server/api/endpoints/i/2fa/password-less.ts rename to packages/backend/src/server/api/endpoints/i/2fa/password-less.ts diff --git a/src/server/api/endpoints/i/2fa/register-key.ts b/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts similarity index 100% rename from src/server/api/endpoints/i/2fa/register-key.ts rename to packages/backend/src/server/api/endpoints/i/2fa/register-key.ts diff --git a/src/server/api/endpoints/i/2fa/register.ts b/packages/backend/src/server/api/endpoints/i/2fa/register.ts similarity index 100% rename from src/server/api/endpoints/i/2fa/register.ts rename to packages/backend/src/server/api/endpoints/i/2fa/register.ts diff --git a/src/server/api/endpoints/i/2fa/remove-key.ts b/packages/backend/src/server/api/endpoints/i/2fa/remove-key.ts similarity index 100% rename from src/server/api/endpoints/i/2fa/remove-key.ts rename to packages/backend/src/server/api/endpoints/i/2fa/remove-key.ts diff --git a/src/server/api/endpoints/i/2fa/unregister.ts b/packages/backend/src/server/api/endpoints/i/2fa/unregister.ts similarity index 100% rename from src/server/api/endpoints/i/2fa/unregister.ts rename to packages/backend/src/server/api/endpoints/i/2fa/unregister.ts diff --git a/src/server/api/endpoints/i/apps.ts b/packages/backend/src/server/api/endpoints/i/apps.ts similarity index 100% rename from src/server/api/endpoints/i/apps.ts rename to packages/backend/src/server/api/endpoints/i/apps.ts diff --git a/src/server/api/endpoints/i/authorized-apps.ts b/packages/backend/src/server/api/endpoints/i/authorized-apps.ts similarity index 100% rename from src/server/api/endpoints/i/authorized-apps.ts rename to packages/backend/src/server/api/endpoints/i/authorized-apps.ts diff --git a/src/server/api/endpoints/i/change-password.ts b/packages/backend/src/server/api/endpoints/i/change-password.ts similarity index 100% rename from src/server/api/endpoints/i/change-password.ts rename to packages/backend/src/server/api/endpoints/i/change-password.ts diff --git a/src/server/api/endpoints/i/delete-account.ts b/packages/backend/src/server/api/endpoints/i/delete-account.ts similarity index 100% rename from src/server/api/endpoints/i/delete-account.ts rename to packages/backend/src/server/api/endpoints/i/delete-account.ts diff --git a/src/server/api/endpoints/i/export-blocking.ts b/packages/backend/src/server/api/endpoints/i/export-blocking.ts similarity index 100% rename from src/server/api/endpoints/i/export-blocking.ts rename to packages/backend/src/server/api/endpoints/i/export-blocking.ts diff --git a/src/server/api/endpoints/i/export-following.ts b/packages/backend/src/server/api/endpoints/i/export-following.ts similarity index 100% rename from src/server/api/endpoints/i/export-following.ts rename to packages/backend/src/server/api/endpoints/i/export-following.ts diff --git a/src/server/api/endpoints/i/export-mute.ts b/packages/backend/src/server/api/endpoints/i/export-mute.ts similarity index 100% rename from src/server/api/endpoints/i/export-mute.ts rename to packages/backend/src/server/api/endpoints/i/export-mute.ts diff --git a/src/server/api/endpoints/i/export-notes.ts b/packages/backend/src/server/api/endpoints/i/export-notes.ts similarity index 100% rename from src/server/api/endpoints/i/export-notes.ts rename to packages/backend/src/server/api/endpoints/i/export-notes.ts diff --git a/src/server/api/endpoints/i/export-user-lists.ts b/packages/backend/src/server/api/endpoints/i/export-user-lists.ts similarity index 100% rename from src/server/api/endpoints/i/export-user-lists.ts rename to packages/backend/src/server/api/endpoints/i/export-user-lists.ts diff --git a/src/server/api/endpoints/i/favorites.ts b/packages/backend/src/server/api/endpoints/i/favorites.ts similarity index 100% rename from src/server/api/endpoints/i/favorites.ts rename to packages/backend/src/server/api/endpoints/i/favorites.ts diff --git a/src/server/api/endpoints/i/gallery/likes.ts b/packages/backend/src/server/api/endpoints/i/gallery/likes.ts similarity index 100% rename from src/server/api/endpoints/i/gallery/likes.ts rename to packages/backend/src/server/api/endpoints/i/gallery/likes.ts diff --git a/src/server/api/endpoints/i/gallery/posts.ts b/packages/backend/src/server/api/endpoints/i/gallery/posts.ts similarity index 100% rename from src/server/api/endpoints/i/gallery/posts.ts rename to packages/backend/src/server/api/endpoints/i/gallery/posts.ts diff --git a/src/server/api/endpoints/i/get-word-muted-notes-count.ts b/packages/backend/src/server/api/endpoints/i/get-word-muted-notes-count.ts similarity index 100% rename from src/server/api/endpoints/i/get-word-muted-notes-count.ts rename to packages/backend/src/server/api/endpoints/i/get-word-muted-notes-count.ts diff --git a/src/server/api/endpoints/i/import-blocking.ts b/packages/backend/src/server/api/endpoints/i/import-blocking.ts similarity index 100% rename from src/server/api/endpoints/i/import-blocking.ts rename to packages/backend/src/server/api/endpoints/i/import-blocking.ts diff --git a/src/server/api/endpoints/i/import-following.ts b/packages/backend/src/server/api/endpoints/i/import-following.ts similarity index 100% rename from src/server/api/endpoints/i/import-following.ts rename to packages/backend/src/server/api/endpoints/i/import-following.ts diff --git a/src/server/api/endpoints/i/import-muting.ts b/packages/backend/src/server/api/endpoints/i/import-muting.ts similarity index 100% rename from src/server/api/endpoints/i/import-muting.ts rename to packages/backend/src/server/api/endpoints/i/import-muting.ts diff --git a/src/server/api/endpoints/i/import-user-lists.ts b/packages/backend/src/server/api/endpoints/i/import-user-lists.ts similarity index 100% rename from src/server/api/endpoints/i/import-user-lists.ts rename to packages/backend/src/server/api/endpoints/i/import-user-lists.ts diff --git a/src/server/api/endpoints/i/notifications.ts b/packages/backend/src/server/api/endpoints/i/notifications.ts similarity index 100% rename from src/server/api/endpoints/i/notifications.ts rename to packages/backend/src/server/api/endpoints/i/notifications.ts diff --git a/src/server/api/endpoints/i/page-likes.ts b/packages/backend/src/server/api/endpoints/i/page-likes.ts similarity index 100% rename from src/server/api/endpoints/i/page-likes.ts rename to packages/backend/src/server/api/endpoints/i/page-likes.ts diff --git a/src/server/api/endpoints/i/pages.ts b/packages/backend/src/server/api/endpoints/i/pages.ts similarity index 100% rename from src/server/api/endpoints/i/pages.ts rename to packages/backend/src/server/api/endpoints/i/pages.ts diff --git a/src/server/api/endpoints/i/pin.ts b/packages/backend/src/server/api/endpoints/i/pin.ts similarity index 100% rename from src/server/api/endpoints/i/pin.ts rename to packages/backend/src/server/api/endpoints/i/pin.ts diff --git a/src/server/api/endpoints/i/read-all-messaging-messages.ts b/packages/backend/src/server/api/endpoints/i/read-all-messaging-messages.ts similarity index 100% rename from src/server/api/endpoints/i/read-all-messaging-messages.ts rename to packages/backend/src/server/api/endpoints/i/read-all-messaging-messages.ts diff --git a/src/server/api/endpoints/i/read-all-unread-notes.ts b/packages/backend/src/server/api/endpoints/i/read-all-unread-notes.ts similarity index 100% rename from src/server/api/endpoints/i/read-all-unread-notes.ts rename to packages/backend/src/server/api/endpoints/i/read-all-unread-notes.ts diff --git a/src/server/api/endpoints/i/read-announcement.ts b/packages/backend/src/server/api/endpoints/i/read-announcement.ts similarity index 100% rename from src/server/api/endpoints/i/read-announcement.ts rename to packages/backend/src/server/api/endpoints/i/read-announcement.ts diff --git a/src/server/api/endpoints/i/regenerate-token.ts b/packages/backend/src/server/api/endpoints/i/regenerate-token.ts similarity index 100% rename from src/server/api/endpoints/i/regenerate-token.ts rename to packages/backend/src/server/api/endpoints/i/regenerate-token.ts diff --git a/src/server/api/endpoints/i/registry/get-all.ts b/packages/backend/src/server/api/endpoints/i/registry/get-all.ts similarity index 100% rename from src/server/api/endpoints/i/registry/get-all.ts rename to packages/backend/src/server/api/endpoints/i/registry/get-all.ts diff --git a/src/server/api/endpoints/i/registry/get-detail.ts b/packages/backend/src/server/api/endpoints/i/registry/get-detail.ts similarity index 100% rename from src/server/api/endpoints/i/registry/get-detail.ts rename to packages/backend/src/server/api/endpoints/i/registry/get-detail.ts diff --git a/src/server/api/endpoints/i/registry/get.ts b/packages/backend/src/server/api/endpoints/i/registry/get.ts similarity index 100% rename from src/server/api/endpoints/i/registry/get.ts rename to packages/backend/src/server/api/endpoints/i/registry/get.ts diff --git a/src/server/api/endpoints/i/registry/keys-with-type.ts b/packages/backend/src/server/api/endpoints/i/registry/keys-with-type.ts similarity index 100% rename from src/server/api/endpoints/i/registry/keys-with-type.ts rename to packages/backend/src/server/api/endpoints/i/registry/keys-with-type.ts diff --git a/src/server/api/endpoints/i/registry/keys.ts b/packages/backend/src/server/api/endpoints/i/registry/keys.ts similarity index 100% rename from src/server/api/endpoints/i/registry/keys.ts rename to packages/backend/src/server/api/endpoints/i/registry/keys.ts diff --git a/src/server/api/endpoints/i/registry/remove.ts b/packages/backend/src/server/api/endpoints/i/registry/remove.ts similarity index 100% rename from src/server/api/endpoints/i/registry/remove.ts rename to packages/backend/src/server/api/endpoints/i/registry/remove.ts diff --git a/src/server/api/endpoints/i/registry/scopes.ts b/packages/backend/src/server/api/endpoints/i/registry/scopes.ts similarity index 100% rename from src/server/api/endpoints/i/registry/scopes.ts rename to packages/backend/src/server/api/endpoints/i/registry/scopes.ts diff --git a/src/server/api/endpoints/i/registry/set.ts b/packages/backend/src/server/api/endpoints/i/registry/set.ts similarity index 100% rename from src/server/api/endpoints/i/registry/set.ts rename to packages/backend/src/server/api/endpoints/i/registry/set.ts diff --git a/src/server/api/endpoints/i/revoke-token.ts b/packages/backend/src/server/api/endpoints/i/revoke-token.ts similarity index 100% rename from src/server/api/endpoints/i/revoke-token.ts rename to packages/backend/src/server/api/endpoints/i/revoke-token.ts diff --git a/src/server/api/endpoints/i/signin-history.ts b/packages/backend/src/server/api/endpoints/i/signin-history.ts similarity index 100% rename from src/server/api/endpoints/i/signin-history.ts rename to packages/backend/src/server/api/endpoints/i/signin-history.ts diff --git a/src/server/api/endpoints/i/unpin.ts b/packages/backend/src/server/api/endpoints/i/unpin.ts similarity index 100% rename from src/server/api/endpoints/i/unpin.ts rename to packages/backend/src/server/api/endpoints/i/unpin.ts diff --git a/src/server/api/endpoints/i/update-email.ts b/packages/backend/src/server/api/endpoints/i/update-email.ts similarity index 100% rename from src/server/api/endpoints/i/update-email.ts rename to packages/backend/src/server/api/endpoints/i/update-email.ts diff --git a/src/server/api/endpoints/i/update.ts b/packages/backend/src/server/api/endpoints/i/update.ts similarity index 100% rename from src/server/api/endpoints/i/update.ts rename to packages/backend/src/server/api/endpoints/i/update.ts diff --git a/src/server/api/endpoints/i/user-group-invites.ts b/packages/backend/src/server/api/endpoints/i/user-group-invites.ts similarity index 100% rename from src/server/api/endpoints/i/user-group-invites.ts rename to packages/backend/src/server/api/endpoints/i/user-group-invites.ts diff --git a/src/server/api/endpoints/messaging/history.ts b/packages/backend/src/server/api/endpoints/messaging/history.ts similarity index 100% rename from src/server/api/endpoints/messaging/history.ts rename to packages/backend/src/server/api/endpoints/messaging/history.ts diff --git a/src/server/api/endpoints/messaging/messages.ts b/packages/backend/src/server/api/endpoints/messaging/messages.ts similarity index 100% rename from src/server/api/endpoints/messaging/messages.ts rename to packages/backend/src/server/api/endpoints/messaging/messages.ts diff --git a/src/server/api/endpoints/messaging/messages/create.ts b/packages/backend/src/server/api/endpoints/messaging/messages/create.ts similarity index 100% rename from src/server/api/endpoints/messaging/messages/create.ts rename to packages/backend/src/server/api/endpoints/messaging/messages/create.ts diff --git a/src/server/api/endpoints/messaging/messages/delete.ts b/packages/backend/src/server/api/endpoints/messaging/messages/delete.ts similarity index 100% rename from src/server/api/endpoints/messaging/messages/delete.ts rename to packages/backend/src/server/api/endpoints/messaging/messages/delete.ts diff --git a/src/server/api/endpoints/messaging/messages/read.ts b/packages/backend/src/server/api/endpoints/messaging/messages/read.ts similarity index 100% rename from src/server/api/endpoints/messaging/messages/read.ts rename to packages/backend/src/server/api/endpoints/messaging/messages/read.ts diff --git a/src/server/api/endpoints/meta.ts b/packages/backend/src/server/api/endpoints/meta.ts similarity index 100% rename from src/server/api/endpoints/meta.ts rename to packages/backend/src/server/api/endpoints/meta.ts diff --git a/src/server/api/endpoints/miauth/gen-token.ts b/packages/backend/src/server/api/endpoints/miauth/gen-token.ts similarity index 100% rename from src/server/api/endpoints/miauth/gen-token.ts rename to packages/backend/src/server/api/endpoints/miauth/gen-token.ts diff --git a/src/server/api/endpoints/mute/create.ts b/packages/backend/src/server/api/endpoints/mute/create.ts similarity index 100% rename from src/server/api/endpoints/mute/create.ts rename to packages/backend/src/server/api/endpoints/mute/create.ts diff --git a/src/server/api/endpoints/mute/delete.ts b/packages/backend/src/server/api/endpoints/mute/delete.ts similarity index 100% rename from src/server/api/endpoints/mute/delete.ts rename to packages/backend/src/server/api/endpoints/mute/delete.ts diff --git a/src/server/api/endpoints/mute/list.ts b/packages/backend/src/server/api/endpoints/mute/list.ts similarity index 100% rename from src/server/api/endpoints/mute/list.ts rename to packages/backend/src/server/api/endpoints/mute/list.ts diff --git a/src/server/api/endpoints/my/apps.ts b/packages/backend/src/server/api/endpoints/my/apps.ts similarity index 100% rename from src/server/api/endpoints/my/apps.ts rename to packages/backend/src/server/api/endpoints/my/apps.ts diff --git a/src/server/api/endpoints/notes.ts b/packages/backend/src/server/api/endpoints/notes.ts similarity index 100% rename from src/server/api/endpoints/notes.ts rename to packages/backend/src/server/api/endpoints/notes.ts diff --git a/src/server/api/endpoints/notes/children.ts b/packages/backend/src/server/api/endpoints/notes/children.ts similarity index 100% rename from src/server/api/endpoints/notes/children.ts rename to packages/backend/src/server/api/endpoints/notes/children.ts diff --git a/src/server/api/endpoints/notes/clips.ts b/packages/backend/src/server/api/endpoints/notes/clips.ts similarity index 100% rename from src/server/api/endpoints/notes/clips.ts rename to packages/backend/src/server/api/endpoints/notes/clips.ts diff --git a/src/server/api/endpoints/notes/conversation.ts b/packages/backend/src/server/api/endpoints/notes/conversation.ts similarity index 100% rename from src/server/api/endpoints/notes/conversation.ts rename to packages/backend/src/server/api/endpoints/notes/conversation.ts diff --git a/src/server/api/endpoints/notes/create.ts b/packages/backend/src/server/api/endpoints/notes/create.ts similarity index 100% rename from src/server/api/endpoints/notes/create.ts rename to packages/backend/src/server/api/endpoints/notes/create.ts diff --git a/src/server/api/endpoints/notes/delete.ts b/packages/backend/src/server/api/endpoints/notes/delete.ts similarity index 100% rename from src/server/api/endpoints/notes/delete.ts rename to packages/backend/src/server/api/endpoints/notes/delete.ts diff --git a/src/server/api/endpoints/notes/favorites/create.ts b/packages/backend/src/server/api/endpoints/notes/favorites/create.ts similarity index 100% rename from src/server/api/endpoints/notes/favorites/create.ts rename to packages/backend/src/server/api/endpoints/notes/favorites/create.ts diff --git a/src/server/api/endpoints/notes/favorites/delete.ts b/packages/backend/src/server/api/endpoints/notes/favorites/delete.ts similarity index 100% rename from src/server/api/endpoints/notes/favorites/delete.ts rename to packages/backend/src/server/api/endpoints/notes/favorites/delete.ts diff --git a/src/server/api/endpoints/notes/featured.ts b/packages/backend/src/server/api/endpoints/notes/featured.ts similarity index 100% rename from src/server/api/endpoints/notes/featured.ts rename to packages/backend/src/server/api/endpoints/notes/featured.ts diff --git a/src/server/api/endpoints/notes/global-timeline.ts b/packages/backend/src/server/api/endpoints/notes/global-timeline.ts similarity index 100% rename from src/server/api/endpoints/notes/global-timeline.ts rename to packages/backend/src/server/api/endpoints/notes/global-timeline.ts diff --git a/src/server/api/endpoints/notes/hybrid-timeline.ts b/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts similarity index 100% rename from src/server/api/endpoints/notes/hybrid-timeline.ts rename to packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts diff --git a/src/server/api/endpoints/notes/local-timeline.ts b/packages/backend/src/server/api/endpoints/notes/local-timeline.ts similarity index 100% rename from src/server/api/endpoints/notes/local-timeline.ts rename to packages/backend/src/server/api/endpoints/notes/local-timeline.ts diff --git a/src/server/api/endpoints/notes/mentions.ts b/packages/backend/src/server/api/endpoints/notes/mentions.ts similarity index 100% rename from src/server/api/endpoints/notes/mentions.ts rename to packages/backend/src/server/api/endpoints/notes/mentions.ts diff --git a/src/server/api/endpoints/notes/polls/recommendation.ts b/packages/backend/src/server/api/endpoints/notes/polls/recommendation.ts similarity index 100% rename from src/server/api/endpoints/notes/polls/recommendation.ts rename to packages/backend/src/server/api/endpoints/notes/polls/recommendation.ts diff --git a/src/server/api/endpoints/notes/polls/vote.ts b/packages/backend/src/server/api/endpoints/notes/polls/vote.ts similarity index 100% rename from src/server/api/endpoints/notes/polls/vote.ts rename to packages/backend/src/server/api/endpoints/notes/polls/vote.ts diff --git a/src/server/api/endpoints/notes/reactions.ts b/packages/backend/src/server/api/endpoints/notes/reactions.ts similarity index 100% rename from src/server/api/endpoints/notes/reactions.ts rename to packages/backend/src/server/api/endpoints/notes/reactions.ts diff --git a/src/server/api/endpoints/notes/reactions/create.ts b/packages/backend/src/server/api/endpoints/notes/reactions/create.ts similarity index 100% rename from src/server/api/endpoints/notes/reactions/create.ts rename to packages/backend/src/server/api/endpoints/notes/reactions/create.ts diff --git a/src/server/api/endpoints/notes/reactions/delete.ts b/packages/backend/src/server/api/endpoints/notes/reactions/delete.ts similarity index 100% rename from src/server/api/endpoints/notes/reactions/delete.ts rename to packages/backend/src/server/api/endpoints/notes/reactions/delete.ts diff --git a/src/server/api/endpoints/notes/renotes.ts b/packages/backend/src/server/api/endpoints/notes/renotes.ts similarity index 100% rename from src/server/api/endpoints/notes/renotes.ts rename to packages/backend/src/server/api/endpoints/notes/renotes.ts diff --git a/src/server/api/endpoints/notes/replies.ts b/packages/backend/src/server/api/endpoints/notes/replies.ts similarity index 100% rename from src/server/api/endpoints/notes/replies.ts rename to packages/backend/src/server/api/endpoints/notes/replies.ts diff --git a/src/server/api/endpoints/notes/search-by-tag.ts b/packages/backend/src/server/api/endpoints/notes/search-by-tag.ts similarity index 100% rename from src/server/api/endpoints/notes/search-by-tag.ts rename to packages/backend/src/server/api/endpoints/notes/search-by-tag.ts diff --git a/src/server/api/endpoints/notes/search.ts b/packages/backend/src/server/api/endpoints/notes/search.ts similarity index 100% rename from src/server/api/endpoints/notes/search.ts rename to packages/backend/src/server/api/endpoints/notes/search.ts diff --git a/src/server/api/endpoints/notes/show.ts b/packages/backend/src/server/api/endpoints/notes/show.ts similarity index 100% rename from src/server/api/endpoints/notes/show.ts rename to packages/backend/src/server/api/endpoints/notes/show.ts diff --git a/src/server/api/endpoints/notes/state.ts b/packages/backend/src/server/api/endpoints/notes/state.ts similarity index 100% rename from src/server/api/endpoints/notes/state.ts rename to packages/backend/src/server/api/endpoints/notes/state.ts diff --git a/src/server/api/endpoints/notes/thread-muting/create.ts b/packages/backend/src/server/api/endpoints/notes/thread-muting/create.ts similarity index 100% rename from src/server/api/endpoints/notes/thread-muting/create.ts rename to packages/backend/src/server/api/endpoints/notes/thread-muting/create.ts diff --git a/src/server/api/endpoints/notes/thread-muting/delete.ts b/packages/backend/src/server/api/endpoints/notes/thread-muting/delete.ts similarity index 100% rename from src/server/api/endpoints/notes/thread-muting/delete.ts rename to packages/backend/src/server/api/endpoints/notes/thread-muting/delete.ts diff --git a/src/server/api/endpoints/notes/timeline.ts b/packages/backend/src/server/api/endpoints/notes/timeline.ts similarity index 100% rename from src/server/api/endpoints/notes/timeline.ts rename to packages/backend/src/server/api/endpoints/notes/timeline.ts diff --git a/src/server/api/endpoints/notes/translate.ts b/packages/backend/src/server/api/endpoints/notes/translate.ts similarity index 100% rename from src/server/api/endpoints/notes/translate.ts rename to packages/backend/src/server/api/endpoints/notes/translate.ts diff --git a/src/server/api/endpoints/notes/unrenote.ts b/packages/backend/src/server/api/endpoints/notes/unrenote.ts similarity index 100% rename from src/server/api/endpoints/notes/unrenote.ts rename to packages/backend/src/server/api/endpoints/notes/unrenote.ts diff --git a/src/server/api/endpoints/notes/user-list-timeline.ts b/packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts similarity index 100% rename from src/server/api/endpoints/notes/user-list-timeline.ts rename to packages/backend/src/server/api/endpoints/notes/user-list-timeline.ts diff --git a/src/server/api/endpoints/notes/watching/create.ts b/packages/backend/src/server/api/endpoints/notes/watching/create.ts similarity index 100% rename from src/server/api/endpoints/notes/watching/create.ts rename to packages/backend/src/server/api/endpoints/notes/watching/create.ts diff --git a/src/server/api/endpoints/notes/watching/delete.ts b/packages/backend/src/server/api/endpoints/notes/watching/delete.ts similarity index 100% rename from src/server/api/endpoints/notes/watching/delete.ts rename to packages/backend/src/server/api/endpoints/notes/watching/delete.ts diff --git a/src/server/api/endpoints/notifications/create.ts b/packages/backend/src/server/api/endpoints/notifications/create.ts similarity index 100% rename from src/server/api/endpoints/notifications/create.ts rename to packages/backend/src/server/api/endpoints/notifications/create.ts diff --git a/src/server/api/endpoints/notifications/mark-all-as-read.ts b/packages/backend/src/server/api/endpoints/notifications/mark-all-as-read.ts similarity index 100% rename from src/server/api/endpoints/notifications/mark-all-as-read.ts rename to packages/backend/src/server/api/endpoints/notifications/mark-all-as-read.ts diff --git a/src/server/api/endpoints/notifications/read.ts b/packages/backend/src/server/api/endpoints/notifications/read.ts similarity index 100% rename from src/server/api/endpoints/notifications/read.ts rename to packages/backend/src/server/api/endpoints/notifications/read.ts diff --git a/src/server/api/endpoints/page-push.ts b/packages/backend/src/server/api/endpoints/page-push.ts similarity index 100% rename from src/server/api/endpoints/page-push.ts rename to packages/backend/src/server/api/endpoints/page-push.ts diff --git a/src/server/api/endpoints/pages/create.ts b/packages/backend/src/server/api/endpoints/pages/create.ts similarity index 100% rename from src/server/api/endpoints/pages/create.ts rename to packages/backend/src/server/api/endpoints/pages/create.ts diff --git a/src/server/api/endpoints/pages/delete.ts b/packages/backend/src/server/api/endpoints/pages/delete.ts similarity index 100% rename from src/server/api/endpoints/pages/delete.ts rename to packages/backend/src/server/api/endpoints/pages/delete.ts diff --git a/src/server/api/endpoints/pages/featured.ts b/packages/backend/src/server/api/endpoints/pages/featured.ts similarity index 100% rename from src/server/api/endpoints/pages/featured.ts rename to packages/backend/src/server/api/endpoints/pages/featured.ts diff --git a/src/server/api/endpoints/pages/like.ts b/packages/backend/src/server/api/endpoints/pages/like.ts similarity index 100% rename from src/server/api/endpoints/pages/like.ts rename to packages/backend/src/server/api/endpoints/pages/like.ts diff --git a/src/server/api/endpoints/pages/show.ts b/packages/backend/src/server/api/endpoints/pages/show.ts similarity index 100% rename from src/server/api/endpoints/pages/show.ts rename to packages/backend/src/server/api/endpoints/pages/show.ts diff --git a/src/server/api/endpoints/pages/unlike.ts b/packages/backend/src/server/api/endpoints/pages/unlike.ts similarity index 100% rename from src/server/api/endpoints/pages/unlike.ts rename to packages/backend/src/server/api/endpoints/pages/unlike.ts diff --git a/src/server/api/endpoints/pages/update.ts b/packages/backend/src/server/api/endpoints/pages/update.ts similarity index 100% rename from src/server/api/endpoints/pages/update.ts rename to packages/backend/src/server/api/endpoints/pages/update.ts diff --git a/src/server/api/endpoints/ping.ts b/packages/backend/src/server/api/endpoints/ping.ts similarity index 100% rename from src/server/api/endpoints/ping.ts rename to packages/backend/src/server/api/endpoints/ping.ts diff --git a/src/server/api/endpoints/pinned-users.ts b/packages/backend/src/server/api/endpoints/pinned-users.ts similarity index 90% rename from src/server/api/endpoints/pinned-users.ts rename to packages/backend/src/server/api/endpoints/pinned-users.ts index e88dfbd535..39cf7b0df1 100644 --- a/src/server/api/endpoints/pinned-users.ts +++ b/packages/backend/src/server/api/endpoints/pinned-users.ts @@ -1,7 +1,7 @@ import define from '../define'; import { Users } from '@/models/index'; import { fetchMeta } from '@/misc/fetch-meta'; -import { parseAcct } from '@/misc/acct'; +import * as Acct from 'misskey-js/built/acct'; import { User } from '@/models/entities/user'; export const meta = { @@ -26,7 +26,7 @@ export const meta = { export default define(meta, async (ps, me) => { const meta = await fetchMeta(); - const users = await Promise.all(meta.pinnedUsers.map(acct => Users.findOne(parseAcct(acct)))); + const users = await Promise.all(meta.pinnedUsers.map(acct => Users.findOne(Acct.parse(acct)))); return await Users.packMany(users.filter(x => x !== undefined) as User[], me, { detail: true }); }); diff --git a/src/server/api/endpoints/promo/read.ts b/packages/backend/src/server/api/endpoints/promo/read.ts similarity index 100% rename from src/server/api/endpoints/promo/read.ts rename to packages/backend/src/server/api/endpoints/promo/read.ts diff --git a/src/server/api/endpoints/request-reset-password.ts b/packages/backend/src/server/api/endpoints/request-reset-password.ts similarity index 100% rename from src/server/api/endpoints/request-reset-password.ts rename to packages/backend/src/server/api/endpoints/request-reset-password.ts diff --git a/src/server/api/endpoints/reset-db.ts b/packages/backend/src/server/api/endpoints/reset-db.ts similarity index 100% rename from src/server/api/endpoints/reset-db.ts rename to packages/backend/src/server/api/endpoints/reset-db.ts diff --git a/src/server/api/endpoints/reset-password.ts b/packages/backend/src/server/api/endpoints/reset-password.ts similarity index 100% rename from src/server/api/endpoints/reset-password.ts rename to packages/backend/src/server/api/endpoints/reset-password.ts diff --git a/src/server/api/endpoints/room/show.ts b/packages/backend/src/server/api/endpoints/room/show.ts similarity index 100% rename from src/server/api/endpoints/room/show.ts rename to packages/backend/src/server/api/endpoints/room/show.ts diff --git a/src/server/api/endpoints/room/update.ts b/packages/backend/src/server/api/endpoints/room/update.ts similarity index 100% rename from src/server/api/endpoints/room/update.ts rename to packages/backend/src/server/api/endpoints/room/update.ts diff --git a/src/server/api/endpoints/server-info.ts b/packages/backend/src/server/api/endpoints/server-info.ts similarity index 100% rename from src/server/api/endpoints/server-info.ts rename to packages/backend/src/server/api/endpoints/server-info.ts diff --git a/src/server/api/endpoints/stats.ts b/packages/backend/src/server/api/endpoints/stats.ts similarity index 100% rename from src/server/api/endpoints/stats.ts rename to packages/backend/src/server/api/endpoints/stats.ts diff --git a/src/server/api/endpoints/sw/register.ts b/packages/backend/src/server/api/endpoints/sw/register.ts similarity index 100% rename from src/server/api/endpoints/sw/register.ts rename to packages/backend/src/server/api/endpoints/sw/register.ts diff --git a/src/server/api/endpoints/sw/unregister.ts b/packages/backend/src/server/api/endpoints/sw/unregister.ts similarity index 100% rename from src/server/api/endpoints/sw/unregister.ts rename to packages/backend/src/server/api/endpoints/sw/unregister.ts diff --git a/src/server/api/endpoints/username/available.ts b/packages/backend/src/server/api/endpoints/username/available.ts similarity index 100% rename from src/server/api/endpoints/username/available.ts rename to packages/backend/src/server/api/endpoints/username/available.ts diff --git a/src/server/api/endpoints/users.ts b/packages/backend/src/server/api/endpoints/users.ts similarity index 100% rename from src/server/api/endpoints/users.ts rename to packages/backend/src/server/api/endpoints/users.ts diff --git a/src/server/api/endpoints/users/clips.ts b/packages/backend/src/server/api/endpoints/users/clips.ts similarity index 100% rename from src/server/api/endpoints/users/clips.ts rename to packages/backend/src/server/api/endpoints/users/clips.ts diff --git a/src/server/api/endpoints/users/followers.ts b/packages/backend/src/server/api/endpoints/users/followers.ts similarity index 100% rename from src/server/api/endpoints/users/followers.ts rename to packages/backend/src/server/api/endpoints/users/followers.ts diff --git a/src/server/api/endpoints/users/following.ts b/packages/backend/src/server/api/endpoints/users/following.ts similarity index 100% rename from src/server/api/endpoints/users/following.ts rename to packages/backend/src/server/api/endpoints/users/following.ts diff --git a/src/server/api/endpoints/users/gallery/posts.ts b/packages/backend/src/server/api/endpoints/users/gallery/posts.ts similarity index 100% rename from src/server/api/endpoints/users/gallery/posts.ts rename to packages/backend/src/server/api/endpoints/users/gallery/posts.ts diff --git a/src/server/api/endpoints/users/get-frequently-replied-users.ts b/packages/backend/src/server/api/endpoints/users/get-frequently-replied-users.ts similarity index 100% rename from src/server/api/endpoints/users/get-frequently-replied-users.ts rename to packages/backend/src/server/api/endpoints/users/get-frequently-replied-users.ts diff --git a/src/server/api/endpoints/users/groups/create.ts b/packages/backend/src/server/api/endpoints/users/groups/create.ts similarity index 100% rename from src/server/api/endpoints/users/groups/create.ts rename to packages/backend/src/server/api/endpoints/users/groups/create.ts diff --git a/src/server/api/endpoints/users/groups/delete.ts b/packages/backend/src/server/api/endpoints/users/groups/delete.ts similarity index 100% rename from src/server/api/endpoints/users/groups/delete.ts rename to packages/backend/src/server/api/endpoints/users/groups/delete.ts diff --git a/src/server/api/endpoints/users/groups/invitations/accept.ts b/packages/backend/src/server/api/endpoints/users/groups/invitations/accept.ts similarity index 100% rename from src/server/api/endpoints/users/groups/invitations/accept.ts rename to packages/backend/src/server/api/endpoints/users/groups/invitations/accept.ts diff --git a/src/server/api/endpoints/users/groups/invitations/reject.ts b/packages/backend/src/server/api/endpoints/users/groups/invitations/reject.ts similarity index 100% rename from src/server/api/endpoints/users/groups/invitations/reject.ts rename to packages/backend/src/server/api/endpoints/users/groups/invitations/reject.ts diff --git a/src/server/api/endpoints/users/groups/invite.ts b/packages/backend/src/server/api/endpoints/users/groups/invite.ts similarity index 100% rename from src/server/api/endpoints/users/groups/invite.ts rename to packages/backend/src/server/api/endpoints/users/groups/invite.ts diff --git a/src/server/api/endpoints/users/groups/joined.ts b/packages/backend/src/server/api/endpoints/users/groups/joined.ts similarity index 100% rename from src/server/api/endpoints/users/groups/joined.ts rename to packages/backend/src/server/api/endpoints/users/groups/joined.ts diff --git a/src/server/api/endpoints/users/groups/leave.ts b/packages/backend/src/server/api/endpoints/users/groups/leave.ts similarity index 100% rename from src/server/api/endpoints/users/groups/leave.ts rename to packages/backend/src/server/api/endpoints/users/groups/leave.ts diff --git a/src/server/api/endpoints/users/groups/owned.ts b/packages/backend/src/server/api/endpoints/users/groups/owned.ts similarity index 100% rename from src/server/api/endpoints/users/groups/owned.ts rename to packages/backend/src/server/api/endpoints/users/groups/owned.ts diff --git a/src/server/api/endpoints/users/groups/pull.ts b/packages/backend/src/server/api/endpoints/users/groups/pull.ts similarity index 100% rename from src/server/api/endpoints/users/groups/pull.ts rename to packages/backend/src/server/api/endpoints/users/groups/pull.ts diff --git a/src/server/api/endpoints/users/groups/show.ts b/packages/backend/src/server/api/endpoints/users/groups/show.ts similarity index 100% rename from src/server/api/endpoints/users/groups/show.ts rename to packages/backend/src/server/api/endpoints/users/groups/show.ts diff --git a/src/server/api/endpoints/users/groups/transfer.ts b/packages/backend/src/server/api/endpoints/users/groups/transfer.ts similarity index 100% rename from src/server/api/endpoints/users/groups/transfer.ts rename to packages/backend/src/server/api/endpoints/users/groups/transfer.ts diff --git a/src/server/api/endpoints/users/groups/update.ts b/packages/backend/src/server/api/endpoints/users/groups/update.ts similarity index 100% rename from src/server/api/endpoints/users/groups/update.ts rename to packages/backend/src/server/api/endpoints/users/groups/update.ts diff --git a/src/server/api/endpoints/users/lists/create.ts b/packages/backend/src/server/api/endpoints/users/lists/create.ts similarity index 100% rename from src/server/api/endpoints/users/lists/create.ts rename to packages/backend/src/server/api/endpoints/users/lists/create.ts diff --git a/src/server/api/endpoints/users/lists/delete.ts b/packages/backend/src/server/api/endpoints/users/lists/delete.ts similarity index 100% rename from src/server/api/endpoints/users/lists/delete.ts rename to packages/backend/src/server/api/endpoints/users/lists/delete.ts diff --git a/src/server/api/endpoints/users/lists/list.ts b/packages/backend/src/server/api/endpoints/users/lists/list.ts similarity index 100% rename from src/server/api/endpoints/users/lists/list.ts rename to packages/backend/src/server/api/endpoints/users/lists/list.ts diff --git a/src/server/api/endpoints/users/lists/pull.ts b/packages/backend/src/server/api/endpoints/users/lists/pull.ts similarity index 100% rename from src/server/api/endpoints/users/lists/pull.ts rename to packages/backend/src/server/api/endpoints/users/lists/pull.ts diff --git a/src/server/api/endpoints/users/lists/push.ts b/packages/backend/src/server/api/endpoints/users/lists/push.ts similarity index 100% rename from src/server/api/endpoints/users/lists/push.ts rename to packages/backend/src/server/api/endpoints/users/lists/push.ts diff --git a/src/server/api/endpoints/users/lists/show.ts b/packages/backend/src/server/api/endpoints/users/lists/show.ts similarity index 100% rename from src/server/api/endpoints/users/lists/show.ts rename to packages/backend/src/server/api/endpoints/users/lists/show.ts diff --git a/src/server/api/endpoints/users/lists/update.ts b/packages/backend/src/server/api/endpoints/users/lists/update.ts similarity index 100% rename from src/server/api/endpoints/users/lists/update.ts rename to packages/backend/src/server/api/endpoints/users/lists/update.ts diff --git a/src/server/api/endpoints/users/notes.ts b/packages/backend/src/server/api/endpoints/users/notes.ts similarity index 100% rename from src/server/api/endpoints/users/notes.ts rename to packages/backend/src/server/api/endpoints/users/notes.ts diff --git a/src/server/api/endpoints/users/pages.ts b/packages/backend/src/server/api/endpoints/users/pages.ts similarity index 100% rename from src/server/api/endpoints/users/pages.ts rename to packages/backend/src/server/api/endpoints/users/pages.ts diff --git a/src/server/api/endpoints/users/reactions.ts b/packages/backend/src/server/api/endpoints/users/reactions.ts similarity index 100% rename from src/server/api/endpoints/users/reactions.ts rename to packages/backend/src/server/api/endpoints/users/reactions.ts diff --git a/src/server/api/endpoints/users/recommendation.ts b/packages/backend/src/server/api/endpoints/users/recommendation.ts similarity index 100% rename from src/server/api/endpoints/users/recommendation.ts rename to packages/backend/src/server/api/endpoints/users/recommendation.ts diff --git a/src/server/api/endpoints/users/relation.ts b/packages/backend/src/server/api/endpoints/users/relation.ts similarity index 100% rename from src/server/api/endpoints/users/relation.ts rename to packages/backend/src/server/api/endpoints/users/relation.ts diff --git a/src/server/api/endpoints/users/report-abuse.ts b/packages/backend/src/server/api/endpoints/users/report-abuse.ts similarity index 100% rename from src/server/api/endpoints/users/report-abuse.ts rename to packages/backend/src/server/api/endpoints/users/report-abuse.ts diff --git a/src/server/api/endpoints/users/search-by-username-and-host.ts b/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts similarity index 100% rename from src/server/api/endpoints/users/search-by-username-and-host.ts rename to packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts diff --git a/src/server/api/endpoints/users/search.ts b/packages/backend/src/server/api/endpoints/users/search.ts similarity index 100% rename from src/server/api/endpoints/users/search.ts rename to packages/backend/src/server/api/endpoints/users/search.ts diff --git a/src/server/api/endpoints/users/show.ts b/packages/backend/src/server/api/endpoints/users/show.ts similarity index 100% rename from src/server/api/endpoints/users/show.ts rename to packages/backend/src/server/api/endpoints/users/show.ts diff --git a/src/server/api/endpoints/users/stats.ts b/packages/backend/src/server/api/endpoints/users/stats.ts similarity index 100% rename from src/server/api/endpoints/users/stats.ts rename to packages/backend/src/server/api/endpoints/users/stats.ts diff --git a/src/server/api/error.ts b/packages/backend/src/server/api/error.ts similarity index 100% rename from src/server/api/error.ts rename to packages/backend/src/server/api/error.ts diff --git a/src/server/api/index.ts b/packages/backend/src/server/api/index.ts similarity index 100% rename from src/server/api/index.ts rename to packages/backend/src/server/api/index.ts diff --git a/src/server/api/limiter.ts b/packages/backend/src/server/api/limiter.ts similarity index 86% rename from src/server/api/limiter.ts rename to packages/backend/src/server/api/limiter.ts index e677aad0b6..1e2fe5bcb3 100644 --- a/src/server/api/limiter.ts +++ b/packages/backend/src/server/api/limiter.ts @@ -1,7 +1,7 @@ import * as Limiter from 'ratelimiter'; import { redisClient } from '../../db/redis'; import { IEndpoint } from './endpoints'; -import { getAcct } from '@/misc/acct'; +import * as Acct from 'misskey-js/built/acct'; import { User } from '@/models/entities/user'; import Logger from '@/services/logger'; @@ -43,7 +43,7 @@ export default (endpoint: IEndpoint, user: User) => new Promise((ok, rejec return reject('ERR'); } - logger.debug(`@${getAcct(user)} ${endpoint.name} min remaining: ${info.remaining}`); + logger.debug(`@${Acct.toString(user)} ${endpoint.name} min remaining: ${info.remaining}`); if (info.remaining === 0) { reject('BRIEF_REQUEST_INTERVAL'); @@ -71,7 +71,7 @@ export default (endpoint: IEndpoint, user: User) => new Promise((ok, rejec return reject('ERR'); } - logger.debug(`@${getAcct(user)} ${endpoint.name} max remaining: ${info.remaining}`); + logger.debug(`@${Acct.toString(user)} ${endpoint.name} max remaining: ${info.remaining}`); if (info.remaining === 0) { reject('RATE_LIMIT_EXCEEDED'); diff --git a/src/server/api/logger.ts b/packages/backend/src/server/api/logger.ts similarity index 100% rename from src/server/api/logger.ts rename to packages/backend/src/server/api/logger.ts diff --git a/src/server/api/openapi/errors.ts b/packages/backend/src/server/api/openapi/errors.ts similarity index 100% rename from src/server/api/openapi/errors.ts rename to packages/backend/src/server/api/openapi/errors.ts diff --git a/src/server/api/openapi/gen-spec.ts b/packages/backend/src/server/api/openapi/gen-spec.ts similarity index 98% rename from src/server/api/openapi/gen-spec.ts rename to packages/backend/src/server/api/openapi/gen-spec.ts index 9db47c6dfc..48b819727f 100644 --- a/src/server/api/openapi/gen-spec.ts +++ b/packages/backend/src/server/api/openapi/gen-spec.ts @@ -3,7 +3,6 @@ import { Context } from 'cafy'; import config from '@/config/index'; import { errors as basicErrors } from './errors'; import { schemas, convertSchemaToOpenApiSchema } from './schemas'; -import { getDescription } from './description'; export function genOpenapiSpec(lang = 'ja-JP') { const spec = { @@ -12,7 +11,6 @@ export function genOpenapiSpec(lang = 'ja-JP') { info: { version: 'v1', title: 'Misskey API', - description: getDescription(lang), 'x-logo': { url: '/static-assets/api-doc.png' } }, diff --git a/src/server/api/openapi/schemas.ts b/packages/backend/src/server/api/openapi/schemas.ts similarity index 100% rename from src/server/api/openapi/schemas.ts rename to packages/backend/src/server/api/openapi/schemas.ts diff --git a/src/server/api/private/signin.ts b/packages/backend/src/server/api/private/signin.ts similarity index 100% rename from src/server/api/private/signin.ts rename to packages/backend/src/server/api/private/signin.ts diff --git a/src/server/api/private/signup-pending.ts b/packages/backend/src/server/api/private/signup-pending.ts similarity index 100% rename from src/server/api/private/signup-pending.ts rename to packages/backend/src/server/api/private/signup-pending.ts diff --git a/src/server/api/private/signup.ts b/packages/backend/src/server/api/private/signup.ts similarity index 100% rename from src/server/api/private/signup.ts rename to packages/backend/src/server/api/private/signup.ts diff --git a/src/server/api/service/discord.ts b/packages/backend/src/server/api/service/discord.ts similarity index 100% rename from src/server/api/service/discord.ts rename to packages/backend/src/server/api/service/discord.ts diff --git a/src/server/api/service/github.ts b/packages/backend/src/server/api/service/github.ts similarity index 100% rename from src/server/api/service/github.ts rename to packages/backend/src/server/api/service/github.ts diff --git a/src/server/api/service/twitter.ts b/packages/backend/src/server/api/service/twitter.ts similarity index 100% rename from src/server/api/service/twitter.ts rename to packages/backend/src/server/api/service/twitter.ts diff --git a/src/server/api/stream/channel.ts b/packages/backend/src/server/api/stream/channel.ts similarity index 100% rename from src/server/api/stream/channel.ts rename to packages/backend/src/server/api/stream/channel.ts diff --git a/src/server/api/stream/channels/admin.ts b/packages/backend/src/server/api/stream/channels/admin.ts similarity index 100% rename from src/server/api/stream/channels/admin.ts rename to packages/backend/src/server/api/stream/channels/admin.ts diff --git a/src/server/api/stream/channels/antenna.ts b/packages/backend/src/server/api/stream/channels/antenna.ts similarity index 100% rename from src/server/api/stream/channels/antenna.ts rename to packages/backend/src/server/api/stream/channels/antenna.ts diff --git a/src/server/api/stream/channels/channel.ts b/packages/backend/src/server/api/stream/channels/channel.ts similarity index 100% rename from src/server/api/stream/channels/channel.ts rename to packages/backend/src/server/api/stream/channels/channel.ts diff --git a/src/server/api/stream/channels/drive.ts b/packages/backend/src/server/api/stream/channels/drive.ts similarity index 100% rename from src/server/api/stream/channels/drive.ts rename to packages/backend/src/server/api/stream/channels/drive.ts diff --git a/src/server/api/stream/channels/games/reversi-game.ts b/packages/backend/src/server/api/stream/channels/games/reversi-game.ts similarity index 100% rename from src/server/api/stream/channels/games/reversi-game.ts rename to packages/backend/src/server/api/stream/channels/games/reversi-game.ts diff --git a/src/server/api/stream/channels/games/reversi.ts b/packages/backend/src/server/api/stream/channels/games/reversi.ts similarity index 100% rename from src/server/api/stream/channels/games/reversi.ts rename to packages/backend/src/server/api/stream/channels/games/reversi.ts diff --git a/src/server/api/stream/channels/global-timeline.ts b/packages/backend/src/server/api/stream/channels/global-timeline.ts similarity index 100% rename from src/server/api/stream/channels/global-timeline.ts rename to packages/backend/src/server/api/stream/channels/global-timeline.ts diff --git a/src/server/api/stream/channels/hashtag.ts b/packages/backend/src/server/api/stream/channels/hashtag.ts similarity index 100% rename from src/server/api/stream/channels/hashtag.ts rename to packages/backend/src/server/api/stream/channels/hashtag.ts diff --git a/src/server/api/stream/channels/home-timeline.ts b/packages/backend/src/server/api/stream/channels/home-timeline.ts similarity index 100% rename from src/server/api/stream/channels/home-timeline.ts rename to packages/backend/src/server/api/stream/channels/home-timeline.ts diff --git a/src/server/api/stream/channels/hybrid-timeline.ts b/packages/backend/src/server/api/stream/channels/hybrid-timeline.ts similarity index 100% rename from src/server/api/stream/channels/hybrid-timeline.ts rename to packages/backend/src/server/api/stream/channels/hybrid-timeline.ts diff --git a/src/server/api/stream/channels/index.ts b/packages/backend/src/server/api/stream/channels/index.ts similarity index 100% rename from src/server/api/stream/channels/index.ts rename to packages/backend/src/server/api/stream/channels/index.ts diff --git a/src/server/api/stream/channels/local-timeline.ts b/packages/backend/src/server/api/stream/channels/local-timeline.ts similarity index 100% rename from src/server/api/stream/channels/local-timeline.ts rename to packages/backend/src/server/api/stream/channels/local-timeline.ts diff --git a/src/server/api/stream/channels/main.ts b/packages/backend/src/server/api/stream/channels/main.ts similarity index 100% rename from src/server/api/stream/channels/main.ts rename to packages/backend/src/server/api/stream/channels/main.ts diff --git a/src/server/api/stream/channels/messaging-index.ts b/packages/backend/src/server/api/stream/channels/messaging-index.ts similarity index 100% rename from src/server/api/stream/channels/messaging-index.ts rename to packages/backend/src/server/api/stream/channels/messaging-index.ts diff --git a/src/server/api/stream/channels/messaging.ts b/packages/backend/src/server/api/stream/channels/messaging.ts similarity index 100% rename from src/server/api/stream/channels/messaging.ts rename to packages/backend/src/server/api/stream/channels/messaging.ts diff --git a/src/server/api/stream/channels/queue-stats.ts b/packages/backend/src/server/api/stream/channels/queue-stats.ts similarity index 100% rename from src/server/api/stream/channels/queue-stats.ts rename to packages/backend/src/server/api/stream/channels/queue-stats.ts diff --git a/src/server/api/stream/channels/server-stats.ts b/packages/backend/src/server/api/stream/channels/server-stats.ts similarity index 100% rename from src/server/api/stream/channels/server-stats.ts rename to packages/backend/src/server/api/stream/channels/server-stats.ts diff --git a/src/server/api/stream/channels/user-list.ts b/packages/backend/src/server/api/stream/channels/user-list.ts similarity index 100% rename from src/server/api/stream/channels/user-list.ts rename to packages/backend/src/server/api/stream/channels/user-list.ts diff --git a/src/server/api/stream/index.ts b/packages/backend/src/server/api/stream/index.ts similarity index 100% rename from src/server/api/stream/index.ts rename to packages/backend/src/server/api/stream/index.ts diff --git a/src/server/api/stream/types.ts b/packages/backend/src/server/api/stream/types.ts similarity index 100% rename from src/server/api/stream/types.ts rename to packages/backend/src/server/api/stream/types.ts diff --git a/src/server/api/streaming.ts b/packages/backend/src/server/api/streaming.ts similarity index 100% rename from src/server/api/streaming.ts rename to packages/backend/src/server/api/streaming.ts diff --git a/src/server/file/assets/bad-egg.png b/packages/backend/src/server/file/assets/bad-egg.png similarity index 100% rename from src/server/file/assets/bad-egg.png rename to packages/backend/src/server/file/assets/bad-egg.png diff --git a/src/server/file/assets/cache-expired.png b/packages/backend/src/server/file/assets/cache-expired.png similarity index 100% rename from src/server/file/assets/cache-expired.png rename to packages/backend/src/server/file/assets/cache-expired.png diff --git a/src/server/file/assets/dummy.png b/packages/backend/src/server/file/assets/dummy.png similarity index 100% rename from src/server/file/assets/dummy.png rename to packages/backend/src/server/file/assets/dummy.png diff --git a/src/server/file/assets/not-an-image.png b/packages/backend/src/server/file/assets/not-an-image.png similarity index 100% rename from src/server/file/assets/not-an-image.png rename to packages/backend/src/server/file/assets/not-an-image.png diff --git a/src/server/file/assets/thumbnail-not-available.png b/packages/backend/src/server/file/assets/thumbnail-not-available.png similarity index 100% rename from src/server/file/assets/thumbnail-not-available.png rename to packages/backend/src/server/file/assets/thumbnail-not-available.png diff --git a/src/server/file/assets/tombstone.png b/packages/backend/src/server/file/assets/tombstone.png similarity index 100% rename from src/server/file/assets/tombstone.png rename to packages/backend/src/server/file/assets/tombstone.png diff --git a/src/server/file/index.ts b/packages/backend/src/server/file/index.ts similarity index 100% rename from src/server/file/index.ts rename to packages/backend/src/server/file/index.ts diff --git a/src/server/file/send-drive-file.ts b/packages/backend/src/server/file/send-drive-file.ts similarity index 100% rename from src/server/file/send-drive-file.ts rename to packages/backend/src/server/file/send-drive-file.ts diff --git a/src/server/index.ts b/packages/backend/src/server/index.ts similarity index 97% rename from src/server/index.ts rename to packages/backend/src/server/index.ts index 5e1a12e4d3..507178a46c 100644 --- a/src/server/index.ts +++ b/packages/backend/src/server/index.ts @@ -26,7 +26,7 @@ import { networkChart } from '@/services/chart/index'; import { genAvatar } from '@/misc/gen-avatar'; import { createTemp } from '@/misc/create-temp'; import { publishMainStream } from '@/services/stream'; -import { parseAcct } from '@/misc/acct'; +import * as Acct from 'misskey-js/built/acct'; export const serverLogger = new Logger('server', 'gray', false); @@ -70,7 +70,7 @@ router.use(nodeinfo.routes()); router.use(wellKnown.routes()); router.get('/avatar/@:acct', async ctx => { - const { username, host } = parseAcct(ctx.params.acct); + const { username, host } = Acct.parse(ctx.params.acct); const user = await Users.findOne({ usernameLower: username.toLowerCase(), host: host === config.host ? null : host, diff --git a/src/server/nodeinfo.ts b/packages/backend/src/server/nodeinfo.ts similarity index 100% rename from src/server/nodeinfo.ts rename to packages/backend/src/server/nodeinfo.ts diff --git a/src/server/proxy/index.ts b/packages/backend/src/server/proxy/index.ts similarity index 100% rename from src/server/proxy/index.ts rename to packages/backend/src/server/proxy/index.ts diff --git a/src/server/proxy/proxy-media.ts b/packages/backend/src/server/proxy/proxy-media.ts similarity index 100% rename from src/server/proxy/proxy-media.ts rename to packages/backend/src/server/proxy/proxy-media.ts diff --git a/src/server/web/bios.css b/packages/backend/src/server/web/bios.css similarity index 100% rename from src/server/web/bios.css rename to packages/backend/src/server/web/bios.css diff --git a/src/server/web/bios.js b/packages/backend/src/server/web/bios.js similarity index 100% rename from src/server/web/bios.js rename to packages/backend/src/server/web/bios.js diff --git a/src/server/web/boot.js b/packages/backend/src/server/web/boot.js similarity index 100% rename from src/server/web/boot.js rename to packages/backend/src/server/web/boot.js diff --git a/src/server/web/cli.css b/packages/backend/src/server/web/cli.css similarity index 100% rename from src/server/web/cli.css rename to packages/backend/src/server/web/cli.css diff --git a/src/server/web/cli.js b/packages/backend/src/server/web/cli.js similarity index 100% rename from src/server/web/cli.js rename to packages/backend/src/server/web/cli.js diff --git a/src/server/web/feed.ts b/packages/backend/src/server/web/feed.ts similarity index 100% rename from src/server/web/feed.ts rename to packages/backend/src/server/web/feed.ts diff --git a/src/server/web/index.ts b/packages/backend/src/server/web/index.ts similarity index 93% rename from src/server/web/index.ts rename to packages/backend/src/server/web/index.ts index 70d5b696ff..969b155d4d 100644 --- a/src/server/web/index.ts +++ b/packages/backend/src/server/web/index.ts @@ -2,8 +2,6 @@ * Web Client Server */ -import * as os from 'os'; -import * as fs from 'fs'; import { dirname } from 'path'; import * as ms from 'ms'; import * as Koa from 'koa'; @@ -16,19 +14,16 @@ import packFeed from './feed'; import { fetchMeta } from '@/misc/fetch-meta'; import { genOpenapiSpec } from '../api/openapi/gen-spec'; import config from '@/config/index'; -import { Users, Notes, Emojis, UserProfiles, Pages, Channels, Clips, GalleryPosts } from '@/models/index'; -import { parseAcct } from '@/misc/acct'; +import { Users, Notes, UserProfiles, Pages, Channels, Clips, GalleryPosts } from '@/models/index'; +import * as Acct from 'misskey-js/built/acct'; import { getNoteSummary } from '@/misc/get-note-summary'; -import { getConnection } from 'typeorm'; -import { redisClient } from '../../db/redis'; -import * as locales from '../../../locales/index'; //const _filename = fileURLToPath(import.meta.url); const _filename = __filename; const _dirname = dirname(_filename); const staticAssets = `${_dirname}/../../../assets/`; -const assets = `${_dirname}/../../assets/`; +const assets = `${_dirname}/../../../../../built/_client_dist_/`; // Init app const app = new Koa(); @@ -127,7 +122,7 @@ router.get('/api.json', async ctx => { }); const getFeed = async (acct: string) => { - const { username, host } = parseAcct(acct); + const { username, host } = Acct.parse(acct); const user = await Users.findOne({ usernameLower: username.toLowerCase(), host, @@ -176,7 +171,7 @@ router.get('/@:user.json', async ctx => { //#region SSR (for crawlers) // User router.get(['/@:user', '/@:user/:sub'], async (ctx, next) => { - const { username, host } = parseAcct(ctx.params.user); + const { username, host } = Acct.parse(ctx.params.user); const user = await Users.findOne({ usernameLower: username.toLowerCase(), host, @@ -233,7 +228,7 @@ router.get('/notes/:note', async (ctx, next) => { note: _note, profile, // TODO: Let locale changeable by instance setting - summary: getNoteSummary(_note, locales['ja-JP']), + summary: getNoteSummary(_note), instanceName: meta.name || 'Misskey', icon: meta.iconUrl }); @@ -252,7 +247,7 @@ router.get('/notes/:note', async (ctx, next) => { // Page router.get('/@:user/pages/:page', async (ctx, next) => { - const { username, host } = parseAcct(ctx.params.user); + const { username, host } = Acct.parse(ctx.params.user); const user = await Users.findOne({ usernameLower: username.toLowerCase(), host diff --git a/src/server/web/manifest.json b/packages/backend/src/server/web/manifest.json similarity index 100% rename from src/server/web/manifest.json rename to packages/backend/src/server/web/manifest.json diff --git a/src/server/web/manifest.ts b/packages/backend/src/server/web/manifest.ts similarity index 100% rename from src/server/web/manifest.ts rename to packages/backend/src/server/web/manifest.ts diff --git a/src/server/web/style.css b/packages/backend/src/server/web/style.css similarity index 100% rename from src/server/web/style.css rename to packages/backend/src/server/web/style.css diff --git a/src/server/web/url-preview.ts b/packages/backend/src/server/web/url-preview.ts similarity index 100% rename from src/server/web/url-preview.ts rename to packages/backend/src/server/web/url-preview.ts diff --git a/src/server/web/views/base.pug b/packages/backend/src/server/web/views/base.pug similarity index 100% rename from src/server/web/views/base.pug rename to packages/backend/src/server/web/views/base.pug diff --git a/src/server/web/views/bios.pug b/packages/backend/src/server/web/views/bios.pug similarity index 100% rename from src/server/web/views/bios.pug rename to packages/backend/src/server/web/views/bios.pug diff --git a/src/server/web/views/channel.pug b/packages/backend/src/server/web/views/channel.pug similarity index 100% rename from src/server/web/views/channel.pug rename to packages/backend/src/server/web/views/channel.pug diff --git a/src/server/web/views/cli.pug b/packages/backend/src/server/web/views/cli.pug similarity index 100% rename from src/server/web/views/cli.pug rename to packages/backend/src/server/web/views/cli.pug diff --git a/src/server/web/views/clip.pug b/packages/backend/src/server/web/views/clip.pug similarity index 100% rename from src/server/web/views/clip.pug rename to packages/backend/src/server/web/views/clip.pug diff --git a/src/server/web/views/flush.pug b/packages/backend/src/server/web/views/flush.pug similarity index 100% rename from src/server/web/views/flush.pug rename to packages/backend/src/server/web/views/flush.pug diff --git a/src/server/web/views/gallery-post.pug b/packages/backend/src/server/web/views/gallery-post.pug similarity index 100% rename from src/server/web/views/gallery-post.pug rename to packages/backend/src/server/web/views/gallery-post.pug diff --git a/src/server/web/views/info-card.pug b/packages/backend/src/server/web/views/info-card.pug similarity index 100% rename from src/server/web/views/info-card.pug rename to packages/backend/src/server/web/views/info-card.pug diff --git a/src/server/web/views/note.pug b/packages/backend/src/server/web/views/note.pug similarity index 100% rename from src/server/web/views/note.pug rename to packages/backend/src/server/web/views/note.pug diff --git a/src/server/web/views/page.pug b/packages/backend/src/server/web/views/page.pug similarity index 100% rename from src/server/web/views/page.pug rename to packages/backend/src/server/web/views/page.pug diff --git a/src/server/web/views/user.pug b/packages/backend/src/server/web/views/user.pug similarity index 100% rename from src/server/web/views/user.pug rename to packages/backend/src/server/web/views/user.pug diff --git a/src/server/well-known.ts b/packages/backend/src/server/well-known.ts similarity index 96% rename from src/server/well-known.ts rename to packages/backend/src/server/well-known.ts index a2e6bc0bc4..5e99b0065c 100644 --- a/src/server/well-known.ts +++ b/packages/backend/src/server/well-known.ts @@ -1,7 +1,7 @@ import * as Router from '@koa/router'; import config from '@/config/index'; -import { parseAcct, Acct } from '@/misc/acct'; +import * as Acct from 'misskey-js/built/acct'; import { links } from './nodeinfo'; import { escapeAttribute, escapeValue } from '@/prelude/xml'; import { Users } from '@/models/index'; @@ -75,12 +75,12 @@ router.get(webFingerPath, async ctx => { const generateQuery = (resource: string) => resource.startsWith(`${config.url.toLowerCase()}/users/`) ? fromId(resource.split('/').pop()!) : - fromAcct(parseAcct( + fromAcct(Acct.parse( resource.startsWith(`${config.url.toLowerCase()}/@`) ? resource.split('/').pop()! : resource.startsWith('acct:') ? resource.slice('acct:'.length) : resource)); - const fromAcct = (acct: Acct): Record | number => + const fromAcct = (acct: Acct.Acct): Record | number => !acct.host || acct.host === config.host.toLowerCase() ? { usernameLower: acct.username, host: null, diff --git a/src/services/add-note-to-antenna.ts b/packages/backend/src/services/add-note-to-antenna.ts similarity index 100% rename from src/services/add-note-to-antenna.ts rename to packages/backend/src/services/add-note-to-antenna.ts diff --git a/src/services/blocking/create.ts b/packages/backend/src/services/blocking/create.ts similarity index 100% rename from src/services/blocking/create.ts rename to packages/backend/src/services/blocking/create.ts diff --git a/src/services/blocking/delete.ts b/packages/backend/src/services/blocking/delete.ts similarity index 100% rename from src/services/blocking/delete.ts rename to packages/backend/src/services/blocking/delete.ts diff --git a/src/services/chart/charts/classes/active-users.ts b/packages/backend/src/services/chart/charts/classes/active-users.ts similarity index 100% rename from src/services/chart/charts/classes/active-users.ts rename to packages/backend/src/services/chart/charts/classes/active-users.ts diff --git a/src/services/chart/charts/classes/drive.ts b/packages/backend/src/services/chart/charts/classes/drive.ts similarity index 100% rename from src/services/chart/charts/classes/drive.ts rename to packages/backend/src/services/chart/charts/classes/drive.ts diff --git a/src/services/chart/charts/classes/federation.ts b/packages/backend/src/services/chart/charts/classes/federation.ts similarity index 100% rename from src/services/chart/charts/classes/federation.ts rename to packages/backend/src/services/chart/charts/classes/federation.ts diff --git a/src/services/chart/charts/classes/hashtag.ts b/packages/backend/src/services/chart/charts/classes/hashtag.ts similarity index 100% rename from src/services/chart/charts/classes/hashtag.ts rename to packages/backend/src/services/chart/charts/classes/hashtag.ts diff --git a/src/services/chart/charts/classes/instance.ts b/packages/backend/src/services/chart/charts/classes/instance.ts similarity index 100% rename from src/services/chart/charts/classes/instance.ts rename to packages/backend/src/services/chart/charts/classes/instance.ts diff --git a/src/services/chart/charts/classes/network.ts b/packages/backend/src/services/chart/charts/classes/network.ts similarity index 100% rename from src/services/chart/charts/classes/network.ts rename to packages/backend/src/services/chart/charts/classes/network.ts diff --git a/src/services/chart/charts/classes/notes.ts b/packages/backend/src/services/chart/charts/classes/notes.ts similarity index 100% rename from src/services/chart/charts/classes/notes.ts rename to packages/backend/src/services/chart/charts/classes/notes.ts diff --git a/src/services/chart/charts/classes/per-user-drive.ts b/packages/backend/src/services/chart/charts/classes/per-user-drive.ts similarity index 100% rename from src/services/chart/charts/classes/per-user-drive.ts rename to packages/backend/src/services/chart/charts/classes/per-user-drive.ts diff --git a/src/services/chart/charts/classes/per-user-following.ts b/packages/backend/src/services/chart/charts/classes/per-user-following.ts similarity index 100% rename from src/services/chart/charts/classes/per-user-following.ts rename to packages/backend/src/services/chart/charts/classes/per-user-following.ts diff --git a/src/services/chart/charts/classes/per-user-notes.ts b/packages/backend/src/services/chart/charts/classes/per-user-notes.ts similarity index 100% rename from src/services/chart/charts/classes/per-user-notes.ts rename to packages/backend/src/services/chart/charts/classes/per-user-notes.ts diff --git a/src/services/chart/charts/classes/per-user-reactions.ts b/packages/backend/src/services/chart/charts/classes/per-user-reactions.ts similarity index 100% rename from src/services/chart/charts/classes/per-user-reactions.ts rename to packages/backend/src/services/chart/charts/classes/per-user-reactions.ts diff --git a/src/services/chart/charts/classes/test-grouped.ts b/packages/backend/src/services/chart/charts/classes/test-grouped.ts similarity index 100% rename from src/services/chart/charts/classes/test-grouped.ts rename to packages/backend/src/services/chart/charts/classes/test-grouped.ts diff --git a/src/services/chart/charts/classes/test-unique.ts b/packages/backend/src/services/chart/charts/classes/test-unique.ts similarity index 100% rename from src/services/chart/charts/classes/test-unique.ts rename to packages/backend/src/services/chart/charts/classes/test-unique.ts diff --git a/src/services/chart/charts/classes/test.ts b/packages/backend/src/services/chart/charts/classes/test.ts similarity index 100% rename from src/services/chart/charts/classes/test.ts rename to packages/backend/src/services/chart/charts/classes/test.ts diff --git a/src/services/chart/charts/classes/users.ts b/packages/backend/src/services/chart/charts/classes/users.ts similarity index 100% rename from src/services/chart/charts/classes/users.ts rename to packages/backend/src/services/chart/charts/classes/users.ts diff --git a/src/services/chart/charts/schemas/active-users.ts b/packages/backend/src/services/chart/charts/schemas/active-users.ts similarity index 100% rename from src/services/chart/charts/schemas/active-users.ts rename to packages/backend/src/services/chart/charts/schemas/active-users.ts diff --git a/src/services/chart/charts/schemas/drive.ts b/packages/backend/src/services/chart/charts/schemas/drive.ts similarity index 100% rename from src/services/chart/charts/schemas/drive.ts rename to packages/backend/src/services/chart/charts/schemas/drive.ts diff --git a/src/services/chart/charts/schemas/federation.ts b/packages/backend/src/services/chart/charts/schemas/federation.ts similarity index 100% rename from src/services/chart/charts/schemas/federation.ts rename to packages/backend/src/services/chart/charts/schemas/federation.ts diff --git a/src/services/chart/charts/schemas/hashtag.ts b/packages/backend/src/services/chart/charts/schemas/hashtag.ts similarity index 100% rename from src/services/chart/charts/schemas/hashtag.ts rename to packages/backend/src/services/chart/charts/schemas/hashtag.ts diff --git a/src/services/chart/charts/schemas/instance.ts b/packages/backend/src/services/chart/charts/schemas/instance.ts similarity index 100% rename from src/services/chart/charts/schemas/instance.ts rename to packages/backend/src/services/chart/charts/schemas/instance.ts diff --git a/src/services/chart/charts/schemas/network.ts b/packages/backend/src/services/chart/charts/schemas/network.ts similarity index 100% rename from src/services/chart/charts/schemas/network.ts rename to packages/backend/src/services/chart/charts/schemas/network.ts diff --git a/src/services/chart/charts/schemas/notes.ts b/packages/backend/src/services/chart/charts/schemas/notes.ts similarity index 100% rename from src/services/chart/charts/schemas/notes.ts rename to packages/backend/src/services/chart/charts/schemas/notes.ts diff --git a/src/services/chart/charts/schemas/per-user-drive.ts b/packages/backend/src/services/chart/charts/schemas/per-user-drive.ts similarity index 100% rename from src/services/chart/charts/schemas/per-user-drive.ts rename to packages/backend/src/services/chart/charts/schemas/per-user-drive.ts diff --git a/src/services/chart/charts/schemas/per-user-following.ts b/packages/backend/src/services/chart/charts/schemas/per-user-following.ts similarity index 100% rename from src/services/chart/charts/schemas/per-user-following.ts rename to packages/backend/src/services/chart/charts/schemas/per-user-following.ts diff --git a/src/services/chart/charts/schemas/per-user-notes.ts b/packages/backend/src/services/chart/charts/schemas/per-user-notes.ts similarity index 100% rename from src/services/chart/charts/schemas/per-user-notes.ts rename to packages/backend/src/services/chart/charts/schemas/per-user-notes.ts diff --git a/src/services/chart/charts/schemas/per-user-reactions.ts b/packages/backend/src/services/chart/charts/schemas/per-user-reactions.ts similarity index 100% rename from src/services/chart/charts/schemas/per-user-reactions.ts rename to packages/backend/src/services/chart/charts/schemas/per-user-reactions.ts diff --git a/src/services/chart/charts/schemas/test-grouped.ts b/packages/backend/src/services/chart/charts/schemas/test-grouped.ts similarity index 100% rename from src/services/chart/charts/schemas/test-grouped.ts rename to packages/backend/src/services/chart/charts/schemas/test-grouped.ts diff --git a/src/services/chart/charts/schemas/test-unique.ts b/packages/backend/src/services/chart/charts/schemas/test-unique.ts similarity index 100% rename from src/services/chart/charts/schemas/test-unique.ts rename to packages/backend/src/services/chart/charts/schemas/test-unique.ts diff --git a/src/services/chart/charts/schemas/test.ts b/packages/backend/src/services/chart/charts/schemas/test.ts similarity index 100% rename from src/services/chart/charts/schemas/test.ts rename to packages/backend/src/services/chart/charts/schemas/test.ts diff --git a/src/services/chart/charts/schemas/users.ts b/packages/backend/src/services/chart/charts/schemas/users.ts similarity index 100% rename from src/services/chart/charts/schemas/users.ts rename to packages/backend/src/services/chart/charts/schemas/users.ts diff --git a/src/services/chart/core.ts b/packages/backend/src/services/chart/core.ts similarity index 100% rename from src/services/chart/core.ts rename to packages/backend/src/services/chart/core.ts diff --git a/src/services/chart/entities.ts b/packages/backend/src/services/chart/entities.ts similarity index 100% rename from src/services/chart/entities.ts rename to packages/backend/src/services/chart/entities.ts diff --git a/src/services/chart/index.ts b/packages/backend/src/services/chart/index.ts similarity index 100% rename from src/services/chart/index.ts rename to packages/backend/src/services/chart/index.ts diff --git a/src/services/create-notification.ts b/packages/backend/src/services/create-notification.ts similarity index 100% rename from src/services/create-notification.ts rename to packages/backend/src/services/create-notification.ts diff --git a/src/services/create-system-user.ts b/packages/backend/src/services/create-system-user.ts similarity index 100% rename from src/services/create-system-user.ts rename to packages/backend/src/services/create-system-user.ts diff --git a/src/services/drive/add-file.ts b/packages/backend/src/services/drive/add-file.ts similarity index 100% rename from src/services/drive/add-file.ts rename to packages/backend/src/services/drive/add-file.ts diff --git a/src/services/drive/delete-file.ts b/packages/backend/src/services/drive/delete-file.ts similarity index 100% rename from src/services/drive/delete-file.ts rename to packages/backend/src/services/drive/delete-file.ts diff --git a/src/services/drive/generate-video-thumbnail.ts b/packages/backend/src/services/drive/generate-video-thumbnail.ts similarity index 100% rename from src/services/drive/generate-video-thumbnail.ts rename to packages/backend/src/services/drive/generate-video-thumbnail.ts diff --git a/src/services/drive/image-processor.ts b/packages/backend/src/services/drive/image-processor.ts similarity index 100% rename from src/services/drive/image-processor.ts rename to packages/backend/src/services/drive/image-processor.ts diff --git a/src/services/drive/internal-storage.ts b/packages/backend/src/services/drive/internal-storage.ts similarity index 98% rename from src/services/drive/internal-storage.ts rename to packages/backend/src/services/drive/internal-storage.ts index deaf3dc831..fe190a028c 100644 --- a/src/services/drive/internal-storage.ts +++ b/packages/backend/src/services/drive/internal-storage.ts @@ -9,7 +9,7 @@ const _filename = __filename; const _dirname = dirname(_filename); export class InternalStorage { - private static readonly path = Path.resolve(_dirname, '../../../files'); + private static readonly path = Path.resolve(_dirname, '../../../../../files'); public static resolvePath = (key: string) => Path.resolve(InternalStorage.path, key); diff --git a/src/services/drive/logger.ts b/packages/backend/src/services/drive/logger.ts similarity index 100% rename from src/services/drive/logger.ts rename to packages/backend/src/services/drive/logger.ts diff --git a/src/services/drive/s3.ts b/packages/backend/src/services/drive/s3.ts similarity index 100% rename from src/services/drive/s3.ts rename to packages/backend/src/services/drive/s3.ts diff --git a/src/services/drive/upload-from-url.ts b/packages/backend/src/services/drive/upload-from-url.ts similarity index 100% rename from src/services/drive/upload-from-url.ts rename to packages/backend/src/services/drive/upload-from-url.ts diff --git a/src/services/fetch-instance-metadata.ts b/packages/backend/src/services/fetch-instance-metadata.ts similarity index 100% rename from src/services/fetch-instance-metadata.ts rename to packages/backend/src/services/fetch-instance-metadata.ts diff --git a/src/services/following/create.ts b/packages/backend/src/services/following/create.ts similarity index 100% rename from src/services/following/create.ts rename to packages/backend/src/services/following/create.ts diff --git a/src/services/following/delete.ts b/packages/backend/src/services/following/delete.ts similarity index 100% rename from src/services/following/delete.ts rename to packages/backend/src/services/following/delete.ts diff --git a/src/services/following/requests/accept-all.ts b/packages/backend/src/services/following/requests/accept-all.ts similarity index 100% rename from src/services/following/requests/accept-all.ts rename to packages/backend/src/services/following/requests/accept-all.ts diff --git a/src/services/following/requests/accept.ts b/packages/backend/src/services/following/requests/accept.ts similarity index 100% rename from src/services/following/requests/accept.ts rename to packages/backend/src/services/following/requests/accept.ts diff --git a/src/services/following/requests/cancel.ts b/packages/backend/src/services/following/requests/cancel.ts similarity index 100% rename from src/services/following/requests/cancel.ts rename to packages/backend/src/services/following/requests/cancel.ts diff --git a/src/services/following/requests/create.ts b/packages/backend/src/services/following/requests/create.ts similarity index 100% rename from src/services/following/requests/create.ts rename to packages/backend/src/services/following/requests/create.ts diff --git a/src/services/following/requests/reject.ts b/packages/backend/src/services/following/requests/reject.ts similarity index 100% rename from src/services/following/requests/reject.ts rename to packages/backend/src/services/following/requests/reject.ts diff --git a/src/services/i/pin.ts b/packages/backend/src/services/i/pin.ts similarity index 100% rename from src/services/i/pin.ts rename to packages/backend/src/services/i/pin.ts diff --git a/src/services/i/update.ts b/packages/backend/src/services/i/update.ts similarity index 100% rename from src/services/i/update.ts rename to packages/backend/src/services/i/update.ts diff --git a/src/services/insert-moderation-log.ts b/packages/backend/src/services/insert-moderation-log.ts similarity index 100% rename from src/services/insert-moderation-log.ts rename to packages/backend/src/services/insert-moderation-log.ts diff --git a/src/services/instance-actor.ts b/packages/backend/src/services/instance-actor.ts similarity index 100% rename from src/services/instance-actor.ts rename to packages/backend/src/services/instance-actor.ts diff --git a/src/services/logger.ts b/packages/backend/src/services/logger.ts similarity index 98% rename from src/services/logger.ts rename to packages/backend/src/services/logger.ts index 67ee441254..709b9bae5c 100644 --- a/src/services/logger.ts +++ b/packages/backend/src/services/logger.ts @@ -58,7 +58,7 @@ export default class Logger { } const time = dateformat(new Date(), 'HH:MM:ss'); - const worker = cluster.isMaster ? '*' : cluster.worker.id; + const worker = cluster.isPrimary ? '*' : cluster.worker.id; const l = level === 'error' ? important ? chalk.bgRed.white('ERR ') : chalk.red('ERR ') : level === 'warning' ? chalk.yellow('WARN') : diff --git a/src/services/messages/create.ts b/packages/backend/src/services/messages/create.ts similarity index 100% rename from src/services/messages/create.ts rename to packages/backend/src/services/messages/create.ts diff --git a/src/services/messages/delete.ts b/packages/backend/src/services/messages/delete.ts similarity index 100% rename from src/services/messages/delete.ts rename to packages/backend/src/services/messages/delete.ts diff --git a/src/services/note/create.ts b/packages/backend/src/services/note/create.ts similarity index 98% rename from src/services/note/create.ts rename to packages/backend/src/services/note/create.ts index 98819c69a4..69d854ab1a 100644 --- a/src/services/note/create.ts +++ b/packages/backend/src/services/note/create.ts @@ -34,7 +34,6 @@ import { deliverToRelays } from '../relay'; import { Channel } from '@/models/entities/channel'; import { normalizeForSearch } from '@/misc/normalize-for-search'; import { getAntennas } from '@/misc/antenna-cache'; -import { fnNameList } from '@/mfm/fn-name-list'; type NotificationType = 'reply' | 'renote' | 'quote' | 'mention'; @@ -183,10 +182,10 @@ export default async (user: { id: User['id']; username: User['username']; host: // Parse MFM if needed if (!tags || !emojis || !mentionedUsers) { - const tokens = data.text ? mfm.parse(data.text, { fnNameList })! : []; - const cwTokens = data.cw ? mfm.parse(data.cw, { fnNameList })! : []; + const tokens = data.text ? mfm.parse(data.text)! : []; + const cwTokens = data.cw ? mfm.parse(data.cw)! : []; const choiceTokens = data.poll && data.poll.choices - ? concat(data.poll.choices.map(choice => mfm.parse(choice, { fnNameList })!)) + ? concat(data.poll.choices.map(choice => mfm.parse(choice)!)) : []; const combinedTokens = tokens.concat(cwTokens).concat(choiceTokens); diff --git a/src/services/note/delete.ts b/packages/backend/src/services/note/delete.ts similarity index 100% rename from src/services/note/delete.ts rename to packages/backend/src/services/note/delete.ts diff --git a/src/services/note/polls/update.ts b/packages/backend/src/services/note/polls/update.ts similarity index 100% rename from src/services/note/polls/update.ts rename to packages/backend/src/services/note/polls/update.ts diff --git a/src/services/note/polls/vote.ts b/packages/backend/src/services/note/polls/vote.ts similarity index 100% rename from src/services/note/polls/vote.ts rename to packages/backend/src/services/note/polls/vote.ts diff --git a/src/services/note/reaction/create.ts b/packages/backend/src/services/note/reaction/create.ts similarity index 100% rename from src/services/note/reaction/create.ts rename to packages/backend/src/services/note/reaction/create.ts diff --git a/src/services/note/reaction/delete.ts b/packages/backend/src/services/note/reaction/delete.ts similarity index 100% rename from src/services/note/reaction/delete.ts rename to packages/backend/src/services/note/reaction/delete.ts diff --git a/src/services/note/read.ts b/packages/backend/src/services/note/read.ts similarity index 100% rename from src/services/note/read.ts rename to packages/backend/src/services/note/read.ts diff --git a/src/services/note/unread.ts b/packages/backend/src/services/note/unread.ts similarity index 100% rename from src/services/note/unread.ts rename to packages/backend/src/services/note/unread.ts diff --git a/src/services/note/unwatch.ts b/packages/backend/src/services/note/unwatch.ts similarity index 100% rename from src/services/note/unwatch.ts rename to packages/backend/src/services/note/unwatch.ts diff --git a/src/services/note/watch.ts b/packages/backend/src/services/note/watch.ts similarity index 100% rename from src/services/note/watch.ts rename to packages/backend/src/services/note/watch.ts diff --git a/src/services/push-notification.ts b/packages/backend/src/services/push-notification.ts similarity index 100% rename from src/services/push-notification.ts rename to packages/backend/src/services/push-notification.ts diff --git a/src/services/register-or-fetch-instance-doc.ts b/packages/backend/src/services/register-or-fetch-instance-doc.ts similarity index 100% rename from src/services/register-or-fetch-instance-doc.ts rename to packages/backend/src/services/register-or-fetch-instance-doc.ts diff --git a/src/services/relay.ts b/packages/backend/src/services/relay.ts similarity index 100% rename from src/services/relay.ts rename to packages/backend/src/services/relay.ts diff --git a/src/services/send-email-notification.ts b/packages/backend/src/services/send-email-notification.ts similarity index 79% rename from src/services/send-email-notification.ts rename to packages/backend/src/services/send-email-notification.ts index 519d56a06b..157bacb46d 100644 --- a/src/services/send-email-notification.ts +++ b/packages/backend/src/services/send-email-notification.ts @@ -1,9 +1,9 @@ import { UserProfiles } from '@/models/index'; import { User } from '@/models/entities/user'; import { sendEmail } from './send-email'; -import * as locales from '../../locales/index'; import { I18n } from '@/misc/i18n'; -import { getAcct } from '@/misc/acct'; +import * as Acct from 'misskey-js/built/acct'; +const locales = require('../../../../locales/index.js'); // TODO: locale ファイルをクライアント用とサーバー用で分けたい @@ -13,7 +13,7 @@ async function follow(userId: User['id'], follower: User) { const locale = locales[userProfile.lang || 'ja-JP']; const i18n = new I18n(locale); // TODO: render user information html - sendEmail(userProfile.email, i18n.t('_email._follow.title'), `${follower.name} (@${getAcct(follower)})`, `${follower.name} (@${getAcct(follower)})`); + sendEmail(userProfile.email, i18n.t('_email._follow.title'), `${follower.name} (@${Acct.toString(follower)})`, `${follower.name} (@${Acct.toString(follower)})`); } async function receiveFollowRequest(userId: User['id'], follower: User) { @@ -22,7 +22,7 @@ async function receiveFollowRequest(userId: User['id'], follower: User) { const locale = locales[userProfile.lang || 'ja-JP']; const i18n = new I18n(locale); // TODO: render user information html - sendEmail(userProfile.email, i18n.t('_email._receiveFollowRequest.title'), `${follower.name} (@${getAcct(follower)})`, `${follower.name} (@${getAcct(follower)})`); + sendEmail(userProfile.email, i18n.t('_email._receiveFollowRequest.title'), `${follower.name} (@${Acct.toString(follower)})`, `${follower.name} (@${Acct.toString(follower)})`); } export const sendEmailNotification = { diff --git a/src/services/send-email.ts b/packages/backend/src/services/send-email.ts similarity index 100% rename from src/services/send-email.ts rename to packages/backend/src/services/send-email.ts diff --git a/src/services/stream.ts b/packages/backend/src/services/stream.ts similarity index 100% rename from src/services/stream.ts rename to packages/backend/src/services/stream.ts diff --git a/src/services/suspend-user.ts b/packages/backend/src/services/suspend-user.ts similarity index 100% rename from src/services/suspend-user.ts rename to packages/backend/src/services/suspend-user.ts diff --git a/src/services/unsuspend-user.ts b/packages/backend/src/services/unsuspend-user.ts similarity index 100% rename from src/services/unsuspend-user.ts rename to packages/backend/src/services/unsuspend-user.ts diff --git a/src/services/update-hashtag.ts b/packages/backend/src/services/update-hashtag.ts similarity index 100% rename from src/services/update-hashtag.ts rename to packages/backend/src/services/update-hashtag.ts diff --git a/src/services/user-list/push.ts b/packages/backend/src/services/user-list/push.ts similarity index 100% rename from src/services/user-list/push.ts rename to packages/backend/src/services/user-list/push.ts diff --git a/src/services/validate-email-for-account.ts b/packages/backend/src/services/validate-email-for-account.ts similarity index 100% rename from src/services/validate-email-for-account.ts rename to packages/backend/src/services/validate-email-for-account.ts diff --git a/src/types.ts b/packages/backend/src/types.ts similarity index 100% rename from src/types.ts rename to packages/backend/src/types.ts diff --git a/packages/backend/tools/accept-migration.js b/packages/backend/tools/accept-migration.js new file mode 100644 index 0000000000..309a4ab5e3 --- /dev/null +++ b/packages/backend/tools/accept-migration.js @@ -0,0 +1,26 @@ +"use strict"; +// ex) node built/tools/accept-migration Yo 1000000000001 +Object.defineProperty(exports, "__esModule", { value: true }); +const typeorm_1 = require("typeorm"); +const index_1 = require("@/config/index"); +(0, typeorm_1.createConnection)({ + type: 'postgres', + host: index_1.default.db.host, + port: index_1.default.db.port, + username: index_1.default.db.user, + password: index_1.default.db.pass, + database: index_1.default.db.db, + extra: index_1.default.db.extra, + synchronize: false, + dropSchema: false, +}).then(c => { + c.query(`INSERT INTO migrations(timestamp,name) VALUES (${process.argv[3]}, '${process.argv[2]}${process.argv[3]}');`).then(() => { + console.log('done'); + process.exit(0); + }).catch(e => { + console.log('ERROR:'); + console.log(e); + process.exit(1); + }); +}); +//# sourceMappingURL=accept-migration.js.map \ No newline at end of file diff --git a/packages/backend/tools/accept-migration.js.map b/packages/backend/tools/accept-migration.js.map new file mode 100644 index 0000000000..c158a49661 --- /dev/null +++ b/packages/backend/tools/accept-migration.js.map @@ -0,0 +1 @@ +{"version":3,"file":"accept-migration.js","sourceRoot":"","sources":["accept-migration.ts"],"names":[],"mappings":";AAAA,yDAAyD;;AAEzD,qCAA2C;AAC3C,0CAAoC;AAEpC,IAAA,0BAAgB,EAAC;IAChB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,eAAM,CAAC,EAAE,CAAC,IAAI;IACpB,IAAI,EAAE,eAAM,CAAC,EAAE,CAAC,IAAI;IACpB,QAAQ,EAAE,eAAM,CAAC,EAAE,CAAC,IAAI;IACxB,QAAQ,EAAE,eAAM,CAAC,EAAE,CAAC,IAAI;IACxB,QAAQ,EAAE,eAAM,CAAC,EAAE,CAAC,EAAE;IACtB,KAAK,EAAE,eAAM,CAAC,EAAE,CAAC,KAAK;IACtB,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,KAAK;CACjB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;IACX,CAAC,CAAC,KAAK,CAAC,kDAAkD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QAChI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/src/tools/accept-migration.ts b/packages/backend/tools/accept-migration.ts similarity index 100% rename from src/tools/accept-migration.ts rename to packages/backend/tools/accept-migration.ts diff --git a/packages/backend/tools/add-emoji.js b/packages/backend/tools/add-emoji.js new file mode 100644 index 0000000000..df02f554a5 --- /dev/null +++ b/packages/backend/tools/add-emoji.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const index_1 = require("@/models/index"); +const gen_id_1 = require("@/misc/gen-id"); +async function main(name, url, alias) { + const aliases = alias != null ? [alias] : []; + await index_1.Emojis.save({ + id: (0, gen_id_1.genId)(), + host: null, + name, + url, + aliases, + updatedAt: new Date() + }); +} +const args = process.argv.slice(2); +const name = args[0]; +const url = args[1]; +if (!name) + throw new Error('require name'); +if (!url) + throw new Error('require url'); +main(name, url).then(() => { + console.log('success'); + process.exit(0); +}).catch(e => { + console.warn(e); + process.exit(1); +}); +//# sourceMappingURL=add-emoji.js.map \ No newline at end of file diff --git a/packages/backend/tools/add-emoji.js.map b/packages/backend/tools/add-emoji.js.map new file mode 100644 index 0000000000..03bf31b984 --- /dev/null +++ b/packages/backend/tools/add-emoji.js.map @@ -0,0 +1 @@ +{"version":3,"file":"add-emoji.js","sourceRoot":"","sources":["add-emoji.ts"],"names":[],"mappings":";;AAAA,0CAAwC;AACxC,0CAAsC;AAEtC,KAAK,UAAU,IAAI,CAAC,IAAY,EAAE,GAAW,EAAE,KAAc;IAC5D,MAAM,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAE,KAAK,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/C,MAAM,cAAM,CAAC,IAAI,CAAC;QACjB,EAAE,EAAE,IAAA,cAAK,GAAE;QACX,IAAI,EAAE,IAAI;QACV,IAAI;QACJ,GAAG;QACH,OAAO;QACP,SAAS,EAAE,IAAI,IAAI,EAAE;KACrB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAEpB,IAAI,CAAC,IAAI;IAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;AAC3C,IAAI,CAAC,GAAG;IAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AAEzC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACzB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/src/tools/add-emoji.ts b/packages/backend/tools/add-emoji.ts similarity index 100% rename from src/tools/add-emoji.ts rename to packages/backend/tools/add-emoji.ts diff --git a/packages/backend/tools/demote-admin.js b/packages/backend/tools/demote-admin.js new file mode 100644 index 0000000000..d6a296883a --- /dev/null +++ b/packages/backend/tools/demote-admin.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const postgre_1 = require("../db/postgre"); +const typeorm_1 = require("typeorm"); +const user_1 = require("@/models/entities/user"); +async function main(username) { + if (!username) + throw `username required`; + username = username.replace(/^@/, ''); + await (0, postgre_1.initDb)(); + const Users = (0, typeorm_1.getRepository)(user_1.User); + const res = await Users.update({ + usernameLower: username.toLowerCase(), + host: null + }, { + isAdmin: false + }); + if (res.affected !== 1) { + throw 'Failed'; + } +} +const args = process.argv.slice(2); +main(args[0]).then(() => { + console.log('Success'); + process.exit(0); +}).catch(e => { + console.error(`Error: ${e.message || e}`); + process.exit(1); +}); +//# sourceMappingURL=demote-admin.js.map \ No newline at end of file diff --git a/packages/backend/tools/demote-admin.js.map b/packages/backend/tools/demote-admin.js.map new file mode 100644 index 0000000000..4403e2bab0 --- /dev/null +++ b/packages/backend/tools/demote-admin.js.map @@ -0,0 +1 @@ +{"version":3,"file":"demote-admin.js","sourceRoot":"","sources":["demote-admin.ts"],"names":[],"mappings":";;AAAA,2CAAuC;AACvC,qCAAwC;AACxC,iDAA8C;AAE9C,KAAK,UAAU,IAAI,CAAC,QAAgB;IACnC,IAAI,CAAC,QAAQ;QAAE,MAAM,mBAAmB,CAAC;IACzC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEtC,MAAM,IAAA,gBAAM,GAAE,CAAC;IACf,MAAM,KAAK,GAAG,IAAA,uBAAa,EAAC,WAAI,CAAC,CAAC;IAElC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;QAC9B,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE;QACrC,IAAI,EAAE,IAAI;KACV,EAAE;QACF,OAAO,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;QACvB,MAAM,QAAQ,CAAC;KACf;AACF,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACvB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACZ,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/src/tools/demote-admin.ts b/packages/backend/tools/demote-admin.ts similarity index 100% rename from src/tools/demote-admin.ts rename to packages/backend/tools/demote-admin.ts diff --git a/packages/backend/tools/mark-admin.js b/packages/backend/tools/mark-admin.js new file mode 100644 index 0000000000..4563d9c332 --- /dev/null +++ b/packages/backend/tools/mark-admin.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const postgre_1 = require("../db/postgre"); +const typeorm_1 = require("typeorm"); +const user_1 = require("@/models/entities/user"); +async function main(username) { + if (!username) + throw `username required`; + username = username.replace(/^@/, ''); + await (0, postgre_1.initDb)(); + const Users = (0, typeorm_1.getRepository)(user_1.User); + const res = await Users.update({ + usernameLower: username.toLowerCase(), + host: null + }, { + isAdmin: true + }); + if (res.affected !== 1) { + throw 'Failed'; + } +} +const args = process.argv.slice(2); +main(args[0]).then(() => { + console.log('Success'); + process.exit(0); +}).catch(e => { + console.error(`Error: ${e.message || e}`); + process.exit(1); +}); +//# sourceMappingURL=mark-admin.js.map \ No newline at end of file diff --git a/packages/backend/tools/mark-admin.js.map b/packages/backend/tools/mark-admin.js.map new file mode 100644 index 0000000000..5633e2f894 --- /dev/null +++ b/packages/backend/tools/mark-admin.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mark-admin.js","sourceRoot":"","sources":["mark-admin.ts"],"names":[],"mappings":";;AAAA,2CAAuC;AACvC,qCAAwC;AACxC,iDAA8C;AAE9C,KAAK,UAAU,IAAI,CAAC,QAAgB;IACnC,IAAI,CAAC,QAAQ;QAAE,MAAM,mBAAmB,CAAC;IACzC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEtC,MAAM,IAAA,gBAAM,GAAE,CAAC;IACf,MAAM,KAAK,GAAG,IAAA,uBAAa,EAAC,WAAI,CAAC,CAAC;IAElC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;QAC9B,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE;QACrC,IAAI,EAAE,IAAI;KACV,EAAE;QACF,OAAO,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;QACvB,MAAM,QAAQ,CAAC;KACf;AACF,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACvB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACZ,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/src/tools/mark-admin.ts b/packages/backend/tools/mark-admin.ts similarity index 100% rename from src/tools/mark-admin.ts rename to packages/backend/tools/mark-admin.ts diff --git a/packages/backend/tools/refresh-question.js b/packages/backend/tools/refresh-question.js new file mode 100644 index 0000000000..0536c38207 --- /dev/null +++ b/packages/backend/tools/refresh-question.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const question_1 = require("@/remote/activitypub/models/question"); +async function main(uri) { + return await (0, question_1.updateQuestion)(uri); +} +const args = process.argv.slice(2); +const uri = args[0]; +main(uri).then(result => { + console.log(`Done: ${result}`); +}).catch(e => { + console.warn(e); +}); +//# sourceMappingURL=refresh-question.js.map \ No newline at end of file diff --git a/packages/backend/tools/refresh-question.js.map b/packages/backend/tools/refresh-question.js.map new file mode 100644 index 0000000000..3db6d0b8bb --- /dev/null +++ b/packages/backend/tools/refresh-question.js.map @@ -0,0 +1 @@ +{"version":3,"file":"refresh-question.js","sourceRoot":"","sources":["refresh-question.ts"],"names":[],"mappings":";;AAAA,mEAAsE;AAEtE,KAAK,UAAU,IAAI,CAAC,GAAW;IAC9B,OAAO,MAAM,IAAA,yBAAc,EAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAEpB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IACvB,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/src/tools/refresh-question.ts b/packages/backend/tools/refresh-question.ts similarity index 100% rename from src/tools/refresh-question.ts rename to packages/backend/tools/refresh-question.ts diff --git a/packages/backend/tools/resync-remote-user.js b/packages/backend/tools/resync-remote-user.js new file mode 100644 index 0000000000..05d76ecc97 --- /dev/null +++ b/packages/backend/tools/resync-remote-user.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const postgre_1 = require("@/db/postgre"); +const Acct = require("misskey-js/built/acct"); +async function main(acct) { + await (0, postgre_1.initDb)(); + const { resolveUser } = await Promise.resolve().then(() => require('@/remote/resolve-user')); + const { username, host } = Acct.parse(acct); + await resolveUser(username, host, {}, true); +} +// get args +const args = process.argv.slice(2); +let acct = args[0]; +// normalize args +acct = acct.replace(/^@/, ''); +// check args +if (!acct.match(/^\w+@\w/)) { + throw `Invalid acct format. Valid format are user@host`; +} +console.log(`resync ${acct}`); +main(acct).then(() => { + console.log('Done'); +}).catch(e => { + console.warn(e); +}); +//# sourceMappingURL=resync-remote-user.js.map \ No newline at end of file diff --git a/packages/backend/tools/resync-remote-user.js.map b/packages/backend/tools/resync-remote-user.js.map new file mode 100644 index 0000000000..456d7da1d1 --- /dev/null +++ b/packages/backend/tools/resync-remote-user.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resync-remote-user.js","sourceRoot":"","sources":["resync-remote-user.ts"],"names":[],"mappings":";;AAAA,0CAAsC;AACtC,8CAA8C;AAE9C,KAAK,UAAU,IAAI,CAAC,IAAY;IAC/B,MAAM,IAAA,gBAAM,GAAE,CAAC;IACf,MAAM,EAAE,WAAW,EAAE,GAAG,2CAAa,uBAAuB,EAAC,CAAC;IAE9D,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,WAAW;AACX,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAEnB,iBAAiB;AACjB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAE9B,aAAa;AACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;IAC3B,MAAM,iDAAiD,CAAC;CACxD;AAED,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;AAE9B,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACpB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/src/tools/resync-remote-user.ts b/packages/backend/tools/resync-remote-user.ts similarity index 85% rename from src/tools/resync-remote-user.ts rename to packages/backend/tools/resync-remote-user.ts index bc43e250cb..22d2f7c895 100644 --- a/src/tools/resync-remote-user.ts +++ b/packages/backend/tools/resync-remote-user.ts @@ -1,11 +1,11 @@ import { initDb } from '@/db/postgre'; -import { parseAcct } from '@/misc/acct'; +import * as Acct from 'misskey-js/built/acct'; async function main(acct: string): Promise { await initDb(); const { resolveUser } = await import('@/remote/resolve-user'); - const { username, host } = parseAcct(acct); + const { username, host } = Acct.parse(acct); await resolveUser(username, host, {}, true); } diff --git a/packages/backend/tools/show-signin-history.js b/packages/backend/tools/show-signin-history.js new file mode 100644 index 0000000000..daeea84613 --- /dev/null +++ b/packages/backend/tools/show-signin-history.js @@ -0,0 +1,47 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const index_1 = require("@/models/index"); +// node built/tools/show-signin-history username +// => {Success} {Date} {IPAddrsss} +// node built/tools/show-signin-history username user-agent,x-forwarded-for +// with user-agent and x-forwarded-for +// node built/tools/show-signin-history username all +// with full request headers +async function main(username, headers) { + const user = await index_1.Users.findOne({ + host: null, + usernameLower: username.toLowerCase(), + }); + if (user == null) + throw new Error('User not found'); + const history = await index_1.Signins.find({ + userId: user.id + }); + for (const signin of history) { + console.log(`${signin.success ? 'OK' : 'NG'} ${signin.createdAt ? signin.createdAt.toISOString() : 'Unknown'} ${signin.ip}`); + // headers + if (headers != null) { + for (const key of Object.keys(signin.headers)) { + if (headers.includes('all') || headers.includes(key)) { + console.log(` ${key}: ${signin.headers[key]}`); + } + } + } + } +} +// get args +const args = process.argv.slice(2); +let username = args[0]; +let headers; +if (args[1] != null) { + headers = args[1].split(/,/).map(header => header.toLowerCase()); +} +// normalize args +username = username.replace(/^@/, ''); +main(username, headers).then(() => { + process.exit(0); +}).catch(e => { + console.warn(e); + process.exit(1); +}); +//# sourceMappingURL=show-signin-history.js.map \ No newline at end of file diff --git a/packages/backend/tools/show-signin-history.js.map b/packages/backend/tools/show-signin-history.js.map new file mode 100644 index 0000000000..b421825bce --- /dev/null +++ b/packages/backend/tools/show-signin-history.js.map @@ -0,0 +1 @@ +{"version":3,"file":"show-signin-history.js","sourceRoot":"","sources":["show-signin-history.ts"],"names":[],"mappings":";;AAAA,0CAAgD;AAEhD,gDAAgD;AAChD,mCAAmC;AAEnC,2EAA2E;AAC3E,uCAAuC;AAEvC,oDAAoD;AACpD,6BAA6B;AAE7B,KAAK,UAAU,IAAI,CAAC,QAAgB,EAAE,OAAkB;IACvD,MAAM,IAAI,GAAG,MAAM,aAAK,CAAC,OAAO,CAAC;QAChC,IAAI,EAAE,IAAI;QACV,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE;KACrC,CAAC,CAAC;IAEH,IAAI,IAAI,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAEpD,MAAM,OAAO,GAAG,MAAM,eAAO,CAAC,IAAI,CAAC;QAClC,MAAM,EAAE,IAAI,CAAC,EAAE;KACf,CAAC,CAAC;IAEH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAE7H,UAAU;QACV,IAAI,OAAO,IAAI,IAAI,EAAE;YACpB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBAC9C,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACrD,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBACjD;aACD;SACD;KACD;AACF,CAAC;AAED,WAAW;AACX,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,OAA6B,CAAC;AAElC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;IACpB,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;CACjE;AAED,iBAAiB;AACjB,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAEtC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/src/tools/show-signin-history.ts b/packages/backend/tools/show-signin-history.ts similarity index 100% rename from src/tools/show-signin-history.ts rename to packages/backend/tools/show-signin-history.ts diff --git a/src/tsconfig.json b/packages/backend/tsconfig.json similarity index 82% rename from src/tsconfig.json rename to packages/backend/tsconfig.json index 4a03a17432..3311e117de 100644 --- a/src/tsconfig.json +++ b/packages/backend/tsconfig.json @@ -8,7 +8,7 @@ "noUnusedLocals": false, "noFallthroughCasesInSwitch": true, "declaration": false, - "sourceMap": true, + "sourceMap": false, "target": "es2017", "module": "commonjs", "moduleResolution": "node", @@ -22,14 +22,14 @@ "emitDecoratorMetadata": true, "resolveJsonModule": true, "isolatedModules": true, - "rootDir": "./", + "rootDir": "./src", "baseUrl": "./", "paths": { - "@/*": ["./*"] + "@/*": ["./src/*"] }, - "outDir": "../built", + "outDir": "./built", "typeRoots": [ - "../node_modules/@types", + "./node_modules/@types", "./@types" ], "lib": [ @@ -38,9 +38,6 @@ }, "compileOnSave": false, "include": [ - "./**/*.ts" + "./src/**/*.ts" ], - "exclude": [ - "./client/**/*.ts" - ] } diff --git a/packages/backend/yarn.lock b/packages/backend/yarn.lock new file mode 100644 index 0000000000..bbf69fd626 --- /dev/null +++ b/packages/backend/yarn.lock @@ -0,0 +1,8274 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + +"@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + +"@babel/highlight@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c" + integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.6.0", "@babel/parser@^7.9.6": + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.9.tgz#ca34cb95e1c2dd126863a84465ae8ef66114be99" + integrity sha512-nEUfRiARCcaVo3ny3ZQjURjHQZUo/JkEw7rLlSZy/psWGnvwXFtPcr6jb7Yb41DVW5LTe6KRq9LGleRNsg1Frw== + +"@babel/runtime@^7.16.0": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5" + integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.6.2": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.13.tgz#0a21452352b02542db0ffb928ac2d3ca7cb6d66d" + integrity sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/types@^7.6.1", "@babel/types@^7.9.6": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.0.tgz#74424d2816f0171b4100f0ab34e9a374efdf7f80" + integrity sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@cspotcode/source-map-consumer@0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" + integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== + +"@cspotcode/source-map-support@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" + integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== + dependencies: + "@cspotcode/source-map-consumer" "0.8.0" + +"@cto.af/textdecoder@^0.0.0": + version "0.0.0" + resolved "https://registry.yarnpkg.com/@cto.af/textdecoder/-/textdecoder-0.0.0.tgz#e1e8d84c936c30a0f4619971f19ca41941af9fdc" + integrity sha512-sJpx3F5xcVV/9jNYJQtvimo4Vfld/nD3ph+ZWtQzZ03Zo8rJC7QKQTRcIGS13Rcz80DwFNthCWMrd58vpY4ZAQ== + +"@digitalbazaar/http-client@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@digitalbazaar/http-client/-/http-client-1.1.0.tgz#cac383b24ace04b18b919deab773462b03d3d7b0" + integrity sha512-ks7hqa6hm9NyULdbm9qL6TRS8rADzBw8R0lETvUgvdNXu9H62XG2YqoKRDThtfgWzWxLwRJ3Z2o4ev81dZZbyQ== + dependencies: + esm "^3.2.22" + ky "^0.25.1" + ky-universal "^0.8.2" + +"@discordapp/twemoji@13.1.0": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@discordapp/twemoji/-/twemoji-13.1.0.tgz#6b25f3958fa8fd68692248c87776bc737fd009a9" + integrity sha512-KEw/te+ylD2MHutzigafyptv0kdTU05Dbgxr9Y5J9IAQw8PbFz16nKtlPnJtA23BLp9fZQeNXzUmegkRi7fpDA== + dependencies: + fs-extra "^8.0.1" + jsonfile "^5.0.0" + twemoji-parser "13.1.0" + universalify "^0.1.2" + +"@elastic/elasticsearch@7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-7.11.0.tgz#e196243d0ed026742fc160d72cc5b4b5b6c7807d" + integrity sha512-AFVVuANIdbV1qYjuOi4hnsX/DehWYG+bbhQO4amq9K4/NnzU7mpGWOPgVlRQTiX+vBfBkx7SL6h4QEjIlM3ztA== + dependencies: + debug "^4.1.1" + hpagent "^0.1.1" + ms "^2.1.1" + pump "^3.0.0" + secure-json-parse "^2.1.0" + +"@eslint/eslintrc@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.4.tgz#dfe0ff7ba270848d10c5add0715e04964c034b31" + integrity sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.0.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@humanwhocodes/config-array@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.6.0.tgz#b5621fdb3b32309d2d16575456cbc277fa8f021a" + integrity sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" + integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== + +"@jfonx/console-utils@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@jfonx/console-utils/-/console-utils-1.0.3.tgz#cbb7f911e4191a4a2fe1ba4807d29f100b5d099f" + integrity sha512-/XbnqjWc7yNZVLAJJO9rimfIz9DYte+cj3EF9hwhIv7vw6ok2t3cjl0huYsmD89srKH03vWjeqAcIH86CuYj3g== + dependencies: + colors "^1.3.3" + +"@jfonx/file-utils@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@jfonx/file-utils/-/file-utils-3.0.1.tgz#8d3d6e931a283420fe29802ea71c28dd397cd8d3" + integrity sha512-qwH0CuzWmghtTHGMyuPHj6SJPQgWeiXFJBfrxCWMbzxVCa3aLZPEfzSdlSnC/UABsk6feRkNdHXw59rVshNPqw== + dependencies: + "@jfonx/console-utils" "^1.0.3" + comment-json "^4.1.0" + find-up "^4.1.0" + +"@koa/cors@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@koa/cors/-/cors-3.1.0.tgz#618bb073438cfdbd3ebd0e648a76e33b84f3a3b2" + integrity sha512-7ulRC1da/rBa6kj6P4g2aJfnET3z8Uf3SWu60cjbtxTA5g8lxRdX/Bd2P92EagGwwAhANeNw8T8if99rJliR6Q== + dependencies: + vary "^1.1.2" + +"@koa/multer@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@koa/multer/-/multer-3.0.0.tgz#439777949f28097d7b329c0b4ce3048074c862f8" + integrity sha512-y+OQBmex5D1jIl723gAEUYcAWPEicIXppaAKw/zCMfpllQ08ZNweDPwoCLxEoatqd5pCu2XG6V8dl67JRq3RJw== + +"@koa/router@9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@koa/router/-/router-9.0.1.tgz#4090a14223ea7e78aa13b632761209cba69acd95" + integrity sha512-OI+OU49CJV4px0WkIMmayBeqVXB/JS1ZMq7UoGlTZt6Y7ijK7kdeQ18+SEHHJPytmtI1y6Hf8XLrpxva3mhv5Q== + dependencies: + debug "^4.1.1" + http-errors "^1.7.3" + koa-compose "^4.1.0" + methods "^1.1.2" + path-to-regexp "^6.1.0" + +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== + dependencies: + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + dependencies: + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" + +"@npmcli/move-file@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@redocly/ajv@^8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-8.6.2.tgz#8c4e485e72f7864f91fae40093bed548ec2619b2" + integrity sha512-tU8fQs0D76ZKhJ2cWtnfQthWqiZgGBx0gH0+5D8JvaBEBaqA8foPPBt3Nonwr3ygyv5xrw2IzKWgIY86BlGs+w== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +"@redocly/openapi-core@1.0.0-beta.54": + version "1.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-1.0.0-beta.54.tgz#42575a849c4dd54b9d0c6413fb8ca547e087cd11" + integrity sha512-uYs0N1Trjkh7u8IMIuCU2VxCXhMyGWSZUkP/WNdTR1OgBUtvNdF9C32zoQV+hyCIH4gVu42ROHkjisy333ZX+w== + dependencies: + "@redocly/ajv" "^8.6.2" + "@types/node" "^14.11.8" + colorette "^1.2.0" + js-levenshtein "^1.1.6" + js-yaml "^3.14.1" + lodash.isequal "^4.5.0" + minimatch "^3.0.4" + node-fetch "^2.6.1" + yaml-ast-parser "0.0.43" + +"@sindresorhus/is@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" + integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== + +"@sinonjs/commons@^1.7.0": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.7.2.tgz#505f55c74e0272b43f6c52d81946bed7058fc0e2" + integrity sha512-+DUO6pnp3udV/v2VfUWgaY5BIE1IfT7lLfeDzPVeMT1XKkaAp9LgSI9x5RtrFQoZ9Oi0PgXQQHPaoKu7dCjVxw== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" + integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sqltools/formatter@^1.2.2": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.3.tgz#1185726610acc37317ddab11c3c7f9066966bd20" + integrity sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg== + +"@syuilo/aiscript@0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@syuilo/aiscript/-/aiscript-0.11.1.tgz#52c14692113c58d1d62e6ae696352ba49abdf2eb" + integrity sha512-chwOIA3yLUKvOB0G611hjLArKTeOWNmTm3lHERSaDW1d+dS6do56naX6Lkwy2UpnwWC0qzeNSgg35elk6t2gZg== + dependencies: + autobind-decorator "2.4.0" + chalk "4.0.0" + seedrandom "3.0.5" + stringz "2.1.0" + uuid "7.0.3" + +"@szmarczak/http-timer@^4.0.5": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" + integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== + dependencies: + defer-to-connect "^2.0.0" + +"@tokenizer/token@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" + integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@tsconfig/node10@^1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.7.tgz#1eb1de36c73478a2479cc661ef5af1c16d86d606" + integrity sha512-aBvUmXLQbayM4w3A8TrjwrXs4DZ8iduJnuJLLRGdkWlyakCf1q6uHZJBzXoRA/huAEknG5tcUyQxN3A+In5euQ== + +"@tsconfig/node12@^1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.7.tgz#677bd9117e8164dc319987dd6ff5fc1ba6fbf18b" + integrity sha512-dgasobK/Y0wVMswcipr3k0HpevxFJLijN03A8mYfEPvWvOs14v0ZlYTR4kIgMx8g4+fTyTFv8/jLCIfRqLDJ4A== + +"@tsconfig/node14@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.0.tgz#5bd046e508b1ee90bc091766758838741fdefd6e" + integrity sha512-RKkL8eTdPv6t5EHgFKIVQgsDapugbuOptNd9OOunN/HAkzmmTnZELx1kNCK0rSdUYGmiFMM3rRQMAWiyp023LQ== + +"@tsconfig/node16@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" + integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== + +"@types/accepts@*": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" + integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== + dependencies: + "@types/node" "*" + +"@types/anymatch@*": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" + integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== + +"@types/bcryptjs@2.4.2": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@types/bcryptjs/-/bcryptjs-2.4.2.tgz#e3530eac9dd136bfdfb0e43df2c4c5ce1f77dfae" + integrity sha512-LiMQ6EOPob/4yUL66SZzu6Yh77cbzJFYll+ZfaPiPPFswtIlA/Fs1MzdKYA7JApHU49zQTbJGX3PDmCpIdDBRQ== + +"@types/body-parser@*": + version "1.19.0" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" + integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bull@3.15.5": + version "3.15.5" + resolved "https://registry.yarnpkg.com/@types/bull/-/bull-3.15.5.tgz#a4459c127c5b10fb847531579a2cd5db35751366" + integrity sha512-XgJQWJ03jyKMfdoL8IAIoHIo7JkkL74kcxuujTONkSJswm0giIJ9kuVgDNHS0OvD+OiPNcFmbBl0H3scj2+A8A== + dependencies: + "@types/ioredis" "*" + +"@types/cacheable-request@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" + integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + +"@types/cbor@6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@types/cbor/-/cbor-6.0.0.tgz#ddead015e14ef4463287d40cd92a6297a34dac8d" + integrity sha512-mGQ1lbYOwVti5Xlarn1bTeBZqgY0kstsdjnkoEovgohYKdBjGejHyNGXHdMBeqyQazIv32Jjp33+5pBEaSRy2w== + dependencies: + cbor "*" + +"@types/cheerio@0.22.18": + version "0.22.18" + resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.18.tgz#19018dceae691509901e339d63edf1e935978fe6" + integrity sha512-Fq7R3fINAPSdUEhOyjG4iVxgHrOnqDJbY0/BUuiN0pvD/rfmZWekVZnv+vcs8TtpA2XF50uv50LaE4EnpEL/Hw== + dependencies: + "@types/node" "*" + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/connect@*": + version "3.4.33" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" + integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A== + dependencies: + "@types/node" "*" + +"@types/content-disposition@*": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.3.tgz#0aa116701955c2faa0717fc69cd1596095e49d96" + integrity sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg== + +"@types/cookies@*": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.4.tgz#26dedf791701abc0e36b5b79a5722f40e455f87b" + integrity sha512-oTGtMzZZAVuEjTwCjIh8T8FrC8n/uwy+PG0yTvQcdZ7etoel7C7/3MSd7qrukENTgQtotG7gvBlBojuVs7X5rw== + dependencies: + "@types/connect" "*" + "@types/express" "*" + "@types/keygrip" "*" + "@types/node" "*" + +"@types/dateformat@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/dateformat/-/dateformat-3.0.1.tgz#98d747a2e5e9a56070c6bf14e27bff56204e34cc" + integrity sha512-KlPPdikagvL6ELjWsljbyDIPzNCeliYkqRpI+zea99vBBbCIA5JNshZAwQKTON139c87y9qvTFVgkFd14rtS4g== + +"@types/disposable-email-domains@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/disposable-email-domains/-/disposable-email-domains-1.0.2.tgz#0280f6b38fa7f14e54b056a434135ecd254483b1" + integrity sha512-SDKwyYTjk3y5aZBxxc38yRecpJPjsqn57STz1bNxYYlv4k11bBe7QB8w4llXDTmQXKT1mFvgGmJv+8Zdu3YmJw== + +"@types/escape-regexp@0.0.0": + version "0.0.0" + resolved "https://registry.yarnpkg.com/@types/escape-regexp/-/escape-regexp-0.0.0.tgz#bff0225f9ef30d0dbdbe0e2a24283ee5342990c3" + integrity sha512-HTansGo4tJ7K7W9I9LBdQqnHtPB/Y7tlS+EMrkboaAQLsRPhRpHaqAHe01K1HVXM5e1u1IplRd8EBh+pJrp7Dg== + +"@types/eslint-scope@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" + integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.0.tgz#eb5c5b575237334df24c53195e37b53d66478d7b" + integrity sha512-LpUXkr7fnmPXWGxB0ZuLEzNeTURuHPavkC5zuU4sg62/TgL5ZEjamr5Y8b6AftwHtx2bPJasI+CL0TT2JwQ7aA== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^0.0.46": + version "0.0.46" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" + integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== + +"@types/events@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== + +"@types/express-serve-static-core@*": + version "4.17.5" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.5.tgz#a00ac7dadd746ae82477443e4d480a6a93ea083c" + integrity sha512-578YH5Lt88AKoADy0b2jQGwJtrBxezXtVe/MBqWXKZpqx91SnC0pVkVCcxcytz3lWW+cHBYDi3Ysh0WXc+rAYw== + dependencies: + "@types/node" "*" + "@types/range-parser" "*" + +"@types/express@*": + version "4.17.6" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.6.tgz#6bce49e49570507b86ea1b07b806f04697fac45e" + integrity sha512-n/mr9tZI83kd4azlPG5y997C/M4DNABK9yErhFM6hKdym4kkmd9j0vtsJyjFIwfRBxtrxZtAfGZCNRIBMFLK5w== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "*" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/fluent-ffmpeg@2.1.17": + version "2.1.17" + resolved "https://registry.yarnpkg.com/@types/fluent-ffmpeg/-/fluent-ffmpeg-2.1.17.tgz#6958dda400fe1b33c21f3683db76905cb210d053" + integrity sha512-/bdvjKw/mtBHlJ2370d04nt4CsWqU5MrwS/NtO96V01jxitJ4+iq8OFNcqc5CegeV3TQOK3uueK02kvRK+zjUg== + dependencies: + "@types/node" "*" + +"@types/glob@*": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/glob@7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/http-assert@*": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b" + integrity sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ== + +"@types/http-cache-semantics@*": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" + integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== + +"@types/http-errors@*": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.0.tgz#682477dbbbd07cd032731cb3b0e7eaee3d026b69" + integrity sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA== + +"@types/ioredis@*": + version "4.14.9" + resolved "https://registry.yarnpkg.com/@types/ioredis/-/ioredis-4.14.9.tgz#774387d44d3ad60e1b849044b2b28b96e5813866" + integrity sha512-yNdzppM6vY4DYqXCnt4A3PXArxsMWeJCYxFlyl4AJKrNSGMEAP9TPcXR+8Q6zh9glcCtxmwMQhi4pwdqqHH3OA== + dependencies: + "@types/node" "*" + +"@types/is-url@1.2.30": + version "1.2.30" + resolved "https://registry.yarnpkg.com/@types/is-url/-/is-url-1.2.30.tgz#85567e8bee4fee69202bc3448f9fb34b0d56c50a" + integrity sha512-AnlNFwjzC8XLda5VjRl4ItSd8qp8pSNowvsut0WwQyBWHpOxjxRJm8iO6uETWqEyLdYdb9/1j+Qd9gQ4l5I4fw== + +"@types/js-yaml@4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.4.tgz#cc38781257612581a1a0eb25f1709d2b06812fce" + integrity sha512-AuHubXUmg0AzkXH0Mx6sIxeY/1C110mm/EkE/gB1sTRz3h2dao2W/63q42SlVST+lICxz5Oki2hzYA6+KnnieQ== + +"@types/jsdom@16.2.13": + version "16.2.13" + resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-16.2.13.tgz#126c8b7441b159d6234610a48de77b6066f1823f" + integrity sha512-8JQCjdeAidptSsOcRWk2iTm9wCcwn9l+kRG6k5bzUacrnm1ezV4forq0kWjUih/tumAeoG+OspOvQEbbRucBTw== + dependencies: + "@types/node" "*" + "@types/parse5" "*" + "@types/tough-cookie" "*" + +"@types/json-schema@*": + version "7.0.5" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" + integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== + +"@types/json-schema@^7.0.6": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" + integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +"@types/jsonld@1.5.6": + version "1.5.6" + resolved "https://registry.yarnpkg.com/@types/jsonld/-/jsonld-1.5.6.tgz#4396c0b17128abf5773bb68b5453b88fc565b0d4" + integrity sha512-OUcfMjRie5IOrJulUQwVNvV57SOdKcTfBj3pjXNxzXqeOIrY2aGDNGW/Tlp83EQPkz4tCE6YWVrGuc/ZeaAQGg== + +"@types/keygrip@*": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" + integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== + +"@types/keyv@*": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" + integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== + dependencies: + "@types/node" "*" + +"@types/koa-bodyparser@4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@types/koa-bodyparser/-/koa-bodyparser-4.3.3.tgz#9c7d4295576bc863d550002f732f1c57dd88cc58" + integrity sha512-/ileIpXsy1fFEzgZhZ07eZH8rAVL7jwuk/kaoVEfauO6s80g2LIDIJKEyDbuAL9S/BWflKzEC0PHD6aXkmaSbw== + dependencies: + "@types/koa" "*" + +"@types/koa-compose@*": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" + integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== + dependencies: + "@types/koa" "*" + +"@types/koa-cors@0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@types/koa-cors/-/koa-cors-0.0.2.tgz#369c753fb383640f225579c70a4f9a286b4931b7" + integrity sha512-uNaDY26HUVO+2C6arK8ZFODs9mBjYprD8mlvkVe2bYdX9wzEeKtycVXPafXpUkePhMh4sffIMkhRDyedokG/QA== + dependencies: + "@types/koa" "*" + +"@types/koa-favicon@2.0.21": + version "2.0.21" + resolved "https://registry.yarnpkg.com/@types/koa-favicon/-/koa-favicon-2.0.21.tgz#d8a0ed062a6f5e3f838fe09c21e8b3f0490369cd" + integrity sha512-paH1nheVhijx/VduoR/RCD/qTCiX+OI/6fHLi3mZae053Ts+gUBOrKtzl3pMTDbdEBqdLolfLje3PZbb6jW0jQ== + dependencies: + "@types/koa" "*" + +"@types/koa-logger@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@types/koa-logger/-/koa-logger-3.1.2.tgz#91e890f405ddb0626bc385767e4cc0cd7226d1a8" + integrity sha512-sioTA1xlKYiIgryANWPRHBkG3XGbWftw9slWADUPC+qvPIY/yRLSrhvX7zkJwMrntub5dPO0GuAoyGGf0yitfQ== + dependencies: + "@types/koa" "*" + +"@types/koa-mount@4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/koa-mount/-/koa-mount-4.0.1.tgz#2994be86eaa3d9dc97365e6ebfa227cee3c5f157" + integrity sha512-HNeg80CVS9Dfq8dGYqCZZCAUm7g6jPCNJ1ydqVLEJxLrjmeburpvq+lOZkE4rxBZ6O38dr3tj9IA3IfbdoI05w== + dependencies: + "@types/koa" "*" + +"@types/koa-send@4.1.3": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@types/koa-send/-/koa-send-4.1.3.tgz#17193c6472ae9e5d1b99ae8086949cc4fd69179d" + integrity sha512-daaTqPZlgjIJycSTNjKpHYuKhXYP30atFc1pBcy6HHqB9+vcymDgYTguPdx9tO4HMOqNyz6bz/zqpxt5eLR+VA== + dependencies: + "@types/koa" "*" + +"@types/koa-views@7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@types/koa-views/-/koa-views-7.0.0.tgz#5613450c77ab69c980c47104378da4b7669c5f2e" + integrity sha512-AB/NB+oFHcLOZJYFv3bG5Af8YbwYCD9/zK0WcKALsbjI/FRKrcXTUTC64RebDrkyOkBm3bpCgpGndhAH/3YQ2Q== + dependencies: + koa-views "*" + +"@types/koa@*", "@types/koa@^2.13.1": + version "2.13.1" + resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.1.tgz#e29877a6b5ad3744ab1024f6ec75b8cbf6ec45db" + integrity sha512-Qbno7FWom9nNqu0yHZ6A0+RWt4mrYBhw3wpBAQ3+IuzGcLlfeYkzZrnMq5wsxulN2np8M4KKeUpTodsOsSad5Q== + dependencies: + "@types/accepts" "*" + "@types/content-disposition" "*" + "@types/cookies" "*" + "@types/http-assert" "*" + "@types/http-errors" "*" + "@types/keygrip" "*" + "@types/koa-compose" "*" + "@types/node" "*" + +"@types/koa@2.13.4": + version "2.13.4" + resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.4.tgz#10620b3f24a8027ef5cbae88b393d1b31205726b" + integrity sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw== + dependencies: + "@types/accepts" "*" + "@types/content-disposition" "*" + "@types/cookies" "*" + "@types/http-assert" "*" + "@types/http-errors" "*" + "@types/keygrip" "*" + "@types/koa-compose" "*" + "@types/node" "*" + +"@types/koa__cors@3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/koa__cors/-/koa__cors-3.0.3.tgz#49d75813b443ba3d4da28ea6cf6244b7e99a3b23" + integrity sha512-74Xb4hJOPGKlrQ4PRBk1A/p0gfLpgbnpT0o67OMVbwyeMXvlBN+ZCRztAAmkKZs+8hKbgMutUlZVbA52Hr/0IA== + dependencies: + "@types/koa" "*" + +"@types/koa__multer@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/koa__multer/-/koa__multer-2.0.4.tgz#e0f0fd1800a46b51886bebab480a57100f2488b0" + integrity sha512-WRkshXhE5rpYFUbbtAjyMhdOOSdbu1XX+2AQlRNM6AZtgxd0/WXMU4lrP7e9tk5HWVTWbx8DOOsVBmfHjSGJ4w== + dependencies: + "@types/koa" "*" + +"@types/koa__router@8.0.8": + version "8.0.8" + resolved "https://registry.yarnpkg.com/@types/koa__router/-/koa__router-8.0.8.tgz#b1e0e9a512498777d3366bbdf0e853df27ec831c" + integrity sha512-9pGCaDtzCsj4HJ8HmGuqzk8+s57sPj4njWd08GG5o92n5Xp9io2snc40CPpXFhoKcZ8OKhuu6ht4gNou9e1C2w== + dependencies: + "@types/koa" "*" + +"@types/mime@*": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d" + integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw== + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/mocha@8.2.3": + version "8.2.3" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.3.tgz#bbeb55fbc73f28ea6de601fbfa4613f58d785323" + integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw== + +"@types/node-fetch@2.5.12": + version "2.5.12" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.12.tgz#8a6f779b1d4e60b7a57fb6fd48d84fb545b9cc66" + integrity sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + +"@types/node@*": + version "16.6.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.6.2.tgz#331b7b9f8621c638284787c5559423822fdffc50" + integrity sha512-LSw8TZt12ZudbpHc6EkIyDM3nHVWKYrAvGy6EAJfNfjusbwnThqjqxUKKRwuV3iWYeW/LYMzNgaq3MaLffQ2xA== + +"@types/node@16.11.7": + version "16.11.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.7.tgz#36820945061326978c42a01e56b61cd223dfdc42" + integrity sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw== + +"@types/node@^14.11.8": + version "14.17.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.9.tgz#b97c057e6138adb7b720df2bd0264b03c9f504fd" + integrity sha512-CMjgRNsks27IDwI785YMY0KLt3co/c0cQ5foxHYv/shC2w8oOnVwz5Ubq1QG5KzrcW+AXk6gzdnxIkDnTvzu3g== + +"@types/nodemailer@6.4.4": + version "6.4.4" + resolved "https://registry.yarnpkg.com/@types/nodemailer/-/nodemailer-6.4.4.tgz#c265f7e7a51df587597b3a49a023acaf0c741f4b" + integrity sha512-Ksw4t7iliXeYGvIQcSIgWQ5BLuC/mljIEbjf615svhZL10PE9t+ei8O9gDaD3FPCasUJn9KTLwz2JFJyiiyuqw== + dependencies: + "@types/node" "*" + +"@types/nprogress@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@types/nprogress/-/nprogress-0.2.0.tgz#86c593682d4199212a0509cc3c4d562bbbd6e45f" + integrity sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A== + +"@types/oauth@0.9.1": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@types/oauth/-/oauth-0.9.1.tgz#e17221e7f7936b0459ae7d006255dff61adca305" + integrity sha512-a1iY62/a3yhZ7qH7cNUsxoI3U/0Fe9+RnuFrpTKr+0WVOzbKlSLojShCKe20aOD1Sppv+i8Zlq0pLDuTJnwS4A== + dependencies: + "@types/node" "*" + +"@types/parse5@*": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" + integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== + +"@types/parse5@6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-6.0.2.tgz#99f6b72d82e34cea03a4d8f2ed72114d909c1c61" + integrity sha512-+hQX+WyJAOne7Fh3zF5CxPemILIbuhNcqHHodzK9caYOLnC8pD5efmPleRnw0z++LfKUC/sVNMwk0Gap+B0baA== + +"@types/parsimmon@1.10.6": + version "1.10.6" + resolved "https://registry.yarnpkg.com/@types/parsimmon/-/parsimmon-1.10.6.tgz#8fcf95990514d2a7624aa5f630c13bf2427f9cdd" + integrity sha512-FwAQwMRbkhx0J6YELkwIpciVzCcgEqXEbIrIn3a2P5d3kGEHQ3wVhlN3YdVepYP+bZzCYO6OjmD4o9TGOZ40rA== + +"@types/portscanner@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@types/portscanner/-/portscanner-2.1.1.tgz#89d5094e16f3d941f20f3889dfa5d3a164b3dd3b" + integrity sha512-1NsVIbgBKvrqxwtMN0V6CLji1ERwKSI/RWz0J3y++CzSwYNGBStCfpIFgxV3ZwxsDR5PoZqoUWhwraDm+Ztn0Q== + +"@types/pug@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.5.tgz#69bc700934dd473c7ab97270bd2dbacefe562231" + integrity sha512-LOnASQoeNZMkzexRuyqcBBDZ6rS+rQxUMkmj5A0PkhhiSZivLIuz6Hxyr1mkGoEZEkk66faROmpMi4fFkrKsBA== + +"@types/punycode@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/punycode/-/punycode-2.1.0.tgz#89e4f3d09b3f92e87a80505af19be7e0c31d4e83" + integrity sha512-PG5aLpW6PJOeV2fHRslP4IOMWn+G+Uq8CfnyJ+PDS8ndCbU+soO+fB3NKCKo0p/Jh2Y4aPaiQZsrOXFdzpcA6g== + +"@types/qrcode@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@types/qrcode/-/qrcode-1.4.1.tgz#0689f400c3a95d2db040c99c99834faa09ee9dc1" + integrity sha512-vxMyr7JM7tYPxu8vUE83NiosWX5DZieCyYeJRoOIg0pAkyofCBzknJ2ycUZkPGDFis2RS8GN/BeJLnRnAPxeCA== + dependencies: + "@types/node" "*" + +"@types/qs@*": + version "6.9.1" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.1.tgz#937fab3194766256ee09fcd40b781740758617e7" + integrity sha512-lhbQXx9HKZAPgBkISrBcmAcMpZsmpe/Cd/hY7LGZS5OfkySUBItnPZHgQPssWYUET8elF+yCFBbP1Q0RZPTdaw== + +"@types/random-seed@0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@types/random-seed/-/random-seed-0.3.3.tgz#7741f7b0a4513198a9396ce4ad25832f799a6727" + integrity sha512-kHsCbIRHNXJo6EN5W8EA5b4i1hdT6jaZke5crBPLUcLqaLdZ0QBq8QVMbafHzhjFF83Cl9qlee2dChD18d/kPg== + +"@types/range-parser@*": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" + integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== + +"@types/ratelimiter@3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@types/ratelimiter/-/ratelimiter-3.4.2.tgz#adf1a6d0cbe72d42207efc510a9170602e23456c" + integrity sha512-iz+yyY+ViphaM8ZwrX1mUQzelIeC59zyaaLKTJ0YVOOCkCpIYpaysiIM4z5Xv9HdXYqIb80S+DhH7J22A0rW2w== + +"@types/readable-stream@^2.3.9": + version "2.3.9" + resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.9.tgz#40a8349e6ace3afd2dd1b6d8e9b02945de4566a9" + integrity sha512-sqsgQqFT7HmQz/V5jH1O0fvQQnXAJO46Gg9LRO/JPfjmVmGUlcx831TZZO3Y3HtWhIkzf3kTsNT0Z0kzIhIvZw== + dependencies: + "@types/node" "*" + safe-buffer "*" + +"@types/redis@2.8.32": + version "2.8.32" + resolved "https://registry.yarnpkg.com/@types/redis/-/redis-2.8.32.tgz#1d3430219afbee10f8cfa389dad2571a05ecfb11" + integrity sha512-7jkMKxcGq9p242exlbsVzuJb57KqHRhNl4dHoQu2Y5v9bCAbtIXXH0R3HleSQW4CTOqpHIYUW3t6tpUj4BVQ+w== + dependencies: + "@types/node" "*" + +"@types/rename@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@types/rename/-/rename-1.0.4.tgz#30c6f0306042591a560361ea02639e89647dd173" + integrity sha512-eV81+6bVv2mdCBahkMefjEUwAjKDAP3AuyhqWCWRxcRaeVdUeHUBaoq2zSz+5HNHF2jzTajMcfLvJsy4K3cbwA== + +"@types/request-stats@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/request-stats/-/request-stats-3.0.0.tgz#d3909a9f778b8ae0b42fb8c1ed20cb936ed95f99" + integrity sha512-POsDF7nETH8up49iBNvbZuO0pEk9F+TG0rXCkvjxCClcOS99xfF+mKmJteYlwKYpuRKkixzysKlL8rwN1hU2lw== + dependencies: + "@types/node" "*" + +"@types/responselike@*", "@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + +"@types/rimraf@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-3.0.2.tgz#a63d175b331748e5220ad48c901d7bbf1f44eef8" + integrity sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ== + dependencies: + "@types/glob" "*" + "@types/node" "*" + +"@types/rsvp@^4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/rsvp/-/rsvp-4.0.4.tgz#55e93e7054027f1ad4b4ebc1e60e59eb091e2d32" + integrity sha512-J3Ol++HCC7/hwZhanDvggFYU/GtxHxE/e7cGRWxR04BF7Tt3TqJZ84BkzQgDxmX0uu8IagiyfmfoUlBACh2Ilg== + +"@types/seedrandom@2.4.28": + version "2.4.28" + resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-2.4.28.tgz#9ce8fa048c1e8c85cb71d7fe4d704e000226036f" + integrity sha512-SMA+fUwULwK7sd/ZJicUztiPs8F1yCPwF3O23Z9uQ32ME5Ha0NmDK9+QTsYE4O2tHXChzXomSWWeIhCnoN1LqA== + +"@types/serve-static@*": + version "1.13.3" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.3.tgz#eb7e1c41c4468272557e897e9171ded5e2ded9d1" + integrity sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g== + dependencies: + "@types/express-serve-static-core" "*" + "@types/mime" "*" + +"@types/sharp@0.29.3": + version "0.29.3" + resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.29.3.tgz#54ceb81b68bb99a0e62db2b52f4fb0bea84878ac" + integrity sha512-83Xp05eK2hvfNnmKLr2Fz0C2A0jrr2TnSLqKRbkLTYuAu+Erj6mKQLoEMGafE73Om8p3q3ryZxtHFM/7hy4Adg== + dependencies: + "@types/node" "*" + +"@types/sinonjs__fake-timers@6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz#0ecc1b9259b76598ef01942f547904ce61a6a77d" + integrity sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A== + +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/speakeasy@2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/speakeasy/-/speakeasy-2.0.6.tgz#12540f7b64d08180393ae2c5c8c280866a85da61" + integrity sha512-2wIXZp5yJUddhsSZarYCZIakCvzwQgTVdtT29DYVdFzc0cHttanaQx9THRhtjY4kDqVaF2jhyFOEofozOioFdQ== + dependencies: + "@types/node" "*" + +"@types/tapable@^1": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.7.tgz#545158342f949e8fd3bfd813224971ecddc3fac4" + integrity sha512-0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ== + +"@types/throttle-debounce@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz#1c3df624bfc4b62f992d3012b84c56d41eab3776" + integrity sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ== + +"@types/tinycolor2@1.4.3": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@types/tinycolor2/-/tinycolor2-1.4.3.tgz#ed4a0901f954b126e6a914b4839c77462d56e706" + integrity sha512-Kf1w9NE5HEgGxCRyIcRXR/ZYtDv0V8FVPtYHwLxl0O+maGX0erE77pQlD0gpP+/KByMZ87mOA79SjifhSB3PjQ== + +"@types/tmp@0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.2.2.tgz#424537a3b91828cb26aaf697f21ae3cd1b69f7e7" + integrity sha512-MhSa0yylXtVMsyT8qFpHA1DLHj4DvQGH5ntxrhHSh8PxUVNi35Wk+P5hVgqbO2qZqOotqr9jaoPRL+iRjWYm/A== + +"@types/tough-cookie@*": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.0.tgz#fef1904e4668b6e5ecee60c52cc6a078ffa6697d" + integrity sha512-I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A== + +"@types/uglify-js@*": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.9.0.tgz#4490a140ca82aa855ad68093829e7fd6ae94ea87" + integrity sha512-3ZcoyPYHVOCcLpnfZwD47KFLr8W/mpUcgjpf1M4Q78TMJIw7KMAHSjiCLJp1z3ZrBR9pTLbe191O0TldFK5zcw== + dependencies: + source-map "^0.6.1" + +"@types/uuid@8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.1.tgz#1a32969cf8f0364b3d8c8af9cc3555b7805df14f" + integrity sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg== + +"@types/web-push@3.3.2": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@types/web-push/-/web-push-3.3.2.tgz#8c32434147c0396415862e86405c9edc9c50fc15" + integrity sha512-JxWGVL/m7mWTIg4mRYO+A6s0jPmBkr4iJr39DqJpRJAc+jrPiEe1/asmkwerzRon8ZZDxaZJpsxpv0Z18Wo9gw== + dependencies: + "@types/node" "*" + +"@types/webpack-sources@*": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.7.tgz#0a330a9456113410c74a5d64180af0cbca007141" + integrity sha512-XyaHrJILjK1VHVC4aVlKsdNN5KBTwufMb43cQs+flGxtPAf/1Qwl8+Q0tp5BwEGaI8D6XT1L+9bSWXckgkjTLw== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.6.1" + +"@types/webpack-stream@3.2.12": + version "3.2.12" + resolved "https://registry.yarnpkg.com/@types/webpack-stream/-/webpack-stream-3.2.12.tgz#cf13e64067a662a7acd8cd0524b3f64c86b0ecb6" + integrity sha512-znMUl4kKT0V0SwkUgRgwUNSAO7J5I/jdTCBNy3utkCsgMJ3IHp4FBTDwsQC+tfQ73TWeKIH05QNmbUYmeGThGw== + dependencies: + "@types/node" "*" + "@types/webpack" "^4" + +"@types/webpack@5.28.0": + version "5.28.0" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-5.28.0.tgz#78dde06212f038d77e54116cfe69e88ae9ed2c03" + integrity sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w== + dependencies: + "@types/node" "*" + tapable "^2.2.0" + webpack "^5" + +"@types/webpack@^4": + version "4.41.27" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.27.tgz#f47da488c8037e7f1b2dbf2714fbbacb61ec0ffc" + integrity sha512-wK/oi5gcHi72VMTbOaQ70VcDxSQ1uX8S2tukBK9ARuGXrYM/+u4ou73roc7trXDNmCxCoerE8zruQqX/wuHszA== + dependencies: + "@types/anymatch" "*" + "@types/node" "*" + "@types/tapable" "^1" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + source-map "^0.6.0" + +"@types/websocket@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@types/websocket/-/websocket-1.0.4.tgz#1dc497280d8049a5450854dd698ee7e6ea9e60b8" + integrity sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA== + dependencies: + "@types/node" "*" + +"@types/ws@8.2.0": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.2.0.tgz#75faefbe2328f3b833cb8dc640658328990d04f3" + integrity sha512-cyeefcUCgJlEk+hk2h3N+MqKKsPViQgF5boi9TTHSK+PoR9KWBb/C5ccPcDyAqgsbAYHTwulch725DV84+pSpg== + dependencies: + "@types/node" "*" + +"@types/zen-observable@^0.8.2": + version "0.8.2" + resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.2.tgz#808c9fa7e4517274ed555fa158f2de4b4f468e71" + integrity sha512-HrCIVMLjE1MOozVoD86622S7aunluLb2PJdPfb3nYiEtohm8mIB/vyv0Fd37AdeMFrTUQXEunw78YloMA3Qilg== + +"@typescript-eslint/parser@5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.1.0.tgz#6c7f837d210d2bc0a811e7ea742af414f4e00908" + integrity sha512-vx1P+mhCtYw3+bRHmbalq/VKP2Y3gnzNgxGxfEWc6OFpuEL7iQdAeq11Ke3Rhy8NjgB+AHsIWEwni3e+Y7djKA== + dependencies: + "@typescript-eslint/scope-manager" "5.1.0" + "@typescript-eslint/types" "5.1.0" + "@typescript-eslint/typescript-estree" "5.1.0" + debug "^4.3.2" + +"@typescript-eslint/scope-manager@5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.1.0.tgz#6f1f26ad66a8f71bbb33b635e74fec43f76b44df" + integrity sha512-yYlyVjvn5lvwCL37i4hPsa1s0ORsjkauhTqbb8MnpvUs7xykmcjGqwlNZ2Q5QpoqkJ1odlM2bqHqJwa28qV6Tw== + dependencies: + "@typescript-eslint/types" "5.1.0" + "@typescript-eslint/visitor-keys" "5.1.0" + +"@typescript-eslint/types@5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.1.0.tgz#a8a75ddfc611660de6be17d3ad950302385607a9" + integrity sha512-sEwNINVxcB4ZgC6Fe6rUyMlvsB2jvVdgxjZEjQUQVlaSPMNamDOwO6/TB98kFt4sYYfNhdhTPBEQqNQZjMMswA== + +"@typescript-eslint/typescript-estree@5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.1.0.tgz#132aea34372df09decda961cb42457433aa6e83d" + integrity sha512-SSz+l9YrIIsW4s0ZqaEfnjl156XQ4VRmJsbA0ZE1XkXrD3cRpzuZSVCyqeCMR3EBjF27IisWakbBDGhGNIOvfQ== + dependencies: + "@typescript-eslint/types" "5.1.0" + "@typescript-eslint/visitor-keys" "5.1.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.1.0.tgz#e01a01b27eb173092705ae983aa1451bd1842630" + integrity sha512-uqNXepKBg81JVwjuqAxYrXa1Ql/YDzM+8g/pS+TCPxba0wZttl8m5DkrasbfnmJGHs4lQ2jTbcZ5azGhI7kK+w== + dependencies: + "@typescript-eslint/types" "5.1.0" + eslint-visitor-keys "^3.0.0" + +"@ungap/promise-all-settled@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" + integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== + +"@webassemblyjs/ast@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz#a5aa679efdc9e51707a4207139da57920555961f" + integrity sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + +"@webassemblyjs/floating-point-hex-parser@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz#34d62052f453cd43101d72eab4966a022587947c" + integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA== + +"@webassemblyjs/helper-api-error@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz#aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4" + integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w== + +"@webassemblyjs/helper-buffer@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz#d026c25d175e388a7dbda9694e91e743cbe9b642" + integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA== + +"@webassemblyjs/helper-numbers@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz#7ab04172d54e312cc6ea4286d7d9fa27c88cd4f9" + integrity sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.0" + "@webassemblyjs/helper-api-error" "1.11.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz#85fdcda4129902fe86f81abf7e7236953ec5a4e1" + integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA== + +"@webassemblyjs/helper-wasm-section@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz#9ce2cc89300262509c801b4af113d1ca25c1a75b" + integrity sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-buffer" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/wasm-gen" "1.11.0" + +"@webassemblyjs/ieee754@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz#46975d583f9828f5d094ac210e219441c4e6f5cf" + integrity sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz#f7353de1df38aa201cba9fb88b43f41f75ff403b" + integrity sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz#86e48f959cf49e0e5091f069a709b862f5a2cadf" + integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw== + +"@webassemblyjs/wasm-edit@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz#ee4a5c9f677046a210542ae63897094c2027cb78" + integrity sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-buffer" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/helper-wasm-section" "1.11.0" + "@webassemblyjs/wasm-gen" "1.11.0" + "@webassemblyjs/wasm-opt" "1.11.0" + "@webassemblyjs/wasm-parser" "1.11.0" + "@webassemblyjs/wast-printer" "1.11.0" + +"@webassemblyjs/wasm-gen@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz#3cdb35e70082d42a35166988dda64f24ceb97abe" + integrity sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/ieee754" "1.11.0" + "@webassemblyjs/leb128" "1.11.0" + "@webassemblyjs/utf8" "1.11.0" + +"@webassemblyjs/wasm-opt@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz#1638ae188137f4bb031f568a413cd24d32f92978" + integrity sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-buffer" "1.11.0" + "@webassemblyjs/wasm-gen" "1.11.0" + "@webassemblyjs/wasm-parser" "1.11.0" + +"@webassemblyjs/wasm-parser@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz#3e680b8830d5b13d1ec86cc42f38f3d4a7700754" + integrity sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-api-error" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/ieee754" "1.11.0" + "@webassemblyjs/leb128" "1.11.0" + "@webassemblyjs/utf8" "1.11.0" + +"@webassemblyjs/wast-printer@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz#680d1f6a5365d6d401974a8e949e05474e1fab7e" + integrity sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.3, abab@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abort-controller@3.0.0, abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +accepts@^1.3.5: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-jsx@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + +acorn-walk@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e" + integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ== + +acorn-walk@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.1.tgz#3ddab7f84e4a7e2313f6c414c5b7dac85f4e3ebc" + integrity sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w== + +acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.0.4: + version "8.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.0.tgz#52311fd7037ae119cbb134309e901aa46295b3fe" + integrity sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA== + +acorn@^8.2.4: + version "8.2.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.4.tgz#caba24b08185c3b56e3168e97d15ed17f4d31fd0" + integrity sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg== + +acorn@^8.4.1: + version "8.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" + integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== + +acorn@^8.5.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" + integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agentkeepalive@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.1.4.tgz#d928028a4862cb11718e55227872e842a44c945b" + integrity sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ== + dependencies: + debug "^4.1.0" + depd "^1.1.2" + humanize-ms "^1.2.1" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.5.5: + version "6.12.5" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" + integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +ansi-colors@4.1.1, ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +any-promise@^1.0.0, any-promise@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +app-root-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.0.0.tgz#210b6f43873227e18a4b810a032283311555d5ad" + integrity sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw== + +append-field@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" + integrity sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY= + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-timsort@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-timsort/-/array-timsort-1.0.3.tgz#3c9e4199e54fb2b9c3fe5976396a21614ef0d926" + integrity sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asn1.js@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.3.0.tgz#439099fe9174e09cff5a54a9dda70260517e8689" + integrity sha512-WHnQJFcOrIWT1RLOkFFBQkFVvyt9BPOOrH+Dp152Zk4R993rSzXUGPmkybIcUFhHE2d/iHH+nCaOWVCDbO8fgA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-never@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/assert-never/-/assert-never-1.2.1.tgz#11f0e363bf146205fb08193b5c7b90f4d1cf44fe" + integrity sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw== + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +async@>=0.2.9: + version "3.2.0" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" + integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== + +async@^2.6.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +async@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.1.tgz#d3274ec66d107a47476a4c49136aacdb00665fc8" + integrity sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +autobind-decorator@2.4.0, autobind-decorator@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/autobind-decorator/-/autobind-decorator-2.4.0.tgz#ea9e1c98708cf3b5b356f7cf9f10f265ff18239c" + integrity sha512-OGYhWUO72V6DafbF8PM8rm3EPbfuyMZcJhtm5/n26IDwO18pohE4eNazLoCGhPiXOCD0gEGmrbU3849QvM8bbw== + +autosize@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/autosize/-/autosize-4.0.4.tgz#924f13853a466b633b9309330833936d8bccce03" + integrity sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ== + +autwh@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/autwh/-/autwh-0.1.0.tgz#24a5300923309d105133401a2568f9c8ab7d7e03" + integrity sha512-IkGZ4kjVlZMkEmDiVtZpGG3lDGHPqsMBIh4IpQKN7idYOJ5EGedqKPO+ychNqh8zrJEEqYsN0NcBkcmoE2uFAw== + dependencies: + oauth "0.9.15" + +aws-sdk@2.1013.0: + version "2.1013.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1013.0.tgz#85babc473b0bc90cc1160eb48baf616ddb86e346" + integrity sha512-TXxkp/meAdofpC15goFpNuur7fvh/mcMRfHJoP1jYzTtD0wcoB4FK16GLcny0uDYgkQgZuiO9QYv3Rq5bhGCqQ== + dependencies: + buffer "4.9.2" + events "1.1.1" + ieee754 "1.1.13" + jmespath "0.15.0" + querystring "0.2.0" + sax "1.2.1" + url "0.10.3" + uuid "3.3.2" + xml2js "0.4.19" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" + integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== + +axios@^0.19.2: + version "0.19.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" + integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== + dependencies: + follow-redirects "1.5.10" + +babel-walk@3.0.0-canary-5: + version "3.0.0-canary-5" + resolved "https://registry.yarnpkg.com/babel-walk/-/babel-walk-3.0.0-canary-5.tgz#f66ecd7298357aee44955f235a6ef54219104b11" + integrity sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw== + dependencies: + "@babel/types" "^7.9.6" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base32.js@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/base32.js/-/base32.js-0.0.1.tgz#d045736a57b1f6c139f0c7df42518a84e91bb2ba" + integrity sha1-0EVzalex9sE58MffQlGKhOkbsro= + +base64-js@^1.0.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bcryptjs@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" + integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms= + +big-integer@^1.6.16: + version "1.6.48" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.48.tgz#8fd88bd1632cba4a1c8c3e3d7159f08bb95b4b9e" + integrity sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" + integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== + +bl@^4.0.1, bl@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" + integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +blurhash@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/blurhash/-/blurhash-1.1.4.tgz#a7010ceb3019cd2c9809b17c910ebf6175d29244" + integrity sha512-MXIPz6zwYUKayju+Uidf83KhH0vodZfeRl6Ich8Gu+KGl0JgKiFq9LsfqV7cVU5fKD/AotmduZqvOfrGKOfTaA== + +bn.js@^4.0.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +broadcast-channel@4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/broadcast-channel/-/broadcast-channel-4.5.0.tgz#d4717c493e219908fcb7f2f9078fe0baf95b77c1" + integrity sha512-jp+VPlQ1HyR0CM3uIYUrdpXupBvhTMFRkjR6mEmt5W4HaGDPFEzrO2Jqvi2PZ6zCC4zwLeco7CC5EUJPrVH8Tw== + dependencies: + "@babel/runtime" "^7.16.0" + detect-node "^2.1.0" + microseconds "0.2.0" + nano-time "1.0.0" + oblivious-set "1.0.0" + rimraf "3.0.2" + unload "2.3.1" + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserslist@^4.0.0, browserslist@^4.14.5: + version "4.16.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" + integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== + dependencies: + caniuse-lite "^1.0.30001181" + colorette "^1.2.1" + electron-to-chromium "^1.3.649" + escalade "^3.1.1" + node-releases "^1.1.70" + +browserslist@^4.16.0: + version "4.16.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.4.tgz#7ebf913487f40caf4637b892b268069951c35d58" + integrity sha512-d7rCxYV8I9kj41RH8UKYnvDYCRENUlHRgyXy/Rhr/1BaeLGfiCptEdFE8MIrvGfWbBFNjVYx76SQWvNX1j+/cQ== + dependencies: + caniuse-lite "^1.0.30001208" + colorette "^1.2.2" + electron-to-chromium "^1.3.712" + escalade "^3.1.1" + node-releases "^1.1.71" + +browserslist@^4.16.6: + version "4.16.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" + integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== + dependencies: + caniuse-lite "^1.0.30001219" + colorette "^1.2.2" + electron-to-chromium "^1.3.723" + escalade "^3.1.1" + node-releases "^1.1.71" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + +buffer-from@1.x: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-from@^1.0.0, buffer-from@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-writer@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" + integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== + +buffer@4.9.2: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.4.3, buffer@^5.5.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bufferutil@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz#3a177e8e5819a1243fe16b63a199951a7ad8d4a7" + integrity sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA== + dependencies: + node-gyp-build "~3.7.0" + +builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + +bull@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bull/-/bull-4.1.0.tgz#ff8f628694e7dbbdf89b6a6860a1f33e990527fd" + integrity sha512-rQcLuAmzZIv1dHJO/yKrWu497xcTxMpYeTEBfpStrJFZ1UZpBSGHSx+defbtFVeGEeY8Pn0aMGRvRtldUBVUyQ== + dependencies: + cron-parser "^2.13.0" + debuglog "^1.0.0" + get-port "^5.1.1" + ioredis "^4.27.0" + lodash "^4.17.21" + p-timeout "^3.2.0" + promise.prototype.finally "^3.1.2" + semver "^7.3.2" + util.promisify "^1.0.1" + uuid "^8.3.0" + +busboy@^0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" + integrity sha1-bCpiLvz0fFe7vh4qnDetNseSVFM= + dependencies: + dicer "0.2.5" + readable-stream "1.1.x" + +bytes@3.1.0, bytes@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^15.0.5: + version "15.1.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.1.0.tgz#164c2f857ee606e4cc793c63018fefd0ea5eba7b" + integrity sha512-mfx0C+mCfWjD1PnwQ9yaOrwG1ou9FkKnx0SvzUHWdFt7r7GaRtzT+9M8HAvLu62zIHtnpQ/1m93nWNDCckJGXQ== + dependencies: + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^6.0.0" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^8.0.1" + tar "^6.0.2" + unique-filename "^1.1.1" + +cache-content-type@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" + integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== + dependencies: + mime-types "^2.1.18" + ylru "^1.2.0" + +cacheable-lookup@6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz#65c0e51721bb7f9f2cb513aed6da4a1b93ad7dc8" + integrity sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A== + +cacheable-lookup@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz#049fdc59dffdd4fc285e8f4f82936591bd59fec3" + integrity sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w== + +cacheable-request@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" + integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^2.0.0" + +cafy@15.2.1: + version "15.2.1" + resolved "https://registry.yarnpkg.com/cafy/-/cafy-15.2.1.tgz#5a55eaeb721c604c7dca652f3d555c392e5f995a" + integrity sha512-g2zOmFb63p6XcZ/zeMWKYP8YKQYNWnhJmi6K71Ql4EAFTAay31xF0PBPtdBCCfQ0fiETgWTMxKtySAVI/Od6aQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0: + version "1.0.30001048" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001048.tgz#4bb4f1bc2eb304e5e1154da80b93dee3f1cf447e" + integrity sha512-g1iSHKVxornw0K8LG9LLdf+Fxnv7T1Z+mMsf0/YYLclQX4Cd522Ap0Lrw6NFqHgezit78dtyWxzlV2Xfc7vgRg== + +caniuse-lite@^1.0.30001181: + version "1.0.30001191" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001191.tgz#bacb432b6701f690c8c5f7c680166b9a9f0843d9" + integrity sha512-xJJqzyd+7GCJXkcoBiQ1GuxEiOBCLQ0aVW9HMekifZsAVGdj5eJ4mFB9fEhSHipq9IOk/QXFJUiIr9lZT+EsGw== + +caniuse-lite@^1.0.30001208: + version "1.0.30001208" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz#a999014a35cebd4f98c405930a057a0d75352eb9" + integrity sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA== + +caniuse-lite@^1.0.30001219: + version "1.0.30001230" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz#8135c57459854b2240b57a4a6786044bdc5a9f71" + integrity sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ== + +canonicalize@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/canonicalize/-/canonicalize-1.0.1.tgz#657b4f3fa38a6ecb97a9e5b7b26d7a19cc6e0da9" + integrity sha512-N3cmB3QLhS5TJ5smKFf1w42rJXWe6C1qP01z4dxJiI5v269buii4fLHWETDyf7yEd0azGLNC63VxNMiPd2u0Cg== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +cbor@*: + version "7.0.5" + resolved "https://registry.yarnpkg.com/cbor/-/cbor-7.0.5.tgz#ed54cdbc19fa7352bb328d00a5393aa7ce45a10f" + integrity sha512-0aaAPgW92lLmypb9iCd22k7tSD1FbF6dps8VQzmIBKY6ych2gO09b2vo/SbaLTmezJuB8Kh88Rvpl/Uq52mNZg== + dependencies: + "@cto.af/textdecoder" "^0.0.0" + nofilter "^2.0.3" + +cbor@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" + integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== + dependencies: + nofilter "^3.1.0" + +chalk@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" + integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +character-parser@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" + integrity sha1-x84o821LzZdE5f/CxfzeHHMmH8A= + dependencies: + is-regex "^1.0.3" + +chart.js@3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-3.6.0.tgz#a87fce8431d4e7c5523d721f487f53aada1e42fe" + integrity sha512-iOzzDKePL+bj+ccIsVAgWQehCXv8xOKGbaU2fO/myivH736zcx535PGJzQGanvcSGVOqX6yuLZsN3ygcQ35UgQ== + +chartjs-adapter-date-fns@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chartjs-adapter-date-fns/-/chartjs-adapter-date-fns-2.0.0.tgz#5e53b2f660b993698f936f509c86dddf9ed44c6b" + integrity sha512-rmZINGLe+9IiiEB0kb57vH3UugAtYw33anRiw5kS2Tu87agpetDDoouquycWc9pRsKtQo5j+vLsYHyr8etAvFw== + +chartjs-plugin-zoom@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/chartjs-plugin-zoom/-/chartjs-plugin-zoom-1.1.1.tgz#8a28923a17fcb5eb57a0dc94c5113bf402677647" + integrity sha512-1q54WOzK7FtAjkbemQeqvmFUV0btNYIQny2HbQ6Awq9wUtCz7Zmj6vIgp3C1DYMQwN0nqgpC3vnApqiwI7cSdQ== + dependencies: + hammerjs "^2.0.8" + +cheerio-httpcli@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/cheerio-httpcli/-/cheerio-httpcli-0.8.2.tgz#0189bda71c8bd2852de78e154291e2288184fbf2" + integrity sha512-grIzTwQg/nE7Oy6VvL19pf0UlM6wiluy/AOpXfQLVFrSi21F8wnO3dLchtaH2hfMF6jz68ot0/ngyQQVrp2VTw== + dependencies: + "@types/cheerio" "0.22.18" + "@types/rsvp" "^4.0.4" + async "^3.2.0" + cheerio "^0.22.0" + colors "^1.4.0" + foreach "^2.0.5" + he "^1.2.0" + iconv-lite "^0.6.3" + import-fresh "^3.3.0" + jschardet "^3.0.0" + object-assign "^4.1.1" + os-locale "^5.0.0" + prettyjson "^1.2.1" + request "^2.88.2" + rsvp "^4.8.5" + tough-cookie "^2.5.0" + type-of "^2.0.1" + valid-url "^1.0.9" + +cheerio@^0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" + integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash.assignin "^4.0.9" + lodash.bind "^4.1.4" + lodash.defaults "^4.0.1" + lodash.filter "^4.4.0" + lodash.flatten "^4.2.0" + lodash.foreach "^4.3.0" + lodash.map "^4.4.0" + lodash.merge "^4.4.0" + lodash.pick "^4.2.1" + lodash.reduce "^4.4.0" + lodash.reject "^4.4.0" + lodash.some "^4.4.0" + +chokidar@3.5.1, chokidar@^3.3.1, chokidar@^3.5.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450" + integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.3.0" + optionalDependencies: + fsevents "~2.1.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-highlight@2.1.11, cli-highlight@^2.1.11: + version "2.1.11" + resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf" + integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== + dependencies: + chalk "^4.0.0" + highlight.js "^10.7.1" + mz "^2.4.0" + parse5 "^5.1.1" + parse5-htmlparser2-tree-adapter "^6.0.0" + yargs "^16.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +cluster-key-slot@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" + integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw== + +co-body@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/co-body/-/co-body-5.2.0.tgz#5a0a658c46029131e0e3a306f67647302f71c124" + integrity sha512-sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ== + dependencies: + inflation "^2.0.0" + qs "^6.4.0" + raw-body "^2.2.0" + type-is "^1.6.14" + +co-body@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/co-body/-/co-body-6.0.0.tgz#965b9337d7f5655480787471f4237664820827e3" + integrity sha512-9ZIcixguuuKIptnY8yemEOuhb71L/lLf+Rl5JfJEUiDNJk0e02MBt7BPxR2GEh5mw8dPthQYR4jPI/BnS1MQgw== + dependencies: + inflation "^2.0.0" + qs "^6.5.2" + raw-body "^2.3.3" + type-is "^1.6.16" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312" + integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/color/-/color-4.0.1.tgz#21df44cd10245a91b1ccf5ba031609b0e10e7d67" + integrity sha512-rpZjOKN5O7naJxkH2Rx1sZzzBgaiWECc6BYXjeCE6kF0kcASJYbUq02u7JqIHwCb/j3NhV+QhRL2683aICeGZA== + dependencies: + color-convert "^2.0.1" + color-string "^1.6.0" + +colord@^2.9.1: + version "2.9.1" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.1.tgz#c961ea0efeb57c9f0f4834458f26cb9cc4a3f90e" + integrity sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw== + +colorette@^1.2.0, colorette@^1.2.1, colorette@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== + +colors@^1.1.2, colors@^1.3.3, colors@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.12.1, commander@^2.19.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +comment-json@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.1.1.tgz#49df4948704bebb1cc0ffa6910e25669b668b7c5" + integrity sha512-v8gmtPvxhBlhdRBLwdHSjGy9BgA23t9H1FctdQKyUrErPjSrJcdDMqBq9B4Irtm7w3TNYLQJNH6ARKnpyag1sA== + dependencies: + array-timsort "^1.0.3" + core-util-is "^1.0.2" + esprima "^4.0.1" + has-own-prop "^2.0.0" + repeat-string "^1.6.1" + +compare-versions@3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" + integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concurrently@6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-6.3.0.tgz#63128cb4a6ed54d3c0ed8528728590a5fe54582a" + integrity sha512-k4k1jQGHHKsfbqzkUszVf29qECBrkvBKkcPJEUDTyVR7tZd1G/JOfnst4g1sYbFvJ4UjHZisj1aWQR8yLKpGPw== + dependencies: + chalk "^4.1.0" + date-fns "^2.16.1" + lodash "^4.17.21" + rxjs "^6.6.3" + spawn-command "^0.0.2-1" + supports-color "^8.1.0" + tree-kill "^1.2.2" + yargs "^16.2.0" + +condense-newlines@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" + integrity sha1-PemFVTE5R10yUCyDsC9gaE0kxV8= + dependencies: + extend-shallow "^2.0.1" + is-whitespace "^0.3.0" + kind-of "^3.0.2" + +config-chain@^1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +consolidate@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.16.0.tgz#a11864768930f2f19431660a65906668f5fbdc16" + integrity sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ== + dependencies: + bluebird "^3.7.2" + +constantinople@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-4.0.1.tgz#0def113fa0e4dc8de83331a5cf79c8b325213151" + integrity sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw== + dependencies: + "@babel/parser" "^7.6.0" + "@babel/types" "^7.6.1" + +content-disposition@0.5.3, content-disposition@~0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookies@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" + integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== + dependencies: + depd "~2.0.0" + keygrip "~1.1.0" + +copy-to@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5" + integrity sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU= + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +core-util-is@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +crc-32@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" + integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== + dependencies: + exit-on-epipe "~1.0.1" + printj "~1.1.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cron-parser@^2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-2.13.0.tgz#6f930bb6f2931790d2a9eec83b3ec276e27a6725" + integrity sha512-UWeIpnRb0eyoWPVk+pD3TDpNx3KCFQeezO224oJIkktBrcW6RoAPOx5zIKprZGfk6vcYSmA8yQXItejSaDBhbQ== + dependencies: + is-nan "^1.2.1" + moment-timezone "^0.5.25" + +cross-env@7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + +cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-color-names@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-1.0.1.tgz#6ff7ee81a823ad46e020fa2fd6ab40a887e2ba67" + integrity sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA== + +css-declaration-sorter@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.0.3.tgz#9dfd8ea0df4cc7846827876fafb52314890c21a9" + integrity sha512-52P95mvW1SMzuRZegvpluT6yEv0FqQusydKQPZsNN5Q7hh8EwQvN8E2nwuJ16BBvNN6LcoIZXu/Bk58DAhrrxw== + dependencies: + timsort "^0.3.0" + +css-loader@6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.5.1.tgz#0c43d4fbe0d97f699c91e9818cb585759091d1b1" + integrity sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ== + dependencies: + icss-utils "^5.1.0" + postcss "^8.2.15" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.1.0" + semver "^7.3.5" + +css-select@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" + integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== + dependencies: + boolbase "^1.0.0" + css-what "^5.0.0" + domhandler "^4.2.0" + domutils "^2.6.0" + nth-check "^2.0.0" + +css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-tree@^1.1.2, css-tree@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@2.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +css-what@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" + integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.6.tgz#1bdb83be6a6b1fee6dc5e9ec2e61286bcadcc7a6" + integrity sha512-X2nDeNGBXc0486oHjT2vSj+TdeyVsxRvJUxaOH50hOM6vSDLkKd0+59YXpSZRInJ4sNtBOykS4KsPfhdrU/35w== + dependencies: + css-declaration-sorter "^6.0.3" + cssnano-utils "^2.0.1" + postcss-calc "^8.0.0" + postcss-colormin "^5.2.1" + postcss-convert-values "^5.0.2" + postcss-discard-comments "^5.0.1" + postcss-discard-duplicates "^5.0.1" + postcss-discard-empty "^5.0.1" + postcss-discard-overridden "^5.0.1" + postcss-merge-longhand "^5.0.3" + postcss-merge-rules "^5.0.2" + postcss-minify-font-values "^5.0.1" + postcss-minify-gradients "^5.0.3" + postcss-minify-params "^5.0.1" + postcss-minify-selectors "^5.1.0" + postcss-normalize-charset "^5.0.1" + postcss-normalize-display-values "^5.0.1" + postcss-normalize-positions "^5.0.1" + postcss-normalize-repeat-style "^5.0.1" + postcss-normalize-string "^5.0.1" + postcss-normalize-timing-functions "^5.0.1" + postcss-normalize-unicode "^5.0.1" + postcss-normalize-url "^5.0.2" + postcss-normalize-whitespace "^5.0.1" + postcss-ordered-values "^5.0.2" + postcss-reduce-initial "^5.0.1" + postcss-reduce-transforms "^5.0.1" + postcss-svgo "^5.0.3" + postcss-unique-selectors "^5.0.1" + +cssnano-utils@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" + integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== + +cssnano@5.0.10: + version "5.0.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.10.tgz#92207eb7c9c6dc08d318050726f9fad0adf7220b" + integrity sha512-YfNhVJJ04imffOpbPbXP2zjIoByf0m8E2c/s/HnvSvjXgzXMfgopVjAEGvxYOjkOpWuRQDg/OZFjO7WW94Ri8w== + dependencies: + cssnano-preset-default "^5.1.6" + is-resolvable "^1.1.0" + lilconfig "^2.0.3" + yaml "^1.10.2" + +csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-uri-to-buffer@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" + integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +date-fns@2.25.0: + version "2.25.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.25.0.tgz#8c5c8f1d958be3809a9a03f4b742eba894fc5680" + integrity sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w== + +date-fns@^2.16.1: + version "2.19.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.19.0.tgz#65193348635a28d5d916c43ec7ce6fbd145059e1" + integrity sha512-X3bf2iTPgCAQp9wvjOQytnf5vO5rESYRXlPIVcgSbtT5OTScPcsf9eZU+B/YIkKAtYr5WeCii58BgATrNitlWg== + +dateformat@4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.5.1.tgz#c20e7a9ca77d147906b6dc2261a8be0a5bd2173c" + integrity sha512-OD0TZ+B7yP7ZgpJf5K2DIbj3FZvFvxgFUuaqA/V5zTjAtAAXZ1E8bktHxmAGs4x5b7PflqA9LeQ84Og7wYtF7Q== + +debug@2, debug@^2.2.0, debug@^2.5.2: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@4.3.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +debug@4.3.2, debug@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +debug@=3.1.0, debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debuglog@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +decimal.js@^10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" + integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== + +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-email-validator@0.1.18: + version "0.1.18" + resolved "https://registry.yarnpkg.com/deep-email-validator/-/deep-email-validator-0.1.18.tgz#a072a93f28e11863cc6b9ca3ae964e0e45b3ece8" + integrity sha512-eo2WEUidQvppg6Qdek8iwOqmXvaxRJ2D2VJKbIOwUgLZNFveDDdJMBsFc+yq0S+lILEUcmzrJRrCWbyoe7QUzQ== + dependencies: + "@types/disposable-email-domains" "^1.0.1" + axios "^0.19.2" + disposable-email-domains "^1.0.53" + lodash "^4.17.15" + mailcheck "^1.1.1" + ts-jest "^25.2.1" + +deep-equal@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +defer-to-connect@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" + integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +denque@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/denque/-/denque-1.4.1.tgz#6744ff7641c148c3f8a69c307e51235c1f4a37cf" + integrity sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ== + +denque@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.0.tgz#773de0686ff2d8ec2ff92914316a47b73b1c73de" + integrity sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ== + +depd@^1.1.2, depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +depd@^2.0.0, depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detect-node@2.1.0, detect-node@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +dicer@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" + integrity sha1-WZbAhrszIYyBLAkL3cCc0S+stw8= + dependencies: + readable-stream "1.1.x" + streamsearch "0.1.2" + +diff@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dijkstrajs@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" + integrity sha1-082BIh4+pAdCz83lVtTpnpjdxxs= + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +disposable-email-domains@^1.0.53: + version "1.0.58" + resolved "https://registry.yarnpkg.com/disposable-email-domains/-/disposable-email-domains-1.0.58.tgz#ac9c879c02c4f0898bfb6c0c80b959c0b0b7bc51" + integrity sha512-frnNCPqTjk6t/sosPoco6EIFHbP9SazHQkeltJNfZeUyNgewaVf+kFjEfVkVDVd436Vln43YElJPb8JozhBs7Q== + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +doctypes@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" + integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk= + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@^1.0.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.1.tgz#d845a1565d7c041a95e5dab62184ab41e3a519be" + integrity sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + entities "^2.0.0" + +dom-serializer@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domhandler@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.1.0.tgz#c1d8d494d5ec6db22de99e46a149c2a4d23ddd43" + integrity sha512-/6/kmsGlMY4Tup/nGVutdrK9yQi4YjWVcVeoQmixpzjOUK1U7pQkvAPHBJeUxOgxF0J8f8lwCJSlCfD0V4CMGQ== + dependencies: + domelementtype "^2.2.0" + +domhandler@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" + integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== + dependencies: + domelementtype "^2.2.0" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.6.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dotenv@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +editorconfig@^0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.3.649: + version "1.3.672" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.672.tgz#3a6e335016dab4bc584d5292adc4f98f54541f6a" + integrity sha512-gFQe7HBb0lbOMqK2GAS5/1F+B0IMdYiAgB9OT/w1F4M7lgJK2aNOMNOM622aEax+nS1cTMytkiT0uMOkbtFmHw== + +electron-to-chromium@^1.3.712: + version "1.3.717" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.717.tgz#78d4c857070755fb58ab64bcc173db1d51cbc25f" + integrity sha512-OfzVPIqD1MkJ7fX+yTl2nKyOE4FReeVfMCzzxQS+Kp43hZYwHwThlGP+EGIZRXJsxCM7dqo8Y65NOX/HP12iXQ== + +electron-to-chromium@^1.3.723: + version "1.3.742" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.742.tgz#7223215acbbd3a5284962ebcb6df85d88b95f200" + integrity sha512-ihL14knI9FikJmH2XUIDdZFWJxvr14rPSdOhJ7PpS27xbz8qmaRwCwyg/bmFwjWKmWK9QyamiCZVCvXm5CH//Q== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +encoding@^0.1.12: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^5.0.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.0.tgz#d9deae58f9d3773b6a111a5a46831da5be5c9ac0" + integrity sha512-Sl3KRpJA8OpprrtaIswVki3cWPiPKxXuFxJXBp+zNb6s6VwNWwFRUdtmzd2ReUut8n+sCPx7QCtQ7w5wfJhSgQ== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enhanced-resolve@^5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz#525c5d856680fbd5052de453ac83e32049958b5c" + integrity sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +entities@^1.1.1, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + +env-paths@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" + integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: + version "1.17.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" + integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + +es-module-lexer@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.4.0.tgz#21f4181cc8b7eee06855f1c59e6087c7bc4f77b0" + integrity sha512-iuEGihqqhKWFgh72Q/Jtch7V2t/ft8w8IPP2aEN8ArYKO+IWyo6hsi96hCdgyeEDQIV3InhYQ9BlwUFPGXrbEQ== + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-regexp@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/escape-regexp/-/escape-regexp-0.0.1.tgz#f44bda12d45bbdf9cb7f862ee7e4827b3dd32254" + integrity sha1-9EvaEtRbvfnLf4Yu5+SCez3TIlQ= + +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-plugin-vue@8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-8.0.3.tgz#791cc4543940319e612ea61a1d779e8c87cf749a" + integrity sha512-Rlhhy5ltzde0sRwSkqHuNePTXLMMaJ5+qsQubM4RYloYsQ8cXlnJT5MDaCzSirkGADipOHtmQXIbbPFAzUrADg== + dependencies: + eslint-utils "^3.0.0" + natural-compare "^1.4.0" + semver "^7.3.5" + vue-eslint-parser "^8.0.1" + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-6.0.0.tgz#9cf45b13c5ac8f3d4c50f46a5121f61b3e318978" + integrity sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + +eslint-visitor-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz#e32e99c6cdc2eb063f204eda5db67bfe58bb4186" + integrity sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q== + +eslint@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.2.0.tgz#44d3fb506d0f866a506d97a0fc0e90ee6d06a815" + integrity sha512-erw7XmM+CLxTOickrimJ1SiF55jiNlVSp2qqm0NuBWPtHYQCegD5ZMaW0c3i5ytPqL+SSLaCxdvQXFPLJn+ABw== + dependencies: + "@eslint/eslintrc" "^1.0.4" + "@humanwhocodes/config-array" "^0.6.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^6.0.0" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.0.0" + espree "^9.0.0" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^6.0.1" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.2.0" + semver "^7.2.1" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +esm@^3.2.22: + version "3.2.25" + resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" + integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== + +espree@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.0.0.tgz#e90a2965698228502e771c7a58489b1a9d107090" + integrity sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ== + dependencies: + acorn "^8.5.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^3.0.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== + +estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +eventemitter3@4.0.7, eventemitter3@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= + +events@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== + +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exit-on-epipe@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" + integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.0.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + +fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.1.1: + version "3.2.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" + integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fast-xml-parser@^3.19.0: + version "3.19.0" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz#cb637ec3f3999f51406dd8ff0e6fc4d83e520d01" + integrity sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg== + +fastq@^1.6.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" + integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== + dependencies: + reusify "^1.0.4" + +feed@4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e" + integrity sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ== + dependencies: + xml-js "^1.6.11" + +fetch-blob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-2.1.2.tgz#a7805db1361bd44c1ef62bb57fb5fe8ea173ef3c" + integrity sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow== + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-type@16.5.3: + version "16.5.3" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.5.3.tgz#474b7e88c74724046abb505e9b8ed4db30c4fc06" + integrity sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A== + dependencies: + readable-web-to-node-stream "^3.0.0" + strtok3 "^6.2.4" + token-types "^4.1.1" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-node-modules@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/find-node-modules/-/find-node-modules-2.1.2.tgz#57565a3455baf671b835bc6b2134a9b938b9c53c" + integrity sha512-x+3P4mbtRPlSiVE1Qco0Z4YLU8WFiFcuWTf3m75OV9Uzcfs2Bg+O9N+r/K0AnmINBW06KpfqKwYJbFlFq4qNug== + dependencies: + findup-sync "^4.0.0" + merge "^2.1.0" + +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +findup-sync@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-4.0.0.tgz#956c9cdde804052b881b428512905c4a5f2cdef0" + integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^4.0.2" + resolve-dir "^1.0.1" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" + integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA== + +fluent-ffmpeg@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz#c952de2240f812ebda0aa8006d7776ee2acf7d74" + integrity sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ= + dependencies: + async ">=0.2.9" + which "^1.1.1" + +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" + integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +fresh@~0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^8.0.1: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-paths@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/get-paths/-/get-paths-0.0.7.tgz#15331086752077cf130166ccd233a1cdbeefcf38" + integrity sha512-0wdJt7C1XKQxuCgouqd+ZvLJ56FQixKoki9MrFaO4EriqzXOiH9gbukaDE1ou08S8Ns3/yDzoBAISNPqj6e6tA== + dependencies: + pify "^4.0.1" + +get-port@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" + integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== + +get-stream@^5.0.0, get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + +glob-parent@^5.1.0, glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@7.1.6, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +globals@^13.6.0: + version "13.7.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.7.0.tgz#aed3bcefd80ad3ec0f0be2cf0c895110c0591795" + integrity sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA== + dependencies: + type-fest "^0.20.2" + +globals@^13.9.0: + version "13.9.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb" + integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA== + dependencies: + type-fest "^0.20.2" + +globby@^11.0.2, globby@^11.0.4: + version "11.0.4" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +got@11.8.2: + version "11.8.2" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.2.tgz#7abb3959ea28c31f3576f1576c1effce23f33599" + integrity sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.1" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + +graceful-fs@^4.2.0: + version "4.2.8" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== + +graceful-fs@^4.2.6: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +hammerjs@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1" + integrity sha1-BO93hiz/K7edMPdpIJWTAiK/YPE= + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-own-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-own-prop/-/has-own-prop-2.0.0.tgz#f0f95d58f65804f5d218db32563bb85b8e0417af" + integrity sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ== + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +he@1.2.0, he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +highlight.js@^10.7.1: + version "10.7.2" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.2.tgz#89319b861edc66c48854ed1e6da21ea89f847360" + integrity sha512-oFLl873u4usRM9K63j4ME9u3etNF0PLiJhSQ8rdfuL51Wn3zkD6drf9ZW0dOzjnZI22YYG24z30JcmfCZjMgYg== + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hpagent@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/hpagent/-/hpagent-0.1.2.tgz#cab39c66d4df2d4377dbd212295d878deb9bdaa9" + integrity sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ== + +hpagent@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/hpagent/-/hpagent-0.1.1.tgz#66f67f16e5c7a8b59a068e40c2658c2c749ad5e2" + integrity sha512-IxJWQiY0vmEjetHdoE9HZjD4Cx+mYTr25tR7JCxXaiI3QxW0YqYyM11KyZbHufoa/piWhMb2+D3FGpMgmA2cFQ== + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-entities@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" + integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== + +htmlparser2@^3.9.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +http-assert@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" + integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw== + dependencies: + deep-equal "~1.0.1" + http-errors "~1.7.2" + +http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-errors@1.7.3, http-errors@^1.6.3, http-errors@^1.7.3, http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-headers@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/http-headers/-/http-headers-3.0.2.tgz#5147771292f0b39d6778d930a3a59a76fc7ef44d" + integrity sha512-87E1I+2Wg4dxxz4rcxElo3dxO/w1ZtgL1yA0Sb6vH3qU16vRKq1NjWQv9SCY3ly2OQROcoxHZOUpmelS+k6wOw== + dependencies: + next-line "^1.1.0" + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +http-signature@1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.5.tgz#9f19496ffbf3227298d7b5f156e0e1a948678683" + integrity sha512-NwoTQYSJoFt34jSBbwzDHDofoA61NGXzu6wXh95o1Ry62EnmKjXb/nR/RknLeZ3G/uGwrlKNY2z7uPt+Cdl7Tw== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.14.1" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.0-beta.5.2" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" + integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +http_ece@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/http_ece/-/http_ece-1.1.0.tgz#74780c6eb32d8ddfe9e36a83abcd81fe0cd4fb75" + integrity sha512-bptAfCDdPJxOs5zYSe7Y3lpr772s1G346R4Td5LgRUeCwIGpCGDUTJxRrhTNcAXbx37spge0kWEIH7QAYWNTlA== + dependencies: + urlsafe-base64 "~1.0.0" + +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= + dependencies: + ms "^2.0.0" + +humanize-number@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/humanize-number/-/humanize-number-0.0.2.tgz#11c0af6a471643633588588048f1799541489c18" + integrity sha1-EcCvakcWQ2M1iFiASPF5lUFInBg= + +iconv-lite@0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +idb-keyval@5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-5.1.3.tgz#6ef5dff371897c23f144322dc6374eadd6a345d9" + integrity sha512-N9HbCK/FaXSRVI+k6Xq4QgWxbcZRUv+SfG1y7HJ28JdV8yEJu6k+C/YLea7npGckX2DQJeEVuMc4bKOBeU/2LQ== + dependencies: + safari-14-idb-fix "^1.0.4" + +ieee754@1.1.13, ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +immutable@^3.8.2: + version "3.8.2" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" + integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflation@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f" + integrity sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4, ini@~1.3.0: + version "1.3.7" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" + integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== + +insert-text-at-cursor@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/insert-text-at-cursor/-/insert-text-at-cursor-0.3.0.tgz#1819607680ec1570618347c4cd475e791faa25da" + integrity sha512-/nPtyeX9xPUvxZf+r0518B7uqNKlP+LqNJqSiXFEaa2T71rWIwTVXGH7hB9xO/EVdwa5/pWlFCPwShOW81XIxQ== + +install-artifact-from-github@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/install-artifact-from-github/-/install-artifact-from-github-1.2.0.tgz#adcbd123c16a4337ec44ea76d0ebf253cc16b074" + integrity sha512-3OxCPcY55XlVM3kkfIpeCgmoSKnMsz2A3Dbhsq0RXpIknKQmrX1YiznCeW9cD2ItFmDxziA3w6Eg8d80AoL3oA== + +invert-kv@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-3.0.1.tgz#a93c7a3d4386a1dc8325b97da9bb1620c0282523" + integrity sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw== + +ioredis@^4.27.0: + version "4.27.6" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.27.6.tgz#a53d427d3fe75fbd10ed7ad150ce00559df8dcf8" + integrity sha512-6W3ZHMbpCa8ByMyC1LJGOi7P2WiOKP9B3resoZOVLDhi+6dDBOW+KNsRq3yI36Hmnb2sifCxHX+YSarTeXh48A== + dependencies: + cluster-key-slot "^1.1.0" + debug "^4.3.1" + denque "^1.1.0" + lodash.defaults "^4.2.0" + lodash.flatten "^4.4.0" + p-map "^2.1.0" + redis-commands "1.7.0" + redis-errors "^1.2.0" + redis-parser "^3.0.0" + standard-as-callback "^2.1.0" + +ip-address@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-7.1.0.tgz#4a9c699e75b51cbeb18b38de8ed216efa1a490c5" + integrity sha512-V9pWC/VJf2lsXqP7IWJ+pe3P1/HCYGBMZrrnT62niLGjAfCbeiwXMUxaeHvnVlz19O27pvXP4azs+Pj/A0x+SQ== + dependencies: + jsbn "1.1.0" + sprintf-js "1.1.2" + +ip-cidr@3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/ip-cidr/-/ip-cidr-3.0.4.tgz#a915c47e00f47ea8d5f8ed662ea6161471c44375" + integrity sha512-pKNiqmBlTvEkhaLAa3+FOmYSY0/jjADVxxjA3NbujZZTT8mjLI90Q+6mwg6kd0fNm0RuAOkWJ1u1a/ETmlrPNQ== + dependencies: + ip-address "^7.1.0" + jsbn "^1.1.0" + +ip-regex@^4.0.0, ip-regex@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== + +ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" + integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== + +is-core-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.0.0.tgz#58531b70aed1db7c0e8d4eb1a0a2d1ddd64bd12d" + integrity sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw== + dependencies: + has "^1.0.3" + +is-core-module@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-expression@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-4.0.0.tgz#c33155962abf21d0afd2552514d67d2ec16fd2ab" + integrity sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A== + dependencies: + acorn "^7.1.1" + object-assign "^4.1.1" + +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-function@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" + integrity sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-ip@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" + integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== + dependencies: + ip-regex "^4.0.0" + +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= + +is-nan@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.0.tgz#85d1f5482f7051c2019f5673ccebdb06f3b0db03" + integrity sha512-z7bbREymOqt2CCaZVly8aC4ML3Xhfi0ekuOnjO2L8vKdl+CttdVoGZQhd4adMFAsxQ5VeRVwORs4tU8RH+HFtQ== + dependencies: + define-properties "^1.1.3" + +is-number-like@^1.0.3: + version "1.0.8" + resolved "https://registry.yarnpkg.com/is-number-like/-/is-number-like-1.0.8.tgz#2e129620b50891042e44e9bbbb30593e75cfbbe3" + integrity sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA== + dependencies: + lodash.isfinite "^3.3.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-promise@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.0.3, is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== + dependencies: + has "^1.0.3" + +is-resolvable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-svg@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-4.3.1.tgz#8c63ec8c67c8c7f0a8de0a71c8c7d58eccf4406b" + integrity sha512-h2CGs+yPUyvkgTJQS9cJzo9lYK06WgRiXUqBBHtglSzVKAuH4/oWsqk7LGfbSa1hGk9QcZ0SyQtVggvBA8LZXA== + dependencies: + fast-xml-parser "^3.19.0" + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-whitespace@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" + integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= + +is-windows@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isarray@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jmespath@0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" + integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= + +jpeg-js@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.1.tgz#937a3ae911eb6427f151760f8123f04c8bfe6ef7" + integrity sha512-jA55yJiB5tCXEddos8JBbvW+IMrqY0y1tjjx9KNVtA+QPmu7ND5j0zkKopClpUTsaETL135uOM2XfcYG4XRjmw== + +js-beautify@^1.6.12: + version "1.11.0" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.11.0.tgz#afb873dc47d58986360093dcb69951e8bcd5ded2" + integrity sha512-a26B+Cx7USQGSWnz9YxgJNMmML/QG2nqIaL7VVYPCXbqiKz8PN0waSNvroMtvAK6tY7g/wPdNWGEP+JTNIBr6A== + dependencies: + config-chain "^1.1.12" + editorconfig "^0.15.3" + glob "^7.1.3" + mkdirp "~1.0.3" + nopt "^4.0.3" + +js-levenshtein@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" + integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== + +js-stringify@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" + integrity sha1-Fzb939lyTyijaCrcYjCufk6Weds= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" + integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== + dependencies: + argparse "^2.0.1" + +js-yaml@4.1.0, js-yaml@^4.0.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +js-yaml@^3.13.1, js-yaml@^3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@1.1.0, jsbn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" + integrity sha1-sBMHyym2GKHtJux56RH4A8TaAEA= + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jschardet@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-3.0.0.tgz#898d2332e45ebabbdb6bf2feece9feea9a99e882" + integrity sha512-lJH6tJ77V8Nzd5QWRkFYCLc13a3vADkh3r/Fi8HupZGWk2OVVDfnZP8V/VgQgZ+lzW0kG2UGb5hFgt3V3ndotQ== + +jsdom@16.7.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5-loader@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/json5-loader/-/json5-loader-4.0.1.tgz#6d17a1181e8f3c3d9204dca2a4ce4627306c8498" + integrity sha512-c9viNZlZTz0MTIcf/4qvek5Dz1/PU3DNCB4PwUhlEZIV3qb1bSD6vQQymlV17/Wm6ncra1aCvmIPsuRj+KfEEg== + dependencies: + json5 "^2.1.3" + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +json5@2.2.0, json5@2.x: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2, json5@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-5.0.0.tgz#e6b718f73da420d612823996fdf14a03f6ff6922" + integrity sha512-NQRZ5CRo74MhMMC3/3r5g2k4fjodJ/wh8MxjFbCViWKFjxrnudWSY5vomh+23ZaXzAS7J3fBZIR2dV6WbmfM0w== + dependencies: + universalify "^0.1.2" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonld@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/jsonld/-/jsonld-5.2.0.tgz#d1e8af38a334cb95edf0f2ae4e2b58baf8d2b5a9" + integrity sha512-JymgT6Xzk5CHEmHuEyvoTNviEPxv6ihLWSPu1gFdtjSAyM6cFqNrv02yS/SIur3BBIkCf0HjizRc24d8/FfQKw== + dependencies: + "@digitalbazaar/http-client" "^1.1.0" + canonicalize "^1.0.1" + lru-cache "^6.0.0" + rdf-canonize "^3.0.0" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jsrsasign@8.0.20: + version "8.0.20" + resolved "https://registry.yarnpkg.com/jsrsasign/-/jsrsasign-8.0.20.tgz#37d8029c9d8f794d8ac8d8998bce319921491f11" + integrity sha512-JTXt9+nqdynIB8wFsS6e8ffHhIjilhywXwdaEVHSj9OVmwldG2H0EoCqkQ+KXkm2tVqREfH/HEmklY4k1/6Rcg== + +jstransformer@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" + integrity sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM= + dependencies: + is-promise "^2.0.0" + promise "^7.0.1" + +jwa@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" + integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" + integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== + dependencies: + jwa "^2.0.0" + safe-buffer "^5.0.1" + +keygrip@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" + integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== + dependencies: + tsscmp "1.0.6" + +keyv@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" + integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== + dependencies: + json-buffer "3.0.1" + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +koa-bodyparser@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz#274c778555ff48fa221ee7f36a9fbdbace22759a" + integrity sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw== + dependencies: + co-body "^6.0.0" + copy-to "^2.0.1" + +koa-compose@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" + integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= + dependencies: + any-promise "^1.1.0" + +koa-compose@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" + integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== + +koa-convert@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" + integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA= + dependencies: + co "^4.6.0" + koa-compose "^3.0.0" + +koa-convert@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-2.0.0.tgz#86a0c44d81d40551bae22fee6709904573eea4f5" + integrity sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA== + dependencies: + co "^4.6.0" + koa-compose "^4.1.0" + +koa-favicon@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/koa-favicon/-/koa-favicon-2.1.0.tgz#c430cc594614fb494adcb5ee1196a2f7f53ea442" + integrity sha512-LvukcooYjxKtnZq0RXdBup+JDhaHwLgnLlDHB/xvjwQEjbc4rbp/0WkmOzpOvaHujc+fIwPear0dpKX1V+dHVg== + dependencies: + mz "^2.7.0" + +koa-json-body@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/koa-json-body/-/koa-json-body-5.3.0.tgz#64aad3f400adfb81df54b63f7a5eb38bad62d980" + integrity sha1-ZKrT9ACt+4HfVLY/el6zi61i2YA= + dependencies: + co-body "^5.0.0" + +koa-logger@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/koa-logger/-/koa-logger-3.2.1.tgz#ab9db879526db3837cc9ce4fd983c025b1689f22" + integrity sha512-MjlznhLLKy9+kG8nAXKJLM0/ClsQp/Or2vI3a5rbSQmgl8IJBQO0KI5FA70BvW+hqjtxjp49SpH2E7okS6NmHg== + dependencies: + bytes "^3.1.0" + chalk "^2.4.2" + humanize-number "0.0.2" + passthrough-counter "^1.0.0" + +koa-mount@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/koa-mount/-/koa-mount-4.0.0.tgz#e0265e58198e1a14ef889514c607254ff386329c" + integrity sha512-rm71jaA/P+6HeCpoRhmCv8KVBIi0tfGuO/dMKicbQnQW/YJntJ6MnnspkodoA4QstMVEZArsCphmd0bJEtoMjQ== + dependencies: + debug "^4.0.1" + koa-compose "^4.1.0" + +koa-send@5.0.1, koa-send@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79" + integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ== + dependencies: + debug "^4.1.1" + http-errors "^1.7.3" + resolve-path "^1.4.0" + +koa-slow@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/koa-slow/-/koa-slow-2.1.0.tgz#39007ca628c620f2b307b90dbf423d7a0c9be971" + integrity sha1-OQB8pijGIPKzB7kNv0I9egyb6XE= + dependencies: + lodash.isregexp "3.0.5" + q "1.4.1" + +koa-views@*: + version "7.0.1" + resolved "https://registry.yarnpkg.com/koa-views/-/koa-views-7.0.1.tgz#0c8f8e65d5cd2e08249430cb83dc361e49a17a5a" + integrity sha512-yS8751DXHXXDbdl/oUZd0PsgnxR0MLiguu77Eqrgu6yawE9Hi99wNKiVENb0Kfgsmvq/8px7YCI+USgxaTB1LA== + dependencies: + "@types/koa" "^2.13.1" + consolidate "^0.16.0" + debug "^4.1.0" + get-paths "0.0.7" + koa-send "^5.0.0" + mz "^2.4.0" + pretty "^2.0.0" + resolve-path "^1.4.0" + +koa-views@7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/koa-views/-/koa-views-7.0.2.tgz#c96fd9e2143ef00c29dc5160c5ed639891aa723d" + integrity sha512-dvx3mdVeSVuIPEaKAoGbxLcenudvhl821xxyuRbcoA+bOJ2dvN8wlGjkLu0ZFMlkCscXZV6lzxy28rafeazI/w== + dependencies: + consolidate "^0.16.0" + debug "^4.1.0" + get-paths "0.0.7" + koa-send "^5.0.0" + mz "^2.4.0" + pretty "^2.0.0" + resolve-path "^1.4.0" + +koa@2.13.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.1.tgz#6275172875b27bcfe1d454356a5b6b9f5a9b1051" + integrity sha512-Lb2Dloc72auj5vK4X4qqL7B5jyDPQaZucc9sR/71byg7ryoD1NCaCm63CShk9ID9quQvDEi1bGR/iGjCG7As3w== + dependencies: + accepts "^1.3.5" + cache-content-type "^1.0.0" + content-disposition "~0.5.2" + content-type "^1.0.4" + cookies "~0.8.0" + debug "~3.1.0" + delegates "^1.0.0" + depd "^2.0.0" + destroy "^1.0.4" + encodeurl "^1.0.2" + escape-html "^1.0.3" + fresh "~0.5.2" + http-assert "^1.3.0" + http-errors "^1.6.3" + is-generator-function "^1.0.7" + koa-compose "^4.1.0" + koa-convert "^1.2.0" + on-finished "^2.3.0" + only "~0.0.2" + parseurl "^1.3.2" + statuses "^1.5.0" + type-is "^1.6.16" + vary "^1.1.2" + +koa@2.13.4: + version "2.13.4" + resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.4.tgz#ee5b0cb39e0b8069c38d115139c774833d32462e" + integrity sha512-43zkIKubNbnrULWlHdN5h1g3SEKXOEzoAlRsHOTFpnlDu8JlAOZSMJBLULusuXRequboiwJcj5vtYXKB3k7+2g== + dependencies: + accepts "^1.3.5" + cache-content-type "^1.0.0" + content-disposition "~0.5.2" + content-type "^1.0.4" + cookies "~0.8.0" + debug "^4.3.2" + delegates "^1.0.0" + depd "^2.0.0" + destroy "^1.0.4" + encodeurl "^1.0.2" + escape-html "^1.0.3" + fresh "~0.5.2" + http-assert "^1.3.0" + http-errors "^1.6.3" + is-generator-function "^1.0.7" + koa-compose "^4.1.0" + koa-convert "^2.0.0" + on-finished "^2.3.0" + only "~0.0.2" + parseurl "^1.3.2" + statuses "^1.5.0" + type-is "^1.6.16" + vary "^1.1.2" + +ky-universal@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/ky-universal/-/ky-universal-0.8.2.tgz#edc398d54cf495d7d6830aa1ab69559a3cc7f824" + integrity sha512-xe0JaOH9QeYxdyGLnzUOVGK4Z6FGvDVzcXFTdrYA1f33MZdEa45sUDaMBy98xQMcsd2XIBrTXRrRYnegcSdgVQ== + dependencies: + abort-controller "^3.0.0" + node-fetch "3.0.0-beta.9" + +ky@^0.25.1: + version "0.25.1" + resolved "https://registry.yarnpkg.com/ky/-/ky-0.25.1.tgz#0df0bd872a9cc57e31acd5dbc1443547c881bfbc" + integrity sha512-PjpCEWlIU7VpiMVrTwssahkYXX1by6NCT0fhTUX34F3DTinARlgMpriuroolugFPcMgpPWrOW4mTb984Qm1RXA== + +langmap@0.0.16: + version "0.0.16" + resolved "https://registry.yarnpkg.com/langmap/-/langmap-0.0.16.tgz#2fe3e98a531fec0fec546624ebe168c2855bab56" + integrity sha512-AtYvBK7BsDvWwnSfmO7CfgeUy7GUT1wK3QX8eKH/Ey/eXodqoHuAtvdQ82hmWD9QVFVKnuiNjym9fGY4qSJeLA== + +lcid@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-3.1.1.tgz#9030ec479a058fc36b5e8243ebaac8b6ac582fd0" + integrity sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg== + dependencies: + invert-kv "^3.0.0" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lilconfig@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.3.tgz#68f3005e921dafbd2a2afb48379986aa6d2579fd" + integrity sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg== + +loader-runner@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" + integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== + +loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.assignin@^4.0.9: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= + +lodash.bind@^4.1.4: + version "4.2.1" + resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" + integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= + +lodash.defaults@^4.0.1, lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + +lodash.filter@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= + +lodash.flatten@^4.2.0, lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + +lodash.foreach@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= + +lodash.isfinite@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz#fb89b65a9a80281833f0b7478b3a5104f898ebb3" + integrity sha1-+4m2WpqAKBgz8LdHizpRBPiY67M= + +lodash.isregexp@3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/lodash.isregexp/-/lodash.isregexp-3.0.5.tgz#e0f596242f2fa228a840086b6c8ad82e4b71fd2d" + integrity sha1-4PWWJC8voiioQAhrbIrYLktx/S0= + +lodash.map@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + +lodash.memoize@4.x, lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.merge@^4.4.0, lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.pick@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + +lodash.reduce@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" + integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= + +lodash.reject@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" + integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= + +lodash.some@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.7.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +mailcheck@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/mailcheck/-/mailcheck-1.1.1.tgz#d87cf6ba0b64ba512199dbf93f1489f479591e34" + integrity sha1-2Hz2ugtkulEhmdv5PxSJ9HlZHjQ= + +make-error@1.x, make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +make-fetch-happen@^8.0.14: + version "8.0.14" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz#aaba73ae0ab5586ad8eaa68bd83332669393e222" + integrity sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ== + dependencies: + agentkeepalive "^4.1.3" + cacache "^15.0.5" + http-cache-semantics "^4.1.0" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^6.0.0" + minipass "^3.1.3" + minipass-collect "^1.0.2" + minipass-fetch "^1.3.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + promise-retry "^2.0.1" + socks-proxy-agent "^5.0.0" + ssri "^8.0.0" + +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.1.tgz#7059b67bf9ac2c924c9f1cff7155a064394adfb3" + integrity sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^2.1.0" + p-is-promise "^2.1.0" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +merge@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/merge/-/merge-2.1.1.tgz#59ef4bf7e0b3e879186436e8481c06a6c162ca98" + integrity sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w== + +methods@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +mfm-js@0.20.0: + version "0.20.0" + resolved "https://registry.yarnpkg.com/mfm-js/-/mfm-js-0.20.0.tgz#3afdcd7959461fd825aa8af9b9e8a57cdbddc290" + integrity sha512-1+3tV3nWUKQNh/ztX3wXu5iLBtdsg6q3wUhl+XyOhc2H3sQdG+sih/w2c0nR9TIawjN+Z1/pvgGzxMJHfmKQmA== + dependencies: + twemoji-parser "13.1.x" + +micromatch@4.x: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +micromatch@^4.0.0, micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + +microseconds@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/microseconds/-/microseconds-0.2.0.tgz#233b25f50c62a65d861f978a4a4f8ec18797dc39" + integrity sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA== + +mime-db@1.44.0: + version "1.44.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== + +mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.27" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== + dependencies: + mime-db "1.44.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@3.0.4, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-fetch@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.3.tgz#34c7cea038c817a8658461bf35174551dce17a0a" + integrity sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ== + dependencies: + minipass "^3.1.0" + minipass-sized "^1.0.3" + minizlib "^2.0.0" + optionalDependencies: + encoding "^0.1.12" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5" + integrity sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w== + dependencies: + yallist "^4.0.0" + +minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== + dependencies: + yallist "^4.0.0" + +minizlib@^2.0.0, minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +misskey-js@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/misskey-js/-/misskey-js-0.0.8.tgz#b47a1ec54bff96b23cc2a6b307a3895f99a94424" + integrity sha512-Q1L6FaroVz8kpW7T4xQyJmJKSwjOYPbNY3TspOUWmbIBDf2JP0HVeKEFLI9dvdSL0kSkdQNz3MSVLjlHiyPqLQ== + dependencies: + autobind-decorator "^2.4.0" + eventemitter3 "^4.0.7" + reconnecting-websocket "^4.4.0" + +mkdirp-classic@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz#54c441ce4c96cd7790e10b41a87aa51068ecab2b" + integrity sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g== + +mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp@0.x, mkdirp@^0.5.3, mkdirp@^0.5.4: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mocha@8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff" + integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ== + dependencies: + "@ungap/promise-all-settled" "1.1.2" + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.1" + debug "4.3.1" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.1.6" + growl "1.10.5" + he "1.2.0" + js-yaml "4.0.0" + log-symbols "4.0.0" + minimatch "3.0.4" + ms "2.1.3" + nanoid "3.1.20" + serialize-javascript "5.0.1" + strip-json-comments "3.1.1" + supports-color "8.1.1" + which "2.0.2" + wide-align "1.1.3" + workerpool "6.1.0" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +moment-timezone@^0.5.25: + version "0.5.28" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.28.tgz#f093d789d091ed7b055d82aa81a82467f72e4338" + integrity sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw== + dependencies: + moment ">= 2.9.0" + +"moment@>= 2.9.0", moment@^2.22.2: + version "2.24.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" + integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.0.0, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multer@1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.3.tgz#4db352d6992e028ac0eacf7be45c6efd0264297b" + integrity sha512-np0YLKncuZoTzufbkM6wEKp68EhWJXcU6fq6QqrSwkckd2LlMgd1UqhUJLj6NS/5sZ8dE8LYDWslsltJznnXlg== + dependencies: + append-field "^1.0.0" + busboy "^0.2.11" + concat-stream "^1.5.2" + mkdirp "^0.5.4" + object-assign "^4.1.1" + on-finished "^2.3.0" + type-is "^1.6.4" + xtend "^4.0.0" + +mz@^2.4.0, mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nan@^2.14.2: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + +nano-time@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/nano-time/-/nano-time-1.0.0.tgz#b0554f69ad89e22d0907f7a12b0993a5d96137ef" + integrity sha1-sFVPaa2J4i0JB/ehKwmTpdlhN+8= + dependencies: + big-integer "^1.6.16" + +nanoid@3.1.20: + version "3.1.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== + +nanoid@^3.1.23: + version "3.1.23" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" + integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== + +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +needle@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.5.2.tgz#cf1a8fce382b5a280108bba90a14993c00e4010a" + integrity sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +nested-property@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/nested-property/-/nested-property-4.0.0.tgz#a67b5a31991e701e03cdbaa6453bc5b1011bb88d" + integrity sha512-yFehXNWRs4cM0+dz7QxCd06hTbWbSkV0ISsqBfkntU6TOY4Qm3Q88fRRLOddkGh2Qq6dZvnKVAahfhjcUvLnyA== + +netmask@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" + integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== + +next-line@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-line/-/next-line-1.1.0.tgz#fcae57853052b6a9bae8208e40dd7d3c2d304603" + integrity sha1-/K5XhTBStqm66CCOQN19PC0wRgM= + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +node-abi@^2.21.0: + version "2.21.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.21.0.tgz#c2dc9ebad6f4f53d6ea9b531e7b8faad81041d48" + integrity sha512-smhrivuPqEM3H5LmnY3KU6HfYv0u4QklgAxfFyRNujKUzbUcYZ+Jc2EhukB9SRcD2VpqhxM7n/MIcp1Ua1/JMg== + dependencies: + semver "^5.4.1" + +node-addon-api@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.2.0.tgz#117cbb5a959dff0992e1c586ae0393573e4d2a87" + integrity sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q== + +node-fetch@2.6.1, node-fetch@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +node-fetch@3.0.0-beta.9: + version "3.0.0-beta.9" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.0.0-beta.9.tgz#0a7554cfb824380dd6812864389923c783c80d9b" + integrity sha512-RdbZCEynH2tH46+tj0ua9caUHVWrd/RHnRfvly2EVdqGmI3ndS1Vn/xjm5KuGejDt2RNDQsVRLPNd2QPwcewVg== + dependencies: + data-uri-to-buffer "^3.0.1" + fetch-blob "^2.1.1" + +node-gyp-build@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz#daa77a4f547b9aed3e2aac779eaf151afd60ec8d" + integrity sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w== + +node-gyp@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.0.0.tgz#225af2b06b8419ae81f924bf25ae4c167f6378a5" + integrity sha512-Jod6NxyWtcwrpAQe0O/aXOpC5QfncotgtG73dg65z6VW/C6g/G4jiajXQUBIJ8pk/VfM6mBYE9BN/HvudTunUQ== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.6" + make-fetch-happen "^8.0.14" + nopt "^5.0.0" + npmlog "^4.1.2" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.0" + which "^2.0.2" + +node-releases@^1.1.70, node-releases@^1.1.71: + version "1.1.71" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" + integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== + +nodemailer@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.7.0.tgz#86614722c4e0c33d1b5b02aecb90d6d629932b0d" + integrity sha512-AtiTVUFHLiiDnMQ43zi0YgkzHOEWUkhDgPlBXrsDzJiJvB29Alo4OKxHQ0ugF3gRqRQIneCLtZU3yiUo7pItZw== + +nofilter@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-2.0.3.tgz#f5460f3cb33147005883e3f5d4476239501fa187" + integrity sha512-FbuXC+lK+GU2+63D1kC1ETiZo+Z7SIi7B+mxKTCH1byrh6WFvfBCN/wpherFz0a0bjGd7EKTst/cz0yLeNngug== + dependencies: + "@cto.af/textdecoder" "^0.0.0" + +nofilter@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" + integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g== + +nopt@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== + dependencies: + abbrev "1" + osenv "^0.1.4" + +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npmlog@^4.0.1, npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== + dependencies: + boolbase "^1.0.0" + +nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +oauth@0.9.15: + version "0.9.15" + resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" + integrity sha1-vR/vr2hslrdUda7VGWQS/2DPucE= + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-inspect@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.getownpropertydescriptors@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +oblivious-set@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/oblivious-set/-/oblivious-set-1.0.0.tgz#c8316f2c2fb6ff7b11b6158db3234c49f733c566" + integrity sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw== + +on-finished@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +only@~0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" + integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= + +opentype.js@^0.4.3: + version "0.4.11" + resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-0.4.11.tgz#281a2390639cc15931c955d8d63c14a7c7772b41" + integrity sha1-KBojkGOcwVkxyVXY1jwUp8d3K0E= + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-5.0.0.tgz#6d26c1d95b6597c5d5317bf5fba37eccec3672e0" + integrity sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA== + dependencies: + execa "^4.0.0" + lcid "^3.0.0" + mem "^5.0.0" + +os-tmpdir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +os-utils@0.0.14: + version "0.0.14" + resolved "https://registry.yarnpkg.com/os-utils/-/os-utils-0.0.14.tgz#29e511697b1982b8c627722175fe39797ef64156" + integrity sha1-KeURaXsZgrjGJ3Ihdf45eX72QVY= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-cancelable@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" + integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" + integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== + dependencies: + p-try "^2.0.0" + +p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-timeout@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +packet-reader@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" + integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parse5-htmlparser2-tree-adapter@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + +parse5@6.0.1, parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parse5@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parseurl@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +passthrough-counter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passthrough-counter/-/passthrough-counter-1.0.0.tgz#1967d9e66da572b5c023c787db112a387ab166fa" + integrity sha1-GWfZ5m2lcrXAI8eH2xEqOHqxZvo= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@1.0.1, path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-to-regexp@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.1.0.tgz#0b18f88b7a0ce0bfae6a25990c909ab86f512427" + integrity sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +peek-readable@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-4.0.1.tgz#9a045f291db254111c3412c1ce4fec27ddd4d202" + integrity sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ== + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +pg-connection-string@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34" + integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ== + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-pool@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.4.1.tgz#0e71ce2c67b442a5e862a9c182172c37eda71e9c" + integrity sha512-TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ== + +pg-protocol@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.5.0.tgz#b5dd452257314565e2d54ab3c132adc46565a6a0" + integrity sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ== + +pg-types@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + +pg@8.7.1: + version "8.7.1" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.7.1.tgz#9ea9d1ec225980c36f94e181d009ab9f4ce4c471" + integrity sha512-7bdYcv7V6U3KAtWjpQJJBww0UEsWuh4yQ/EjNf2HeO/NnvKjpvhEIe/A/TleP6wtmSKnUnghs5A9jUoK6iDdkA== + dependencies: + buffer-writer "2.0.0" + packet-reader "1.0.0" + pg-connection-string "^2.5.0" + pg-pool "^3.4.1" + pg-protocol "^1.5.0" + pg-types "^2.1.0" + pgpass "1.x" + +pgpass@1.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306" + integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY= + dependencies: + split "^1.0.0" + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.0.7, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +picomatch@^2.2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pngjs@^3.3.0, pngjs@^3.3.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" + integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== + +portscanner@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/portscanner/-/portscanner-2.2.0.tgz#6059189b3efa0965c9d96a56b958eb9508411cf1" + integrity sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw== + dependencies: + async "^2.6.0" + is-number-like "^1.0.3" + +postcss-calc@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" + integrity sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g== + dependencies: + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.1.tgz#6e444a806fd3c578827dbad022762df19334414d" + integrity sha512-VVwMrEYLcHYePUYV99Ymuoi7WhKrMGy/V9/kTS0DkCoJYmmjdOMneyhzYUxcNgteKDVbrewOkSM7Wje/MFwxzA== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.1.0" + +postcss-convert-values@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz#879b849dc3677c7d6bc94b6a2c1a3f0808798059" + integrity sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-discard-comments@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz#9eae4b747cf760d31f2447c27f0619d5718901fe" + integrity sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg== + +postcss-discard-duplicates@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz#68f7cc6458fe6bab2e46c9f55ae52869f680e66d" + integrity sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA== + +postcss-discard-empty@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz#ee136c39e27d5d2ed4da0ee5ed02bc8a9f8bf6d8" + integrity sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw== + +postcss-discard-overridden@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz#454b41f707300b98109a75005ca4ab0ff2743ac6" + integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q== + +postcss-merge-longhand@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.3.tgz#42194a5ffbaa5513edbf606ef79c44958564658b" + integrity sha512-kmB+1TjMTj/bPw6MCDUiqSA5e/x4fvLffiAdthra3a0m2/IjTrWsTmD3FdSskzUjEwkj5ZHBDEbv5dOcqD7CMQ== + dependencies: + css-color-names "^1.0.1" + postcss-value-parser "^4.1.0" + stylehacks "^5.0.1" + +postcss-merge-rules@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz#d6e4d65018badbdb7dcc789c4f39b941305d410a" + integrity sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + cssnano-utils "^2.0.1" + postcss-selector-parser "^6.0.5" + vendors "^1.0.3" + +postcss-minify-font-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz#a90cefbfdaa075bd3dbaa1b33588bb4dc268addf" + integrity sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-minify-gradients@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz#f970a11cc71e08e9095e78ec3a6b34b91c19550e" + integrity sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q== + dependencies: + colord "^2.9.1" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-minify-params@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz#371153ba164b9d8562842fdcd929c98abd9e5b6c" + integrity sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw== + dependencies: + alphanum-sort "^1.0.2" + browserslist "^4.16.0" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz#4385c845d3979ff160291774523ffa54eafd5a54" + integrity sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og== + dependencies: + alphanum-sort "^1.0.2" + postcss-selector-parser "^6.0.5" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-normalize-charset@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz#121559d1bebc55ac8d24af37f67bd4da9efd91d0" + integrity sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg== + +postcss-normalize-display-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz#62650b965981a955dffee83363453db82f6ad1fd" + integrity sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-positions@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz#868f6af1795fdfa86fbbe960dceb47e5f9492fe5" + integrity sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-normalize-repeat-style@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz#cbc0de1383b57f5bb61ddd6a84653b5e8665b2b5" + integrity sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-string@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz#d9eafaa4df78c7a3b973ae346ef0e47c554985b0" + integrity sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-normalize-timing-functions@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz#8ee41103b9130429c6cbba736932b75c5e2cb08c" + integrity sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-unicode@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz#82d672d648a411814aa5bf3ae565379ccd9f5e37" + integrity sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA== + dependencies: + browserslist "^4.16.0" + postcss-value-parser "^4.1.0" + +postcss-normalize-url@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz#ddcdfb7cede1270740cf3e4dfc6008bd96abc763" + integrity sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ== + dependencies: + is-absolute-url "^3.0.3" + normalize-url "^6.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-whitespace@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz#b0b40b5bcac83585ff07ead2daf2dcfbeeef8e9a" + integrity sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-ordered-values@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz#1f351426977be00e0f765b3164ad753dac8ed044" + integrity sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-reduce-initial@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz#9d6369865b0f6f6f6b165a0ef5dc1a4856c7e946" + integrity sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw== + dependencies: + browserslist "^4.16.0" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz#93c12f6a159474aa711d5269923e2383cedcf640" + integrity sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" + integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + util-deprecate "^1.0.2" + +postcss-selector-parser@^6.0.5: + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.3.tgz#d945185756e5dfaae07f9edb0d3cae7ff79f9b30" + integrity sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA== + dependencies: + postcss-value-parser "^4.1.0" + svgo "^2.7.0" + +postcss-unique-selectors@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz#3be5c1d7363352eff838bd62b0b07a0abad43bfc" + integrity sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w== + dependencies: + alphanum-sort "^1.0.2" + postcss-selector-parser "^6.0.5" + uniqs "^2.0.0" + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss@^8.2.15: + version "8.3.0" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.0.tgz#b1a713f6172ca427e3f05ef1303de8b65683325f" + integrity sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ== + dependencies: + colorette "^1.2.2" + nanoid "^3.1.23" + source-map-js "^0.6.2" + +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU= + +postgres-date@~1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.5.tgz#710b27de5f27d550f6e80b5d34f7ba189213c2ee" + integrity sha512-pdau6GRPERdAYUQwkBnGKxEfPyhVZXG/JiS44iZWiNdSOWE09N2lUgN6yshuq6fVSon4Pm0VMXd1srUUkLe9iA== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + +prebuild-install@^6.1.4: + version "6.1.4" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" + integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ== + dependencies: + detect-libc "^1.0.3" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^2.21.0" + npmlog "^4.0.1" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^3.0.3" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +pretty@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" + integrity sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU= + dependencies: + condense-newlines "^0.2.1" + extend-shallow "^2.0.1" + js-beautify "^1.6.12" + +prettyjson@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.1.tgz#fcffab41d19cab4dfae5e575e64246619b12d289" + integrity sha1-/P+rQdGcq0365eV15kJGYZsS0ok= + dependencies: + colors "^1.1.2" + minimist "^1.2.0" + +printj@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" + integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== + +prismjs@1.25.0: + version "1.25.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756" + integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg== + +private-ip@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/private-ip/-/private-ip-2.3.3.tgz#1e80ff8443e5ac78f555631aec3ea6ff027fa6aa" + integrity sha512-5zyFfekIVUOTVbL92hc8LJOtE/gyGHeREHkJ2yTyByP8Q2YZVoBqLg3EfYLeF0oVvGqtaEX2t2Qovja0/gStXw== + dependencies: + ip-regex "^4.3.0" + ipaddr.js "^2.0.1" + is-ip "^3.1.0" + netmask "^2.0.2" + +probe-image-size@7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/probe-image-size/-/probe-image-size-7.2.1.tgz#df0c924e67e247bc94f8fcb0fad7f0081061fc44" + integrity sha512-d+6L3NvQBCNt4peRDoEfA7r9bPm6/qy18FnLKwg4NWBC5JrJm0pMLRg1kF4XNsPe1bUdt3WIMonPJzQWN2HXjQ== + dependencies: + lodash.merge "^4.6.2" + needle "^2.5.2" + stream-parser "~0.3.1" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise-limit@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/promise-limit/-/promise-limit-2.7.0.tgz#eb5737c33342a030eaeaecea9b3d3a93cb592b26" + integrity sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +promise.prototype.finally@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.2.tgz#b8af89160c9c673cefe3b4c4435b53cfd0287067" + integrity sha512-A2HuJWl2opDH0EafgdjwEw7HysI8ff/n4lW4QEVBCUXFk9QeGecBWv0Deph0UmLe3tTNYegz8MOjsVuE6SMoJA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.0" + function-bind "^1.1.1" + +promise@^7.0.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.28, psl@^1.1.33: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +pug-attrs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-3.0.0.tgz#b10451e0348165e31fad1cc23ebddd9dc7347c41" + integrity sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA== + dependencies: + constantinople "^4.0.1" + js-stringify "^1.0.2" + pug-runtime "^3.0.0" + +pug-code-gen@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-3.0.2.tgz#ad190f4943133bf186b60b80de483100e132e2ce" + integrity sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg== + dependencies: + constantinople "^4.0.1" + doctypes "^1.1.0" + js-stringify "^1.0.2" + pug-attrs "^3.0.0" + pug-error "^2.0.0" + pug-runtime "^3.0.0" + void-elements "^3.1.0" + with "^7.0.0" + +pug-error@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-2.0.0.tgz#5c62173cb09c34de2a2ce04f17b8adfec74d8ca5" + integrity sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ== + +pug-filters@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-4.0.0.tgz#d3e49af5ba8472e9b7a66d980e707ce9d2cc9b5e" + integrity sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A== + dependencies: + constantinople "^4.0.1" + jstransformer "1.0.0" + pug-error "^2.0.0" + pug-walk "^2.0.0" + resolve "^1.15.1" + +pug-lexer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-5.0.1.tgz#ae44628c5bef9b190b665683b288ca9024b8b0d5" + integrity sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w== + dependencies: + character-parser "^2.2.0" + is-expression "^4.0.0" + pug-error "^2.0.0" + +pug-linker@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-4.0.0.tgz#12cbc0594fc5a3e06b9fc59e6f93c146962a7708" + integrity sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw== + dependencies: + pug-error "^2.0.0" + pug-walk "^2.0.0" + +pug-load@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-3.0.0.tgz#9fd9cda52202b08adb11d25681fb9f34bd41b662" + integrity sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ== + dependencies: + object-assign "^4.1.1" + pug-walk "^2.0.0" + +pug-parser@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-6.0.0.tgz#a8fdc035863a95b2c1dc5ebf4ecf80b4e76a1260" + integrity sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw== + dependencies: + pug-error "^2.0.0" + token-stream "1.0.0" + +pug-runtime@^3.0.0, pug-runtime@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-3.0.1.tgz#f636976204723f35a8c5f6fad6acda2a191b83d7" + integrity sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg== + +pug-strip-comments@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz#f94b07fd6b495523330f490a7f554b4ff876303e" + integrity sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ== + dependencies: + pug-error "^2.0.0" + +pug-walk@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-2.0.0.tgz#417aabc29232bb4499b5b5069a2b2d2a24d5f5fe" + integrity sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ== + +pug@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/pug/-/pug-3.0.2.tgz#f35c7107343454e43bc27ae0ff76c731b78ea535" + integrity sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw== + dependencies: + pug-code-gen "^3.0.2" + pug-filters "^4.0.0" + pug-lexer "^5.0.1" + pug-linker "^4.0.0" + pug-load "^3.0.0" + pug-parser "^6.0.0" + pug-runtime "^3.0.1" + pug-strip-comments "^2.0.0" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@2.1.1, punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +pureimage@0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/pureimage/-/pureimage-0.3.5.tgz#cd5e91f7b6409fcf4880297aaa3e7fc0afc24d5e" + integrity sha512-+CFUEpoX6GemlKlHihI7Ii4IqKqF5KZjd682sAxwzbc4t4zU4Gwhxd4W3UMZW94nJzf0n4nA9zJrwTR4jZB4TA== + dependencies: + jpeg-js "^0.4.1" + opentype.js "^0.4.3" + pngjs "^3.3.1" + +q@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" + integrity sha1-VXBbzZPF82c1MMLCy8DCs63cKG4= + +qrcode@1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83" + integrity sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q== + dependencies: + buffer "^5.4.3" + buffer-alloc "^1.2.0" + buffer-from "^1.1.1" + dijkstrajs "^1.0.1" + isarray "^2.0.1" + pngjs "^3.3.0" + yargs "^13.2.4" + +qs@^6.4.0, qs@^6.5.2: + version "6.9.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e" + integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +random-seed@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/random-seed/-/random-seed-0.3.0.tgz#d945f2e1f38f49e8d58913431b8bf6bb937556cd" + integrity sha1-2UXy4fOPSejViRNDG4v2u5N1Vs0= + dependencies: + json-stringify-safe "^5.0.1" + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +rangestr@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/rangestr/-/rangestr-0.0.1.tgz#f72ff9246f10f2a7d7c16e14616f617be2c2635a" + integrity sha1-9y/5JG8Q8qfXwW4UYW9he+LCY1o= + +ratelimiter@3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/ratelimiter/-/ratelimiter-3.4.1.tgz#fa69e94937413382a926aaa17aaeaa6263af4659" + integrity sha512-5FJbRW/Jkkdk29ksedAfWFkQkhbUrMx3QJGwMKAypeIiQf4yrLW+gtPKZiaWt4zPrtw1uGufOjGO7UGM6VllsQ== + +raw-body@^2.2.0, raw-body@^2.3.3: + version "2.4.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" + integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== + dependencies: + bytes "3.1.0" + http-errors "1.7.3" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +rdf-canonize@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/rdf-canonize/-/rdf-canonize-3.0.0.tgz#f5bade563e5e58f5cc5881afcba3c43839e8c747" + integrity sha512-LXRkhab1QaPJnhUIt1gtXXKswQCZ9zpflsSZFczG7mCLAkMvVjdqCGk9VXCUss0aOUeEyV2jtFxGcdX8DSkj9w== + dependencies: + setimmediate "^1.0.5" + +re2@1.16.0: + version "1.16.0" + resolved "https://registry.yarnpkg.com/re2/-/re2-1.16.0.tgz#f311eb4865b1296123800ea8e013cec8dab25590" + integrity sha512-eizTZL2ZO0ZseLqfD4t3Qd0M3b3Nr0MBWpX81EbPMIud/1d/CSfUIx2GQK8fWiAeHoSekO5EOeFib2udTZLwYw== + dependencies: + install-artifact-from-github "^1.2.0" + nan "^2.14.2" + node-gyp "^8.0.0" + +readable-stream@1.1.x: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.6, readable-stream@^2.2.2: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-web-to-node-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.0.tgz#4ca5408e70471069119d691934141a52de413955" + integrity sha512-HNmLb3n0SteGAs8HQlErYPGeO+y7cvL/mVUKtXeUkl0iCZ/2GIgKGrCFHyS7UXFnO8uc9U+0y3pYIzAPsjFfvA== + dependencies: + "@types/readable-stream" "^2.3.9" + readable-stream "^3.6.0" + +readdirp@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17" + integrity sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ== + dependencies: + picomatch "^2.0.7" + +reconnecting-websocket@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/reconnecting-websocket/-/reconnecting-websocket-4.4.0.tgz#3b0e5b96ef119e78a03135865b8bb0af1b948783" + integrity sha512-D2E33ceRPga0NvTDhJmphEgJ7FUYF0v4lr1ki0csq06OdlxKfugGzN0dSkxM/NfqCxYELK4KcaTOUOjTV6Dcng== + +redis-commands@1.7.0, redis-commands@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.7.0.tgz#15a6fea2d58281e27b1cd1acfb4b293e278c3a89" + integrity sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ== + +redis-errors@^1.0.0, redis-errors@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" + integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60= + +redis-lock@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/redis-lock/-/redis-lock-0.1.4.tgz#e83590bee22b5f01cdb65bfbd88d988045356272" + integrity sha512-7/+zu86XVQfJVx1nHTzux5reglDiyUCDwmW7TSlvVezfhH2YLc/Rc8NE0ejQG+8/0lwKzm29/u/4+ogKeLosiA== + +redis-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" + integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ= + dependencies: + redis-errors "^1.0.0" + +redis@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/redis/-/redis-3.1.2.tgz#766851117e80653d23e0ed536254677ab647638c" + integrity sha512-grn5KoZLr/qrRQVwoSkmzdbw6pwF+/rwODtrOr6vuBRiR/f3rjSTGupbF90Zpqm2oenix8Do6RV7pYEkGwlKkw== + dependencies: + denque "^1.5.0" + redis-commands "^1.7.0" + redis-errors "^1.2.0" + redis-parser "^3.0.0" + +reflect-metadata@0.1.13, reflect-metadata@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" + integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== + +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regexpp@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +rename@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/rename/-/rename-1.0.4.tgz#a0f25078fa4195e650f73050c7c12ccf689f430b" + integrity sha1-oPJQePpBleZQ9zBQx8Esz2ifQws= + dependencies: + debug "^2.5.2" + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request-stats@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/request-stats/-/request-stats-3.0.0.tgz#769155dc8974d78d4a1cb87bbf14eaab985afe25" + integrity sha1-dpFV3Il0141KHLh7vxTqq5ha/iU= + dependencies: + http-headers "^3.0.1" + once "^1.4.0" + +request@2.88.2, request@^2.88.2: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-all@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/require-all/-/require-all-3.0.0.tgz#473d49704be310115ce124f77383b1ebd8671312" + integrity sha1-Rz1JcEvjEBFc4ST3c4Ox69hnExI= + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve-alpn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" + integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-path@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7" + integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc= + dependencies: + http-errors "~1.6.2" + path-is-absolute "1.0.1" + +resolve@^1.15.1: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +resolve@^1.3.2: + version "1.18.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" + integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== + dependencies: + is-core-module "^2.0.0" + path-parse "^1.0.6" + +responselike@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" + integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + dependencies: + lowercase-keys "^2.0.0" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rndstr@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rndstr/-/rndstr-1.0.0.tgz#77e66fa8f9b4836853fdd91e50719591bb67d349" + integrity sha1-d+ZvqPm0g2hT/dkeUHGVkbtn00k= + dependencies: + rangestr "0.0.1" + seedrandom "2.4.2" + +rsvp@^4.8.5: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-parallel@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + +rxjs@^6.6.3: + version "6.6.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.6.tgz#14d8417aa5a07c5e633995b525e1e3c0dec03b70" + integrity sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg== + dependencies: + tslib "^1.9.0" + +s-age@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/s-age/-/s-age-1.1.2.tgz#c0cf15233ccc93f41de92ea42c36d957977d1ea2" + integrity sha512-aSN2TlF39WLoZA/6cgYSJZhKt63kJ4EaadejPWjWY9/h4rksIqvfWY3gfd+3uAegSM1IXsA9aWeEhJtkxkFQtA== + +safari-14-idb-fix@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/safari-14-idb-fix/-/safari-14-idb-fix-1.0.4.tgz#5c68ba63e2a8ae0d89a0aa1e13fe89e3aef7da19" + integrity sha512-4+Y2baQdgJpzu84d0QjySl70Kyygzf0pepVg8NVg4NnQEPpfC91fAn0baNvtStlCjUUxxiu0BOMiafa98fRRuA== + +safe-buffer@*: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" + integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o= + +sax@>=0.6.0, sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + dependencies: + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +secure-json-parse@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.1.0.tgz#ae76f5624256b5c497af887090a5d9e156c9fb20" + integrity sha512-GckO+MS/wT4UogDyoI/H/S1L0MCcKS1XX/vp48wfmU7Nw4woBmb8mIpu4zPBQjKlRT88/bt9xdoV4111jPpNJA== + +seedrandom@2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.2.tgz#18d78c41287d13aff8eadb29e235938b248aa9ff" + integrity sha1-GNeMQSh9E6/46tsp4jWTiySKqf8= + +seedrandom@3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7" + integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== + +semver@6.x: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^5.3.0, semver@^5.4.1, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^7.2.1, semver@^7.3.2, semver@^7.3.4: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + +semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +serialize-javascript@5.0.1, serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.11: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +sharp@0.29.2: + version "0.29.2" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.29.2.tgz#e8c003cd9cb321585b32dbda6eed3baa7d6f2308" + integrity sha512-XWRdiYLIJ3tDUejRyG24KERnJzMfIoyiJBntd2S6/uj3NEeNgRFRLgiBlvPxMa8aml14dKKD98yHinSNKp1xzQ== + dependencies: + color "^4.0.1" + detect-libc "^1.0.3" + node-addon-api "^4.2.0" + prebuild-install "^6.1.4" + semver "^7.3.5" + simple-get "^3.1.0" + tar-fs "^2.1.1" + tunnel-agent "^0.6.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +simple-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" + integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY= + +simple-get@^3.0.3, simple-get@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" + integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +smart-buffer@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" + integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== + +socks-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" + integrity sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA== + dependencies: + agent-base "6" + debug "4" + socks "^2.3.3" + +socks@^2.3.3: + version "2.6.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.1.tgz#989e6534a07cf337deb1b1c94aaa44296520d30e" + integrity sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA== + dependencies: + ip "^1.1.5" + smart-buffer "^4.1.0" + +source-list-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-js@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== + +source-map-support@~0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +spawn-command@^0.0.2-1: + version "0.0.2-1" + resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" + integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= + +speakeasy@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/speakeasy/-/speakeasy-2.0.0.tgz#85c91a071b09a5cb8642590d983566165f57613a" + integrity sha1-hckaBxsJpcuGQlkNmDVmFl9XYTo= + dependencies: + base32.js "0.0.1" + +split@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== + dependencies: + through "2" + +sprintf-js@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.14.1, sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^8.0.0, ssri@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== + dependencies: + minipass "^3.1.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +standard-as-callback@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" + integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +stream-parser@~0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/stream-parser/-/stream-parser-0.3.1.tgz#1618548694420021a1182ff0af1911c129761773" + integrity sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M= + dependencies: + debug "2" + +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= + +strict-event-emitter-types@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz#05e15549cb4da1694478a53543e4e2f4abcf277f" + integrity sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA== + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.trimend@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimleft@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" + integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimstart "^1.0.0" + +string.prototype.trimright@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" + integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimend "^1.0.0" + +string.prototype.trimstart@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringz@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/stringz/-/stringz-2.1.0.tgz#5896b4713eac31157556040fb90258fb02c1630c" + integrity sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A== + dependencies: + char-regex "^1.0.2" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +strtok3@^6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.2.4.tgz#302aea64c0fa25d12a0385069ba66253fdc38a81" + integrity sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw== + dependencies: + "@tokenizer/token" "^0.3.0" + peek-readable "^4.0.1" + +style-loader@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575" + integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ== + +stylehacks@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.1.tgz#323ec554198520986806388c7fdaebc38d2c06fb" + integrity sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA== + dependencies: + browserslist "^4.16.0" + postcss-selector-parser "^6.0.4" + +summaly@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/summaly/-/summaly-2.4.1.tgz#d2a8fa6bad10c1651eb0b849aab3009e87216a3d" + integrity sha512-1gETEQXqK5RD7yIGgdGeTwGL1uh+uj14u99atzNLNmvsxwdtZbPvDHZBPXkAW0cqsd8teoBJln5Dh1QeAhvGIg== + dependencies: + cheerio-httpcli "0.8.2" + debug "4.3.2" + escape-regexp "0.0.1" + html-entities "2.3.2" + koa "2.13.1" + request "2.88.2" + request-promise-native "1.0.9" + require-all "3.0.0" + trace-redirect "1.0.6" + +supports-color@8.1.1, supports-color@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +svgo@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" + stable "^0.1.8" + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +syslog-pro@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/syslog-pro/-/syslog-pro-1.0.0.tgz#e46bfd39f58937352645091e84a3b903f39e12ea" + integrity sha512-7SNMJKtQBJlwBUp1jxFT7bXya71cnINXPCYJ2AVhlQE4MKL7o2QiPdAXbMdWRiLeykQ2rx+7TNrnoGzvzhO+eA== + dependencies: + moment "^2.22.2" + +systeminformation@5.9.9: + version "5.9.9" + resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.9.9.tgz#aa8234a138363bd988f438fed3273370f79d7e30" + integrity sha512-xciy6NKCLfs4dqMD1Tdlo7v1/g0NfdA1EKsIptUQjlcVvpwHyjifAbNOF7ppFezGSMXxYE8me+l2+RlFF4lyTg== + +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" + integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== + +tar-fs@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2" + integrity sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.0.0" + +tar-fs@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325" + integrity sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q== + dependencies: + bl "^4.0.1" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@^6.0.2: + version "6.0.5" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" + integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +tar@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" + integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +terser-webpack-plugin@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz#7effadee06f7ecfa093dbbd3e9ab23f5f3ed8673" + integrity sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q== + dependencies: + jest-worker "^26.6.2" + p-limit "^3.1.0" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + source-map "^0.6.1" + terser "^5.5.1" + +terser@^5.5.1: + version "5.5.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289" + integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +throttle-debounce@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb" + integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== + +through@2: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tinycolor2@1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" + integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== + +tmp@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +token-stream@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-1.0.0.tgz#cc200eab2613f4166d27ff9afc7ca56d49df6eb4" + integrity sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ= + +token-types@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/token-types/-/token-types-4.1.1.tgz#ef9e8c8e2e0ded9f1b3f8dbaa46a3228b113ba1a" + integrity sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w== + dependencies: + "@tokenizer/token" "^0.3.0" + ieee754 "^1.2.1" + +tough-cookie@^2.3.3, tough-cookie@^2.5.0, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + +tr46@^2.0.0, tr46@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" + integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== + dependencies: + punycode "^2.1.1" + +trace-redirect@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/trace-redirect/-/trace-redirect-1.0.6.tgz#ac629b5bf8247d30dde5a35fe9811b811075b504" + integrity sha512-UUfa1DjjU5flcjMdaFIiIEGDTyu2y/IiMjOX4uGXa7meKBS4vD4f2Uy/tken9Qkd4Jsm4sRsfZcIIPqrRVF3Mg== + +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +ts-jest@^25.2.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-25.5.1.tgz#2913afd08f28385d54f2f4e828be4d261f4337c7" + integrity sha512-kHEUlZMK8fn8vkxDjwbHlxXRB9dHYpyzqKIGDNxbzs+Rz+ssNDSDNusEK8Fk/sDd4xE6iKoQLfFkFVaskmTJyw== + dependencies: + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + micromatch "4.x" + mkdirp "0.x" + semver "6.x" + yargs-parser "18.x" + +ts-loader@9.2.6: + version "9.2.6" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.2.6.tgz#9937c4dd0a1e3dbbb5e433f8102a6601c6615d74" + integrity sha512-QMTC4UFzHmu9wU2VHZEmWWE9cUajjfcdcws+Gh7FhiO+Dy0RnR1bNz0YCHqhI0yRowCE9arVnNxYHqELOy9Hjw== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^5.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + +ts-node@10.4.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.4.0.tgz#680f88945885f4e6cf450e7f0d6223dd404895f7" + integrity sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A== + dependencies: + "@cspotcode/source-map-support" "0.7.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + yn "3.1.1" + +tsc-alias@1.3.10: + version "1.3.10" + resolved "https://registry.yarnpkg.com/tsc-alias/-/tsc-alias-1.3.10.tgz#6ccf81c644092387ab9be3a3a75549a95eeffd80" + integrity sha512-7SF56qiV7Oh/bON+XjF/uAzEFqbmwCuEIHQyoTyVJAK80WnxaIyhO9TBwD/x8InIMU8lnvExQBOrgKkRPsHH+w== + dependencies: + "@jfonx/console-utils" "^1.0.3" + "@jfonx/file-utils" "^3.0.1" + chokidar "^3.5.0" + commander "^6.2.1" + find-node-modules "^2.1.0" + globby "^11.0.2" + normalize-path "^3.0.0" + +tsconfig-paths@3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36" + integrity sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +tslib@^1.13.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== + +tslib@^1.8.1, tslib@^1.9.0: + version "1.11.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" + integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + +tslib@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" + integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== + +tslint-sonarts@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/tslint-sonarts/-/tslint-sonarts-1.9.0.tgz#feb593e92db328c0328b430b838adbe65d504de9" + integrity sha512-CJWt+IiYI8qggb2O/JPkS6CkC5DY1IcqRsm9EHJ+AxoWK70lvtP7jguochyNDMP2vIz/giGdWCfEM39x/I/Vnw== + dependencies: + immutable "^3.8.2" + +tslint@6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" + integrity sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg== + dependencies: + "@babel/code-frame" "^7.0.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^4.0.1" + glob "^7.1.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + mkdirp "^0.5.3" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.13.0" + tsutils "^2.29.0" + +tsscmp@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" + integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== + +tsutils@^2.29.0: + version "2.29.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" + integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== + dependencies: + tslib "^1.8.1" + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +twemoji-parser@13.1.0, twemoji-parser@13.1.x: + version "13.1.0" + resolved "https://registry.yarnpkg.com/twemoji-parser/-/twemoji-parser-13.1.0.tgz#65e7e449c59258791b22ac0b37077349127e3ea4" + integrity sha512-AQOzLJpYlpWMy8n+0ATyKKZzWlZBJN+G0C+5lhX7Ftc2PeEVdUU/7ns2Pn2vVje26AIZ/OHwFoUbdv6YYD/wGg== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-is@^1.6.14, type-is@^1.6.16, type-is@^1.6.4: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type-of@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/type-of/-/type-of-2.0.1.tgz#e72a1741896568e9f628378d816d6912f7f23972" + integrity sha1-5yoXQYllaOn2KDeNgW1pEvfyOXI= + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" + integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typeorm@0.2.39: + version "0.2.39" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.2.39.tgz#4d22fc68d114b2ca88a8d7b064f31af15e836ade" + integrity sha512-yQdvDpmmmn8wp1We25V76KIBPYR/lDbymNbGC++Uq8mSRhpHIPnlg26VAT4CF6Ypqx72zn8eqr+/72uSo7HdJQ== + dependencies: + "@sqltools/formatter" "^1.2.2" + app-root-path "^3.0.0" + buffer "^6.0.3" + chalk "^4.1.0" + cli-highlight "^2.1.11" + debug "^4.3.1" + dotenv "^8.2.0" + glob "^7.1.6" + js-yaml "^4.0.0" + mkdirp "^1.0.4" + reflect-metadata "^0.1.13" + sha.js "^2.4.11" + tslib "^2.1.0" + xml2js "^0.4.23" + yargs "^17.0.1" + zen-observable-ts "^1.0.0" + +typescript@4.4.4: + version "4.4.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" + integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== + +ulid@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/ulid/-/ulid-2.3.0.tgz#93063522771a9774121a84d126ecd3eb9804071f" + integrity sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw== + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +universalify@^0.1.0, universalify@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unload@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/unload/-/unload-2.3.1.tgz#9d16862d372a5ce5cb630ad1309c2fd6e35dacfe" + integrity sha512-MUZEiDqvAN9AIDRbbBnVYVvfcR6DrjCqeU2YQMmliFZl9uaBUjTkhuDQkBiyAy8ad5bx1TXVbqZ3gg7namsWjA== + dependencies: + "@babel/runtime" "^7.6.2" + detect-node "2.1.0" + +unpipe@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +url@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" + integrity sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +urlsafe-base64@^1.0.0, urlsafe-base64@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/urlsafe-base64/-/urlsafe-base64-1.0.0.tgz#23f89069a6c62f46cf3a1d3b00169cefb90be0c6" + integrity sha1-I/iQaabGL0bPOh07ABac77kL4MY= + +utf-8-validate@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.2.tgz#63cfbccd85dc1f2b66cf7a1d0eebc08ed056bfb3" + integrity sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw== + dependencies: + node-gyp-build "~3.7.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +uuid@7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" + integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== + +uuid@8.3.2, uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +v8-compile-cache@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + +valid-url@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" + integrity sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA= + +vary@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +void-elements@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" + integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk= + +vue-eslint-parser@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-8.0.1.tgz#25e08b20a414551531f3e19f999902e1ecf45f13" + integrity sha512-lhWjDXJhe3UZw2uu3ztX51SJAPGPey1Tff2RK3TyZURwbuI4vximQLzz4nQfCv8CZq4xx7uIiogHMMoSJPr33A== + dependencies: + debug "^4.3.2" + eslint-scope "^6.0.0" + eslint-visitor-keys "^3.0.0" + espree "^9.0.0" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.5" + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +watchpack@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.0.0.tgz#b12248f32f0fd4799b7be0802ad1f6573a45955c" + integrity sha512-xSdCxxYZWNk3VK13bZRYhsQpfa8Vg63zXG+3pyU8ouqSLRCv4IGXIp9Kr226q6GBkGRlZrST2wwKtjfKz2m7Cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +web-push@3.4.5: + version "3.4.5" + resolved "https://registry.yarnpkg.com/web-push/-/web-push-3.4.5.tgz#f94074ff150538872c7183e4d8881c8305920cf1" + integrity sha512-2njbTqZ6Q7ZqqK14YpK1GGmaZs3NmuGYF5b7abCXulUIWFSlSYcZ3NBJQRFcMiQDceD7vQknb8FUuvI1F7Qe/g== + dependencies: + asn1.js "^5.3.0" + http_ece "1.1.0" + https-proxy-agent "^5.0.0" + jws "^4.0.0" + minimist "^1.2.5" + urlsafe-base64 "^1.0.0" + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webpack-sources@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" + integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + +webpack@^5: + version "5.33.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.33.2.tgz#c049717c9b038febf5a72fd2f53319ad59a8c1fc" + integrity sha512-X4b7F1sYBmJx8mlh2B7mV5szEkE0jYNJ2y3akgAP0ERi0vLCG1VvdsIxt8lFd4st6SUy0lf7W0CCQS566MBpJg== + dependencies: + "@types/eslint-scope" "^3.7.0" + "@types/estree" "^0.0.46" + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/wasm-edit" "1.11.0" + "@webassemblyjs/wasm-parser" "1.11.0" + acorn "^8.0.4" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.7.0" + es-module-lexer "^0.4.0" + eslint-scope "^5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.4" + json-parse-better-errors "^1.0.2" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.0.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.1" + watchpack "^2.0.0" + webpack-sources "^2.1.1" + +websocket@1.0.34: + version "1.0.34" + resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" + integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== + dependencies: + bufferutil "^4.0.1" + debug "^2.2.0" + es5-ext "^0.10.50" + typedarray-to-buffer "^3.1.5" + utf-8-validate "^5.0.2" + yaeti "^0.0.6" + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.0.0.tgz#37f256cb746398e19b107bd6ef820b4ae2d15871" + integrity sha512-41ou2Dugpij8/LPO5Pq64K5q++MnRCBpEHvQr26/mArEKTkCV5aoXIqyhuYtE0pkqScXwhf2JP57rkRTYM29lQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^2.0.0" + webidl-conversions "^5.0.0" + +whatwg-url@^8.5.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.5.0.tgz#7752b8464fc0903fec89aa9846fc9efe07351fd3" + integrity sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg== + dependencies: + lodash "^4.7.0" + tr46 "^2.0.2" + webidl-conversions "^6.1.0" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@2.0.2, which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +which@^1.1.1, which@^1.2.14: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +wide-align@1.1.3, wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +with@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/with/-/with-7.0.2.tgz#ccee3ad542d25538a7a7a80aad212b9828495bac" + integrity sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w== + dependencies: + "@babel/parser" "^7.9.6" + "@babel/types" "^7.9.6" + assert-never "^1.2.1" + babel-walk "3.0.0-canary-5" + +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +workerpool@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" + integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +ws@8.2.3: + version "8.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" + integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== + +ws@^7.4.6: + version "7.5.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" + integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== + +xev@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/xev/-/xev-2.0.1.tgz#24484173a22115bc8a990ef5d4d5129695b827a7" + integrity sha512-icDf9M67bDge0F2qf02WKZq+s7mMO/SbPv67ZQPym6JThLEOdlWWLdB7VTVgRJp3ekgaiVItCAyH6aoKCPvfIA== + +xml-js@^1.6.11: + version "1.6.11" + resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== + dependencies: + sax "^1.2.4" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xml2js@0.4.19: + version "0.4.19" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" + integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== + dependencies: + sax ">=0.6.0" + xmlbuilder "~9.0.1" + +xml2js@^0.4.23: + version "0.4.23" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + +xmlbuilder@~9.0.1: + version "9.0.7" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== + +y18n@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + +yaeti@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" + integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml-ast-parser@0.0.43: + version "0.0.43" + resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" + integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== + +yaml@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@18.x: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@20.2.4, yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0, yargs@^16.0.0, yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^13.2.4: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^17.0.1: + version "17.1.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz#c2a8091564bdb196f7c0a67c1d12e5b85b8067ba" + integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +ylru@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" + integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zen-observable-ts@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.0.0.tgz#30d1202b81d8ba4c489e3781e8ca09abf0075e70" + integrity sha512-KmWcbz+9kKUeAQ8btY8m1SsEFgBcp7h/Uf3V5quhan7ZWdjGsf0JcGLULQiwOZibbFWnHkYq8Nn2AZbJabovQg== + dependencies: + "@types/zen-observable" "^0.8.2" + zen-observable "^0.8.15" + +zen-observable@^0.8.15: + version "0.8.15" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== diff --git a/src/client/.eslintrc b/packages/client/.eslintrc similarity index 97% rename from src/client/.eslintrc rename to packages/client/.eslintrc index fffa28d9e4..b3b631e1de 100644 --- a/src/client/.eslintrc +++ b/packages/client/.eslintrc @@ -1,6 +1,6 @@ { "env": { - "node": false, + "node": false }, "extends": [ "eslint:recommended", diff --git a/packages/client/.npmrc b/packages/client/.npmrc new file mode 100644 index 0000000000..6b5f38e890 --- /dev/null +++ b/packages/client/.npmrc @@ -0,0 +1,2 @@ +save-exact = true +package-lock = false diff --git a/src/client/@types/global.d.ts b/packages/client/@types/global.d.ts similarity index 94% rename from src/client/@types/global.d.ts rename to packages/client/@types/global.d.ts index 84dde63b22..c757482900 100644 --- a/src/client/@types/global.d.ts +++ b/packages/client/@types/global.d.ts @@ -1,3 +1,5 @@ +type FIXME = any; + declare const _LANGS_: string[][]; declare const _VERSION_: string; declare const _ENV_: string; diff --git a/src/client/@types/vue.d.ts b/packages/client/@types/vue.d.ts similarity index 100% rename from src/client/@types/vue.d.ts rename to packages/client/@types/vue.d.ts diff --git a/assets/client/about-icon.png b/packages/client/assets/about-icon.png similarity index 100% rename from assets/client/about-icon.png rename to packages/client/assets/about-icon.png diff --git a/assets/client/fedi.jpg b/packages/client/assets/fedi.jpg similarity index 100% rename from assets/client/fedi.jpg rename to packages/client/assets/fedi.jpg diff --git a/assets/client/label-red.svg b/packages/client/assets/label-red.svg similarity index 100% rename from assets/client/label-red.svg rename to packages/client/assets/label-red.svg diff --git a/assets/client/label.svg b/packages/client/assets/label.svg similarity index 100% rename from assets/client/label.svg rename to packages/client/assets/label.svg diff --git a/assets/client/misskey.svg b/packages/client/assets/misskey.svg similarity index 100% rename from assets/client/misskey.svg rename to packages/client/assets/misskey.svg diff --git a/assets/client/remove.png b/packages/client/assets/remove.png similarity index 100% rename from assets/client/remove.png rename to packages/client/assets/remove.png diff --git a/assets/client/room/furnitures/banknote/banknote.blend b/packages/client/assets/room/furnitures/banknote/banknote.blend similarity index 100% rename from assets/client/room/furnitures/banknote/banknote.blend rename to packages/client/assets/room/furnitures/banknote/banknote.blend diff --git a/assets/client/room/furnitures/banknote/banknote.glb b/packages/client/assets/room/furnitures/banknote/banknote.glb similarity index 100% rename from assets/client/room/furnitures/banknote/banknote.glb rename to packages/client/assets/room/furnitures/banknote/banknote.glb diff --git a/assets/client/room/furnitures/banknote/tex.png b/packages/client/assets/room/furnitures/banknote/tex.png similarity index 100% rename from assets/client/room/furnitures/banknote/tex.png rename to packages/client/assets/room/furnitures/banknote/tex.png diff --git a/assets/client/room/furnitures/bed/bed.blend b/packages/client/assets/room/furnitures/bed/bed.blend similarity index 100% rename from assets/client/room/furnitures/bed/bed.blend rename to packages/client/assets/room/furnitures/bed/bed.blend diff --git a/assets/client/room/furnitures/bed/bed.glb b/packages/client/assets/room/furnitures/bed/bed.glb similarity index 100% rename from assets/client/room/furnitures/bed/bed.glb rename to packages/client/assets/room/furnitures/bed/bed.glb diff --git a/assets/client/room/furnitures/bin/bin.blend b/packages/client/assets/room/furnitures/bin/bin.blend similarity index 100% rename from assets/client/room/furnitures/bin/bin.blend rename to packages/client/assets/room/furnitures/bin/bin.blend diff --git a/assets/client/room/furnitures/bin/bin.glb b/packages/client/assets/room/furnitures/bin/bin.glb similarity index 100% rename from assets/client/room/furnitures/bin/bin.glb rename to packages/client/assets/room/furnitures/bin/bin.glb diff --git a/assets/client/room/furnitures/book/book.blend b/packages/client/assets/room/furnitures/book/book.blend similarity index 100% rename from assets/client/room/furnitures/book/book.blend rename to packages/client/assets/room/furnitures/book/book.blend diff --git a/assets/client/room/furnitures/book/book.glb b/packages/client/assets/room/furnitures/book/book.glb similarity index 100% rename from assets/client/room/furnitures/book/book.glb rename to packages/client/assets/room/furnitures/book/book.glb diff --git a/assets/client/room/furnitures/book2/barcode.png b/packages/client/assets/room/furnitures/book2/barcode.png similarity index 100% rename from assets/client/room/furnitures/book2/barcode.png rename to packages/client/assets/room/furnitures/book2/barcode.png diff --git a/assets/client/room/furnitures/book2/book2.blend b/packages/client/assets/room/furnitures/book2/book2.blend similarity index 100% rename from assets/client/room/furnitures/book2/book2.blend rename to packages/client/assets/room/furnitures/book2/book2.blend diff --git a/assets/client/room/furnitures/book2/book2.glb b/packages/client/assets/room/furnitures/book2/book2.glb similarity index 100% rename from assets/client/room/furnitures/book2/book2.glb rename to packages/client/assets/room/furnitures/book2/book2.glb diff --git a/assets/client/room/furnitures/book2/texture.afdesign b/packages/client/assets/room/furnitures/book2/texture.afdesign similarity index 100% rename from assets/client/room/furnitures/book2/texture.afdesign rename to packages/client/assets/room/furnitures/book2/texture.afdesign diff --git a/assets/client/room/furnitures/book2/texture.png b/packages/client/assets/room/furnitures/book2/texture.png similarity index 100% rename from assets/client/room/furnitures/book2/texture.png rename to packages/client/assets/room/furnitures/book2/texture.png diff --git a/assets/client/room/furnitures/book2/uv.png b/packages/client/assets/room/furnitures/book2/uv.png similarity index 100% rename from assets/client/room/furnitures/book2/uv.png rename to packages/client/assets/room/furnitures/book2/uv.png diff --git a/assets/client/room/furnitures/cardboard-box/cardboard-box.blend b/packages/client/assets/room/furnitures/cardboard-box/cardboard-box.blend similarity index 100% rename from assets/client/room/furnitures/cardboard-box/cardboard-box.blend rename to packages/client/assets/room/furnitures/cardboard-box/cardboard-box.blend diff --git a/assets/client/room/furnitures/cardboard-box/cardboard-box.glb b/packages/client/assets/room/furnitures/cardboard-box/cardboard-box.glb similarity index 100% rename from assets/client/room/furnitures/cardboard-box/cardboard-box.glb rename to packages/client/assets/room/furnitures/cardboard-box/cardboard-box.glb diff --git a/assets/client/room/furnitures/cardboard-box2/cardboard-box2.blend b/packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.blend similarity index 100% rename from assets/client/room/furnitures/cardboard-box2/cardboard-box2.blend rename to packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.blend diff --git a/assets/client/room/furnitures/cardboard-box2/cardboard-box2.glb b/packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.glb similarity index 100% rename from assets/client/room/furnitures/cardboard-box2/cardboard-box2.glb rename to packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.glb diff --git a/assets/client/room/furnitures/cardboard-box2/texture.png b/packages/client/assets/room/furnitures/cardboard-box2/texture.png similarity index 100% rename from assets/client/room/furnitures/cardboard-box2/texture.png rename to packages/client/assets/room/furnitures/cardboard-box2/texture.png diff --git a/assets/client/room/furnitures/cardboard-box2/uv.png b/packages/client/assets/room/furnitures/cardboard-box2/uv.png similarity index 100% rename from assets/client/room/furnitures/cardboard-box2/uv.png rename to packages/client/assets/room/furnitures/cardboard-box2/uv.png diff --git a/assets/client/room/furnitures/cardboard-box3/cardboard-box3.blend b/packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.blend similarity index 100% rename from assets/client/room/furnitures/cardboard-box3/cardboard-box3.blend rename to packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.blend diff --git a/assets/client/room/furnitures/cardboard-box3/cardboard-box3.glb b/packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.glb similarity index 100% rename from assets/client/room/furnitures/cardboard-box3/cardboard-box3.glb rename to packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.glb diff --git a/assets/client/room/furnitures/cardboard-box3/texture.png b/packages/client/assets/room/furnitures/cardboard-box3/texture.png similarity index 100% rename from assets/client/room/furnitures/cardboard-box3/texture.png rename to packages/client/assets/room/furnitures/cardboard-box3/texture.png diff --git a/assets/client/room/furnitures/cardboard-box3/texture.xcf b/packages/client/assets/room/furnitures/cardboard-box3/texture.xcf similarity index 100% rename from assets/client/room/furnitures/cardboard-box3/texture.xcf rename to packages/client/assets/room/furnitures/cardboard-box3/texture.xcf diff --git a/assets/client/room/furnitures/cardboard-box3/uv.png b/packages/client/assets/room/furnitures/cardboard-box3/uv.png similarity index 100% rename from assets/client/room/furnitures/cardboard-box3/uv.png rename to packages/client/assets/room/furnitures/cardboard-box3/uv.png diff --git a/assets/client/room/furnitures/carpet-stripe/carpet-stripe.blend b/packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.blend similarity index 100% rename from assets/client/room/furnitures/carpet-stripe/carpet-stripe.blend rename to packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.blend diff --git a/assets/client/room/furnitures/carpet-stripe/carpet-stripe.glb b/packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.glb similarity index 100% rename from assets/client/room/furnitures/carpet-stripe/carpet-stripe.glb rename to packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.glb diff --git a/assets/client/room/furnitures/chair/chair.blend b/packages/client/assets/room/furnitures/chair/chair.blend similarity index 100% rename from assets/client/room/furnitures/chair/chair.blend rename to packages/client/assets/room/furnitures/chair/chair.blend diff --git a/assets/client/room/furnitures/chair/chair.glb b/packages/client/assets/room/furnitures/chair/chair.glb similarity index 100% rename from assets/client/room/furnitures/chair/chair.glb rename to packages/client/assets/room/furnitures/chair/chair.glb diff --git a/assets/client/room/furnitures/chair2/chair2.blend b/packages/client/assets/room/furnitures/chair2/chair2.blend similarity index 100% rename from assets/client/room/furnitures/chair2/chair2.blend rename to packages/client/assets/room/furnitures/chair2/chair2.blend diff --git a/assets/client/room/furnitures/chair2/chair2.glb b/packages/client/assets/room/furnitures/chair2/chair2.glb similarity index 100% rename from assets/client/room/furnitures/chair2/chair2.glb rename to packages/client/assets/room/furnitures/chair2/chair2.glb diff --git a/assets/client/room/furnitures/color-box/color-box.blend b/packages/client/assets/room/furnitures/color-box/color-box.blend similarity index 100% rename from assets/client/room/furnitures/color-box/color-box.blend rename to packages/client/assets/room/furnitures/color-box/color-box.blend diff --git a/assets/client/room/furnitures/color-box/color-box.glb b/packages/client/assets/room/furnitures/color-box/color-box.glb similarity index 100% rename from assets/client/room/furnitures/color-box/color-box.glb rename to packages/client/assets/room/furnitures/color-box/color-box.glb diff --git a/assets/client/room/furnitures/corkboard/corkboard.blend b/packages/client/assets/room/furnitures/corkboard/corkboard.blend similarity index 100% rename from assets/client/room/furnitures/corkboard/corkboard.blend rename to packages/client/assets/room/furnitures/corkboard/corkboard.blend diff --git a/assets/client/room/furnitures/corkboard/corkboard.glb b/packages/client/assets/room/furnitures/corkboard/corkboard.glb similarity index 100% rename from assets/client/room/furnitures/corkboard/corkboard.glb rename to packages/client/assets/room/furnitures/corkboard/corkboard.glb diff --git a/assets/client/room/furnitures/cube/cube.blend b/packages/client/assets/room/furnitures/cube/cube.blend similarity index 100% rename from assets/client/room/furnitures/cube/cube.blend rename to packages/client/assets/room/furnitures/cube/cube.blend diff --git a/assets/client/room/furnitures/cube/cube.glb b/packages/client/assets/room/furnitures/cube/cube.glb similarity index 100% rename from assets/client/room/furnitures/cube/cube.glb rename to packages/client/assets/room/furnitures/cube/cube.glb diff --git a/assets/client/room/furnitures/cup-noodle/cup-noodle.blend b/packages/client/assets/room/furnitures/cup-noodle/cup-noodle.blend similarity index 100% rename from assets/client/room/furnitures/cup-noodle/cup-noodle.blend rename to packages/client/assets/room/furnitures/cup-noodle/cup-noodle.blend diff --git a/assets/client/room/furnitures/cup-noodle/cup-noodle.glb b/packages/client/assets/room/furnitures/cup-noodle/cup-noodle.glb similarity index 100% rename from assets/client/room/furnitures/cup-noodle/cup-noodle.glb rename to packages/client/assets/room/furnitures/cup-noodle/cup-noodle.glb diff --git a/assets/client/room/furnitures/cup-noodle/noodle.png b/packages/client/assets/room/furnitures/cup-noodle/noodle.png similarity index 100% rename from assets/client/room/furnitures/cup-noodle/noodle.png rename to packages/client/assets/room/furnitures/cup-noodle/noodle.png diff --git a/assets/client/room/furnitures/desk/desk.blend b/packages/client/assets/room/furnitures/desk/desk.blend similarity index 100% rename from assets/client/room/furnitures/desk/desk.blend rename to packages/client/assets/room/furnitures/desk/desk.blend diff --git a/assets/client/room/furnitures/desk/desk.glb b/packages/client/assets/room/furnitures/desk/desk.glb similarity index 100% rename from assets/client/room/furnitures/desk/desk.glb rename to packages/client/assets/room/furnitures/desk/desk.glb diff --git a/assets/client/room/furnitures/doll-ai/doll-ai.blend b/packages/client/assets/room/furnitures/doll-ai/doll-ai.blend similarity index 100% rename from assets/client/room/furnitures/doll-ai/doll-ai.blend rename to packages/client/assets/room/furnitures/doll-ai/doll-ai.blend diff --git a/assets/client/room/furnitures/doll-ai/doll-ai.glb b/packages/client/assets/room/furnitures/doll-ai/doll-ai.glb similarity index 100% rename from assets/client/room/furnitures/doll-ai/doll-ai.glb rename to packages/client/assets/room/furnitures/doll-ai/doll-ai.glb diff --git a/assets/client/room/furnitures/doll-ai/doll_ai_tex.png b/packages/client/assets/room/furnitures/doll-ai/doll_ai_tex.png similarity index 100% rename from assets/client/room/furnitures/doll-ai/doll_ai_tex.png rename to packages/client/assets/room/furnitures/doll-ai/doll_ai_tex.png diff --git a/assets/client/room/furnitures/energy-drink/energy-drink.blend b/packages/client/assets/room/furnitures/energy-drink/energy-drink.blend similarity index 100% rename from assets/client/room/furnitures/energy-drink/energy-drink.blend rename to packages/client/assets/room/furnitures/energy-drink/energy-drink.blend diff --git a/assets/client/room/furnitures/energy-drink/energy-drink.glb b/packages/client/assets/room/furnitures/energy-drink/energy-drink.glb similarity index 100% rename from assets/client/room/furnitures/energy-drink/energy-drink.glb rename to packages/client/assets/room/furnitures/energy-drink/energy-drink.glb diff --git a/assets/client/room/furnitures/energy-drink/texture.afdesign b/packages/client/assets/room/furnitures/energy-drink/texture.afdesign similarity index 100% rename from assets/client/room/furnitures/energy-drink/texture.afdesign rename to packages/client/assets/room/furnitures/energy-drink/texture.afdesign diff --git a/assets/client/room/furnitures/energy-drink/texture.png b/packages/client/assets/room/furnitures/energy-drink/texture.png similarity index 100% rename from assets/client/room/furnitures/energy-drink/texture.png rename to packages/client/assets/room/furnitures/energy-drink/texture.png diff --git a/assets/client/room/furnitures/energy-drink/uv.png b/packages/client/assets/room/furnitures/energy-drink/uv.png similarity index 100% rename from assets/client/room/furnitures/energy-drink/uv.png rename to packages/client/assets/room/furnitures/energy-drink/uv.png diff --git a/assets/client/room/furnitures/eraser/cover.png b/packages/client/assets/room/furnitures/eraser/cover.png similarity index 100% rename from assets/client/room/furnitures/eraser/cover.png rename to packages/client/assets/room/furnitures/eraser/cover.png diff --git a/assets/client/room/furnitures/eraser/cover.psd b/packages/client/assets/room/furnitures/eraser/cover.psd similarity index 100% rename from assets/client/room/furnitures/eraser/cover.psd rename to packages/client/assets/room/furnitures/eraser/cover.psd diff --git a/assets/client/room/furnitures/eraser/eraser-uv.png b/packages/client/assets/room/furnitures/eraser/eraser-uv.png similarity index 100% rename from assets/client/room/furnitures/eraser/eraser-uv.png rename to packages/client/assets/room/furnitures/eraser/eraser-uv.png diff --git a/assets/client/room/furnitures/eraser/eraser.blend b/packages/client/assets/room/furnitures/eraser/eraser.blend similarity index 100% rename from assets/client/room/furnitures/eraser/eraser.blend rename to packages/client/assets/room/furnitures/eraser/eraser.blend diff --git a/assets/client/room/furnitures/eraser/eraser.glb b/packages/client/assets/room/furnitures/eraser/eraser.glb similarity index 100% rename from assets/client/room/furnitures/eraser/eraser.glb rename to packages/client/assets/room/furnitures/eraser/eraser.glb diff --git a/assets/client/room/furnitures/facial-tissue/facial-tissue-uv.png b/packages/client/assets/room/furnitures/facial-tissue/facial-tissue-uv.png similarity index 100% rename from assets/client/room/furnitures/facial-tissue/facial-tissue-uv.png rename to packages/client/assets/room/furnitures/facial-tissue/facial-tissue-uv.png diff --git a/assets/client/room/furnitures/facial-tissue/facial-tissue.blend b/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.blend similarity index 100% rename from assets/client/room/furnitures/facial-tissue/facial-tissue.blend rename to packages/client/assets/room/furnitures/facial-tissue/facial-tissue.blend diff --git a/assets/client/room/furnitures/facial-tissue/facial-tissue.glb b/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.glb similarity index 100% rename from assets/client/room/furnitures/facial-tissue/facial-tissue.glb rename to packages/client/assets/room/furnitures/facial-tissue/facial-tissue.glb diff --git a/assets/client/room/furnitures/facial-tissue/facial-tissue.png b/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.png similarity index 100% rename from assets/client/room/furnitures/facial-tissue/facial-tissue.png rename to packages/client/assets/room/furnitures/facial-tissue/facial-tissue.png diff --git a/assets/client/room/furnitures/facial-tissue/facial-tissue.psd b/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.psd similarity index 100% rename from assets/client/room/furnitures/facial-tissue/facial-tissue.psd rename to packages/client/assets/room/furnitures/facial-tissue/facial-tissue.psd diff --git a/assets/client/room/furnitures/fan/fan.blend b/packages/client/assets/room/furnitures/fan/fan.blend similarity index 100% rename from assets/client/room/furnitures/fan/fan.blend rename to packages/client/assets/room/furnitures/fan/fan.blend diff --git a/assets/client/room/furnitures/fan/fan.glb b/packages/client/assets/room/furnitures/fan/fan.glb similarity index 100% rename from assets/client/room/furnitures/fan/fan.glb rename to packages/client/assets/room/furnitures/fan/fan.glb diff --git a/assets/client/room/furnitures/holo-display/holo-display.blend b/packages/client/assets/room/furnitures/holo-display/holo-display.blend similarity index 100% rename from assets/client/room/furnitures/holo-display/holo-display.blend rename to packages/client/assets/room/furnitures/holo-display/holo-display.blend diff --git a/assets/client/room/furnitures/holo-display/holo-display.glb b/packages/client/assets/room/furnitures/holo-display/holo-display.glb similarity index 100% rename from assets/client/room/furnitures/holo-display/holo-display.glb rename to packages/client/assets/room/furnitures/holo-display/holo-display.glb diff --git a/assets/client/room/furnitures/holo-display/ray-uv.png b/packages/client/assets/room/furnitures/holo-display/ray-uv.png similarity index 100% rename from assets/client/room/furnitures/holo-display/ray-uv.png rename to packages/client/assets/room/furnitures/holo-display/ray-uv.png diff --git a/assets/client/room/furnitures/holo-display/ray.png b/packages/client/assets/room/furnitures/holo-display/ray.png similarity index 100% rename from assets/client/room/furnitures/holo-display/ray.png rename to packages/client/assets/room/furnitures/holo-display/ray.png diff --git a/assets/client/room/furnitures/keyboard/keyboard.blend b/packages/client/assets/room/furnitures/keyboard/keyboard.blend similarity index 100% rename from assets/client/room/furnitures/keyboard/keyboard.blend rename to packages/client/assets/room/furnitures/keyboard/keyboard.blend diff --git a/assets/client/room/furnitures/keyboard/keyboard.glb b/packages/client/assets/room/furnitures/keyboard/keyboard.glb similarity index 100% rename from assets/client/room/furnitures/keyboard/keyboard.glb rename to packages/client/assets/room/furnitures/keyboard/keyboard.glb diff --git a/assets/client/room/furnitures/low-table/low-table.blend b/packages/client/assets/room/furnitures/low-table/low-table.blend similarity index 100% rename from assets/client/room/furnitures/low-table/low-table.blend rename to packages/client/assets/room/furnitures/low-table/low-table.blend diff --git a/assets/client/room/furnitures/low-table/low-table.glb b/packages/client/assets/room/furnitures/low-table/low-table.glb similarity index 100% rename from assets/client/room/furnitures/low-table/low-table.glb rename to packages/client/assets/room/furnitures/low-table/low-table.glb diff --git a/assets/client/room/furnitures/mat/mat.blend b/packages/client/assets/room/furnitures/mat/mat.blend similarity index 100% rename from assets/client/room/furnitures/mat/mat.blend rename to packages/client/assets/room/furnitures/mat/mat.blend diff --git a/assets/client/room/furnitures/mat/mat.glb b/packages/client/assets/room/furnitures/mat/mat.glb similarity index 100% rename from assets/client/room/furnitures/mat/mat.glb rename to packages/client/assets/room/furnitures/mat/mat.glb diff --git a/assets/client/room/furnitures/milk/milk-uv.png b/packages/client/assets/room/furnitures/milk/milk-uv.png similarity index 100% rename from assets/client/room/furnitures/milk/milk-uv.png rename to packages/client/assets/room/furnitures/milk/milk-uv.png diff --git a/assets/client/room/furnitures/milk/milk.blend b/packages/client/assets/room/furnitures/milk/milk.blend similarity index 100% rename from assets/client/room/furnitures/milk/milk.blend rename to packages/client/assets/room/furnitures/milk/milk.blend diff --git a/assets/client/room/furnitures/milk/milk.glb b/packages/client/assets/room/furnitures/milk/milk.glb similarity index 100% rename from assets/client/room/furnitures/milk/milk.glb rename to packages/client/assets/room/furnitures/milk/milk.glb diff --git a/assets/client/room/furnitures/milk/milk.png b/packages/client/assets/room/furnitures/milk/milk.png similarity index 100% rename from assets/client/room/furnitures/milk/milk.png rename to packages/client/assets/room/furnitures/milk/milk.png diff --git a/assets/client/room/furnitures/milk/milk.psd b/packages/client/assets/room/furnitures/milk/milk.psd similarity index 100% rename from assets/client/room/furnitures/milk/milk.psd rename to packages/client/assets/room/furnitures/milk/milk.psd diff --git a/assets/client/room/furnitures/monitor/monitor.blend b/packages/client/assets/room/furnitures/monitor/monitor.blend similarity index 100% rename from assets/client/room/furnitures/monitor/monitor.blend rename to packages/client/assets/room/furnitures/monitor/monitor.blend diff --git a/assets/client/room/furnitures/monitor/monitor.glb b/packages/client/assets/room/furnitures/monitor/monitor.glb similarity index 100% rename from assets/client/room/furnitures/monitor/monitor.glb rename to packages/client/assets/room/furnitures/monitor/monitor.glb diff --git a/assets/client/room/furnitures/monitor/monitor.psd b/packages/client/assets/room/furnitures/monitor/monitor.psd similarity index 100% rename from assets/client/room/furnitures/monitor/monitor.psd rename to packages/client/assets/room/furnitures/monitor/monitor.psd diff --git a/assets/client/room/furnitures/monitor/screen-uv.png b/packages/client/assets/room/furnitures/monitor/screen-uv.png similarity index 100% rename from assets/client/room/furnitures/monitor/screen-uv.png rename to packages/client/assets/room/furnitures/monitor/screen-uv.png diff --git a/assets/client/room/furnitures/monitor/screen.jpg b/packages/client/assets/room/furnitures/monitor/screen.jpg similarity index 100% rename from assets/client/room/furnitures/monitor/screen.jpg rename to packages/client/assets/room/furnitures/monitor/screen.jpg diff --git a/assets/client/room/furnitures/moon/moon.blend b/packages/client/assets/room/furnitures/moon/moon.blend similarity index 100% rename from assets/client/room/furnitures/moon/moon.blend rename to packages/client/assets/room/furnitures/moon/moon.blend diff --git a/assets/client/room/furnitures/moon/moon.glb b/packages/client/assets/room/furnitures/moon/moon.glb similarity index 100% rename from assets/client/room/furnitures/moon/moon.glb rename to packages/client/assets/room/furnitures/moon/moon.glb diff --git a/assets/client/room/furnitures/moon/moon.jpg b/packages/client/assets/room/furnitures/moon/moon.jpg similarity index 100% rename from assets/client/room/furnitures/moon/moon.jpg rename to packages/client/assets/room/furnitures/moon/moon.jpg diff --git a/assets/client/room/furnitures/mousepad/mousepad.blend b/packages/client/assets/room/furnitures/mousepad/mousepad.blend similarity index 100% rename from assets/client/room/furnitures/mousepad/mousepad.blend rename to packages/client/assets/room/furnitures/mousepad/mousepad.blend diff --git a/assets/client/room/furnitures/mousepad/mousepad.glb b/packages/client/assets/room/furnitures/mousepad/mousepad.glb similarity index 100% rename from assets/client/room/furnitures/mousepad/mousepad.glb rename to packages/client/assets/room/furnitures/mousepad/mousepad.glb diff --git a/assets/client/room/furnitures/pc/motherboard-uv.png b/packages/client/assets/room/furnitures/pc/motherboard-uv.png similarity index 100% rename from assets/client/room/furnitures/pc/motherboard-uv.png rename to packages/client/assets/room/furnitures/pc/motherboard-uv.png diff --git a/assets/client/room/furnitures/pc/motherboard-uv.psd b/packages/client/assets/room/furnitures/pc/motherboard-uv.psd similarity index 100% rename from assets/client/room/furnitures/pc/motherboard-uv.psd rename to packages/client/assets/room/furnitures/pc/motherboard-uv.psd diff --git a/assets/client/room/furnitures/pc/motherboard.jpg b/packages/client/assets/room/furnitures/pc/motherboard.jpg similarity index 100% rename from assets/client/room/furnitures/pc/motherboard.jpg rename to packages/client/assets/room/furnitures/pc/motherboard.jpg diff --git a/assets/client/room/furnitures/pc/pc.blend b/packages/client/assets/room/furnitures/pc/pc.blend similarity index 100% rename from assets/client/room/furnitures/pc/pc.blend rename to packages/client/assets/room/furnitures/pc/pc.blend diff --git a/assets/client/room/furnitures/pc/pc.glb b/packages/client/assets/room/furnitures/pc/pc.glb similarity index 100% rename from assets/client/room/furnitures/pc/pc.glb rename to packages/client/assets/room/furnitures/pc/pc.glb diff --git a/assets/client/room/furnitures/pencil/pencil.blend b/packages/client/assets/room/furnitures/pencil/pencil.blend similarity index 100% rename from assets/client/room/furnitures/pencil/pencil.blend rename to packages/client/assets/room/furnitures/pencil/pencil.blend diff --git a/assets/client/room/furnitures/pencil/pencil.glb b/packages/client/assets/room/furnitures/pencil/pencil.glb similarity index 100% rename from assets/client/room/furnitures/pencil/pencil.glb rename to packages/client/assets/room/furnitures/pencil/pencil.glb diff --git a/assets/client/room/furnitures/photoframe/photo-uv.png b/packages/client/assets/room/furnitures/photoframe/photo-uv.png similarity index 100% rename from assets/client/room/furnitures/photoframe/photo-uv.png rename to packages/client/assets/room/furnitures/photoframe/photo-uv.png diff --git a/assets/client/room/furnitures/photoframe/photo.jpg b/packages/client/assets/room/furnitures/photoframe/photo.jpg similarity index 100% rename from assets/client/room/furnitures/photoframe/photo.jpg rename to packages/client/assets/room/furnitures/photoframe/photo.jpg diff --git a/assets/client/room/furnitures/photoframe/photoframe.blend b/packages/client/assets/room/furnitures/photoframe/photoframe.blend similarity index 100% rename from assets/client/room/furnitures/photoframe/photoframe.blend rename to packages/client/assets/room/furnitures/photoframe/photoframe.blend diff --git a/assets/client/room/furnitures/photoframe/photoframe.glb b/packages/client/assets/room/furnitures/photoframe/photoframe.glb similarity index 100% rename from assets/client/room/furnitures/photoframe/photoframe.glb rename to packages/client/assets/room/furnitures/photoframe/photoframe.glb diff --git a/assets/client/room/furnitures/piano/piano.blend b/packages/client/assets/room/furnitures/piano/piano.blend similarity index 100% rename from assets/client/room/furnitures/piano/piano.blend rename to packages/client/assets/room/furnitures/piano/piano.blend diff --git a/assets/client/room/furnitures/piano/piano.glb b/packages/client/assets/room/furnitures/piano/piano.glb similarity index 100% rename from assets/client/room/furnitures/piano/piano.glb rename to packages/client/assets/room/furnitures/piano/piano.glb diff --git a/assets/client/room/furnitures/pinguin/pinguin.blend b/packages/client/assets/room/furnitures/pinguin/pinguin.blend similarity index 100% rename from assets/client/room/furnitures/pinguin/pinguin.blend rename to packages/client/assets/room/furnitures/pinguin/pinguin.blend diff --git a/assets/client/room/furnitures/pinguin/pinguin.glb b/packages/client/assets/room/furnitures/pinguin/pinguin.glb similarity index 100% rename from assets/client/room/furnitures/pinguin/pinguin.glb rename to packages/client/assets/room/furnitures/pinguin/pinguin.glb diff --git a/assets/client/room/furnitures/plant/plant-soil-uv.png b/packages/client/assets/room/furnitures/plant/plant-soil-uv.png similarity index 100% rename from assets/client/room/furnitures/plant/plant-soil-uv.png rename to packages/client/assets/room/furnitures/plant/plant-soil-uv.png diff --git a/assets/client/room/furnitures/plant/plant-soil.png b/packages/client/assets/room/furnitures/plant/plant-soil.png similarity index 100% rename from assets/client/room/furnitures/plant/plant-soil.png rename to packages/client/assets/room/furnitures/plant/plant-soil.png diff --git a/assets/client/room/furnitures/plant/plant-soil.psd b/packages/client/assets/room/furnitures/plant/plant-soil.psd similarity index 100% rename from assets/client/room/furnitures/plant/plant-soil.psd rename to packages/client/assets/room/furnitures/plant/plant-soil.psd diff --git a/assets/client/room/furnitures/plant/plant.blend b/packages/client/assets/room/furnitures/plant/plant.blend similarity index 100% rename from assets/client/room/furnitures/plant/plant.blend rename to packages/client/assets/room/furnitures/plant/plant.blend diff --git a/assets/client/room/furnitures/plant/plant.glb b/packages/client/assets/room/furnitures/plant/plant.glb similarity index 100% rename from assets/client/room/furnitures/plant/plant.glb rename to packages/client/assets/room/furnitures/plant/plant.glb diff --git a/assets/client/room/furnitures/plant2/plant2.blend b/packages/client/assets/room/furnitures/plant2/plant2.blend similarity index 100% rename from assets/client/room/furnitures/plant2/plant2.blend rename to packages/client/assets/room/furnitures/plant2/plant2.blend diff --git a/assets/client/room/furnitures/plant2/plant2.glb b/packages/client/assets/room/furnitures/plant2/plant2.glb similarity index 100% rename from assets/client/room/furnitures/plant2/plant2.glb rename to packages/client/assets/room/furnitures/plant2/plant2.glb diff --git a/assets/client/room/furnitures/plant2/soil.png b/packages/client/assets/room/furnitures/plant2/soil.png similarity index 100% rename from assets/client/room/furnitures/plant2/soil.png rename to packages/client/assets/room/furnitures/plant2/soil.png diff --git a/assets/client/room/furnitures/poster-h/poster-h.blend b/packages/client/assets/room/furnitures/poster-h/poster-h.blend similarity index 100% rename from assets/client/room/furnitures/poster-h/poster-h.blend rename to packages/client/assets/room/furnitures/poster-h/poster-h.blend diff --git a/assets/client/room/furnitures/poster-h/poster-h.glb b/packages/client/assets/room/furnitures/poster-h/poster-h.glb similarity index 100% rename from assets/client/room/furnitures/poster-h/poster-h.glb rename to packages/client/assets/room/furnitures/poster-h/poster-h.glb diff --git a/assets/client/room/furnitures/poster-h/uv.png b/packages/client/assets/room/furnitures/poster-h/uv.png similarity index 100% rename from assets/client/room/furnitures/poster-h/uv.png rename to packages/client/assets/room/furnitures/poster-h/uv.png diff --git a/assets/client/room/furnitures/poster-v/poster-v.blend b/packages/client/assets/room/furnitures/poster-v/poster-v.blend similarity index 100% rename from assets/client/room/furnitures/poster-v/poster-v.blend rename to packages/client/assets/room/furnitures/poster-v/poster-v.blend diff --git a/assets/client/room/furnitures/poster-v/poster-v.glb b/packages/client/assets/room/furnitures/poster-v/poster-v.glb similarity index 100% rename from assets/client/room/furnitures/poster-v/poster-v.glb rename to packages/client/assets/room/furnitures/poster-v/poster-v.glb diff --git a/assets/client/room/furnitures/poster-v/uv.png b/packages/client/assets/room/furnitures/poster-v/uv.png similarity index 100% rename from assets/client/room/furnitures/poster-v/uv.png rename to packages/client/assets/room/furnitures/poster-v/uv.png diff --git a/assets/client/room/furnitures/pudding/pudding.blend b/packages/client/assets/room/furnitures/pudding/pudding.blend similarity index 100% rename from assets/client/room/furnitures/pudding/pudding.blend rename to packages/client/assets/room/furnitures/pudding/pudding.blend diff --git a/assets/client/room/furnitures/pudding/pudding.glb b/packages/client/assets/room/furnitures/pudding/pudding.glb similarity index 100% rename from assets/client/room/furnitures/pudding/pudding.glb rename to packages/client/assets/room/furnitures/pudding/pudding.glb diff --git a/assets/client/room/furnitures/rubik-cube/rubik-cube.blend b/packages/client/assets/room/furnitures/rubik-cube/rubik-cube.blend similarity index 100% rename from assets/client/room/furnitures/rubik-cube/rubik-cube.blend rename to packages/client/assets/room/furnitures/rubik-cube/rubik-cube.blend diff --git a/assets/client/room/furnitures/rubik-cube/rubik-cube.glb b/packages/client/assets/room/furnitures/rubik-cube/rubik-cube.glb similarity index 100% rename from assets/client/room/furnitures/rubik-cube/rubik-cube.glb rename to packages/client/assets/room/furnitures/rubik-cube/rubik-cube.glb diff --git a/assets/client/room/furnitures/server/rack-uv.png b/packages/client/assets/room/furnitures/server/rack-uv.png similarity index 100% rename from assets/client/room/furnitures/server/rack-uv.png rename to packages/client/assets/room/furnitures/server/rack-uv.png diff --git a/assets/client/room/furnitures/server/rack.png b/packages/client/assets/room/furnitures/server/rack.png similarity index 100% rename from assets/client/room/furnitures/server/rack.png rename to packages/client/assets/room/furnitures/server/rack.png diff --git a/assets/client/room/furnitures/server/server.blend b/packages/client/assets/room/furnitures/server/server.blend similarity index 100% rename from assets/client/room/furnitures/server/server.blend rename to packages/client/assets/room/furnitures/server/server.blend diff --git a/assets/client/room/furnitures/server/server.glb b/packages/client/assets/room/furnitures/server/server.glb similarity index 100% rename from assets/client/room/furnitures/server/server.glb rename to packages/client/assets/room/furnitures/server/server.glb diff --git a/assets/client/room/furnitures/server/server.png b/packages/client/assets/room/furnitures/server/server.png similarity index 100% rename from assets/client/room/furnitures/server/server.png rename to packages/client/assets/room/furnitures/server/server.png diff --git a/assets/client/room/furnitures/server/uv.png b/packages/client/assets/room/furnitures/server/uv.png similarity index 100% rename from assets/client/room/furnitures/server/uv.png rename to packages/client/assets/room/furnitures/server/uv.png diff --git a/assets/client/room/furnitures/sofa/sofa.blend b/packages/client/assets/room/furnitures/sofa/sofa.blend similarity index 100% rename from assets/client/room/furnitures/sofa/sofa.blend rename to packages/client/assets/room/furnitures/sofa/sofa.blend diff --git a/assets/client/room/furnitures/sofa/sofa.glb b/packages/client/assets/room/furnitures/sofa/sofa.glb similarity index 100% rename from assets/client/room/furnitures/sofa/sofa.glb rename to packages/client/assets/room/furnitures/sofa/sofa.glb diff --git a/assets/client/room/furnitures/spiral/spiral.blend b/packages/client/assets/room/furnitures/spiral/spiral.blend similarity index 100% rename from assets/client/room/furnitures/spiral/spiral.blend rename to packages/client/assets/room/furnitures/spiral/spiral.blend diff --git a/assets/client/room/furnitures/spiral/spiral.glb b/packages/client/assets/room/furnitures/spiral/spiral.glb similarity index 100% rename from assets/client/room/furnitures/spiral/spiral.glb rename to packages/client/assets/room/furnitures/spiral/spiral.glb diff --git a/assets/client/room/furnitures/tv/screen-uv.png b/packages/client/assets/room/furnitures/tv/screen-uv.png similarity index 100% rename from assets/client/room/furnitures/tv/screen-uv.png rename to packages/client/assets/room/furnitures/tv/screen-uv.png diff --git a/assets/client/room/furnitures/tv/tv.blend b/packages/client/assets/room/furnitures/tv/tv.blend similarity index 100% rename from assets/client/room/furnitures/tv/tv.blend rename to packages/client/assets/room/furnitures/tv/tv.blend diff --git a/assets/client/room/furnitures/tv/tv.glb b/packages/client/assets/room/furnitures/tv/tv.glb similarity index 100% rename from assets/client/room/furnitures/tv/tv.glb rename to packages/client/assets/room/furnitures/tv/tv.glb diff --git a/assets/client/room/furnitures/wall-clock/wall-clock.blend b/packages/client/assets/room/furnitures/wall-clock/wall-clock.blend similarity index 100% rename from assets/client/room/furnitures/wall-clock/wall-clock.blend rename to packages/client/assets/room/furnitures/wall-clock/wall-clock.blend diff --git a/assets/client/room/furnitures/wall-clock/wall-clock.glb b/packages/client/assets/room/furnitures/wall-clock/wall-clock.glb similarity index 100% rename from assets/client/room/furnitures/wall-clock/wall-clock.glb rename to packages/client/assets/room/furnitures/wall-clock/wall-clock.glb diff --git a/assets/client/room/rooms/default/default.blend b/packages/client/assets/room/rooms/default/default.blend similarity index 100% rename from assets/client/room/rooms/default/default.blend rename to packages/client/assets/room/rooms/default/default.blend diff --git a/assets/client/room/rooms/default/default.glb b/packages/client/assets/room/rooms/default/default.glb similarity index 100% rename from assets/client/room/rooms/default/default.glb rename to packages/client/assets/room/rooms/default/default.glb diff --git a/assets/client/room/rooms/washitsu/husuma-uv.png b/packages/client/assets/room/rooms/washitsu/husuma-uv.png similarity index 100% rename from assets/client/room/rooms/washitsu/husuma-uv.png rename to packages/client/assets/room/rooms/washitsu/husuma-uv.png diff --git a/assets/client/room/rooms/washitsu/husuma.png b/packages/client/assets/room/rooms/washitsu/husuma.png similarity index 100% rename from assets/client/room/rooms/washitsu/husuma.png rename to packages/client/assets/room/rooms/washitsu/husuma.png diff --git a/assets/client/room/rooms/washitsu/tatami-single1600.png b/packages/client/assets/room/rooms/washitsu/tatami-single1600.png similarity index 100% rename from assets/client/room/rooms/washitsu/tatami-single1600.png rename to packages/client/assets/room/rooms/washitsu/tatami-single1600.png diff --git a/assets/client/room/rooms/washitsu/tatami-uv.png b/packages/client/assets/room/rooms/washitsu/tatami-uv.png similarity index 100% rename from assets/client/room/rooms/washitsu/tatami-uv.png rename to packages/client/assets/room/rooms/washitsu/tatami-uv.png diff --git a/assets/client/room/rooms/washitsu/tatami.afdesign b/packages/client/assets/room/rooms/washitsu/tatami.afdesign similarity index 100% rename from assets/client/room/rooms/washitsu/tatami.afdesign rename to packages/client/assets/room/rooms/washitsu/tatami.afdesign diff --git a/assets/client/room/rooms/washitsu/tatami.png b/packages/client/assets/room/rooms/washitsu/tatami.png similarity index 100% rename from assets/client/room/rooms/washitsu/tatami.png rename to packages/client/assets/room/rooms/washitsu/tatami.png diff --git a/assets/client/room/rooms/washitsu/washitsu.blend b/packages/client/assets/room/rooms/washitsu/washitsu.blend similarity index 100% rename from assets/client/room/rooms/washitsu/washitsu.blend rename to packages/client/assets/room/rooms/washitsu/washitsu.blend diff --git a/assets/client/room/rooms/washitsu/washitsu.glb b/packages/client/assets/room/rooms/washitsu/washitsu.glb similarity index 100% rename from assets/client/room/rooms/washitsu/washitsu.glb rename to packages/client/assets/room/rooms/washitsu/washitsu.glb diff --git a/assets/client/sounds/aisha/1.mp3 b/packages/client/assets/sounds/aisha/1.mp3 similarity index 100% rename from assets/client/sounds/aisha/1.mp3 rename to packages/client/assets/sounds/aisha/1.mp3 diff --git a/assets/client/sounds/aisha/2.mp3 b/packages/client/assets/sounds/aisha/2.mp3 similarity index 100% rename from assets/client/sounds/aisha/2.mp3 rename to packages/client/assets/sounds/aisha/2.mp3 diff --git a/assets/client/sounds/aisha/3.mp3 b/packages/client/assets/sounds/aisha/3.mp3 similarity index 100% rename from assets/client/sounds/aisha/3.mp3 rename to packages/client/assets/sounds/aisha/3.mp3 diff --git a/assets/client/sounds/noizenecio/kick_gaba.mp3 b/packages/client/assets/sounds/noizenecio/kick_gaba.mp3 similarity index 100% rename from assets/client/sounds/noizenecio/kick_gaba.mp3 rename to packages/client/assets/sounds/noizenecio/kick_gaba.mp3 diff --git a/assets/client/sounds/noizenecio/kick_gaba2.mp3 b/packages/client/assets/sounds/noizenecio/kick_gaba2.mp3 similarity index 100% rename from assets/client/sounds/noizenecio/kick_gaba2.mp3 rename to packages/client/assets/sounds/noizenecio/kick_gaba2.mp3 diff --git a/assets/client/sounds/syuilo/down.mp3 b/packages/client/assets/sounds/syuilo/down.mp3 similarity index 100% rename from assets/client/sounds/syuilo/down.mp3 rename to packages/client/assets/sounds/syuilo/down.mp3 diff --git a/assets/client/sounds/syuilo/kick.mp3 b/packages/client/assets/sounds/syuilo/kick.mp3 similarity index 100% rename from assets/client/sounds/syuilo/kick.mp3 rename to packages/client/assets/sounds/syuilo/kick.mp3 diff --git a/assets/client/sounds/syuilo/pirori-square-wet.mp3 b/packages/client/assets/sounds/syuilo/pirori-square-wet.mp3 similarity index 100% rename from assets/client/sounds/syuilo/pirori-square-wet.mp3 rename to packages/client/assets/sounds/syuilo/pirori-square-wet.mp3 diff --git a/assets/client/sounds/syuilo/pirori-wet.mp3 b/packages/client/assets/sounds/syuilo/pirori-wet.mp3 similarity index 100% rename from assets/client/sounds/syuilo/pirori-wet.mp3 rename to packages/client/assets/sounds/syuilo/pirori-wet.mp3 diff --git a/assets/client/sounds/syuilo/pirori.mp3 b/packages/client/assets/sounds/syuilo/pirori.mp3 similarity index 100% rename from assets/client/sounds/syuilo/pirori.mp3 rename to packages/client/assets/sounds/syuilo/pirori.mp3 diff --git a/assets/client/sounds/syuilo/poi1.mp3 b/packages/client/assets/sounds/syuilo/poi1.mp3 similarity index 100% rename from assets/client/sounds/syuilo/poi1.mp3 rename to packages/client/assets/sounds/syuilo/poi1.mp3 diff --git a/assets/client/sounds/syuilo/poi2.mp3 b/packages/client/assets/sounds/syuilo/poi2.mp3 similarity index 100% rename from assets/client/sounds/syuilo/poi2.mp3 rename to packages/client/assets/sounds/syuilo/poi2.mp3 diff --git a/assets/client/sounds/syuilo/pope1.mp3 b/packages/client/assets/sounds/syuilo/pope1.mp3 similarity index 100% rename from assets/client/sounds/syuilo/pope1.mp3 rename to packages/client/assets/sounds/syuilo/pope1.mp3 diff --git a/assets/client/sounds/syuilo/pope2.mp3 b/packages/client/assets/sounds/syuilo/pope2.mp3 similarity index 100% rename from assets/client/sounds/syuilo/pope2.mp3 rename to packages/client/assets/sounds/syuilo/pope2.mp3 diff --git a/assets/client/sounds/syuilo/popo.mp3 b/packages/client/assets/sounds/syuilo/popo.mp3 similarity index 100% rename from assets/client/sounds/syuilo/popo.mp3 rename to packages/client/assets/sounds/syuilo/popo.mp3 diff --git a/assets/client/sounds/syuilo/queue-jammed.mp3 b/packages/client/assets/sounds/syuilo/queue-jammed.mp3 similarity index 100% rename from assets/client/sounds/syuilo/queue-jammed.mp3 rename to packages/client/assets/sounds/syuilo/queue-jammed.mp3 diff --git a/assets/client/sounds/syuilo/reverved.mp3 b/packages/client/assets/sounds/syuilo/reverved.mp3 similarity index 100% rename from assets/client/sounds/syuilo/reverved.mp3 rename to packages/client/assets/sounds/syuilo/reverved.mp3 diff --git a/assets/client/sounds/syuilo/ryukyu.mp3 b/packages/client/assets/sounds/syuilo/ryukyu.mp3 similarity index 100% rename from assets/client/sounds/syuilo/ryukyu.mp3 rename to packages/client/assets/sounds/syuilo/ryukyu.mp3 diff --git a/assets/client/sounds/syuilo/snare.mp3 b/packages/client/assets/sounds/syuilo/snare.mp3 similarity index 100% rename from assets/client/sounds/syuilo/snare.mp3 rename to packages/client/assets/sounds/syuilo/snare.mp3 diff --git a/assets/client/sounds/syuilo/square-pico.mp3 b/packages/client/assets/sounds/syuilo/square-pico.mp3 similarity index 100% rename from assets/client/sounds/syuilo/square-pico.mp3 rename to packages/client/assets/sounds/syuilo/square-pico.mp3 diff --git a/assets/client/sounds/syuilo/triple.mp3 b/packages/client/assets/sounds/syuilo/triple.mp3 similarity index 100% rename from assets/client/sounds/syuilo/triple.mp3 rename to packages/client/assets/sounds/syuilo/triple.mp3 diff --git a/assets/client/sounds/syuilo/up.mp3 b/packages/client/assets/sounds/syuilo/up.mp3 similarity index 100% rename from assets/client/sounds/syuilo/up.mp3 rename to packages/client/assets/sounds/syuilo/up.mp3 diff --git a/assets/client/sounds/syuilo/waon.mp3 b/packages/client/assets/sounds/syuilo/waon.mp3 similarity index 100% rename from assets/client/sounds/syuilo/waon.mp3 rename to packages/client/assets/sounds/syuilo/waon.mp3 diff --git a/assets/client/sparkle-spritesheet.png b/packages/client/assets/sparkle-spritesheet.png similarity index 100% rename from assets/client/sparkle-spritesheet.png rename to packages/client/assets/sparkle-spritesheet.png diff --git a/assets/client/unread.svg b/packages/client/assets/unread.svg similarity index 100% rename from assets/client/unread.svg rename to packages/client/assets/unread.svg diff --git a/packages/client/package.json b/packages/client/package.json new file mode 100644 index 0000000000..24345b969f --- /dev/null +++ b/packages/client/package.json @@ -0,0 +1,163 @@ +{ + "private": true, + "scripts": { + "watch": "webpack --watch", + "build": "webpack" + }, + "resolutions": { + "chokidar": "^3.3.1", + "lodash": "^4.17.21" + }, + "dependencies": { + "@discordapp/twemoji": "13.1.0", + "@elastic/elasticsearch": "7.11.0", + "@sentry/browser": "5.29.2", + "@sentry/tracing": "5.29.2", + "@sinonjs/fake-timers": "7.1.2", + "@syuilo/aiscript": "0.11.1", + "@types/dateformat": "3.0.1", + "@types/escape-regexp": "0.0.0", + "@types/glob": "7.2.0", + "@types/gulp": "4.0.9", + "@types/gulp-rename": "2.0.1", + "@types/is-url": "1.2.30", + "@types/js-yaml": "4.0.4", + "@types/katex": "0.11.1", + "@types/matter-js": "0.17.6", + "@types/mocha": "8.2.3", + "@types/node": "16.11.7", + "@types/node-fetch": "2.5.12", + "@types/nodemailer": "6.4.4", + "@types/nprogress": "0.2.0", + "@types/oauth": "0.9.1", + "@types/parse5": "6.0.2", + "@types/parsimmon": "1.10.6", + "@types/portscanner": "2.1.1", + "@types/pug": "2.0.5", + "@types/punycode": "2.1.0", + "@types/qrcode": "1.4.1", + "@types/random-seed": "0.3.3", + "@types/rename": "1.0.4", + "@types/request-stats": "3.0.0", + "@types/rimraf": "3.0.2", + "@types/seedrandom": "2.4.28", + "@types/sinonjs__fake-timers": "6.0.4", + "@types/speakeasy": "2.0.6", + "@types/throttle-debounce": "2.1.0", + "@types/tinycolor2": "1.4.3", + "@types/tmp": "0.2.2", + "@types/uuid": "8.3.1", + "@types/web-push": "3.3.2", + "@types/webpack": "5.28.0", + "@types/webpack-stream": "3.2.12", + "@types/websocket": "1.0.4", + "@types/ws": "8.2.0", + "@typescript-eslint/parser": "5.1.0", + "@vue/compiler-sfc": "3.2.21", + "abort-controller": "3.0.0", + "autobind-decorator": "2.4.0", + "autosize": "4.0.4", + "autwh": "0.1.0", + "blurhash": "1.1.4", + "broadcast-channel": "4.5.0", + "chart.js": "3.6.0", + "chartjs-adapter-date-fns": "2.0.0", + "chartjs-plugin-zoom": "1.1.1", + "compare-versions": "3.6.0", + "concurrently": "6.3.0", + "content-disposition": "0.5.3", + "crc-32": "1.2.0", + "css-loader": "6.5.1", + "cssnano": "5.0.10", + "date-fns": "2.25.0", + "dateformat": "4.5.1", + "deep-email-validator": "0.1.18", + "escape-regexp": "0.0.1", + "eslint": "8.2.0", + "eslint-plugin-vue": "8.0.3", + "eventemitter3": "4.0.7", + "feed": "4.2.2", + "glob": "7.2.0", + "got": "11.8.2", + "idb-keyval": "5.1.3", + "insert-text-at-cursor": "0.3.0", + "ip-cidr": "3.0.4", + "is-svg": "4.3.1", + "js-yaml": "4.1.0", + "json5": "2.2.0", + "json5-loader": "4.0.1", + "katex": "0.13.18", + "langmap": "0.0.16", + "matter-js": "0.17.1", + "mfm-js": "0.20.0", + "misskey-js": "0.0.10", + "mocha": "8.4.0", + "ms": "2.1.3", + "nested-property": "4.0.0", + "node-fetch": "2.6.1", + "parse5": "6.0.1", + "photoswipe": "git://github.com/dimsemenov/photoswipe#v5-beta", + "portscanner": "2.2.0", + "postcss": "8.3.11", + "postcss-loader": "6.2.0", + "prismjs": "1.25.0", + "private-ip": "2.3.3", + "probe-image-size": "7.2.1", + "promise-limit": "2.7.0", + "pug": "3.0.2", + "punycode": "2.1.1", + "pureimage": "0.3.5", + "qrcode": "1.4.4", + "random-seed": "0.3.0", + "ratelimiter": "3.4.1", + "reflect-metadata": "0.1.13", + "rename": "1.0.4", + "request-stats": "3.0.0", + "rimraf": "3.0.2", + "rndstr": "1.0.0", + "s-age": "1.1.2", + "sass": "1.43.4", + "sass-loader": "12.3.0", + "seedrandom": "3.0.5", + "speakeasy": "2.0.0", + "strict-event-emitter-types": "2.0.0", + "stringz": "2.1.0", + "style-loader": "3.3.1", + "syuilo-password-strength": "0.0.1", + "textarea-caret": "3.1.0", + "three": "0.117.1", + "throttle-debounce": "3.0.1", + "tinycolor2": "1.4.2", + "tmp": "0.2.1", + "ts-loader": "9.2.6", + "ts-node": "10.4.0", + "tsc-alias": "1.3.10", + "tsconfig-paths": "3.11.0", + "tslint": "6.1.3", + "tslint-sonarts": "1.9.0", + "twemoji-parser": "13.1.0", + "typescript": "4.4.4", + "uuid": "8.3.2", + "v-debounce": "0.1.2", + "vanilla-tilt": "1.7.2", + "vue": "3.2.21", + "vue-loader": "16.7.0", + "vue-prism-editor": "2.0.0-alpha.2", + "vue-router": "4.0.5", + "vue-style-loader": "4.1.3", + "vue-svg-loader": "0.17.0-beta.2", + "vuedraggable": "4.0.1", + "web-push": "3.4.5", + "webpack": "5.63.0", + "webpack-cli": "4.9.1", + "websocket": "1.0.34", + "ws": "8.2.3" + }, + "devDependencies": { + "@redocly/openapi-core": "1.0.0-beta.54", + "@types/fluent-ffmpeg": "2.1.17", + "cross-env": "7.0.3", + "cypress": "8.5.0", + "start-server-and-test": "1.14.0" + } +} diff --git a/src/client/account.ts b/packages/client/src/account.ts similarity index 93% rename from src/client/account.ts rename to packages/client/src/account.ts index a2165ebed1..ef7eb8f60a 100644 --- a/src/client/account.ts +++ b/packages/client/src/account.ts @@ -1,8 +1,8 @@ -import { del, get, set } from '@client/scripts/idb-proxy'; +import { del, get, set } from '@/scripts/idb-proxy'; import { reactive } from 'vue'; -import { apiUrl } from '@client/config'; -import { waiting, api, popup, popupMenu, success } from '@client/os'; -import { unisonReload, reloadChannel } from '@client/scripts/unison-reload'; +import { apiUrl } from '@/config'; +import { waiting, api, popup, popupMenu, success } from '@/os'; +import { unisonReload, reloadChannel } from '@/scripts/unison-reload'; import { showSuspendedDialog } from './scripts/show-suspended-dialog'; import { i18n } from './i18n'; @@ -134,7 +134,7 @@ export async function login(token: Account['token'], redirect?: string) { export async function openAccountMenu(ev: MouseEvent) { function showSigninDialog() { - popup(import('@client/components/signin-dialog.vue'), {}, { + popup(import('@/components/signin-dialog.vue'), {}, { done: res => { addAccount(res.id, res.i); success(); @@ -143,7 +143,7 @@ export async function openAccountMenu(ev: MouseEvent) { } function createAccount() { - popup(import('@client/components/signup-dialog.vue'), {}, { + popup(import('@/components/signup-dialog.vue'), {}, { done: res => { addAccount(res.id, res.i); switchAccountWithToken(res.i); diff --git a/src/client/components/abuse-report-window.vue b/packages/client/src/components/abuse-report-window.vue similarity index 87% rename from src/client/components/abuse-report-window.vue rename to packages/client/src/components/abuse-report-window.vue index 21a19385ae..700ce30bb2 100644 --- a/src/client/components/abuse-report-window.vue +++ b/packages/client/src/components/abuse-report-window.vue @@ -24,10 +24,10 @@ diff --git a/src/client/components/formula.vue b/packages/client/src/components/formula.vue similarity index 93% rename from src/client/components/formula.vue rename to packages/client/src/components/formula.vue index 6722ce38a1..fbb40bace7 100644 --- a/src/client/components/formula.vue +++ b/packages/client/src/components/formula.vue @@ -3,7 +3,7 @@ diff --git a/src/client/components/ui/info.vue b/packages/client/src/components/ui/info.vue similarity index 95% rename from src/client/components/ui/info.vue rename to packages/client/src/components/ui/info.vue index f6b2edf267..8f5986baf7 100644 --- a/src/client/components/ui/info.vue +++ b/packages/client/src/components/ui/info.vue @@ -8,7 +8,7 @@ diff --git a/src/client/components/user-list.vue b/packages/client/src/components/user-list.vue similarity index 94% rename from src/client/components/user-list.vue rename to packages/client/src/components/user-list.vue index 9c91183971..733dbe0ad7 100644 --- a/src/client/components/user-list.vue +++ b/packages/client/src/components/user-list.vue @@ -16,9 +16,9 @@ diff --git a/src/client/pages/about-misskey.vue b/packages/client/src/pages/about-misskey.vue similarity index 90% rename from src/client/pages/about-misskey.vue rename to packages/client/src/pages/about-misskey.vue index decee3a0f0..c428c1ad83 100644 --- a/src/client/pages/about-misskey.vue +++ b/packages/client/src/pages/about-misskey.vue @@ -4,7 +4,7 @@
- +
Misskey
v{{ version }}
@@ -54,14 +54,14 @@ - - diff --git a/packages/client/src/pages/admin/instance.vue b/packages/client/src/pages/admin/instance.vue index 614eaa3048..26eefe243f 100644 --- a/packages/client/src/pages/admin/instance.vue +++ b/packages/client/src/pages/admin/instance.vue @@ -125,7 +125,6 @@ + + diff --git a/packages/client/src/components/renote.details.vue b/packages/client/src/components/renote.details.vue new file mode 100644 index 0000000000..128d97d8de --- /dev/null +++ b/packages/client/src/components/renote.details.vue @@ -0,0 +1,46 @@ + + + + + -- 2.43.0 From 4b7b51d5ccdcdad5134edc0232c98e9e8ce2caf5 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 12 Nov 2021 23:53:10 +0900 Subject: [PATCH 53/69] refactor(client): use composition api for tooltip logic --- .../client/src/components/note-detailed.vue | 26 ++-- packages/client/src/components/note.vue | 26 ++-- .../client/src/components/notification.vue | 38 +---- .../components/reactions-viewer.reaction.vue | 146 ++++++++---------- .../client/src/components/renote-button.vue | 126 ++++++--------- packages/client/src/scripts/use-tooltip.ts | 44 ++++++ 6 files changed, 187 insertions(+), 219 deletions(-) create mode 100644 packages/client/src/scripts/use-tooltip.ts diff --git a/packages/client/src/components/note-detailed.vue b/packages/client/src/components/note-detailed.vue index 09c05d7769..3b5b12a60a 100644 --- a/packages/client/src/components/note-detailed.vue +++ b/packages/client/src/components/note-detailed.vue @@ -94,7 +94,7 @@

{{ appearNote.repliesCount }}

- + @@ -132,16 +132,16 @@ import XMediaList from './media-list.vue'; import XCwButton from './cw-button.vue'; import XPoll from './poll.vue'; import XRenoteButton from './renote-button.vue'; -import { pleaseLogin } from '@client/scripts/please-login'; -import { focusPrev, focusNext } from '@client/scripts/focus'; -import { url } from '@client/config'; -import copyToClipboard from '@client/scripts/copy-to-clipboard'; -import { checkWordMute } from '@client/scripts/check-word-mute'; -import { userPage } from '@client/filters/user'; -import * as os from '@client/os'; -import { noteActions, noteViewInterruptors } from '@client/store'; -import { reactionPicker } from '@client/scripts/reaction-picker'; -import { extractUrlFromMfm } from '@/misc/extract-url-from-mfm'; +import { pleaseLogin } from '@/scripts/please-login'; +import { focusPrev, focusNext } from '@/scripts/focus'; +import { url } from '@/config'; +import copyToClipboard from '@/scripts/copy-to-clipboard'; +import { checkWordMute } from '@/scripts/check-word-mute'; +import { userPage } from '@/filters/user'; +import * as os from '@/os'; +import { noteActions, noteViewInterruptors } from '@/store'; +import { reactionPicker } from '@/scripts/reaction-picker'; +import { extractUrlFromMfm } from '@/scripts/extract-url-from-mfm'; // TODO: note.vueとほぼ同じなので共通化したい export default defineComponent({ @@ -154,8 +154,8 @@ export default defineComponent({ XCwButton, XPoll, XRenoteButton, - MkUrlPreview: defineAsyncComponent(() => import('@client/components/url-preview.vue')), - MkInstanceTicker: defineAsyncComponent(() => import('@client/components/instance-ticker.vue')), + MkUrlPreview: defineAsyncComponent(() => import('@/components/url-preview.vue')), + MkInstanceTicker: defineAsyncComponent(() => import('@/components/instance-ticker.vue')), }, inject: { diff --git a/packages/client/src/components/note.vue b/packages/client/src/components/note.vue index 19486c4dff..2ab769db43 100644 --- a/packages/client/src/components/note.vue +++ b/packages/client/src/components/note.vue @@ -78,7 +78,7 @@

{{ appearNote.repliesCount }}

- + @@ -115,16 +115,16 @@ import XMediaList from './media-list.vue'; import XCwButton from './cw-button.vue'; import XPoll from './poll.vue'; import XRenoteButton from './renote-button.vue'; -import { pleaseLogin } from '@client/scripts/please-login'; -import { focusPrev, focusNext } from '@client/scripts/focus'; -import { url } from '@client/config'; -import copyToClipboard from '@client/scripts/copy-to-clipboard'; -import { checkWordMute } from '@client/scripts/check-word-mute'; -import { userPage } from '@client/filters/user'; -import * as os from '@client/os'; -import { noteActions, noteViewInterruptors } from '@client/store'; -import { reactionPicker } from '@client/scripts/reaction-picker'; -import { extractUrlFromMfm } from '@/misc/extract-url-from-mfm'; +import { pleaseLogin } from '@/scripts/please-login'; +import { focusPrev, focusNext } from '@/scripts/focus'; +import { url } from '@/config'; +import copyToClipboard from '@/scripts/copy-to-clipboard'; +import { checkWordMute } from '@/scripts/check-word-mute'; +import { userPage } from '@/filters/user'; +import * as os from '@/os'; +import { noteActions, noteViewInterruptors } from '@/store'; +import { reactionPicker } from '@/scripts/reaction-picker'; +import { extractUrlFromMfm } from '@/scripts/extract-url-from-mfm'; export default defineComponent({ components: { @@ -136,8 +136,8 @@ export default defineComponent({ XCwButton, XPoll, XRenoteButton, - MkUrlPreview: defineAsyncComponent(() => import('@client/components/url-preview.vue')), - MkInstanceTicker: defineAsyncComponent(() => import('@client/components/instance-ticker.vue')), + MkUrlPreview: defineAsyncComponent(() => import('@/components/url-preview.vue')), + MkInstanceTicker: defineAsyncComponent(() => import('@/components/instance-ticker.vue')), }, inject: { diff --git a/packages/client/src/components/notification.vue b/packages/client/src/components/notification.vue index 1f61bee6f8..40670daa9c 100644 --- a/packages/client/src/components/notification.vue +++ b/packages/client/src/components/notification.vue @@ -78,6 +78,7 @@ import notePage from '@/filters/note'; import { userPage } from '@/filters/user'; import { i18n } from '@/i18n'; import * as os from '@/os'; +import { useTooltip } from '@/scripts/use-tooltip'; export default defineComponent({ components: { @@ -153,47 +154,14 @@ export default defineComponent({ os.api('users/groups/invitations/reject', { invitationId: props.notification.invitation.id }); }; - let isReactionHovering = false; - let reactionTooltipTimeoutId; - - const onReactionMouseover = () => { - if (isReactionHovering) return; - isReactionHovering = true; - reactionTooltipTimeoutId = setTimeout(openReactionTooltip, 300); - }; - - const onReactionMouseleave = () => { - if (!isReactionHovering) return; - isReactionHovering = false; - clearTimeout(reactionTooltipTimeoutId); - closeReactionTooltip(); - }; - - let changeReactionTooltipShowingState: (() => void) | null; - - const openReactionTooltip = () => { - closeReactionTooltip(); - if (!isReactionHovering) return; - - const showing = ref(true); + const { onMouseover: onReactionMouseover, onMouseleave: onReactionMouseleave } = useTooltip((showing) => { os.popup(XReactionTooltip, { showing, reaction: props.notification.reaction ? props.notification.reaction.replace(/^:(\w+):$/, ':$1@.:') : props.notification.reaction, emojis: props.notification.note.emojis, source: reactionRef.value.$el, }, {}, 'closed'); - - changeReactionTooltipShowingState = () => { - showing.value = false; - }; - }; - - const closeReactionTooltip = () => { - if (changeReactionTooltipShowingState != null) { - changeReactionTooltipShowingState(); - changeReactionTooltipShowingState = null; - } - }; + }); return { getNoteSummary: (note: misskey.entities.Note) => getNoteSummary(note), diff --git a/packages/client/src/components/reactions-viewer.reaction.vue b/packages/client/src/components/reactions-viewer.reaction.vue index 47a3bb9720..a7769868b9 100644 --- a/packages/client/src/components/reactions-viewer.reaction.vue +++ b/packages/client/src/components/reactions-viewer.reaction.vue @@ -2,13 +2,13 @@
- + {{ $ts._aboutMisskey.source }} diff --git a/packages/client/src/ui/visitor/a.vue b/packages/client/src/ui/visitor/a.vue index d7098f94b3..1427d654cd 100644 --- a/packages/client/src/ui/visitor/a.vue +++ b/packages/client/src/ui/visitor/a.vue @@ -32,7 +32,7 @@
{{ host }} - Powered by Misskey + Powered by Misskey
diff --git a/packages/client/src/ui/visitor/b.vue b/packages/client/src/ui/visitor/b.vue index d662187aae..e895e6e665 100644 --- a/packages/client/src/ui/visitor/b.vue +++ b/packages/client/src/ui/visitor/b.vue @@ -1,6 +1,6 @@ -- 2.43.0 From ff4d22c070de8f9539e38cca29b694186048b619 Mon Sep 17 00:00:00 2001 From: Derek Schmidt Date: Sat, 8 May 2021 12:58:13 -0700 Subject: [PATCH 64/69] Add cheese notif --- .../client/assets/sounds/skeh/cheese_touch.mp3 | Bin 0 -> 14881 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/client/assets/sounds/skeh/cheese_touch.mp3 diff --git a/packages/client/assets/sounds/skeh/cheese_touch.mp3 b/packages/client/assets/sounds/skeh/cheese_touch.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..5b510ace5b7df1f3fc14c657f8a71a32cc055014 GIT binary patch literal 14881 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 NWBzLkOaASv{|}9NotXdt literal 0 HcmV?d00001 -- 2.43.0 From 6048432932e005c23e7e5c254ec8990dda85d2bc Mon Sep 17 00:00:00 2001 From: Derek Schmidt Date: Sat, 8 May 2021 13:19:47 -0700 Subject: [PATCH 65/69] Fix cheese touch sound Oh wait you have to register those in a file whoops --- packages/client/src/pages/settings/sounds.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/client/src/pages/settings/sounds.vue b/packages/client/src/pages/settings/sounds.vue index ea3daced9d..88339ff55f 100644 --- a/packages/client/src/pages/settings/sounds.vue +++ b/packages/client/src/pages/settings/sounds.vue @@ -31,6 +31,7 @@ import * as symbols from '@/symbols'; const soundsTypes = [ null, + 'skeh/cheese_touch', 'syuilo/up', 'syuilo/down', 'syuilo/pope1', -- 2.43.0 From df4b9bdcb8e5162be2324351d5a4232244b4a01c Mon Sep 17 00:00:00 2001 From: Derek Schmidt Date: Tue, 2 Nov 2021 19:11:04 -0700 Subject: [PATCH 66/69] Add some more sounds because why not --- CHANGELOG.md | 3 +++ .../assets/sounds/skeh/chicken_mcnugget.mp3 | Bin 0 -> 20601 bytes .../client/assets/sounds/skeh/chills_cry.mp3 | Bin 0 -> 25127 bytes packages/client/assets/sounds/skeh/doot.mp3 | Bin 0 -> 5684 bytes .../client/assets/sounds/skeh/taco_baco.mp3 | Bin 0 -> 36320 bytes packages/client/src/pages/settings/sounds.vue | 4 ++++ 6 files changed, 7 insertions(+) create mode 100644 packages/client/assets/sounds/skeh/chicken_mcnugget.mp3 create mode 100644 packages/client/assets/sounds/skeh/chills_cry.mp3 create mode 100644 packages/client/assets/sounds/skeh/doot.mp3 create mode 100644 packages/client/assets/sounds/skeh/taco_baco.mp3 diff --git a/CHANGELOG.md b/CHANGELOG.md index cd90898fea..0867d165de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,9 @@ ## 12.95.0 (2021/10/31) +### Birb-provements +- Added a few more meme sounds I had lying around + ### Improvements - スレッドミュート機能 diff --git a/packages/client/assets/sounds/skeh/chicken_mcnugget.mp3 b/packages/client/assets/sounds/skeh/chicken_mcnugget.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..bb725bee02744fbba99492cc0bf9aa7f5081cba2 GIT binary patch literal 20601 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 literal 0 HcmV?d00001 diff --git a/packages/client/assets/sounds/skeh/chills_cry.mp3 b/packages/client/assets/sounds/skeh/chills_cry.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..9e89ac9c5f48ebc4105959821d306043eec14d94 GIT binary patch literal 25127 zcmdpdbyQSQ+wWl*VCbQ{ySqV#?hfhhMnX`Op+P#Oy9Ftg5((*U3#3C3kW!@19pAg& zyY7GA|KDC~n6u#Qy`O%5`*}9tO`0A6L{Xgs2Y>061^}Fc=(8PEJEZ!@$78 z!o|hK&o3@6D=Vv@pr)pyqhn-bW@c+^>*VC_?(6Ft82I!l5{ZnBO-f2nPk;Hcu&}JG zthV;`>$bMGj*i~m!NI|aiG_ugm6e^HgM-u4)2plddk{qJrLV1^qawmDBq#{&{4a%K zjI7WO9RO|pA00XV2X_Dc!~fcE@MhKt0MKR8X7}v@9L`eg82~_o>z~M6Mgd%eDSOY0 z^`QWx(IXA7))T~MbWE(cxVYGV()jO#BuX=~g8zPl`j%r%4oAK4pEqEH@+0f0#Y%sn zMjz?{ZDV8O3iaOqoBIDhTs=Wxp_wR$g!F<)U<2Z-jubQ?G(S5Tmt=Tmx6Zh4$3SvO z@4ErQ<#wi!IBkP6y?<7JPZ=wJG=`T20P!{GNd66fbmT1AJDc6ER?5+J2W6xRvE=4x zx^e>X=ya8Gf|&cfk5rpH^$Q`^9;N4Zr=Y7Z{#90dO+t?2haOiD1dHd7K#+^C?78Lr z8~I<6k>RDKWww2#>9+Bl25Wt3M$b9*QA3>*HS_@)o)uB+ux>Q8ZOn7O9JF6ph;51N ztYX*X#+TAKunz;e zKKITe0D;m#<+QqjsQ1cGpRIhcl-dgk{mFg>BT4!`4I}YnSYovtV=P&G%qSpK>rXd3 z+lyAHBZ%{@0*5*uFzQKbXART~`o8^Iqy1q{O_fk?JT-)uRDuB+Q2eI%kn64du}ziqiQy3aoM4$xh>h;WX#qa^Wv$J6WUbp#BX z`5hm>SNp?nlPDzk^A}6Jd-q1NkhZ@&8y)*e1UzgLm>(~CxWQzQ|kR=HuBy-{M|8fJ?1l6 z?Ys-&e{eJMKZhwk&o{=o4+DV9yT@%>75=0so5AzY6`W+{oD4C@nq*ACtBm?Q93-p# zeISIE+vORPmAxiutfM`Sog0Cwh|;i~FwHJO#B)blp<#lJO^0`wuC(#0s!6JAl*2_Y zvDA}Yq)TJPps^aT=z+3VQSRC3?r{obv8oy|eZTbSVHiXwSezgG7Tu^#Gtr|Wr&u)q z2=ZdN;owc5(>8!XBRA#~003bw*dKD?MWEbScaGT=Cs7M_)XFgGWp^jjMn9d(TG4azr4CA0f1c?r< zy;{+ynYir(1d7d$6S&PtFGRwh^*p9q9pRNfp4%~e7xbvf5FFh4HFCU$@>C+linazN z5%6bnvpxXW^|>qrs+&2Zf5cP;qTLxi@d)Sz(>6+%-g`Mzlk0kxZ;h#%`Nc!DcZt;< zMpU`<1EyS3J1mw%eo-^4Bd{aU@@D_0Mgj2?voAEiev6Enm>tn4w+Gme(U~|zdGJwx z?)DrV%>=?e1Vndz!`MO$PJ)I-1ckqR9SmErAiLb{UZITg{Y3X>-0;xC+&9rR=*Ss7 zVr$s?9^Nk`^@{dZ{-0r)1%NoZcUq4>P)0Gm1ppyZJeOdW`bQ`oqvI^#^Gk`YdL0so z*ubX_?M2;oNGAtOF;Env2{yA1dbeS-Yb%NhQX(V+74hYn=_qj+{q3R^J{5hT1Gp79 zOk!Iy3 zJ+`)e8)wf>_L?@L;?X--541Xo9{c00VBqD3lD|D;HNn@1&stCZ5iY!k`tb=RXN)06 z)#ThymQ`&veE>T8C_cG>sP^L4ls*yZkaL@4;vQa(p&){mG5AHbqH?a3E*Ui?Eey^K z0j8+ogOQU^cnH2*wZCcFH2NTVS%2M=PsG;v)ZNc}D3NK*Gd9P}a&O+9W&bcss>Fem zPdt;Jt9mB7O)+Lh&O#ARH|8wr&Aci4fBe%Uzt#Pv_Iuq4mf-a+RV{p8+@)uM zx_xJAos)4s7AG6Qci(<V4bnOc9ycx%@V=Go16z`EOD^s*X+FPfdec zSGhzwEI5sshO^F6%l2`YBw@g4UIz_F|RIq^=H1Y)Oj8De}BMlwpvDTct3 z(EKpE4``|x^BM84GUz6x4N%YtDps?icfGG(IKZ(4xUp^y_Wom-3 zPEE|Ws*1Y%UW!nh2AwZPT^~1D`|N}T2gq=k=?yw+Rb|paP%%~WaFzuTGs3)g4jI4q zebt@V>zSM*@tRnJRJ)30+HGyMmERgZ{dnb>j}uW6u!C~+B%R|4JK!K!l9O}&b8Klq zG*rpHob~ZD{o;N&uI_FV1YshX z&b8egwb@Z}Wm2|aDW}dVyvR*pWLRWhjb?YH+&4JE$LxusL?9VokDZxq81jO;57Lm~yBGkl*~L{E z*mn(@DVumv3pvwe*Vo7I5WA$u<+TgT67n(`>qN@lVVIElJ8?5qk1fG`m7GzN z%SZU2kb_Om>(i^pgOJ#tIEv0|x0-0!ojyJDE07-%oG;=E-Ob>d(eD$6MTc=-kqR;z zN(8+!SZiL|GGtYf9u)Sf3W|Rny(M|4!fr0Fgk`qAgz}dy*itnLie?U%3;CE4+D8`y{Y$ zqUbsQff~d(o`XneovYGrLjFxyknukS%_AYN`1B6Fl+@S0mh{`O16|Kli zDu3X$7R@3ypYgHarvIKape_nF@w^vAv`PR3y>LkDbm&n7!cT2+f-r z*k`YbGqE43oW-$<6^~?XExS&q%Y-1CMK=#aSjXwtfX3Cra~Bho>nkXKxt1U6*tVm{r*E-}(Fj?<&Ryk8x=k9i(37^;YYw zQwzOLOZcc6L;+wzq=K+vpI}jHU7=6OV=LKBemWDm+IxKK{X^{{CvyV)L9rF_Ddk2Q0HBXuQs+4O z7(b%p4@J15!6~&>?GUhiA~lStSN|0B8GsCl&pmY~x$@>X&~xWZ#fu-2KiXj_D`u#B zmi6G-ouvs->p_~urAve7yGDEX*>{m^t?f`qPfboE9Ly%5aH*+#jb52!=7hu2s2`lE zd09BBdv{H}AmYo$aVPK=yg91GswZFO=Ow$91|VLuO%IsS{50_Jlpdd$jHJn}l)2g^4Pk6yiT&h=f%B+b~b?Jpb-V zm(>Kl+9u=Q`sPi;&Zoq;Khj|ff`^WWqf*4KPl-M)!o|q!jMet?xe7^~^|Q~6URoUJkq8n>>$(SR;2q@+ z%BJTZwLlo;giksN+PL`<8eaL}O{ww}68)i={?k;={SdVuU;rKs-u9fv&mO*w4~(48 z8Y%;?N34J5j0CeUz7)Vu`Rj0IBZdbKP-NzWcU~#SPjxW@Vr{!IlK*1c-ojD)@t8XbPol&AL=DW2X7HJeiu8{^aP7OJ^dDH7&AjG z9sgLc>|||>;g(n4(pV{jzj#aZeS^vK?LuSfu9R3Vp#-l9o)MBESfnp_;VI1||Ektc zgxrxz9m!c?`2HG!wxNzw$P4RcoG2|NS7Or4$dzIt7ojEdBv-&zQi`y^82-g$V`(Fg zr^ylZrAr+2*3_O{d*JFsMl@?FNF0S3VDLb5rXeemPeP72OCcxAxyGV|;#^3S%XT#! z{0l@xWrCXsMdivrcECN62sW^S1~;Y_kaNGm^{GcoB{8!sToIXqhvcEx4L0z{}qqFI%^0ZsXV2j%S;Ohe`_!j=mX8>*(EH4!)LyugPzZd;eL&783nPP5)4jG{kf7K+ie;DN%xq(rdxfjmeVQ z%W862`Gc<2PP0A3GTxLqZgHa!YsY$lk1a92;HCpW622Ugr3DBYApwFI3Bg4y*zyci z(PdTnxi@AhOg1{>(0BlF9=}@`gnuM~h#=5~sTzWM(v>m=x6uTm6)4IYU6Vd|{sI3u zhPdi*+Hoo3YXnE<#&}~?vO8k9WB;m#D!VU^!wwXAlpv_*z)nA9vR<@kX6~my>RgIX6EnYpOQyadDFook5NGB%4hg8={+N@ zs4i~$K^iecNl6z0Sdk*7_wg?>mSaVW_08C<>H5GuEAxVpJJ@m~U#>C{;TROAGz2Rer zN}!Wzj%m}uZh?we^tU53p#1k&uCM`QU%6iOtp;A8QA+dqy(a!dOn z75bNnF+z&=m==P0rj4^zvi_YRHvtT!+Kh=W01I+G&}(Q$qw4sp@wW#8sbS!fmxu&{ z@>^dTyngEmH?s0J7gfcIYI|wg0(#&WnPn;B#vS{_LscQk5@ew`v)8E$ATb&e9&N|P zucQ!*1CeS5fao^S*kC;Tfm+sRzl4`@;zQx6#VMD z732qHeiT=JW~ny{XzaU4m~{ISDt#T9>)4j#cQMK5Pbg zv&OFiGmn10Miycq0rUi}*a%EQC}pj#om~gK%ej`StuK}q8v6kut?H|z9cXlMa_Pp*WoF4sZbw)`*G0TNejj| zY(gO>@=;hAWs{?>qUxx1lG- z!Pw@%>p#Scf0-~_Bf(=cRG0KZOW?kI|GQI@PPuz7X-q9y`f9?~_t>*qquu5AmxnH9 zC9DKhJ5mq4aGSef6G;S$d$iu^D1z>0C*z|Rut%mv_~%oWUN!#$kN}kO$A-HSZ`3p< zKi`VVVQPQdo8LDUzEr3)q|*t&hN(68@DU>{ZtN?=&ptE~4L!x99xMByLXICfJkeaP z+sgWmInwugA|$=jTTLMN_m$qw&*R>iK~t2&7VP{1(!dtvmTFYA!YoI#wz<@7?fz4_ z34@4+EXi*`1-R1h32ca6jSAGnSHxq~fZ&dGIKk37s``k)&VBG87mqZrS)Y0}(JJ;DJ-JYda6CWAbldeblcNwkw5pRVkKA|1p*D-ZF7fpIDQ+ z3KzJ0{Ck)zp(;^%Zet^Bm^)J{7B7eR%?Y)uI`R6CyPnCD@oQb zH*8UyALS1sMy;hdqv`9hHThn0`)@I$_r;;=BeYFQX8J5UnAnbD;~|Y!4UUfa$x|<0 zK+s>bLUB));w_naPyc}6?JE;roz(BJQ9|ggd7R)A{C83P=XAzG;`R1a$~6Q1Oz05{ z7;1bVcp(xY3|9c`r~yEiJ`;`wgRn`_Vhf|Oki8*h71oEMp(9M`^>aR1PK(OGA3cy( zv7gIR#$`^?^b(6;GLz}_ECKK6i+ASh)s7MNth@0+B`oS;P|^(tI+(eY=tySd-vA$T zx!pVGI1cG1_r2bBi7pv>6ZP?q2leB{fzC6*X7V8D``Tp5;|}$};}NJp0Xxx5DNn#c z0E~8k9YfL~mJRd^)j1h7)>Wfab%c^r}G0L88KCO^#H&OR0EJx4q6Wz_raNu zLV`az(&mG<(4YegCR#rVKk!(+<{VjbdE8BKc1?XcZ}njfMb(y{-3xN8WLNzNWE$bG zzoLCYBDfI6NLfpqfrDrnd&bn+_O@UNT+K^4Zu-5Vt>Bo>Wzz2a@m)8^oS>(cB_J5D zclN3F={{<$OLRI+wc%Z2;kaB)S!sXAn00N1eSi|HF+Nh1TZ3p519G-1_rY$VrLhhE zE3|Pq;rxhlk3!tN5d?31uVt4PBR@dxU4682G=C4MKh~D@>=k@qPjUX1Jyj|jivmSz z#lUzm2e<#UdcYYH>8%cMA}L*~MaR(qr-$|;A4T3QQ%DG;7bU>ZP`Y8UcQ|^a`?J4w zk(ODEP+N-U*c@Hg+=uro${s-Q>zC8V%UxHED#m=jVE)0$&7OUD=YBr<&iZkKFpsyn zU72Tt#i?K3URqSnoSW^hU4`A~sJlNMp1SBl);mc}x_u`EZ(F@7v{7q;4D2u5ba~0+ zw~Z5Pe|T%?8q|%d!XCLh|KeW3noMyv#Cp8++`Ogtw3ZwB3~9yU9zo^Pm&C^aKHNLD zOJk+p`)3I&5zus_xkCZjYa5PhO*xJY5@#bNZ`tb&ijr4hm-O10u`i?*u2T|c!v7St zgZBsMUu*>@!WC5x5Ikt8nq(q78nr!*ALmce?Fkyok!IKr2_|mJOufL>TB@H>d$tM@ z`Y|2*+I>wY-()h-Q!6wk02>R6x>j%xlQd~sMKUV4NU zIQg{^aesccP{%`%iFhmzrV(IP)M{Z&pyR$iJK9-gAEPks1#wWw$-p9kPASne8^O%} z+YGYq1^|*dxh`B*KB_g6Ek>N)b@b~jY~}-Q?8GgtQh{7M{_CInk{;z49w?By@#Rmi zxji9FJ1GIdU_GXe>)*CqZv2r|%s46BN1Hm_+!H$@O#4eLpZGleYEBo+8%_T1c4tj~ z4$SQm0B@0gqSIw&{LSe>YkWn|tt*qs;=qjp5X9jz?203AIPk-cD6lF8@DZr?1wYRV zTD<^9^=4Qenu!s;46D8vBh$-tTPZ&ot!zY&)gp$NvtyJ5hIRV6&irEAKi&R$=$qOj zmdB%Nw1q~=$!2UnuT+v!e*Z4Ckc3~kIh8$5*Kc^}-fez>dBCpd0}CDtDSL<_D^ONJ zM3MiD_>10ykee)D@UCFmza?O?Zg5NHH-P4X%0rON{j#AbA(et!KS+IygY=f+c1YC0 zze?sV5}IW&yP!dlpK%~f?aq8|;4i1rD0}U}#aa8drdYIt#N2K*SdBo6(6Wn#SjSi= zEfa3?WI}wAU!DQHVM*C8ybIAW{|r=bO28 z(l`DiF-y!0P85<5d=XNgw8A@#2_XTL=O2Z$G z+4yVTe*)?(Mv0&_u<#%ujJ;L<>Rj=C!!yJ*n6TWyy=qa65H=R6N%xI!!u)# zxNA#PRJ5D<>>|xEb{m5XX8LJ#{x(p@IhFM???I(UGSD~4T|=aQVNzpKn$ zk54KJ-xqeVe{kBEr3qgLZM2H6^`-)Pq-#@AJS#7^1g!StA2Jm_DbtMp!XH_tF526I zC5q9&YjnW7W(MBwv*H!+E1;PuO+RMT?i1`zv8VtIS3Oa@#!J)6k38FS<41@vLIJ!F zyvH&Scm`>~KsaW+Sz*gc__IGIDiQC8@Gb9LpR6id<7=~={tKRC!oAug;*pG7&rc%+ z7sK0jTicrO0t}LMx-BU{hE*ME@i^JT_j8OYS@u^`D;~oFHyP)dK;qfA(wI)DSfP%SeN_%>^;VE?K9#(El&-(127K6#Q`RZ}YF z+aak1lX(5{5)KWQ{FG&v)sghMnz7$;Ug02kU+Wrrb?ZWxsr0BUhB^OpIFn)hpGH$l zzQPu0rA5=uh|hhf&+jJRyZq1>BTNQ!oZ5H_>P|a$wNehq(-N><%@(}%(6}EOvCy?I zto`*>j1e0ZJ%|y2jZDC!CBujmFAO7IU+bzSwJXygp5b`tEjn&*^|Q)n)hG_Y)R;xz z`r>*bR!Jz})-&KdjvwcVK)?qyL%58?!z+oB_SO3?LRDf^1dc0>bg_zW!JSz zE?buu1ywoSiRr)DVE3~HJ*A3OONggvLt{Q}kbwIhotwIp9E2}dq3_Rh#PHE`K4lsy zet`}FilX0zgFnPTu%hs>m8tfxq|n(V?-!{Q2q29JK$9#K#GDu=Sh3#x8ne+m;?fyS zs%>Io=q*n-d|5mtlTrNvp~^W}Y&I$6m?p+M*;6{K=6V`>xp4J><*Zj#1iC0e@WMk3j)?vzhgUJkQ&5f z$vV?7dD#F#^!2)mECQl7kruz7E=aw%lJ}9CKyV_@P{ZqWHcC?0>oRjFw7)ivkUM z+URQ1_xXn&<11SnV)AOauAOuQH7|GF@fXvPi|N({-+Yg6@mo<5l$wN7XkQc@pF62D zIuQ1PcNSlHN|(^)h@Pm5Z0Y6O0iHlPfaN!ryv%4sE2)3(7|p%Ka1p{z?JVx_HlK}$ zAVH(z6clZ21@!holu_=D@Qx(l5XmoJT&*wt&Qzx~NL#}47couVU`Cgu1rQoO-wH73aKgaS5iDn95b>j{HpCXqyv zz$nW1aO2b$xH1X^BT^*#N$u1f8|NZnFA{3#*oKERZxo2hHuIe{YrUil=t~@;P&LjD z6e$x7IteBV3SV9E<{%iFCJ(+eXrSeuDHJhrz_?<+uGji5>s@uN{Ypzbj)}<}vls~J zfko4hk(*C5ylofyJTJ1EAP?RS1~Q~lS{h-eOg$r=$Kth$gp5Mc0IZMmEWC{HDnfyD zmOQD>NCP8s!-7;2tC}Kz-yyoZCkbk$mVRPgoqHGyUv~eZXh}V85Hq}dB7qhw@MGyO zU;E9|O`coThj!EsRAfcPdEZI9YVKJieyE7;hjMo=YqELx?;CGc1S*uGT)u2gY4Pjg zcIf~<6U^;a5dolWP$)=r#X{y=?PKY60{rG#jLGuesxx!m8Jby5$1c?BqyRrsLM3`W ztayrtgW$P|lQMDMkmj}jHF_A7dGaQdw5v3lwg?q_l+OTV9h3P(4u;wk?s_@rg912} ziB5y;Ez@7r<*JuOJmjA}U1*eZZ(zy3g?_*Ge|%!stf6CGP+2T<#A$I$GhdWJ zIWcW@Mqoj?b0;NakRF1%u@y~}uXuQcW4%cnZ|o#%#^c|KR5akh-LLv_aH9TdD5qew zLd(FeD%ql#D@QN0DcouVC8j5x!R87YF2D94TJ;bOJr<*065epeqx7r4vt`arj*qHj zd2I0h=}n7(f*pbpt3qL8exu?*`LeiDro!!wEE@w82#!)I(NrurJJAg70grY83;-L2 zC-{$-_6Ex`R`Svo^H1irjsD!c7p&A!r=iY$jK4d`^=fZs1`O&hnQ#s?yM69p>(?zx zU{$~P0pE?FV#P%3x}X%3VTeZdyR9v%-10nirkK?@@}*s;B1?6KA1li0Z|)|2#r7Cz z%9zJtm{6QeH-v*HrMe&sbhaKi8xF*NpH)z2bz3HIBxc=~Wc5W~0nWl&9n|!AsWXE& zya&a1_nXg}dnMQDOKDeiQ7;oOUH6^mML*GEXaVRIxfD!~Xr0RkJGUZiZ5sw3(NV^Z zvIgSGl?nF!0u1!7oI)w3imngZ*O-XjU zP?V_8F4~y6O*55IH|k$50S_uB1CNuc?meq0!=Oq44h+Z}VwW_)HI`6}f(@D^Gk>Yh z8gG@CG8~HEaB++vNcH$gc7mE$?F&XJ{R$Ot=k+Af-hOX2fhH!fx#F(n;d(-Ub?0&4 zqt|i*-X*5jY7;2I5NqJz%o$-HE8^;t$2J z+{h1gi~VY}R}I!{ANf!6KgGQxy0^tByOg*mHh+Hu-Y$P$At(H`-_?g-!PT$S@uIBn z&EuNHFBhf89beV{=8*_BkdgJ*80hud1wQ+Bqy>NJpftHSJn|phG z9amh@Z6E`KsJkn8&mPb~7%?j&$wr+h{|~|6Wu?!ny+m*WZ~#5V2$w7>$-n#)W!;qE zUJvh=518cCwy(LjLyCQlQ=!kT>!{B6#SRqwzPj5v7-`A9fL3Ut9eDu z>z^V)jg!T0f(nZV$_p`GvVblw00=O|exM{0k-WgkPQ8;CKFJ6(d0_C0v|mUBJk1~t zpWbsr9UyS*jb3-;>AylNVj&mhm{b`pqmsZ|dMe2{`pDRr-mU1T;fB=ELo#nBk9*;u*xMO62j|RV=S|lVIkxhu@yGO~I z>|xO5{w^Cs39?`w`8}4=EnJe~zCmtM2CR2~#_ypz*)?fk$3@fihAW1(8}r=}v+)Ew zEl%6Vn5ywz>j~I#Yko^jWYJ`XhXqUqP*;oFjmK7d^u0by6n(;!BLD^1d%^9gl+n=F z{zE=BUs9>zGPr=kd1MAcA>7jffD2 ztjjko)LwsnyApSL0&Zkqt9!_^6hAc!6x2jhGfYuZ{PfL(YP(9{F90X@Yn~N+Lui3Z zG?J*N!Xk(V{e5OZP;5^m23AJdDQQiyly1!3y31d~VVpDI@9Q!v1&9qB0oD|ee5I@d z;9sf_r~{ar%e_)t21UD9NVno~N@puiWpm>8H!fU=UApl}4}$hbe;`D+smV>?g+pWv zHy7{FsZAa~%VM9C&673k*ikVVYHdF&%FYzd2G<)Wc zKk(QqVK|&WO%mS7Ll6OQW~V0q<;HsvBAkyvcM>UB(Ajxwvb4%bHJ4^jhH}*UwSxux z@PyQ4Bs4-0FpA*>3M~`@i2zC%{1;#(?3EOq>lRIFU+5j6^9olssvs(ezw1&bq@k6e zBFu*3`MoVFModrzG}P5JcF-5M?g}#6ktcF{isX)$$N!06H(aDfq!g^lUH@&gP`kcz zw*NhGa(`~X<+mvKEO@-2b0CeqHM%%RGELO>Au8Q1oWdWgUDMMbS~QTg0Pd+))3iRJ z3Qy87IZIKA{GV)l4-xHvMku2%|L?p?STAbtTU*?{m>n>L02mcNaY#Hb1Y9X6_N zNq1Zhg-eAVEAzVI&{<8vfuSSxp>*=?qZ+-F2g!|e-Jac&QKR@0}82A0)mi8Bn=X$@Hv}0^gKLWm2;%LI=EkK}AR|)FBDEeD(yq@sL%v;-=2z z6#o}{j^d$isMw<+pX-P7#M=HKTyNDxLp%4LX@u)XPh8O*Eo=-Q%Qy5Mz%rIh|_okj{+84v|^qwkFTXslMv6z1GiW)anG4Q+8Z=G^rx9-LwhpP$*`a1Xmm+Hlk4GrzEzKt`5 z8bTV*xk`!F7gQRL|A;6faFAw5q$xmk`r7eFj$1pe#Mk&Y&UPqJ`*z37XfQ`k z*T}JEDjob}ARHD2XAViF?DM3E>?avm=OLe@GW^v`tUyc5wlK2;(GJXGFNZ3(gGUrc zNB&NWWebo7U{jgcehs{V4tHcrBk+=1)zDdR#Jl@X%7Di_ZizvDrUTNN(O6yl7*9yE zd`(&F^KwZD8h+KuzA$pRqNeY?&LmlS&GN?+e;lG|U*Oo&B8TC+SJ>~##3U-$za#&> ziK!f12q*r~3-SwCHMcwKl*}|ScT0wYVAf>{AR3)8yRZsmv7`aMspEocaWHudOC@fq z4k3yA`>?l$w*Kq>cDX?vXa&tu;~t!)wn|`UItiVVdP0V>J{&+xfLXXTM#J&+6|ktv zm*bs``XeXtGHYr_E2$Nd@toCelPozvaA}5~IJK{E&%wV7CDsE$c0PuYeH6AXb@~yB zzG}Q+B#`;UedNH`0aipX`bn>$?!x|nd;hYQ+l!TjW{DX{QqTsVey4b_?kG5^;5U`f z^hvx9p)~l;4!==A+M5op02z;zibYZ-^8x9YqT2@6tKoM|AV`z*9qoa7-5!EsbCQ6$ z5Ci@hvo3;TrZSQMr;lMGxCNcc$06Caz#Q9e8oU}xLGPq_y#_^HLP5D=CZkE$ql^8Y-mj?K z72q<(j6;asVC$mQY%7A2E7k6Qj{2V6KhN`J3*zc#(0N(X*^e}HW7l?w;&CLU5NF**91?v@H_ zLUsJnNU#Ct2y7!4nG(Nvk--fw2PHNrbMbTIGx@OVo{@Luja3}s_eU7A?V;yL4aq_R zcA`uoMO4B8L4&Q>>B?e7gV<$kQLK#`B3!>5 z{orvIcGHW}+WmKCu*diZv>CZO5S2oSPL(^DFGzw{=e)uyRd$HyM&V%)&F}R7_!1m3 zx6FUJ`>q{ab;%ZdIr?HmX}{9(Y-^MkEDXF&bxz&8k zk_UjxWDGE$+I{Tdcdul1f+yN5z|L9J$hc!vHEj)qKP;nda$SL0U(}N6- z_2Qz$g_6-Fe^9m4@l}mLlS?y-A7SEKOeRE8#Mi0#Hcj{P*V{d@SgHv&0oE0Z)K}o& zNeS>y^LugnYlrK&xYW|V(tTQ1{XOuE1H6TLhlLF=m#aQKWQyr;7EO~x!mNC=sp5?T z>e$`NDo9_U_wC&u9k-!+y^b#jwiKpzP>e+X}CjSd7ip>EIv`k8cQ`|yKFJ3sa zflDU4MlTO+ga~Bd07W~Z!v@%t4YgNP__v~V>YI*HfvrwmTr?~J8I^qiD6*x--Lq` z&#KDMO&dwF?4C0tix?S`Db^FjaPvKTvu&(LB>5fLxjdK6Bt%3%HMDB|%>#r*6vmxS z%~nG%^tG4V+QCB*Y?xYUF|2-)z>KJ4qyZpT?T@g7OH>;fvyzyems!SWJf+qZJNz4OARgfMYyIKZ4RAPF=__9 z<$me!j0d2)g)DI^aB~`MV#eCi?MSZClprUTG$#yw?cwwjXCBiy=V?uPj`36}fxz=~ z>R00-koOrU^5A8_2AO%}1NoslBgpp`>4?cFC8g3uv?~`s@z2&YS6w48H0&(n-X7nO z9$~M;PqaqBoRJMn{D7GZGa{Z~I99VUWaPmHc|1A3c7_4P5T&(K7dNQfP?ONHSSBMyMlE7kDhA z@Iw<*tWg0>QQ6tt@M zIJ`?Y(A?7W`}mDBtu>I3Ny$)HuX1tpo&I8Ms6)USNOu(QgT#iG;n~L=5rI^q>(A@D z&$I;^!T+2C3m8Y}{_wGLyNBvR3fBQ!B6G2Lrwqoiv*-BhIboQ?RKDkhdn)R0tCuAj zp5MVWNkx|zE`^evSy(Fl#$qd3OXu;^o+Tz(5|}2t{n zVgM_EX2araGWT=GF352xizor``W2&s{h6I@sLLuwGNeh`+#osNb~J`42nXM*{h#iv z+*&BEa29HpIm#)StHjFLh$ugjufGJ2(VB@!3TEV5qpN1?ShhJ;RXLK!v`C216}rN~ zSEz~i36gR52O6Z97_9IP82W&zG+W=9dMQpvYm@>@MzG;xo5&+sHS~Nf-yE&zP~ZE+ z>0*INtQH%%9fv)VUmw@&*;Y7VV)MDH?Mi*x3`(};?#bSDbJe_Hr9#`mlZRy#R{;D1CklWiUTDOeuV2eM)d z?hD-_Me$YJ$Q&5Jd(`av@jBVhEz{spzS#@+&4!$_-<@dH;v z3HP(Ox1wf%(J36hN&rpC+Oovsu3^M0%gUW+HO+CB-Q!v1(%O)U^n3dn=X_62|b}(odp&${vf>!t?;pEA`Z5_Z+E>$vvoH>DLrm3 z5)NSg+KxBK+5W}}ArnZW>x z69X+ra+79Z5=HXL{Y+n@z;AQv3#gvgxAVa~+CxhDmCev_YHoU=lXum!_GpR3dCsb3Z=#tC-Xd=jYvR?Rwp&iYc> zB9&DwzXUzuJk*eAoWYON7B-t^dcnIT*(#FrmSk6YvHSAZLtUa;t?w^{^j;s)E z+1X<7F(GBm7&LU|zm-8ORdg}yc@!kWwBwW^-kF=3U7Iv@q#WYgPtGNDZWze zGqu6B-u7L+auE22x;Lvl4M6WqW*0Q|YV*ePsXcMSjht098tnxRG`ZdCDhd|6My$w| ze5Y>LHzYUSz!tfM(|JKKjRj%i#4(-zdX%6%=%y|F9|z!?L}{2f_Unu-vv>LJ-hRk5 z4b*L$1U%v_s`*IxK`92T0E_N`Jyp%{ov{u1{#KvXUHUg8;Zmo}xN=^L2KM$*yLQVE z)H?S;zlt&x=_mkVv|9tBbQ}aC=$@~kbG5f{^1{DFfOtVTwo(4c;wpZ-!jTb86C=cGZ{?4YrBH?=S!U5~=iDUzk4I5>yaf>5SdL-&} zU6^d}5Oeiv)Z^!Cm)j{&L*RO3IN72ewb3cn)Z`&6jo~X%>rznyxlLieT*}+@m zl5}E*JBirJI+Ajh#qXx{9CEZCWF?A@;p=d4y&FauiJI?|;|!?>U>osJ-zw`5Fxz9S z6PAy4=u-kN(P=+_tsH$8{_6>)88!g3;u5DDn5DtSU`O&QaVjTe&<^Ok)wyax@CiDx zr1x3oRBV5%T}O9Y+UjIm8q=w09bDILf&9I3QWW+C8v33V)Wwa4nWsybPn-2U-pK6Y z)i$5wf%}24aCO`P7`n>Q4-h;&;HH%|yC7L z+Q~ixf_1&R!)!A*yrt!^=4d#E7X)qV@_m0d!R&$=bom`RU6lT>kR0z1#kci_k9=h2 zh`fG>q`xotXIqrhW}BfpoBBL`8c1gH$ZMVXMyl!#&lmdY{rf^o%~s}{icw}K?*rwo zYf?)}ryaxp;gR0}R7ZE-NcG{1fO-#2J***vIujioxt5K03|!A@if#|w91~JG1@ypu zW-_KyDu_OS?$3`y?KE5p?^oD5m=u#FS|_DN@+2u!jb$`->k#;uo$9o~oL^S|Y!u`T zgTEmC^!G2yUPZ_bmGtpK{P6M{P$hdTqh0(6=8F#NI?AyAAqWt`TEbN2*)aP4S+ z?lkU7KJW|Fo$P8-KO2eX!F7xV@DTh6fSRqEwk!mn>f)N-3#P9evUY@-290;v&mkvm zAr*G+Qd>gr7S9tHHx+zVoZ8pzHUf009DoPz*%~y%-@h z=@1~a5HwT~5$Ro;fQTTWcce>`A{{}xf`U|O(gg(zMT(%(1Qk%p8=rUG`v=^$o^N;7 zI-BPjsJJxh@jzBLnes8iY}E01JUm99*pyhygN`o{^|0Mv<^!zG?g_X5t*c9E;BunsfiWaa5POTv~ATVZSC8mV_Dyh0i5;w0ETE& zdjCnMuj9L;YWD*bm#75Ko&E`;z5TEjUG~TZ3Uj-HU2m2LgAz27jgzi%4%&@HpO<+g z;H0zpgA%iFb?Kyc6-w;0eymHRp$FG~dSG11mOk4vcJlrB;Sl$Sc9+~m+*2w5c(Kap zPKe-Wqc126+5?>7*YcaEop4)$kH8rUczoAhUS+-^B_sdPd76adnwhKWx31%rV|4hq z^ouGYOQ)JU-2T<{^l)`-*-f7IiBiJxGXZXNEimC_*XFdceg6EPx(X_XJBE%>>Ho`6 zG9eNqQbHC7XaVrv#5ioAgjZ5(Mr#BbJ6uhl2p5BMmlB0V2{w7EEI*%outKHy>Do^3 z1=w46NOdsZq%J{Wyzl-AK7kys&eS^JU)gKJd9y-&y;uw8K!jt}ILVQ947sMie$>2b zc>8rKzEt|d9e%bmVxx-U!mKhD2bOA_vowQiLenf%W0SH(!Ae;HKrW&Y!Z@^QYPpwA ztIA8~M!a$1W&B}dg)_|6>+}+B2Y8aCSHAp8@%YL=PFMn!8t-q&Hf6nks0jZ!Zdf_O<|a#XiBYy#NV_sHmeJ zZ3778wKqCUcsgUyWs~*AyDkqZ-kQ@g!`)nW%kt#)zf5=cQzMhzP@d;9QS7Yg!bZJ` z&QGUMN(9@qkyDbr3HQ(Z9!^|5v()W0OtxiGkioC{{5+MZiO{h=hp6LPkxxw;x<LRu|7*2gnVVo>Bkeg7h5lVqrd#*C*`QgB$}v$LKI1+3X7M)h{PTV1v8 z3ipd{+`C}ntC3;u`E(y!(mok6_b&c~a_& z=jL)5VrL=}S$g9!cB-oEPdzp-N4T>p{OzWi5BIVC@kvveyl8r(Dk??Ol+r`B1g=`I zh!!9fklF{OW(?`aq{eFLSqAU4h%AY+#t&rrgQFI2v&ps(ET^OS1ao6;;oI!w*GqtX1t~f7eYITvyjcZN77d_Rb-DjEH z_5|6)$cNn2ATq_Lp)`|`1)c>YQ&WuKqu>#pR#r#syj?tRVpB>pA5n@aVEBHqcCR4`;24N%%5m#i&cT_p8O{?|M$hG`iNVcVb|3iDy@7s4#;gdGB2CP?14?!x!4zh5^G z3l5>I@-M#f{8@AQ*h&8$c&+SOMRo}z8ObOP>9+#`ddUNy)>*nL7B%1-r3c*D;%P6Tc_Yo3f|2EcX?2hDLMdVpwdB^ZX~ zwsd1!p)uiz6YzKMO!|BOwa$1UhIX_U?owQi7cm>)+ME%-awYwabZsgICw;O>TxY~Cp z0A3W)3S%DvR#oy6l#23dXK>3qd=j$e>`#gFGw!;t@6Ty5vYAP#m3t(Nv`iX@tOeF^g}pODXeLuB7X{jy104q4DlVk@Y1 zkA?)WWwd~`{vg4TvLfh7Nh=fs%4IT1+vME^aIx@^+Xj3nxwb8LTw1{XtKRv2sxI7k zZ~DrSCINq4KSS$5x|NktzS1|%3H#bI?B#-r;L(hbv5`l^1FK%1pZV{kT+sN@wRNgl z`S(4y7VFPDYJve^8LG9}KMX)Cny4KBqBmMK?4hyd+71rm;%{hs z14QrUy6B^mqC}zRV6qAjX?6wsekcTsZnB3w)T!Q#L`Q0XV~Yvq2*EaGvRwgBryJ*# z^Ddg*fKfD!hfw>DHV@^+0H=}pS}){H&pgb3xg5denFfU`2wjb`^Gs=$EX|GPhzmkz zs`V>pnh$ukQzXhY1?vqRj;1i*)z5`Js9J8WNqZ&XkpB7OQe5i?DaxY+%=6+`^k%jkXwVCp-@ znN^NhE4$7rgVUjQDZ?+5Y0qk!-u1)*ujocu#@7IT*k9%2j{x)ne-%Zw876BN$_lB} zV0B@;2Z$W@l#GptDr!f@GAEW<`@UtCaqlJ3#pJ(XOilY3VQ}H0yLQ8SSS<+Ma^SvE zA#O+K1m~!i0QJ(w_i#1P0Vo+@-355(183sKG80{CQZ6abB?Gcw=i_kk#MG!DK{gIg z7pwj3tiV!DiSjze8b20Tno5|}Fq8Wu&bw`IkE2RI^$v?)m7GM-xXbsUJwFP*?s~9@ z6@n|>3WU~&N>#Jd@R!mGyQQ`A@=zBzxhwGTR z8haSBeBWP6IW|CgAm$0ob~Hx4NccAIlZ$118Fg8`3k)hjL%- z=eW!1B`SqAi6r9;?DkN5co=2)bxlw*G}o6`<4xYNPqH};A^QbQlxd+A2EmZfAghjY zvr0Gfzy4ca1k!r=$Y3uIIA_~Q68&&3Mw~Xei39`E#58tWq$8!(P58&l|@9xqPI2< zl~=jbZv>CT>WZv+Oq8&yFk;tdFZ%jECFsGyw5VS3SfXu!kjS`aBU_<1dtZuSo>wzT zRsq=SNy`cg7U(PkIlD!#^|uoc2DG>g=2@jTWmED4&s5&n1h$!q-SN|f=Emlhu|Ma# zCGgIw{?>_{a^}M~ejgZqjA9PE*jqk+7^}UaNtr+Zh9ztlE&@118|tA(!aO5TzUz$e zy;VSd_A0v-@GLYdPG8mq-Xr6pN2*o^gMim(b%4Dx2f-AM@s~uT>5nH;2h7REEx9qG zf+Vdwc7%&j0lFpT$A(9nDuB*HLG)}!Av7O1t$S8rdM@FMxHI#)7yMaLCOtmY?278; zG*tCHg|8sf8fu#S6QSpyznmR+0?rIj43F!{5clG0igGh<@Fz5|cw=W9UutUE{N{ZY z^YfL_#}CU*-b(S`@a{LIzmX5)))g)MrYzm};5*s-OU)izO4O&Iw|x{a+L=~FRJMu6h0L1aT7GJsa4MpK>HR${bEdJU_z`++k4 zD7Z|B+zNaWzFKgf7>ks1M+`+cveV(?uB0O8i+!NP9l z^q@23z)YM`(pMweq44;HFjWA(weRO%%}S0$ahX)mp;tF$CGAT*0Q*l_>9l%Y4h);agi+?UdK?L_e2c zvg6X6Xp_a^gJWW4Q>I$HG?z|4Wcubt^{1wq<8>l{iJ|q$MIbV+P5}`5Y(!jMAL{@+ zBz_!$o-sET4w!g2h8?EY@QZPom9!Itj7HeWNwHv|avVD7%(Uf^iqf<~5AGFA^LS&W zshgL#EF3--0oxJZPgNzZ5%HPlUUpm*A)x^*W82l~>{GgAJ7BHDND{sMIMSWTa#u_K zWv%R{oT;ca%*#CzO+tk7r@1v7;{TIXej@#yfjQT4Ho;PWuWg>0qZ7i$2Y}UG|BIHyF z&^l{Qd;6e)8rPG1<8DZlh=s=APO^YX;aA0?DH^4_%3U5NJ9w?`zP_CY+brK*HvH8m zN#3pXT1)d;&%znEKLE^1Z$BM$ks)LNCHb0kHeTEftL~RuCp0(0k8* zX#FbF4|F=qI>aZGUbg%lX4-tt-;a%LItB?%IjXmvc% zn|gAEFJH$=n&&ojzoneMSa&tG2zpuL{MXpb`NQr17*qeIIL#l_IhjrB&%x=f#P_6Hkj?-HDHWbBjG@yBlb*Ud`|k_Cwl-KVD+htI@V9zush zGLwvA52`YCwuG|-yW#|TGoEEqn!I{OAgLp~0I;kF1C(%A;shCDS=qrBN#Z`T<035gj596`d5?a=`e7Hg(Yco7cxI zy$Tx_gwz@W8r5`lc^MZR?+}9C6UVPKtEj{+QLCi=AAW~~e-htoCEY|`6oN9~Tm;Gi zx-=g0P058GrVABQz5S#gO@~>3c|rpP^6$QA zrbx^=8#^K4f@;{z-7|sdm3@hgPyXtc{yc6W4sbmhIu56NOqv;QCZx)a;+-yBT#u27 zLXOSdBZC2jj-!w|9*D+c>jWS^r+6LV^!e{lYEjj=fNh6}xB}Cvy17Od@DmPlbf};y z*1`K`b)gEfsf8AQ%;W=$9EC%@{Ok|4HQWe?)of7cKD3?IdRrM2`)jyy?s|eNS3pO< z{)k!?&&BeN&rL@{&b;8JHp)rB@3Y?EA#(Yy{7)b6mZ17GPj6ayndhyCe*T51%I&vW z^nOzQb2pswy?ous^qpbN@$S$+8TdbAv!!U`MPKl0Dh`{53|3?B zlNUwlFm#S%nA%l5i7tnOcbe`qtdR&#R;+oFFApj)nP+G^n=i~%Qr^6q#upL81DFgC z9NaQ)C#6oSz|s!+HnRrJ+qK4xs;fdoo~7aP+)FhKg({3rQVh$=1)7>dTboxJD3l7| z=l}-*UTFX>v9SkfePQAwfFg_2;z4l^L>z!%XOg{%$trX#ztRg8rCPN35NAkU-bkf4 zYpxoZ;cT9{IGC21&jpd&G}_n;hCr~(8y8V>oFwxS-;Abjn|+M-864u+Cc=#9L$>~? z+6Bg^eohD)Y#q7e;{a=wMAlV@ zJAjKXN8z(Rht=>+T)M+5F6R2AV!H}I0JZ|=9N?TWwWJw2T?1pk^?ZJ^aI*d@+pUSy#I1FM;;Rj@#8=?L{8s=zbO<{diRL zKx+G?cSymGv>2OdJ5uQ6?faP5W(U968tc~IBy|`5+1YV%y%|q!7lC6Ct^<0sHv7ns zGkO>rCV)*JWo4fepE{4)(uyhMlGrT2-JXQPEhLAD;6!b_$6Txu>HL+px|P*D{gvp(su;WqPVK^8HBOTbh}esk#p6 z#X5^G(UZh(|L6IMt9QH3{SGQ#z5X92@BTL*BLOm$*#MvcS?MuVoIP{_WU@qUhiDVW zUu8tj5ToEx0$-O1U9(%6e@zbgpOzU{w%8rLk>>lL?P)j&C^T_-LW zo>yAe1dE4e8l-wCHqGu@GttOh4gGD?@04`KTC=N5{w-K~&j)E09C78Lx1sMr(2uIc zwoCJZ5?ewQ@0yu@)chx(@Nb_N1-0%Ki=;`=FaQ$!zG?1>*wQ}w^T@JNdW2eM%5Yi@ zZTru~wrI#rB)<###OW)T3Ku8OE#wvM z=b1OwxCbWuZSd&nY3S58Lg zlq@Dgp3=cxzY!yBMMxF7deK7#o?cR(al!AiX5QpQeU0NEHl|`C9`!@D?Q~%`oGU$9{0!yym$ehj+i>fmk{~mVh=|BO_IIgHhE@V-Sf9d(SQE0y#!{p0 zuE))lEd#>so&53Ir`zA#0w?fi&YacG-dc2)>7Du=tMYzLnM2XtWgV00ZelF{b(Hf) z!|7$xFY#c1(-y_;aOw~KcEe!golI*TAC*1^n*wK9r{bI~N@PiN5`DZ33NqRPs)%=6 zikmILFOVTNnx>v`IfGjgqw4nYKE%Dh3g5U8TgAl{ zfzkN_hK`R7BGFVG6<98HD92Y-VbeH&7HZBV71Ah(xHn+Mx487^l4R}6>sC;er-ltU zk1SP`#7Rl1|x*fF6Blnv`~oiS&KHHe7k-fQ{^BO(v*f3Nt6GihNDn zj*TVV<^03@tg11rTDm6MD&mhEhA5{d7XP=|zQz9^|IHns{KnxA?(Odi4tm15NjL|C darIb9YM`y0iV>oEw(?|Z=E+DAQ^$bAY=P&yva*5^P? z0g#~RA8{JVsxfAC@@A5ZN!y72y&$>>+60g>;S-1e_tfcrPC4ku$^Vb9s0d1uU}0qJ z2rUSsjs0;21p9uk@BKhmBQ$W#8g4?4qd#^p5&&E(-E)>negA$&PaNx3ZhHksX0V>tB|U^?E;xzY)XB*8SfT-jrT8Ah{x|^fv1J=Vxm0u|zX7SOy8}8z zOtpvEk3JO1KUN!Y{9?%goUcPWK&EcogOzSX2^LjjB;i@!s*sgxuQuVZ>Y)v8ifn;O z?O-cMEN8(*Vv=4E+XUybn>J^2y)St<>G>G}-EY45tmlz$vqC-ZrQ34WJ_>(K3fR|& z(tNa(Now9IWt~VR9;PpH%t~*kfen{zdcF5o=00qn9RFWJ9sLKY!14mLiF#_Dffe?{`6jyug}4In^Zd&HA$}GvZ1u(d7R6XH~!Oh>7iS zp|$;QJ7GKLh`j?fHSf?DANIz47!_60td4zjJh41$J0f!1S0$V(V9|TE;^W|Kccoo| zX!JmO@de+bl~eF^hBy}Sc8k4d?~z*1F@}u|5<-W9m`W7nWT*x1mBb#7uYbQgP}JW2 zSow=63bDnyb@}MT-$cEL_E&YN9$y5bIUNf+dCuLU(HV1q9IG1a*BDdZ8PlOA16~do za2k)TC}6*G4O`;U(u@cLj>Zb|LrFBKFsvRhnwCaQ%|SPube0O}2xX#6W?(K_URIAc zWoWYof7iJ81URpmb*%dml5443Vi|xim}?jx))G)X6!kH!L2wRVe7bPfb!ti=9?{pI zRb;#SjLmpe0ZtBqTS)jKvCjDp2tk@>+%@vmR9!aeLNyqOmy&_z#TgWPbuGDS#yusd zwsW_#)xvGrRZ+)aug>H%9UV)X)A=?e&o;`)o`6{q&qS#t??&DIC)w~c<@DobX}Vd@ z_xfrI)Gu{DhC~Jse^!4i`)DzLUB9GLuH7tzKiI*C(fN*18?UMsoxsYG-Y9H9dXt zhP(NG4dX7ZM*eHi4gS`HW>Xf^YfHJq8s)@Z@(1PCgqE zl8=f*l8i?qWdU`&my?kL*}`RxeEdF@&}uvPKn<@D(<4(zJAiFD0~J`%8hoCzlH*n| zor7kcie5ZWAlEd@9`)O6kzpFtYQLAMsZcP<{S6n8-1qJ?R@Dx_fXAgS*>l}@-VM)q zEdU<3x@{8>Bc@ZQf$BiWIwd%+LdR63=6;e7pk6bJ#@-HsQ@hJ^}f zeXEfN#S~Vf^h4z9n{I_|IrqhfNpct0Rj*t5nqW`v6F13P^)7xbxkNq@cAPNb-;E#mUKN2jrhV9`ht!MdvY`Ip?zexIv**?N9>Tw2ixfr4v^N zpwuwC&IA5hJ6>a*_=a2vwNU3|hNDI}r;JUAO>^ztVkmz3ElNH>7b8kOZiCDsrd10S zE>mA0SK!OBZZ{XEZk@Pm%D`rjov#0JTLC5N$O@N_{nKI z1no@8xC8)jJfisCyyd>KQfoXdr%JUr1btxg-YR!Q!~OvL9yUbjx5bp28T!V-g%!D| zM=z0^u%4WA`B&Ahq9wF4%G|?D1*U4a^kM)aVb3*4pNgO|=@n)je%CCHqR>}9mR~ws*?dua!FZ8R!;(`@gvP-1!}Z3Fz6_+s zs7pZ~{d?{yYwGv17H=h`eGTiX4JpcQeDDz?ELj_$Ak|BCD^JB29FC+8Brk2?lOKRT zm4oSmX84x`>X z5oFHlTJ-)D!lmloZIWHRE4}7_{&hi+!0unYI{;tWncmjA`IBkuG!O(k^Q`Mx2*YhGlR@loRHrQ_ zg~dwJt95mxOmCh`l7gNKE-#NCvSv?NPc)CRRuSOv!KKxX9jfv4Wr)=|_1s*!XfDuG zI=s&oBdDA(5XTn0!3Zlu@+1#2U{r33nyvh(q)KzaP|<>l`X;VlOJ^T)+W2Wap}+Qp zMZ|D?zV*T0z)bL=Bkh9PjD5v!L7%m?-57yd!|9dRrE^}VuH4-U8|SZ*At=-wUlb%4 zE_S1L4Nm5+6^)x@WCy@Zt9Urt%1n3YjCjwfA+W+J3SOQ> zIj27Xng`$k77JHtwSH)v+g5W=5~CM0bl>TvT6#n0AH84X2M>$VM?G+{pG+S=3xftK zS#=C+!v({Qy%we!3OI@_29hhfI`2-FUp6M; z!k#XbJAwldqe@{Nt-05>HKBna3o%zFz|rXRE@ca|3r*n!X}FF36y~ReMN6VprbiWV zrOR|7HIY`qev{4pLR~9c{A5P^7om^iw__ea+vpz5aN_mxD8X#KPKs4Cg|c}fQuGFm z5F>b8<~9MqW&Z?7^M@AS&(AJvB6RhJ4m-UfWgpW;l@D@P*z7kn&ko8=z>M6)vpf?x z;mX{vV;SIHh@kZ43q<|=!6kpjq>0uE`bi%BNqogK`y&UTGZo%79T8Y6Y?QE}a>a%F zIg5w2eMg2LkQ7O;%*T;udC+S1ovT6sVK0B>QOluvB z-@87OF~QbW7{I&>;gX@xs54U;&v7E(l~4BI?|FH7jwrzTJ_#DzviV3>2{OVkHbdZF79GQl7m8lY zWLoaY<3ffXX|Cw1B%ZG6M*j*f_=emF+Mk|TKPUfazl|=Wp6G9MCON1KAOR(8NF37bUkB+0p8t*cQ&lFDGt(tUfV`R!gz!;~Vtmz^8Xi|q((?gC}rh+j; zAD*Y|Hj{R?;G#L`h-;Qtwriwb*eIQs>rd;ciAMS5UXT7V!+mHhJk9h?*_jBtNMWdK z`X^OS0r*)1%VS!D4H?&{SneCj40-g%%_@?p*Xf%*Txg~gukG4L)TY8^29XU?#a9YSmX^Ut&S($gmdjUzual;rNC{CK2%FYxI>1k;MM%aa(Z|ltS~lm)N}^i zPU&QiBZE_3-lL&FyXa@I(Q~G;ol{1l4(KTySBGFOZ*}-es{77x*Ulh)ye8G`l3~xg zGP|-kWQ}x~yOKwUrfScW8~ipOW_uZAH&saSH*3{DTMjnPOO@O3_NemucoI4C3GE?Z zcaE+q+_5U^TnNuaT6f7Av6>f+H%$bA(>GZ1#eN={8b{&bPi&=JN4?DlN^2ZTf?ewx zZSOQc#cvoy71>&lK`HEmDA&erOWMgfv!(7qc(n_k*}W86@IwxlvKefW6LVLkdO}$F zDn8sIlw9oIWgtF*Iyt=*%#z{vfA~f0|j5%2P>_ z_?3MkuUKmo*w8(exOP+KdTICtImW1_?@Q#?l8I(Pzh8>`fSn?;@FfJ9HElobrCk*fR7UESGHZzu89s7QRG*qBW(DKQYfM$R z#v&mbauY+15l~x#e3JN*-M%5?OqF?;nm-P(5Y5{g>JBToR!ev8ZObxSk$WwrEJUGQ zvcu;_x{!*YqV%1@a=ViVVwfm3`?bhN7Xn-=w`9;&Cqkv)8CprfBf?^Ubc~)36Z$D#F;{tJgpv6w|QeChSiL(j~cf1~T&qU&uIBcfp6;0Z#1aJEm zPqOi~+qU+*%gu*v8aIu`Q`+E#LtHH_-;rUe7u#Gdhs02c3coU!_-XU%RI&Gb+A8M$ zx3iEQ*S>H}Ys4mwBdL*XS<~ESblO?wUpmRIe#x>NM(1&lVAAtjW^f;rT6D>gjs-gI z`}u)=AULKs-9-M1!P}K2obVG&RCtn!t$G!oZc|Qe*kOO`d3+}T@N>$OT`6RZ@*u@C zLkE&KcCz$3(4o9Vv1ZJ6T`aZ=RCl#yLeaA}a?nBAs=8NVTnYBm0ani%KGbPdH0G4# z=O zQcHGQjwi(k^z{>+BJ*Y{`B51chg<~1+~)ek;BQX#-X#dYRoT~WpP zVwOw-8XIx9%lv?h`~of-O4Li#b0(HkSzo zMH8i5X>Lx($x+R$--Mh*$h|ZcBEw6)g?-k}d@Jxn>(@rsqho2D6HW3 zx1-spk)JIY!}P(8S$12NJ)omP_KS^WD#!+(lD&i+P#&1;(6e0q9$^Z5Aq^aO(NvD8&0Rb_cOxVgBXo&PgK zei%JsqbdMd{WlNp1vJwC`QrcEPw;;F-vUtqLr4ICiYh@GUIai)^0WCn>+m7=TsH00 zC6af2e{ZJ&@gQsfz$1kL06GS8{aA)lFc2(_yw4ra?yZ+0vwVUHGmjuct|*86rnUJK z6d@Wx*_ng+_9QRa2|@^=3GP?r;tgd8Afb7N3Hi(Hp;2VN-mBuL<2x!yf(NlE2_k_B zb)ZW65^d5Xx4c1%h1jy|59ppX!g?XS5Q*>goa_k$M?9n!3qLHg@ecfr&c1)>#1d!O zyH_jxlkqEEe}ME8PH+hZRo&ph^-IqV^U(?Vzg}{MUO%WmBo!9eiZC6E&g{B#0}likv5%3^8<+=r=x;VqFH;h{xb z%(!S204V~T7+#^n-#d^(F?T)Hg1FdHCJLmmhGYrzI?!=OC%MWn4^qc;ALE4#j$VbLGn(T;B!ra=*GRE0-4B~|tOF2(<0h|O z+b=}*u4BqiaYl@r93KClWTWT1gv!z;|UY=Aqq|p(PJNoaqlb4&A(-Ku&^=4 zkN7bA{;i(PT(gGa3l~F4h5NCheO6(|bkYp*nOYaQPlcWzge@|RpLd2$%(aMrV%^&R zo)UF_9r<bC~cA6k(UN)gexYXW7QT<>V(a%1idW zRH#d>60)=NM53cRL;Sw#Z{~GdY}LpwIO~U`@bPjMXzV4|B#?1`ru&wHT5)l}UAFtj zTxV{yP*&%;BhMQf&wXwlL0JJq3dRr{W(NT40f3y0;{+MdtTuY$MI$21Fh7^~7~Ayz zSOKw*Wg}k==Bv}woa$@$KKc))MGv^ zT#_8I*LBI&U+Fkl=+Q+X)JP8f;j0!h@(x!kG-I9O(Nk&0KT*BV$R||%J6j|EnUNqUz$m$bwtFKeOJj~UxdQ*{Uoc7_S@<~ zWVSfI><8155A^)Mmqf0xbaS6_I8ktQR)GQY9ObP0j#{N<+BA5Ni6qzyxN zw5QGvjV)=ZaD5bYl76xf8xWk78G5EIt5W_xa7;#aIJf)lbqS?IE;JW`OqHHqeQ(bi zox{p}y~ZqK5EZ^9Op5@23T&&3SP270BYav;4DH!C^V*+2f*4kki&6BRL=wgrFG9hMnkB;R~c(dw=7>6Jq+gCvsO zlj76+dGllf`NQXx&j`&|eETv3x}+L$GK<68((0lyL*G>XuK2Kim>C#`(ajcjh%o;u z3BefCiZHqqwzvIB$jWH?bGt?0nwR~1g)uZ-A;gv=62<)6r%*J}q+@9S)#_O*fIbvi zJKj1HQT8mg zA1sM>vH>!i5sjF>G@7%j(!k-XJqt8RN9|DB$+xn6Hl_YfH#$Vs{7yBo2rU+!aoQaQ zJsFB3Ra|wtolt;FQ+$s3xtvppY)3iY`iBsPs57XM5?`ORtR@44MFgp+kw=~u%aF#< zCbiksYXd)1O=sK%=?}&+B&0DX8#^`adV+zp%1#0L(q*EZxY77s8S3*TPVBg`S=_rC z4%(0LVTgbm0EqblFi*lTCrrv8lC;(OM-cnhBq~B0hgbpw%Yb#ZqKflUFwb-D9zFe@ zZ`9v&#iZf3r^xCj06nstade~>5*UavHsA6jyv+Y^f$n0fK3BG-1=m4H98VF<%z}XM z`ll&Mj0XJpS4#=#c&ytJ0~MCOK#3rae3{~*p&hLc@k1Gx_wkrg%<3;Jq8zQ5?K<#r>K%K+&SM# zm@F(Fdrp(iSQO^l&MJQp`8>Wbif>vD9CElAD951|lG_y`W3--e@A*^#W2H_m^L^^LIj-TUMT(|nqO88HZi6KFS& z3G+^~;9ufYs9M?rB9;m}sKH8*D`b!?SBU0^gf;tVU_urvZYA z*-;q2>tTuM^xw1}cADGX*NBc`QYV36l9>bmK@7+c?To`6#Nygdf{->Z1qt>|J$l3LC^zR%>z~0tQVpCs@6N61V@F6b<9gN6a>s|<@pm~XVwRe@RH-*|fVile~%CQ;4_wBcHY*(vWyRyxTYYulZ!6!FHmVskEE{QPZF&V z|9sH2y=~em(lKk^ntdHXw1vs%7ln%~W`oQ4h+PPhJf2fV_&zmd=fmTvM?dtb?usSu z9*6K{!@OEAyuGc)DhzkMoW&wD0KwlWSdm<|$6s}=Xy@?>*W_$jy5)6cNB&l5S2?Ei zLn(t6+bok_5Pi<6V-(tLz0cVe&w!sswV(d$OblV^@{zfzUEwovZG<2MEb%Wn_NBz? zn0~<|!bRyQWLdZ|BH44(!ur1%c!`xWWy2u0gbG!$QmDFyr!ab{jhC9TQzkhtpHV$y ztlW1&V`dC&^^E6Wp!K|Mi^(=vg< zb~D-APzCj5n%u;s;dI-%o|{x=Rn9>Y3^9?9)|v&|R~)9+0eN>iOn(AbHe%oWz9jg_ z!aw^?A>-dx{T3wq0&Yuf1yGe_qVKGCe2CgI37wT=H=NQt1K5pLulnV2YB}fNacXWOR=67eUxguES_!q>WyKGQ(~a z#%C~^>54xe1|_1xM-kR)w_Q1+vU&-RmT)k6vgI(_WUqqCe&j|}gpAIMd*{%14WH+f z&cqP3^o>`?U9T`bXD5MxVj-v91_cg<6+ENIgw^)4?=C@r1S|-Ef!Yv;%3!N+KWxIz)N?IFNl`~;ef^VP z@vgP}X+1t?(2SRE5JBZS^t_ca)xvvJBoZF!wAdl8Qli$g2UkGw<`)=v1rFjnVFIYM zAD;w^HV_36UyQ7l8WIpAB1b+iWoSa7ZM2Y_rN8Y^BIrAm42!EqSSPU#Wk&4B9gir) zeP2xz9egb`dF-KG`OKriQikASaV2=iuj0{p_Cz}Jb9cf7OGv|EbNt=`lX>8=cx%r| zVD1;_v zq9!TL7qN;Wm!;+ zW*P5H@KZS~y4oD7&1KzRA6;SD=BtS})6>iihg%3@s`4~W^tKQmil4X5wyoQ8lZm?^Dre~H)H^~3*JxG;Uj3?xnn`f43ej+r8pw;XK?ni>j0L1vyjHtm z8!7Si-9fa{SZa_Cgmzw>7Ohi z`iVbOG=>}3&}Rx)<#t1yZD{rilHOyxrp(tr1m5#uz~_Q-?W}BQx+wVj=au@vyNqjU z!|#;B+TM!GQC8Hu0R!3y@#-t)z$WnLoQMZQD)(@(UqY`U#-?_E+Z-#=l6xwk-unya zjQNiV3xLdst)`Pqo{FMJ!WS^A$%_7oZ}wsN2UIz7blO^M zHdzWC7F-g+wAyjKg1YO}FD10k9G)nM8zN7z&W*Tm$IkUtKIGZ;z0sr)n?+&fwHy>>{s&EKAt)#bz;NDp`^pUXD_qLxfw_zaK}CzOf?1;UP2lmXR3m-n zdmUtb8@yQ;Ek#LyrY$3@&GjI(heNO+I4EKNp%YJ+7UkJbv|UC$OoFa6^Y!=w zGe>2TvAnVb*2&DGbz2&_cm%t*;?wlOw=u#LFV=$@e@(3~XD`q5>}dJa7Wgf{*m{EJ z8OpAs<0kJxoWS)KOo77Fywhm|(>v#h!-7;|u6ZeNfm?zIh7Pp$%w=%4z%Ut-wR*n%*mT5zfii~o~39z#=d((VpG8_y=pUx&cG2rKR}8rSvRbB#D0N{ zCisrA(3y~uY_hW{n11-r5D6`3*Jlas9^@_Y)>>;1=jTBqb2C>%SXgzRK9y5A(6!Y+ zZ=X$>(^_k+N5~}(uj`RazK=3}kmTfj<3uZNd<@b&v~;CXYu0Kd)9XiP}X9fR9y z666KdT6RhTvIc<8p-8ON?V!6}$=Gfqk4wmGx7M!^xwd&Z;sw;)K-#T{YbQOAGE}eO6>vVxvPj%`Qll@1J|QV`8`im1Utc&*PqQ$Apl?- z)%a6^&&|f|tv4<(F{du27>*D|gGc4djBiaBOl!eA_(ifT)T%&pGYZqZ7-Nb(JPQ@3 zl4}PA<{vMzGPc!>{g%H9*5z)E$g`-w*HW=I;15?!aiIG0pp1QfXE8I@viri-C75AUM??jg_)rK~+6RlayVmtJvWO;uY;!SaHz&?P5U3;DGDn-PW_#}XuJuGy zdoJb6zT79;<*}>daTZAwSaw=TzjSRG4w?G4M#=sdGKoV}M~qw|tW#NDUilNN(uPhs zCy5sb9?EH2n|!1(k(NP4;%=AW=ZkJB+azHRxih7SVffsg2Ly4+pgev+WV8q)7L7`J z;Z%|rOosG;c1VQRhB%#Sg!Z!9X zC;_YgR)LOI|HrUGgm5|rZ}RGo=f4p*o_}qi3Qc8ob~E%x&qT`Aa?PUXOCObD-(3D|Gl6zv@r3OD9TPjzU(g@R zD6-m+p>w^_xZuFX6|5N7L{FZNIVIS?GfZohf)7-I5c36*Hy^A^#e}ed?%S>Zm~a9> z7vbJPR$xhG_m0ZEGMs=rU%sx6*jy7ksT_@-;JioKkhIhLxTCxiOWCS!_lIlz5cMg)B6gwW$E!HUVRLj!7#O~ zFdw~@n;a_b)AXokRa1uF&`im<3=MXX{lGYDod&vqQv*-+NvB;3EUBLJz)Wxe8?1Rc zT{^}|i7Ro)GQqJ3i|8Aaqf6GuFBaEeB4u4=V~$cl&$xzu?NdJ*FG8&vQBFZd7xmg> zW!Kz7uZC!(ogvfI-4+UH(as1432jeSPV?TdJt?Ve^}s8oJ>dBbI>hjBYfNE00-eER z#9w%cE3ZGABs*plim%mFOc(ur=(V86)}Dx2X?tMI#I$YNTdeVS=)qGqQ&y;Ch$DX; z_!3ZTv;?B+)QkEjNHtdf=ABwwm`R)1{nE|CQR^aA|EjU#k&b6Sg(lXiac!A{$@RnH zdvMs#Q?=+~%+xJ90gOam&LZyi{o>#MF<{WDGWv>KW=bcr+hAMbS~0 zr0CKzUrYve+T6Ih+(;nMU-?JZuO)?3awYosw&@0gk;;Tn(#vv<9jmZH5q&9l(b;Ja z{kWlX6TL*-D(7bGEDb*P+6Lm}&m%XA(e)Nn>*PY6V&**-llwNv_`Zi-WIS4d;8n>O z-+uB%c|pW1wy?Y;2SW_|qA#8VB!v_z8pMA%VK)vrM&_1})R+ACZ z9P7feMe!jZitO`O^k8YfIMG-r`ZutGYkxK{@Ta28C`P2OUWV-- z4%|R_a7XPMbq_o+2>hoBxIB5@PJwsnt8NMa(bL%~|8_QI>TLH_6(8FQbRd|CyC z_tlgQpPDLVb#$io#=k#rQx@aT%Ta%Xp1gSRiIxZvvu*)_f& zVBb=75a?ZX*<9<<`{?}l(0G3#uU6_gxC@6S|Co0T-u3n(a6BG;G1DQ%AT(a(L(!{J zFa6_uiJ|xIt4b-ait*LJ^%@Y`*EYX*YpwzhsDX z+PIXw`=UP(>!j^8@F%|tZA-dn#ifp>jONj%z@Qa;nA2?dO&>ExsJPYh3{5qF!*D?7 z_-4|9p{IN5Y2>{nW|r=wz>1>4rL7%-G>_YzQiWB_b48|3oj+7tm>EGqK}h14RNY0b zS=DTW-a>%R%unbyw9gY{yWYf6xYkwTY&7=av5VixpKK0a{Fml00MJd_Sx0*gA+i1% zRr7dHLYioKRWjkC8%&nZq5OlBfwzHh6EF^*_kdeOP&0UK_RE4e7B)e)o8`TnEi7pD z90gl?<5?4u!3M69Y9)hH(Zefwq#TX@eI3?{5AL>A`tKfwXfs!*j{gw#O*Q@HpckQ< z&obe1#5+w_8Y(Cqn7-*V_is*oOS(RI=WwqOUi&HEhoO!jh*=9QG^V$l7%n# zdLtAN|7}s@WJjL(*V75P3>y`T=j*F>ch94uTJFQ<1Jpx=r#Yii9DLa>kCKjkXs?K} zX3#T5P0a;;e62A#J2wJhD>OR_V!hSs!CQ+1zI3{3JI|Q5D1K4qs7uS&k_i>wgMp`p z#>I#WS(zRDhKb;!4QSs1h9|Nr8(dv6HlxWEeyKGIPDf`WLQ&;krY`UEVx+_^0#FHV zSP}NMB)oo*4))TYg+jJ3N^5%3bv0*$%lo7>_V?7QdHN4SZB|vpXu?~j)k&4)!POKVg_Ig?V}L;NBeLq=<^%0Qjyf^11IYH6nqg#9l!qgs>j#z zB|>drXgk}goft}Gx^mwyc3zmugG}HBn=sG=g4<`+T|;beEnS8`EQsF4ec{0|XTI|8fXich+#1fm`X%KdLy*%~E^_?vI47s+qTCxl3xc z#(wJh9iKstu=s91K?k`jwP4E3vRlWK9tOWngXh;dtZH=FYYBkjuo?3AmZ$O&tNQ1= zFq$RuqcQXtm-ROx=F~A=Spl;qZyXro&A7y0h*OmB^&2Q65rAzfI`UFH8i#S^AQ&c* zVCfYIJ{lgpER7C?gS9p@gFrAIo5z||RF?iR;R+Lp$wu8VN9yjC!akOHNhJPbyp%IH zJdi83p-(G@xw{Ojj7ENCyw3VP*PAEe0j^t|BYD699DPku2s zfz;~fvZvr63I0XUpU(c^XJ7-1P0{aP@EXoxq;Qv%4O};+@asRhxkU)V#kxQ8*j)|x zn}I&|+H87YAegjQk~1#~a#g3Zh^+rkoxFJ&G-BUIOpfxE z8Eq_Gd@=z!7D5(mt;ViLXQ_mOg+gmuBj#i`8sNh-IFLZZ?A$xVg4z0ceqT5ceBvO- zCq1;#arOCbI6jx3^44fZ4$nzD>Dn1tq+kXWpL8JQFce8jPis_RcW=oO5`@Ijv-GDR zkm~aaqDVnPvxbj!&#qB@0W@;jsiI=Uj#xkeRwPy*7 z8HC`IWvQ1DD5>0tD&g`(Y9ZGn;)s{ju|>=c@RAGWr3I&ME^MQ!pvDlt;N)z%6vQF- zb7=i!!SxX!?sG4{pj!Sd>ui~*{>+@<)6sje$0{Jh; zvU-&;keQ(fEfWs}+~i{dD_y-KWktvbmh%?kK2MsIPl2l;=(sf5VFa--t~r)eseou*;#P8TcBTK~q!X&By)F9D2WMB+kjbb6r{Y8{8>F1PV0c5&} zSED%s8=U9aPYLmAo2`MBS<8KF>qX{6b;Z-YCx{a%XjK$-wOZZ<%4X!TmIXvDG9uzsv&<^JxwHU6{0 zq!az0fhP~TE&&IsW3Ot?r_T&Szp)4rTZ|o{HSH0;>tf?T3Zlv_B7OFIMuNf;n*)`Y zjiyAnsEo_9#1f%1Ooe~KM?`^JEQid${Vgf^XFOZWj<-IOEOaX15izGPcS zjie$a9e*Uk!a(;EW$l1)=oH6*mb2-h!NV#Q(v@UrJR#-!@p{^}m2!dGS(>*N4qww! ze&|*6{BPV(>pkEw-yfbossmXnMMVV^+-c>ZnG@gO8_Ta9~PUOSa-hiBF(eFU9w_w9^Pj7zrrm`C{V zbPNow2jAlg;bE_07<(d*Y#-u}6j2P6;Qbj(>GAzt{n7<|l(25l9&1AwdRa_kLD%!J zrw!iz0zocPO}KLf(tGZV79`jabb8du8lVU^7D+-jf?Q^3`p9_Yw-ZFtp~@mjp$LZh zuSqrYUGW*}y=jlt+wwtlTY0&%ZIJ|22x({EAhXifcSh2~)7&NaOr%p6JWIgR0oTFN;M>l_C;5~Xt-?h-d1?ye6`@0E+e z-LufMO7_mBVhT~8R78aJVJUTG0AlvKr(Z&d_3ip-LG*|jt(9~C8VB~?(ebY$;Tcz3 zUYwr1Z__+e$ZwqvZ03^xF<}mXcH7Rtle;PzdJ#@r1aSiAcQO(r42&My|3CNJs#PZ>~g^V`7RmZ2CXO)y8oEL`2@0opFjBQrxTz zu9A2}qzx^b$cw0x!iLpc}ij3 zuxMvj=ju{=LK>NHv?@t#?+pJPXA7YgXO4R%EB4B?P$qXAg!K8?7e=~;oR{KTm0MZ{ z{6oSOGtU%V!gb$-KyL=VcKnLSkO;_Ca7F}RGCd`$%`{fu{Thqc4yxv*fA=8}k8j|+ zoY-#QW9PG0I9Kj$s0^W1Q}i*j<*8|PY`YfHwyrlk_;?c5{R6uH9G^FE+|x)F{Hn0fVj>>bCKz~_0b9?NwnV!As|%Ngk&+g~BsmIN%YUBl(z z?b4>tyuu0Yv=T}VUzbIodMrY7B-wg`wzWY|h~bRn2JlX%LdrTmQe!lV7{?NmT#N8A zD}NSrxbTr;|G$3Cb{G<1sqSbmr=-P#E^fW$L#UW9eZ;k}hM&CmJ~MjxH&M^)BQv-n zSitKHKpmbxy>I(K0T56%QczmTS-qrZg%Q7xJ4B5}<{(TZVG5w#N`Db-0sDwxE~zOp zD@l%ztJYLzHr}p@ExY95vDj)P{BWg_Ecbj)Kt&==MG^lve8((A60vhM&%{a7E+K@_ zywj-39(N8CQ$;vTv2M|?kn>$G==bEETnOF@^Mr~HY~9~JL*squ9PT>0=O7&~TVZ$b zU>W1svW}aJC4Lwgo|_6%LIvC)fu*`se;ElZlUI9-B^o(Wn2D^oHG1Yd%nE2wA&RBP}IZk({dMdQxE`Qeq>vOL)HUIf^Cit)(&OEUN=!suCsf^=YR)I8Dd z%BeDt8Z)AK=MtIr8yyNt>8*unBJqojJOQwdK;30pm)m63um|b z7#3Aep1?nwa2SLnWUF>yFF-1fLT+ld9!c<+FMDK;L!(y2EEbnv7B~!Yg@WLml*Ace zmJVLM>Qq4zT9jC}(XG}F@zv?DN6O2!m5XfQWLnjG@P{K~#G=i}i35poa zEC+(2O=Xzor6|u!0(bM6j8T)B%naUA)OS2DC_e1pQH!{TG)6+kw)Y0j#64HC%{WVc(`qTXvPDl1hVTxqJSlZBpSZW z!D^67w+%hz@}Q#}6pe#aknMeWLOC0E2n#(5JZs*3 z_X{VECIukwpti!=aFS>bzG@C7T7q;W2Zyr?rFl5D^K^$h5~IWiN>vafbk=#EAut^G zR$)Qb*F#qvyu4ETOhPI%=jor%mh9rz*kZX_?jCxEo>M&QDvTI??oK4_kBo|mm>EKk z(fqbczB@*5XNx5&OB;=dh8;iFo3kiv50#m)ke25g&fHtr!3BTk1x9Y5Y0humbEAQ5 z!^eM2I1WN$x1DixlC9ElaCl~89Zr}Gw+U-FG*+cMm-$4sl-lnH!(}BIy+!WfG4L2= zbR=9;YELxLJx?)!m4sR4NfYZSk&a59`S<9M_{fM+xpeO0+<5x#p%C|$ZgM@nsKpEw zQA#_b0d%Xb8ZN2qRs}rygZ7#%Qva)RlBQBVUz?e0JLxB=wfwNPcSDZU6D8U1n^#o@ z`u<~)DPjfQskA@Vgfy2;Nx$B`Ue>NlXAU7PW`C64!FZjDS9uQ(^*prdx)Np*wvR4j za8HVFM2s@^c5D{%ipP+8XSpDJH0MG_=tWU;G&3R^6h5$wz%nT^lWGW;V+=voA$fs% z3-qFnXUOPHwFa2Hl&bt-=2w@0#uf3~{^B-Y{*5GxpN$qKIQ9($ODF)hUWv@W1*Ib- zoXJ(m`bBaHVq9+bEHl&;1iCj+M0%Trt*A0BN>ROvA@#j_Q&KEVt43KusWF1$9rbVOpBVn^Iac5~*a*X)8W$Cl6 zxl!LVt1YD9nEvIXpZZOMDaDdflXyZ<>6kKE%KGW~&rka);2kSv`%4oB5~sCABw=yBWL@v<8jR4cEh~odw}0V&-=A71#qK$5@RAyS zG+dp94$vZKzgNr_F7x7KICPZLRv>G{9S^a}!eY$V@DS8l4Jqd38a0DVDCY#TI%STW zI!=$N|9DIaUgWs$K@w?OZ&EERBKO{6mOXm0aJ+AbAAN|66N#+RqE^Q0($9G_u_xA@ z#+aliHDZta%eS1yL3YN*`u$m*|6|l<;GdaH-SlrmJ}*qXo7CzGZUZlUYAax0NnTv; zOn%s?EDY{s_~pSDQKS-aaux*fNFYpkK~GynG)e5loyv`8x1Pbd!6!sEE&a!s;JI(& zSeCk|%$JoUoEBT(m53%auyqQX>Qoqy>SYo(Dip{(qHRIC0Lj%&5(u zL{xrgk%*fTLu7U{jwVKa`|IZvu8z7uf~IX8AP5;|bA<@iM$!nzFu_TcWFz$Y5Jv2# z6cWI$Ra(4z@Hoys{;XetTF;SzRRIc*I7k!;hy^wL1m8Xf>%LLUESOya!YBX?ul+~6 z5$-=G>;ps;HX8Se0!lJ;=;Dr?I0WzEOmN09C&afCtL5{uKW&L@-L5qsuAqnEn(U#f zsfZ48aMeK9myB`4DMwjxGj8;F-mz*6*RUO!*RJKcF(X>;HtG2fFhvg?8xWzq-RZM^ zpT?xF@0sr~5igcdX56?Q)q60Dio!Lg#c!79%F>I1EaT^7LUyy=dM#RVgk)Y#5||_Kwn)0k^p!-IeA!Qc z+P^hd`ufKT`_lgz+D*Fc&|>vZbU&+$8a9V_=~Wexg$NUpW}fkqX-|=3aqP(k?w%9w zXs%pBBtJ&pHh@nKFaHQfKC}77?Lw`T#7HJzt~K3nxpCi<6Ww4H>sZfp<5(G+qEF;% zU|}AHUc!%z5as8)5iE_J`!mdZ^UAWN>0Ok!(v`%=+^MRP)g4wDbFKt}_iJ2vdh{Jl z2sH#j$bR2snFFlhVXrp>9Oi9sa_%eT_-{S%`)Y9zCrk%{1p&Zk5dWiZIq;7OH$h0G zmg?`E_-oYT_EjBmpApQ2iov~uy($&U`&vGKrixjWu~mRa`PdRgU5|)VXdQ=;n0huZ zzEXlR9e*vwEc#KGeT|!FPkmZ6QB&P*0<9`QcB0}3|B>f5Kq$rP;DAlq?(W5{9?fs% zJEg#>!!D>Dpgr7ljk&UCs+m5=8YRL~tXqt^l^%Cqeg7WQBERZS8&5#(h_)b-9Z5^(Mmjz>gpRV*p3tHN)1GXOFr{Li7Sd$VFy5XGwlMoHBYouNzUx0V(Ed0dbJrXZyQFG|KmEr9sI~F*y&bWT z-^5;>E6O|k37>D z`Yb8c0N`sOa?=y&_Hw{ZV<&oxSS~sGlGevSLQr_K=o3aKl9+*F&M!5B^qvi-hK7y6 zH%~2r*)1KjZReB1G9I2<&U6OmvZL{LM+hOG*1~tbS38z3z!BXSxDQh)<~P&_``5mn z?54~KSHMIEj8XC2sftyjFHMa$t=tLf$wY zbwZl$EAcnk;Rm-}C<%I?tS`^sie+onQ z^^-d}-82^czEl%l{?q`UO(y}~I1}&h=kGPDG*E2ksJ}B9{`xEf(-6GZ8zD}yO{8Ik z0FqAa69BCZg2n~*nJzZ0Xjly6hS)iGJFQG&sfZQ9=0ESS10b?ck-q zy?pVy)hQZg9Hz(Gw1*AWAO723VMRt6)k|}P*IN;FPMK>ps(oTqdMj1Fuh*=}!Equ8 zJiBCgS=ZGn^@zRyQ9HN77)DR3e!)Cn!f1#R^#La#&tp&tYw*fsXaZu;mBx0~jJG(< z$cZVZGdUvT;el$O%&I7>*vH}DLh8F?ve7W`k!n0satHj0Z!eYl zqWYmAEz=mKpXqzHw=si@x6Ks|8`!4%BWmpSq%db|k3|5}TI4gSmH3s}?} z42li_`0ev;7A56~FUIolr4{hdSp#BzCaMNUuwXU+8dflqTA-bdgS@>PLt*B|^A8sc z`%)QuqTA;y8?g7A(`G|O=!rDOeuSn%rWz(uEmZkZKTg!M!F_S<7xvb8(K&d8##gME zKlh}jq+B1mMzA;0)u6PzA9vzicvbT&I{)hS;nV+hW&kD(pl^3?G1Ni|PrycGgmeNl zyFz;ANe*LN=wAILd=TtB#KgJQsyW9b9zIT5+)JiyI-GbkbFJzo#R-@{Z_GyGXFk)r zhYwog_G~J~osw#{&$eGQF!vvRUU3|mA7pMpJ$)_L-M@TEbvJ=U$ui-pi6+7Hf>I-x zL-#~ld~CtSGT@R^oEp4ulvxdep4+N9s_|9jVD25+M`RLs7rv-R{Y|UYvddqdFhOWc z9$zt3QXmx8ofcy9FmanC8uYgpap!SC^nsLbZLZ|-?-&7Ge;Ys6kf)h-50$13uDoJw zJcb36`;zqo9FOqr$dr!#UTT^JOYy|a-n4%D-8sciFBMZ&)Fgt29fP-Q*twNUBliZk zWJ&HrOgwR8(THNd_;Ei?QnD(jtqdW@m%|ZLa_cGwtF2^I!JYYmbjjdG4Gs=OeD*3y zgAiP{_d4F{vhb!SqT*w-!S66nHQ|UJa^huE8fmt)4SMW4g!H$BuA78hY3oAn>0xp% zlcOmm!Ul)Z;n0Cx1AXDpaB)K=LByxSzh+jlIJ>2K7K9vTf^!+>F;p2oBy`MO?>uyt zhKHBY7qN{kn%hsozu?P~LlIxAbv2S_t*?jPpDaG)wNBLqo?a-BQWOfE-9>KWnzpTY zmpS+$M*_gJp5Mz@us)qvRxFNRadQT;3bj$RYwag8_pC!D*p~vTdIaCdr}=5cqTHHGOA9;9v>E7xcu4!$hs5G$H0`!ij>!tLN)&t^&Ih z=$i;tAHNzB__%x|7fL3`ma6d7@vZTAxMUkoJwfJguQ%vExE~^p_SErCb0-_1=UHZm z4kuXTNKE_@{Wknx*ZJlnsjm(;HYNGibWshuYC@+-il1hlnTE|P)Ws?`@@K&}}rf=#M z0Y+as`gJT+wg)`=rw~)wjOj-quw5+v8o_LL-(+SDR(0_;m6E>%28Y0Tv>%;q30@bN zQD7nJTbk$=w1&4%dnlqG83^7;wqd8oiAsnLix0;^kU-9dmO%K#|H)0x>NJ2T{CL@A zS%Q4?lOw4`H#sgd8G;+npi$5o&Db&Y8o`{M1!|7Gj)NdBhfeS=yO=NPGwd}TZ(Y^h z@0NDP*qbRA&4;TMA&Bp9-HrL>dqMx3l!jlwj8DDsJz0fhgaYu*W<%e7lrNM z!aKOXYGGV(Y)U~JV|hEvgYzHYOI#QLSgqKV*{-5mrad!8FHm;kZEL`OC<=W~t7Z#Ys;zBxs1L0rx&AlT*@*y%$w1#OWvj306L zVt1!Il)`RzFkfHuY+cfLdSkG~gI{?!sImOX{*&Ow2rm2uZ)ytQ#Wrm7y;N1wc{b`N ze=gcR(h%PzqgOMwC-ce{Ud4oip|eY^O5{^zE@`*#hOMgEHv@b(5l{p7HbHMV-udpO zSTwS^8Eh)|e{s(R0A06KJ8+UC)!I>d=8F4_a4Y`>yn4Q7LS@s|ozC~4hMpXl)q^0< zpXSF#WLzTF17f~GGEp)mB#09#R8j5BlrF5ts5+f*`C*G+(x42e-x~Y4B?#Mg%{pfn zUgb3vCiDDd#np__+kPz({y}-JCd1*f^TkWI?Z)|G)?VxM%+8rG=2s?^!!78VTCe8S@`enf6F(FUniE26}nu7zS`EPB6#2WMo)gOOrzoS+-EA~P363#vbwXnSVeQHTzlbt zP2tQX$`O$#S5>sv3dP#n24TmNf6@2?ZOcREInK9nIe^P%KKt!ozBgDbQ^%ySuI0K*vD1CRqMy!Yc5Gd|_MrP?*M z@qG2hC?Mrxv71BRV*ZuN7Nh5W>RLU*Rz&K}2a5Q06t=VrD>>#g)wuT3|HaZ(hPBnS z%_KMk8az;Fae@?gDHhz_i@UoQcPXyL-5rWOIK>?bv=l4uZ7D_brSJ9akK|`^&Y8XM zo!yx^IAQig59j=rcJY6r?r9I_gBG8@ydM0hTQ#nH=d_>dkg00&0im`nfqeFr7eZwV zYU7;YZ=zI8B`jzp(tXFifN5?B{xA$WtL@~b%vzcbWhQ$Mdc-D8?K*6PbuW^y1jq7O{bl&w%)+C9Q9< z+&QSqqlI{dP*mb~2jpcI>RU9V$@^U(i|V=yT9C&Vf_fdn>_vqgmnXW9xj290sZ_w? zWOTaxl?)ThjQxaP>Yq?JchG-)C|zsD{bFK(5dScfcbB2i;WutQHE2Wp8a6Ds2(+6Qv6{{CtG&e^UX{-4zVo%de*j2t*Y&+CHO~Cy26GUKDpX~<`peRa_8Nioe13aeYpMWu~Y6!$L^TNrzyEcwc z<99U6aLMtF^cMiDv`lrW>7%8J8PF65$DH}9RWzQ-A?4O=01tRt2X0mCE5$=dd*p*@ z55@xZvm>6%uMX@Lv|PewJvim8y*b}Wb?3l^V#J|P;MViTjFH*EnZ*lzGb&!wUDGr| zfcC6B7_PEWY##;W{yh@maM6@mI>t@#xm_Yuzem*YziVYHkIZnc2nAGUo-*+%>|Yr> z0{l|LgPab69Tv%HKdmvzq?(b_Yal%9Z9C))tG5jM!u2#5QQRwGLM_+OI}ENPv}Quf z4iHExzSV@$0s#>XKgahjOyxcov6az}Ir2RwfrQ3XL`1r9s6`m)R&GNma9%bLlNJtB z5BU1W-dJbv8})fL_0+Vn=n@wm*hlzW>DR7A#{8ux3_zc`b!eg)X)0<4!CD4?43&hF zWX3Z>1rg7aF=05@3vyk}xo};UryWwnLmb!8eEGo8QK8r|`Hx9(j7s_0SQruRzuDJ+ zt54_Y6^^UZN5T6-ixvkyy@k;LN-Blv^*C^Q za$qm+7>582LX8DGQ(}g3+Tw+#B~X|khN|&#>W=y!tmQF1O^!#|5r63><4iwqkD;O+ zKGFU(*VbO{kD`NeA*~BzjYZ z!I1a00-7-t@NIVU6HL&UVdE!1yfwt7&a_Q)UaQT`XIYCV%zUDd%*y#uOLHhoK|{F% z6jLC15Z>e#`zjoEN5SO&F-d=ED8?gX0!LbyrYm?T2QA4hECrtrp<0VLb)BXLAh{y{ zy}qFYM@@9;REcS|IKu%ktqixn6#6i{6eC;zZ;a%`s{{zs8C&t{%+bk5{T~}ZilB?W znJMB%{f+fmITAd7MzK?8j|7)ZRLr6=a=-FH{;`R0?}yXbz!I4fx2m0!r2i(p5adK% zDzYN+J8;1P%gB=a6r=thTsRba5Dj|$hTzJ*;NwUXwBU`gHM{VlSGM-NT=RsIY9L7y zTJksKQV~hXFYq>sq?c$YGUSw4G4e*&VCV%FSRMr@;PCw_3reG!<+}zy08V!9RZ8~= zgqBen@A=-?wvA46yjJ`!O)hzOk=`)UfKG=pKAcQ2Wa`YDB{N}W$+?HL+Va2tt;fwm zfu-h;Q9k!SyqFedpEnT;{lE5cVvvpI_@(U-VG(Rj@IW3)=IBZ93#21iaN7j3@OynWeOdWZE7?g zr087kZoGeliKk=~JZQViSCSe!_XUS%!Dlwq`OjUH3Z5SQox#6p5fjbI!O_(Y&fvrq^!fsTaYnH%UwTMm2_&{QSTfFSff~qj_F0^ z3Z7J}FMnlwJxk6Zh9bKYRS>lQmIMFBWA#3AU#RMHd@2CB0zngN>uAP=kWuqm>kUeh zCLlv`EJCfO}o+;NZ6@tNC>nS~$1fFZd~Gl-M7%XiVw zm%{D|ocF@Z&Nb@{L6?nJWx_wL2x+E%uw(yc2DbKy0pT>q z{rc`!oj_yBFDli>M;x~!$F3s|LbcQ+GU=Rq#7}yrxmuFT2woM3R$)dN*zxbc{&6m( zek5C6d0LbZdb4arl4_}d?w)w>yhmi0Tv|LGrq3v@OkCYw z>5f^tXvOn;*&G9VLj4vu4WhB$dWn?$x(U)G3M2fsoNm7(Zb{M_6$Ki6oEo2MWw&m~;)b7ZQ@%4^1ExvyJc~OT8J=g_;lT3x95z4KDTLH|H+DkxZoU z6Sav{1z&-c^>x!CaQa;W+qo75J&wm*Zf>`3CU|l^V z7SF#!rP81YVL-tqh;GNmN!8{nYY*j}SbW|G&`e0gbcw_s#j-;f!rVH!)7 zU;4#RacoA(#E)gd{GlHh_M`kPMzb#^F(cI^@1!Zz(M6Wxg)mR+_oIq!MU-fMe$}ds z;|tiZQW`DL9I_^V-vzFheO}2c*fmQ$Px#iEU(XaitXp-M<+LnH-B1 z4XsLq+V8LIE#(6oaGLSkGsE3-Dofqb()&#idlI^_Ml;d)IANaJ@(;p=*_qfSN-DPr zwzOcCvGOr6onrDJg&rv)g)I=TBW^$d6|2(O6u{vcG4W?OC|2?JKPof_K>ekya+<^S zSF03j%Y*zSA-%rnd71ByDQSh*bUV*u(MJJh)8gM&U(%9C!Y!X=Zjbn>7A*ER1$(|sFlje&Aa1>NiRDLk(JI$1M zb|=%M;Y?(f!G1psm2Z3+Y8J9IEk}+GabE~)eq3##cQ7NuHo@x%LLLW@D^d+%Fs5~$ zB@xO+v%G>8{QjvQ!-&{#hGp>*$z`i=-KVpZL3mjZCr1YO*Xc)8FAK<2O1dF5cmbPD z09+Js50F2G3Fq)#rB{Y5t}sEJen^^O;n`_U!yTVqb$tKE>>&c0cVmwiL1Ga`a^oXO zn{#xsbx16!Og5SA5d2MN+~b=s%#a`9;D8?zL&e~vKrB%sqD>eF3;`kKRp#OnOqYvenm|p`2T#eq!Nv+DCB=+1qlHbv(IFG@HAqsS65c3RB;hlCJf5RwX6ljte! z-<^A4i)pNAi#C`}?Qmxu+;mo#i%q9;Uvth{a=`S4p`1o8&@=1mC*t%frjshG?-ozE z&!RNcQ{*DhgbCEahhUjy|Dg~yNTl&|;RH6zFQ-3YJ5ruD`$LU(^bSFERqo`pq(LN#S0M!Z6O@h(s6qv3!+IWOoa0z(} zKDFSsIB#po6JSQ;`q0i@6ZYZev9Nnihj$p(_maMsM=smb*~j3NC&`)t(<7?m^X3j? zZlwZ@xHc?tY*argDzYGe(R7Sx23n~K9iFaUvdBb86~!WzqMu_8`OXf7Ur&Wr*n}H~ zcxu|IBcJh&?hQqow~LAgmCPYj*7ZH5l=qPxk6~*hb!~ugVcQOPy$6Ao%=R zFhn2>h&DrWM0qm*X34p%3nzP@3{;H7;w} z{lae7hX}urzrJbJj3^!^+DleuM@2(FXFVNCV39W_smsAAcp+1e^fT7Z6v~?|j$?%kHbCAiE?%TevNErcu-(tih{$ym7T*1VL5NG$%O&L~mlL z&GnZ%7E#Fh-&WimdWo$xP^cH}I4)aQ^#<;%t-NYb^SJ*Ld+H7jXtj&^`(wqsHAO+S zmgaZ9B;sdZlz!nNgy5r0xkTYeW$^ZUv)BH%R|%4raM)u{*7jnMR&k6Q&fCkV^}r^S zh{i>_p>mEalxu1{Y&}gHaxOE7nt4*>t4Q&})M{UMl8aK#IwVr?0qo36iVAo?ly1n6 zyqM6j79Y3vy!=G+_b=R$mfCU8#c?Nh3B9NprXSD2lU!R1cU$tg{u*v5c4FG;lbN+f zU9v7p^_PXW-}2tRtJCis2?Dyx?AsXn=H zD06I|6>TShU_N(!wtfkJ4Z~AbE=3-*+waZA_l@#tPZ!2reyHaL`i6KOLCbig{GYD8 zcZszX#e|PJ`3YR9+X`zYtrWHI-m?T`^xZx`qy@aznfy9;s&VY1wD^L4&YnFus89t? zEYhI`<~hi|MAHWB%2gUa|C9%SWF@SoHp?)_zPbbDOG!ZtoM}neWh*%mCitV8I*9S+o?zJU#B{?dBT0vbxLtnuPf*mEsD|ux8qk~fY z>e6gG<>k^2DO(6T4~hxw*@UZKM(t{KU!l=LVhCfCyUkd?x|*B*?F+yT)uP9`mbD{X zkHqWTcF?N^Ag8{|NdqtI8KR~ct^N_?!DEgd!X=4Vo=x;lBPc0y`1=PK@@jVRdnZa% zklyx@7&dkyMGfD#VXdcG8x#E5NoW+y@&en*%xxXS&Ey1D{*9-ts@|P{6yp)fVK=ns zXqV2qG(p*#F_f-SafEoB(^W10p7meN6Yh10h!*5)ut#EJNh6_9^=XHN1|R3%41_Rn zhEkfUSt~C>G8;IH7k4|A;o&bHuJQgI(RIc~sKk)rTh}LFqZ+j(mj()9rf5s-VewG$ z^bzdgoQ9o@BRL{`Ogxxe3DlE_csEL2hb)I=T^CWhOyD&Fv97PP&7;{JiPZL;9MQL1 z{TonF{GZS52K)0}$O!z&^HUR*D>$}niKdGk zB7oz!&#v@*FGthpVs%zv0_!z`ZvMrNH_G+%srhbKY$$WcuQuNDkF4GSP{nL!Pi@~E zB|0AG+kyHB>@@l7MZB50X|12qUQps{I|WofQ1cydmYd6##p#u|xHxg6f8*wQ)6$5L zh?ihAqDB|;S0vOj(o1&r6`yp#%m4ggV)OE{&E)A9Fedi?cyEOY4Pa`Xb=#r0p~fYE zv-k6g9Jsv`>cKH?p<%sL1_J-(1?0%@$%y)=yyB$$R)3Y=I^Di*D#-Gxu%o^3t@e+S z$&KKvO(WY3f96IeOr_73A1Yc(J_NC;{QCI&j}~9>VttLKMmLeRnYUFL8F?4sY_65|o|Sp_zWKX1JGZED&Fib5dNAQ6+E5I|P~ znbI*z+5!B_{^BRo;yM26E6$=K|Fa^Ka!uydS=gsUlY2 z_^&>63LgX<;*2CH<@U7fKc$}!m~LnGJtpz!)5;kTTpPW}PP=mVb))%^API#^xj{$) zwFmZi;W_EZ- zkC3+6lESmHwp!!op$3`9$3k^=^ST-0_E_$h6|F>G_vOWmFx1Z!RI_sGmL#u;V=z*} zRn-F%iqXL(#(HFGO#LjUX^4{p1EB=ukrd#N8IesTbU@b>7*;v}5&B0~7XYaHHnRaT zukU09@px(MiJg@5!xzu(?A^P zE7mSddbKxPAS!2r{-y!bc5XY3+9&sWW7MPl{5)Qfn){Rb!>MeHo0x#^=ku)|#Pj7- zoB*a8gbmSGKgcCl^@HC1WpxE6I*8fq8AX#u7zIo~-X|!so1SPfKZ!BB6JwNpwc&lR zwY)s;&G(&O=4na131k;z({%itN?aDjgyASQna}b)#cssn)9Z@T9uh^(noL;FD&O(1 zDU$hEs3vZm(Pu|W#}6lzvU zs8lW&>^L;6VGl+aHuQObTPnPkkhu297cgB9*iDHnhAsWJ#$N*vGgA#;c z;S0Db62T5rLe--aZW~PD``BU7udGf86luFinV026vyv+Wtd9w)VVxLn7?|%C}U1S6U$~GiC%Xb0zG21`%KB1T(Hw2YP%hl|F zzbP(#M2tNmcpZQL!w5Jb`+bApBHu_F2`@XTBH!qC=7yY<&r#Q3)lA(3tC*_$&mLPE z(N=SKSA_Q;>bJg1)N|i16uELpx-{0M<^gEee%lqps$s|4;vj7%&VOX}8G!15>~`|J zF_!dLg)V5S1oip+=Ty2ou8<1eUXI7&aSo%$Y|6i{Sl(Tu25{>^`td?s{hw=7v1G%3 zsfNs><4y2IhfU$KIII1E_A1q%eKv%l(cPvK#Vj?`t6bv5p$zTr4w6)6tFSyeycIE| zU}hH3!Qe3HpokA%8Da@WlqecZYm9V5GH<`M4T?+;%d4C;^*~GL4LK6ekj9jg6#vr-y3jZv3O<s-5v z!}6WwRcq87ScIMh2trl8i%}esisJ?=0?!Uto3>HMfnih;p+H62DK3D`i^5Xu-?$E1WQi1yqv8LZn0 zUz^)ZFvkzhi1;wvXA=H(HXMZw@zjsZOJSxnwKaEYyDmA#d@%!)sOUd4V1bY0w}PU`W==h&b$0`5T1xYdNO7a`(P7G1B z(dzO^C<+Vg`r26f#Ez3+4glwSa1dv;0ExZ@>}*pM1ze5NI8-J!hqO43!)quBY|XtT z1{RE3)&Fks(;iM|$W8(oH-02E=slgJMx^~g2Mg?bu9cx%1>QKJ2yeaJX&&as)B-V@!gIcx5YESAi%%dk&xZ0rOpUk4`Eckvcu@wZ8Tvv#4roX!JYOZ^8ScIPyyoXE{R=$W3)ssFrBGMVqb6_B>yabvNZs(EtQv%HaOjI|pDanRC=2B{ z$v3N8_>?C1kQ7urbEn!TeDP`}@v{=uL}! z^M$-#ym2Zq9)RG4`i|?5ShI#-M75lfVd+cG)?MKH)l*5~UA^<$$*SLl>(~i4h*U2) zhmRIdiP4ly4z%&{xM%uDa1|6M1SlV50RY`cx`RiRX|wG@<9p3qvr!GorhZDHuco^3 zkJFtDqt;dQxRS4ZHs$XaI|h!oPgFtcFv7be+M$O6o@`Rq?F(PabQIxJCdOQ`=a@D!0Ur>JT2aO{M>JYe=h;x(ZN=| zbVa3OipYIkC3mHX3})95z*n<1h3*ql4G>Yja#P=VX*(IdU}KpA70MM@@4AETEj_LC zZg|(sF|qx;o$ZKJ6__MHHp#C#PxdMeh4oYXL&9MMsy4FrSd+l)&yI~&bN1mM=}%;}HThJbY%1CpVVgDMjMfd!VHd_9cU!-X~Hcv&x= zn2RCY%Sn351g&w`%Ml%ayS=MujFOCC3ny2;`p5OUShXj&=6l~7=34yE#$##LuGT&w z+@!js(obOVbb+PaFHWH@>C(2>h%b-+CXXj)_m>_BB}M=$DN2a;TO|NxDayxLbRjUX zGo%P7dGR}yB7~_Og*k%8$L^Gvh_h~y6i>x7f zdZZSJT|$*d6l6a#e~KxDQG%DcM(kQoqu6*+_i**c2k#t-aNN=GrJ2 zI#eKy12QtvPs0qHDnHaBmrl~@A^9H?LeMa66d$Z*1RNvpOg!YpAQ{r!bxoc-K}5*R zIkGa~!^?4$2zyIa#{L%h4K6uc%NNMCR>g4==Kq7^NdaIAM4S5^Q;ds8ofG15e+KB4 z%>{+pza@#mWJ}I?flcUQ$X;Dey44H8QLU}V??2_x5`BoR`dp{FQ5H>hPLFrPVb`$H zjpiJt&(z%V&QH#cyfy9hbdTKq3xlAlH#By;@3Ey2Cri^6PJ+C=S%sF1lhk@9oI#?3 zzXA$04}1zY3Nx@;{#)GcC_Tj6GstpIbPq;Ej9`ZXre_dE0Q8S$($s8mQ7h_$D!I+8n_r)cLUifdVgPe9M@wd?t5=vN9-lC951|fb+7s`uVsXN zsc(Y3*gH8iDz#ID{i0I#6!mM{jV9VSkz)K1y1SfAsc|ZI;)rSA=L}`&0!0=h#cThX ze41sE(z(r=Cev*t&eX@$a~cv&%~6+qehe!Q!?MQk9H-%z*%zVH{OYB}?WX0~mm;LR ziga3Ec&Yje2earkIuE8atU&MDB>(lRq<>p@;&B=S50Mw73%0cSjh8383s zpOa~C3z#58Jy1rh2$(<^Kv{AlEh(NL7$<=zffK}jx+(i?1RMgCT(I6uL0% zKidLtbPon=XO{W(PJ|uE?R&WBwKP_5C{{$jC|r*}J6e5Bc$H4|J#y<_GPhQGF3xcn zx8Wegf)hyIng*I?H_~XJWkrUgDJ(+EEQb%}HD5@q z$c_LA^x>pftexde@mgdQkLj3AuW?M*@U61bVVkSA*Tm7Xm_4m3EDa?eE9E|Zq4x`a zU4c0>h=-3RLRI*quILzoL<0OY1m#&y@l@s&rq|K2lignQi!OQIdNYiji|PvAGCVD= z@tN$cIU3Ec<+9fCPPKob$(Rc|!HDz$Q;50Pb6qk8WUcMB^{u$|@|A@vkYvb)5rgl& zj03uSyVq~>)TaSc6qi|YbxG>gcf1(=*UMIg`}DD*>r&TS&AIW@w@n1I>CMMw(!}*V zg2MD@teV~{_7*>T36~3fUQ?ATBoi)R62om+>=2I)jT49%e~VwNl|2YOln@187YG1- z0B9z-Six8Xndbo@vxz_@X<{70RhC+uAOeX}F4<<7(L;MQ3Jp2i4Kv%tE{L(Ys9iG| zj*@iD10iP>kfe^EIS7(@`Lu+b@h2{K-=CaEov@z69&-R{m?fgW6OabR^qjS{Kij#< zm;yuqrMBs}YMh|JhAS+g86J(zf?RRr2x=MQGgc-6@}g_-@=?0@u>rLkauOsG6> zbB-k|g;@;u+pcQ;iGyEd!)sG-@;#1cxtp(vt1fnA&MhmflGK0J`TYHUDb$ZRNpMFj zA?`i(J%pHo5l><0Y8U_+6_--X$Z4uEZ+un*z+MxO*>9LaJSSbNCd0@g?=QWYEi$ff z?FHa$c>LN~pt8{iKDdFd>)meZ9l7pLXA$rggYEoM;k{RL)=FyLtdERj@ZCSpdA3$B zD-?67oADk?a!&sh0-n#CE~$ZFblQs^?N8tDZ+j#| z_XyhB94&72lUQe2jtTL<`W;O;Ogm+Lw)}G9X(M~64fc2gUd!UtqncvOKAr zOg<+h9uTgjBOYfE_w0Bf5CGMXu1jr%3iJ;(eX-lXkQHh|Y}9~-dlY^Ku{_80?+zs( zUAVZdgf;uuYTMc_SDgFOswN$ZI&!DEPX>`3am|8--N?sb0RmPaaEM&AMx zvjr2X&M(DV)`C=G>$brX?bi&i20(8gV=gK$)_8s44ee$xevGVQX|P}GL*oDY`13hD z=`c+74??MkIRr#BXJvnUf-Ubdoq!NLD=A5r2_ zbbs!~eVAkj$9A3jV#Bp{R&@1g69{sxX2nc|O;Ka-X&2f5H)ulrS?aPm`y{UxC!4n&ZZFh6h|I`#&VS8`{&-h- zJsh@3b-urCb!1ff_hBB&!So%`2IE~K2{FmjhzXZq6yP9SMY9Ew;ZtGqMB^EfG`v&b zf@HkitsN`UIa@ts%8R-7#z~<5S_27xVj*9Xe2p^!$MM4_n1FXLe;|Ivq*NLB3nOWC zJ#v=9t9EI4Se`fWyBRs#QYNAn@vQFLkYsbzCy`M-iDtRvvxnZ~Bch>^_0oGcM{}#*dUT*V z&m5Mno8vdS!AJr5D`)x-31=aw5;hY^76}VxmN&KobwYqh7D=URj#*jWSBgWSQu2g4 z{?5m8<)Yoy0nuf96sJ>nY9pIk_H2h<+<)?=wsd$Ql2C3C9GNb7x{MgYHq`~7MCm@I z5)c5UDqkwyvZTT5DW$E1Whkm{^aV{#|CrQizj8?gV_{GeWR9Avsi)H+jaO7t7JhCG zQ#@CqzZ-`u208CL!7qkB6Hal?KO8ADSS3(Ps+>ACc3iKe1%8BwO)uP1ma1up$TmOM9+|R0s&!D`a4gG9SL~m7NDZP z5QW!j-pCoe{O{SN`jP9ysFL)WsM5Hm7C~f~gKpCRDof*?Cf#nR*u`*adfJpQIW}1} z=R)KjQU6TeJrZ|@s$ssbz&SP-zw|p7$sj1fMBl~=WVXsxJSb= z$|t*>Gch!(0J-Fu?nIviy|WkN{SVCt5MYP71bqzY27~7H+vF`_=aqnN-TScsUG;*q z;ZtH6s;a<9k4x?z**PN4=NvoSF(%@9s(WNFnd|eMl{)@kA zz=>=iR-Z5`U$9jp@0whQk&}1&Mv1Q$e|1s+O3#62&(%w41<6X3EJ# za8I2o@!9t22u4lcmc8gQ;7QZqzFFoFa6ZiwfTc~eYw0sy9(LZcz!HRGA^N4#6vAGn zc0;2ajS9n2v!z6`X=>qq?A~wGgcfyQ8{V4@rKZR{y%4G5s0j^=!(_#k!~&9x0sv96 zD50tgXV2uO!WaN6sf&aV6d(nSgqQ(}>Z@$C={zfSF5&^WVs24eYu$njkEA6pZ-P*p zC+6Rr-@2qX`ECOJ?K+kTOiF#Ys&j!Sq#bep4X!@;YQA>tPkRLZ6-L9o8dJj)R|8lf z9uqMV20roWmDR<&b0^|j99V(WB_$6~dgCp~!S8Qwg!`rqn>nUeKMo6xL1H9v52OqmYaUVuNuvo7Y$fcy&0^jmdAiY)=&cF8bv6CfPbgqkGxxCCgV6r zp9me8N|Yz?9T-a2VZw6`9W*aCwnpuJ%9XXEr}89Cpp3F>`g~p9sb^^vRHaK(DkGBJ zxVz=Qcl)*HZ_Q8ie@OTNK-JTp3XrFS8Njhj9IzDCH`U*qmHC)?Ld&1(sCl;5hf41# zw;SiQfmd?1jfiG^eB$I|^jAL0VUSl;20B{V`bv`#_)H&YtgCT`L(Nh?WI-jweJtZ# zJ|&J4BwKX*)qsudoz22zz9_KYk(!^gh~dVi4LBWrPqi&be2w-!p~lL}t2#&SGc1D1 zSZ!2L>q1jW-577h)1FeDvLH?;sJ625-_8yK0dy5arSeehU*)0r<>t=nq5}>^3cgrE zEHTXZw3Q6No@)wFFU1l(dapk%RB9Gp)89#T(C)qq(7fScrX^#|=aE|YYWFe-XGVGB zEJr1SR$95DPpZO)$5w@0p#hJpyEaZ|T{@VeUBD=SI%PX_o=g@?It^dcKk_x=Sr;n= zrTXnXog|8~ucUygzb!Pqj-tt&4q}v(NT$Xqp<-ES4a3wU=YVoJ7|uG(qYVvK=ef8_%GJVUOWD4LKJxBazE+V*@Lv1;Vs zyR@{Qn;WSf3cq(6egv7U&HakeRxSL!`y70j<4>wDc7SG^iaoXLs=jL-_xoZ zJcYEwPhwCnFNEdOzwU4WK!qS#BohfNV0A4JX}{b)#47XCOI#kZR=J5+mc@qIV5#u5Kl+54*y;1{QjVo4;p`~&w3WF=KYe_Tc zoz}wic)zCnR*v}6!}elL0FQa}JiS%gBCu0NLz%aDl7`Mf(y5;bal@^BsT1BTQSu*; zo--SdArvnT_vJi2&mtAj?&gAJ? z<0W%(!UnXkoD?}@)Yq|qk@V|duk91$&-OsXxWY7b6_>^8bOc-rvC?GqqM=az!RS1T zkRo7kXsEDfL`d?#ny?%~WPsdRk|SQTMyqylLHC0U=Chnb^@=ky%lrDszMZNF}N8=<2X!#2Dj-k zE6vmx3hjtbvdApml_yK;@UmzQW3syvyHdUNmfj3SxZhtZL-n$ga54^Qp;9f+e*#0dZljmh;+=?3+t zP2q^oeUVSaN$37ZPr*a@30B<#Gat+@vi?tw3AcKv3YFIJYH~9n+!zY%NP^8MLt5^--*c3lwbomSfY~Bly5>$gP7^H0j@NTjnG;70Z7WMH z$7FL{UPq)HBV6u-kpcUwUY@DwdUQN;L z%OtST3VYQzF7JO5taSiUxQ)Vt9Gjl;K9h-yq$)vd{+o-U&f@rV`k-m7z}d*3AL5@y znvJo7tkdiD1_jo7oci)BFOKY})}=37?GM6NAQ`Eu2g0=2$b0i|Jn>fF4$G*vB?7_- zUx)mPHkn8k>K#Srbk>^R4G@4jatL(n_cki%+pdIc$7>>#+bo){7-!fAur+bl(zgm$ z?vCNBgzi)#*iff*c^tel=|>9vn!j4S_4u0EWS~$vwPGe+!nfUc-!bswFas-8#+u_} zA+9vj-g@otmEzN=4Nx}Q!<$2FG4&5Z02Bjt)B%pUnquAnzl7RtqcLxJbN9t%XY>CO zq(XhveI~=xlxCvICDMZ=h+j|ld*y@mjz9Re z1gUi^VJ+UJ|7rpf2`{A;9E`|)bnrk?lnIkWxM3F92Ob$MufUtQE!~uHY#H`Y_=@ zFd_G(^P;k7PlCjCEd&-}7W!TX6^8%>s3))>F%!`5QZWmuP==X) z?pMG1M01^WTu6vwyg)`nC7xli0%K7U%V@mFC6M+<53x-7>?IsjrhM|We6*S6hw#-= z^9*d=O#Sxum7Uc%k)BB{SB^F|uO)(CxY!v*iTJDgv^hx%bo<){qVcx|OCFT#<--qY zo&X-HmQr)lif<&7avWM{X4E-%DW>bnS7!32xUG;*4qSrXAz)zB#bU|WzBdnRPSMLZ zSWS3%?y#NmG(KVcq0nE(Z{yyzOEakZ0|ZdiO#R+E0$^|%T-Q!lOQuoyF!;gylX*@4 zXFL*DwA)=|jC-=>bqJA^x?+GFrJlYtnTZXS7(TuzvODTNPpel{rN{z^a;T1UYFOF#P>ie%(p`y)`@HE8%1dN}OsR z09Z`^lR@JKET|ip$#g} zUipJ>%j&N;=gOE2T&!S}K@-g!ar{dplJZovUW|xlI;gD<^(e_NUQ@q$PLMV`Qz(44 zrABILI3+CvZs834iHlZK3MTY^`+faNTJ#P)y8>Sjw$1$fPvc|YzmcMMR>?<@yz zZeZ@s79O#gNl&*eIf*w5SPNS_$R?mA}k9SH9oFHxrl8q z2hAaUTw7%RA}6u3$sEs^@0$_cK?b(BuseKgPy-7D zQW8v|-LcKl1m!~^nA|M99cre%r*f&W$oJPqpbIkou|qL*qR|OcXVQ;0hbuAy6eKS* zASmYaqEKjq95z^z6XF4)ao8RyO@gTMh$OzN5RYjp1!yq$KQZ3?m@_A&e$U~M)Bh=AW2@lR;BUQ56`}7Y7vTh=aWWp=iCb1{TqQAt z#=N`v9CF$~P4@rM{2u@!EjjrBC0+r;eKHd}hEm8Vkp8?6pIR;5DyWX$(J_RSGm7tp zz)3~QGT&|pnFymO1Ti|MMK^k4VhK_)ckHF8D6J!(r+Y6&7UjD*p9HJ7QkO1oniZGy7@^7=v5Xog;`pK0;-ldbknP$1|J+!% zI|=i*2m8=vq3L|GzwxcPIYtRDR9CjP;R8c;L;u}j$4SF6h5CC;0fh7tQea9~$m7NY zaC8XNa*|ilycR}s;OY3uYX`GPM0$eyTc=j29Pbpw0queVl8F69=w8}tObTJ<*5#RZ z^k=0uX~~Ok%eOh#p1IcQ4Q~->o`6Q0^pud!F+^Y{WE<{*mQi!FLV=#07bYJR7ltzM z*Sv1@q4}jaJU%B0AbBdgOdOABKTvhoIYrOjR?;aMrp~MuoxXU7(p^s8k5)B!bFVl5 zsI_7}2s>GB^mz?- zd{hAl(#?_A!^4^9Q-PX|!r`uX(<&{+AYbYR|MeQ8$IV_B!*;=R@zK*il-!yr99^{SOvCoTstF)a+Wz=VZ|5jq5=t)6Ojy}6EC@V&f4kJ$f%fVdU1*6l|)hA z?>?H(YyAWpW?z1_z2W&K*<)%YH>CAVC%k_*UG}o&)#sZ;Gw;o56O>%cx*$y~a(`u% zlN7fkU!!7RafL=_;%s{%Emb3>TLw)5mMreE-!{+m80-H%oJyH}h|+;hA1g&Ak7 zbbr3Ll~zdVxp`&&dDZxnC%jGtKM5?IjTVc^^-nDExn z!C>*EGX@ri)=CB?o{4?1HAwZW`DfSd#f*$>=ff0s%5{3b^I_bwU(oSYR>hyaWrrGD zCn{((Z`ZjNl**K~`qDDR&byO#=AN=*QOs}B_z?RijbS=y4mag71M`nyuiu(7Cqi32 z<5QoN2j2A5d@E6@SSOlVyQJ@`$&|U@uTD~aB4x4t}`v2bsh7)b3e226)wF>(vCS*9B zV|~Z0SXI4>;@b&s9-(S9QE=rYnkzbQ9k57l(cd^G9IjAk*Nj5oW= zcPiuu=6!rx9`#!P`7-mlp1$$7MUMXeweDq2vfb6Q|F0I;giYK2b(!hQ8qb+Dcizb^C$24-bK}g#i^;*Jni*>+8U=RGcQo51 zaz@aoco|>gx;a;Sg)aw}ga@mxIVgPE-MV15uOX|VGFw`j$JBqoJKKTaY?_8l(g|)( zvm1`FPRqQ2g|^F=2If@DQ@`2dG;-K2^HZO-`!D&Z`*nJQ;`zBt%{Cjbw4ZdGY|LYm za8S^=SK?vdX9m}>u9hn&nPL@g^xQhcl|SpJF%KW3qR5Ob3c+4Fnxaof&kFD0%8ozEWRC#u8ci%R=BCCyhu!VCZJ}tDRnVhPE+FI18NI2PH31U$cRjM z#Jr5*m4emkWKX_GjnNT1SX@N>*wAe(rlW{ppOlbXjghc^s70nP$0-*Y`yxpFHy zwzhD%i8INrcf7Fh&@)yJjlylZkGSgp`A+ve(Ripc{{MgV6AOL1rgk1?xegp`+gT`7 za%V-sS#`a7;11}S-Lqt@YVPdV^vbORc;&XJtS3IlQ*C`sZ=h7Cftx~spGBsSeffM@w z|5%?owPxyxq<>6`bM#zxgZ3qzV_=EYKU0^jAh0XvX8zeTOq?O@l6zYk7?(&V7td>8 zFyY`}2w)0M@)EqTHX%HZb5TSQmqUoyOqY)uQ4%xrINk=q_Cw`*+;oU$S!L&~k~|MSK5>lPS2&kK-NQR3R^&9KVH(bv^j z&(OeN6%eR+&SK~QZX-Np;$_tHIPfyd>OFrP@c_Rl&yC3X^Rn?1Q8a-x zk^zR38Dw~WptSt|E#UI8|HCE0BMxc?T)YP)W-u@SF9~M+2h5HN3=H-M7#LWn;Wm&x ucl$puFw{3N0PhxO;0H26_AH^kJt<&&GJysI?cr5GvBv~xJGJ~n7kdC$2PWA7 literal 0 HcmV?d00001 diff --git a/packages/client/src/pages/settings/sounds.vue b/packages/client/src/pages/settings/sounds.vue index 88339ff55f..8d421ad154 100644 --- a/packages/client/src/pages/settings/sounds.vue +++ b/packages/client/src/pages/settings/sounds.vue @@ -32,6 +32,10 @@ import * as symbols from '@/symbols'; const soundsTypes = [ null, 'skeh/cheese_touch', + 'skeh/chicken_mcnugget', + 'skeh/chills_cry', + 'skeh/doot', + 'skeh/taco_baco', 'syuilo/up', 'syuilo/down', 'syuilo/pope1', -- 2.43.0 From 7673e5130f2d8c69d000df318583872567c40b1f Mon Sep 17 00:00:00 2001 From: Derek Schmidt Date: Tue, 2 Nov 2021 19:11:50 -0700 Subject: [PATCH 67/69] Fix cheese_touch loudness (now -21 LUFS) --- CHANGELOG.md | 1 + .../assets/sounds/skeh/cheese_touch.mp3 | Bin 14881 -> 13752 bytes 2 files changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0867d165de..1948bd6afd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,7 @@ ### Birb-provements - Added a few more meme sounds I had lying around +- Fixed "skeh/cheese_touch" loudness ### Improvements - スレッドミュート機能 diff --git a/packages/client/assets/sounds/skeh/cheese_touch.mp3 b/packages/client/assets/sounds/skeh/cheese_touch.mp3 index 5b510ace5b7df1f3fc14c657f8a71a32cc055014..ecf9cfc09df2716615d50ee330564ae5befdeef9 100644 GIT binary patch literal 13752 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 NWBzLkOaASv{|}9NotXdt -- 2.43.0 From a003f1bb5d7c5707e9d734e2149f95acd73af559 Mon Sep 17 00:00:00 2001 From: Derek Schmidt Date: Sun, 14 Nov 2021 02:58:13 -0700 Subject: [PATCH 68/69] Add build/deploy scripts to git --- deploy.fish | 7 +++++++ update.fish | 9 +++++++++ 2 files changed, 16 insertions(+) create mode 100755 deploy.fish create mode 100755 update.fish diff --git a/deploy.fish b/deploy.fish new file mode 100755 index 0000000000..a27b9adb82 --- /dev/null +++ b/deploy.fish @@ -0,0 +1,7 @@ +#!/usr/bin/env fish +argparse --name=deploy 't/target=' -- $argv +if test -n "$_flag_target" + tar -c built/ packages/backend/built/ | ssh $_flag_target -C './misskey/update.fish' +else + echo USAGE: ./deploy.fish --target user@instance +end diff --git a/update.fish b/update.fish new file mode 100755 index 0000000000..4d43add99c --- /dev/null +++ b/update.fish @@ -0,0 +1,9 @@ +#!/usr/bin/env fish +cd misskey +git checkout stage +git pull +rm -r built +yarn install +tar -x +yarn run migrate +sudo systemctl restart misskey -- 2.43.0 From d87ea309c138752523e3e34a80c43cf16aad2e37 Mon Sep 17 00:00:00 2001 From: Derek Schmidt Date: Sun, 14 Nov 2021 03:03:58 -0700 Subject: [PATCH 69/69] Allow different branch in deploy scripts --- deploy.fish | 8 ++++---- update.fish | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/deploy.fish b/deploy.fish index a27b9adb82..6782918d10 100755 --- a/deploy.fish +++ b/deploy.fish @@ -1,7 +1,7 @@ #!/usr/bin/env fish -argparse --name=deploy 't/target=' -- $argv -if test -n "$_flag_target" - tar -c built/ packages/backend/built/ | ssh $_flag_target -C './misskey/update.fish' +argparse --name=deploy 't/target=' 'b/branch=' -- $argv +if test -n "$_flag_target"; and test -n "$_flag_branch" + tar -c built/ packages/backend/built/ | ssh $_flag_target -C "./misskey/update.fish --branch $_flag_branch" else - echo USAGE: ./deploy.fish --target user@instance + echo 'USAGE: ./deploy.fish --target --branch ' end diff --git a/update.fish b/update.fish index 4d43add99c..8cb0a291be 100755 --- a/update.fish +++ b/update.fish @@ -1,6 +1,7 @@ #!/usr/bin/env fish +argparse "branch=" -- $argv cd misskey -git checkout stage +git checkout $_flag_branch git pull rm -r built yarn install -- 2.43.0