From 433505df48b55642aa41195db8f94679534415a4 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 3 Apr 2022 15:14:26 +0900 Subject: [PATCH 01/19] fix e2e test --- packages/backend/src/db/postgre.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/backend/src/db/postgre.ts b/packages/backend/src/db/postgre.ts index f7638a53d0..eb5fc2e186 100644 --- a/packages/backend/src/db/postgre.ts +++ b/packages/backend/src/db/postgre.ts @@ -209,7 +209,11 @@ export const db = new DataSource({ }); export async function initDb() { - await db.connect(); + if (db.isInitialized) { + // nop + } else { + await db.connect(); + } } export async function resetDb() { From 403b82277c80d5015ad90b32ec15a2bf0b56936c Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 3 Apr 2022 15:21:46 +0900 Subject: [PATCH 02/19] refactor actions --- .github/workflows/lint.yml | 10 +++++----- .github/workflows/test.yml | 16 ++++++++++------ 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 74f9a4e532..25082f82ed 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -14,12 +14,12 @@ jobs: - uses: actions/checkout@v2 with: submodules: true - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v3 with: node-version: 16.x - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} + cache: 'yarn' + cache-dependency-path: | + src/packages/backend/yarn.lock + src/packages/client/yarn.lock - run: yarn install - run: yarn lint diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3e9585f96d..0203995ac9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -33,9 +33,13 @@ jobs: with: submodules: true - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} + cache: 'yarn' + cache-dependency-path: | + src/packages/backend/yarn.lock + src/packages/client/yarn.lock - name: Install dependencies run: yarn install - name: Check yarn.lock @@ -80,13 +84,13 @@ jobs: #- uses: browser-actions/setup-firefox@latest # if: ${{ matrix.browser == 'firefox' }} - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} + cache: 'yarn' + cache-dependency-path: | + src/packages/backend/yarn.lock + src/packages/client/yarn.lock - name: Install dependencies run: yarn install - name: Check yarn.lock From b8360313e8e88c2dc85e313ac0d805a7bc69e0ef Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 3 Apr 2022 15:24:29 +0900 Subject: [PATCH 03/19] chore: fix paths --- .github/workflows/lint.yml | 4 ++-- .github/workflows/test.yml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 25082f82ed..da2c73a656 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -19,7 +19,7 @@ jobs: node-version: 16.x cache: 'yarn' cache-dependency-path: | - src/packages/backend/yarn.lock - src/packages/client/yarn.lock + packages/backend/yarn.lock + packages/client/yarn.lock - run: yarn install - run: yarn lint diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0203995ac9..d57d85c874 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -38,8 +38,8 @@ jobs: node-version: ${{ matrix.node-version }} cache: 'yarn' cache-dependency-path: | - src/packages/backend/yarn.lock - src/packages/client/yarn.lock + packages/backend/yarn.lock + packages/client/yarn.lock - name: Install dependencies run: yarn install - name: Check yarn.lock @@ -89,8 +89,8 @@ jobs: node-version: ${{ matrix.node-version }} cache: 'yarn' cache-dependency-path: | - src/packages/backend/yarn.lock - src/packages/client/yarn.lock + packages/backend/yarn.lock + packages/client/yarn.lock - name: Install dependencies run: yarn install - name: Check yarn.lock From 41c2aed7dc760d8a89cd09c32cfbee620596fb61 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 3 Apr 2022 15:33:22 +0900 Subject: [PATCH 04/19] chore: fix lint --- packages/backend/src/misc/fetch.ts | 4 +-- packages/backend/src/misc/get-note-summary.ts | 2 +- .../src/remote/activitypub/ap-request.ts | 2 +- .../src/remote/activitypub/deliver-manager.ts | 6 ++-- .../src/remote/activitypub/kernel/read.ts | 2 +- .../remote/activitypub/kernel/undo/accept.ts | 2 +- .../src/remote/activitypub/models/question.ts | 2 +- packages/backend/src/server/api/2fa.ts | 34 +++++++++---------- .../api/endpoints/drive/files/create.ts | 1 - .../server/api/endpoints/i/2fa/key-done.ts | 6 ++-- .../server/api/endpoints/i/authorized-apps.ts | 2 +- .../backend/src/server/api/endpoints/notes.ts | 8 ++--- .../api/endpoints/notes/conversation.ts | 2 +- .../server/api/endpoints/notes/polls/vote.ts | 2 +- .../backend/src/server/api/private/signin.ts | 6 ++-- .../src/services/drive/upload-from-url.ts | 4 +-- .../backend/src/services/following/create.ts | 2 +- 17 files changed, 43 insertions(+), 44 deletions(-) diff --git a/packages/backend/src/misc/fetch.ts b/packages/backend/src/misc/fetch.ts index 47a5cd471a..4b1013c9f5 100644 --- a/packages/backend/src/misc/fetch.ts +++ b/packages/backend/src/misc/fetch.ts @@ -120,9 +120,9 @@ export const httpsAgent = config.proxy */ export function getAgentByUrl(url: URL, bypassProxy = false) { if (bypassProxy || (config.proxyBypassHosts || []).includes(url.hostname)) { - return url.protocol == 'http:' ? _http : _https; + return url.protocol === 'http:' ? _http : _https; } else { - return url.protocol == 'http:' ? httpAgent : httpsAgent; + return url.protocol === 'http:' ? httpAgent : httpsAgent; } } diff --git a/packages/backend/src/misc/get-note-summary.ts b/packages/backend/src/misc/get-note-summary.ts index 93783873da..3f35ccee82 100644 --- a/packages/backend/src/misc/get-note-summary.ts +++ b/packages/backend/src/misc/get-note-summary.ts @@ -23,7 +23,7 @@ export const getNoteSummary = (note: Packed<'Note'>): string => { } // ファイルが添付されているとき - if ((note.files || []).length != 0) { + if ((note.files || []).length !== 0) { summary += ` (📎${note.files!.length})`; } diff --git a/packages/backend/src/remote/activitypub/ap-request.ts b/packages/backend/src/remote/activitypub/ap-request.ts index 96bfec3b11..8b55f22477 100644 --- a/packages/backend/src/remote/activitypub/ap-request.ts +++ b/packages/backend/src/remote/activitypub/ap-request.ts @@ -95,7 +95,7 @@ function genSigningString(request: Request, includeHeaders: string[]) { function lcObjectKey(src: Record) { const dst: Record = {}; - for (const key of Object.keys(src).filter(x => x != '__proto__' && typeof src[x] === 'string')) dst[key.toLowerCase()] = src[key]; + for (const key of Object.keys(src).filter(x => x !== '__proto__' && typeof src[x] === 'string')) dst[key.toLowerCase()] = src[key]; return dst; } diff --git a/packages/backend/src/remote/activitypub/deliver-manager.ts b/packages/backend/src/remote/activitypub/deliver-manager.ts index f95f64f77c..142486f82b 100644 --- a/packages/backend/src/remote/activitypub/deliver-manager.ts +++ b/packages/backend/src/remote/activitypub/deliver-manager.ts @@ -109,14 +109,14 @@ export default class DeliverManager { } } - this.recipes.filter((recipe): recipe is IDirectRecipe => { + this.recipes.filter((recipe): recipe is IDirectRecipe => // followers recipes have already been processed isDirect(recipe) // check that shared inbox has not been added yet && !(recipe.to.sharedInbox && inboxes.has(recipe.to.sharedInbox)) // check that they actually have an inbox - && recipe.to.inbox - }) + && recipe.to.inbox != null, + ) .forEach(recipe => inboxes.add(recipe.to.inbox)); // deliver diff --git a/packages/backend/src/remote/activitypub/kernel/read.ts b/packages/backend/src/remote/activitypub/kernel/read.ts index 7f1519ac2e..f7b0bcecdf 100644 --- a/packages/backend/src/remote/activitypub/kernel/read.ts +++ b/packages/backend/src/remote/activitypub/kernel/read.ts @@ -18,7 +18,7 @@ export const performReadActivity = async (actor: CacheableRemoteUser, activity: return `skip: message not found`; } - if (actor.id != message.recipientId) { + if (actor.id !== message.recipientId) { return `skip: actor is not a message recipient`; } diff --git a/packages/backend/src/remote/activitypub/kernel/undo/accept.ts b/packages/backend/src/remote/activitypub/kernel/undo/accept.ts index 8f6eab6858..a6e3929b0f 100644 --- a/packages/backend/src/remote/activitypub/kernel/undo/accept.ts +++ b/packages/backend/src/remote/activitypub/kernel/undo/accept.ts @@ -1,6 +1,6 @@ import unfollow from '@/services/following/delete.js'; import cancelRequest from '@/services/following/requests/cancel.js'; -import {IAccept} from '../../type.js'; +import { IAccept } from '../../type.js'; import { CacheableRemoteUser } from '@/models/entities/user.js'; import { Followings } from '@/models/index.js'; import DbResolver from '../../db-resolver.js'; diff --git a/packages/backend/src/remote/activitypub/models/question.ts b/packages/backend/src/remote/activitypub/models/question.ts index 9e75864c63..034501572a 100644 --- a/packages/backend/src/remote/activitypub/models/question.ts +++ b/packages/backend/src/remote/activitypub/models/question.ts @@ -69,7 +69,7 @@ export async function updateQuestion(value: any) { const oldCount = poll.votes[poll.choices.indexOf(choice)]; const newCount = apChoices!.filter(ap => ap.name === choice)[0].replies!.totalItems; - if (oldCount != newCount) { + if (oldCount !== newCount) { changed = true; poll.votes[poll.choices.indexOf(choice)] = newCount; } diff --git a/packages/backend/src/server/api/2fa.ts b/packages/backend/src/server/api/2fa.ts index e1c226979a..dce8accaac 100644 --- a/packages/backend/src/server/api/2fa.ts +++ b/packages/backend/src/server/api/2fa.ts @@ -121,14 +121,14 @@ export function verifyLogin({ signature: Buffer, challenge: string }) { - if (clientData.type != 'webauthn.get') { + if (clientData.type !== 'webauthn.get') { throw new Error('type is not webauthn.get'); } - if (hash(clientData.challenge).toString('hex') != challenge) { + if (hash(clientData.challenge).toString('hex') !== challenge) { throw new Error('challenge mismatch'); } - if (clientData.origin != config.scheme + '://' + config.host) { + if (clientData.origin !== config.scheme + '://' + config.host) { throw new Error('origin mismatch'); } @@ -148,11 +148,11 @@ export const procedures = { verify({ publicKey }: {publicKey: Map}) { const negTwo = publicKey.get(-2); - if (!negTwo || negTwo.length != 32) { + if (!negTwo || negTwo.length !== 32) { throw new Error('invalid or no -2 key given'); } const negThree = publicKey.get(-3); - if (!negThree || negThree.length != 32) { + if (!negThree || negThree.length !== 32) { throw new Error('invalid or no -3 key given'); } @@ -183,7 +183,7 @@ export const procedures = { rpIdHash: Buffer, credentialId: Buffer, }) { - if (attStmt.alg != -7) { + if (attStmt.alg !== -7) { throw new Error('alg mismatch'); } @@ -196,11 +196,11 @@ export const procedures = { const negTwo = publicKey.get(-2); - if (!negTwo || negTwo.length != 32) { + if (!negTwo || negTwo.length !== 32) { throw new Error('invalid or no -2 key given'); } const negThree = publicKey.get(-3); - if (!negThree || negThree.length != 32) { + if (!negThree || negThree.length !== 32) { throw new Error('invalid or no -3 key given'); } @@ -263,7 +263,7 @@ export const procedures = { .map((key: any) => PEMString(key)) .concat([GSR2]); - if (getCertSubject(certificateChain[0]).CN != 'attest.android.com') { + if (getCertSubject(certificateChain[0]).CN !== 'attest.android.com') { throw new Error('invalid common name'); } @@ -283,11 +283,11 @@ export const procedures = { const negTwo = publicKey.get(-2); - if (!negTwo || negTwo.length != 32) { + if (!negTwo || negTwo.length !== 32) { throw new Error('invalid or no -2 key given'); } const negThree = publicKey.get(-3); - if (!negThree || negThree.length != 32) { + if (!negThree || negThree.length !== 32) { throw new Error('invalid or no -3 key given'); } @@ -332,11 +332,11 @@ export const procedures = { const negTwo = publicKey.get(-2); - if (!negTwo || negTwo.length != 32) { + if (!negTwo || negTwo.length !== 32) { throw new Error('invalid or no -2 key given'); } const negThree = publicKey.get(-3); - if (!negThree || negThree.length != 32) { + if (!negThree || negThree.length !== 32) { throw new Error('invalid or no -3 key given'); } @@ -353,7 +353,7 @@ export const procedures = { // https://fidoalliance.org/specs/fido-v2.0-id-20180227/fido-ecdaa-algorithm-v2.0-id-20180227.html#ecdaa-verify-operation throw new Error('ECDAA-Verify is not supported'); } else { - if (attStmt.alg != -7) throw new Error('alg mismatch'); + if (attStmt.alg !== -7) throw new Error('alg mismatch'); throw new Error('self attestation is not supported'); } @@ -377,7 +377,7 @@ export const procedures = { credentialId: Buffer }) { const x5c: Buffer[] = attStmt.x5c; - if (x5c.length != 1) { + if (x5c.length !== 1) { throw new Error('x5c length does not match expectation'); } @@ -387,11 +387,11 @@ export const procedures = { const negTwo: Buffer = publicKey.get(-2); - if (!negTwo || negTwo.length != 32) { + if (!negTwo || negTwo.length !== 32) { throw new Error('invalid or no -2 key given'); } const negThree: Buffer = publicKey.get(-3); - if (!negThree || negThree.length != 32) { + if (!negThree || negThree.length !== 32) { throw new Error('invalid or no -3 key given'); } diff --git a/packages/backend/src/server/api/endpoints/drive/files/create.ts b/packages/backend/src/server/api/endpoints/drive/files/create.ts index b6a2cf7200..0939ae3365 100644 --- a/packages/backend/src/server/api/endpoints/drive/files/create.ts +++ b/packages/backend/src/server/api/endpoints/drive/files/create.ts @@ -48,7 +48,6 @@ export const paramDef = { } as const; // eslint-disable-next-line import/no-default-export -// @ts-ignore export default define(meta, paramDef, async (ps, user, _, file, cleanup) => { // Get 'name' parameter let name = ps.name || file.originalname; diff --git a/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts b/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts index 0116a55fb7..1afb34bfda 100644 --- a/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts +++ b/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts @@ -50,10 +50,10 @@ export default define(meta, paramDef, async (ps, user) => { const clientData = JSON.parse(ps.clientDataJSON); - if (clientData.type != 'webauthn.create') { + if (clientData.type !== 'webauthn.create') { throw new Error('not a creation attestation'); } - if (clientData.origin != config.scheme + '://' + config.host) { + if (clientData.origin !== config.scheme + '://' + config.host) { throw new Error('origin mismatch'); } @@ -78,7 +78,7 @@ export default define(meta, paramDef, async (ps, user) => { const credentialId = authData.slice(55, 55 + credentialIdLength); const publicKeyData = authData.slice(55 + credentialIdLength); const publicKey: Map = await cborDecodeFirst(publicKeyData); - if (publicKey.get(3) != -7) { + if (publicKey.get(3) !== -7) { throw new Error('alg mismatch'); } diff --git a/packages/backend/src/server/api/endpoints/i/authorized-apps.ts b/packages/backend/src/server/api/endpoints/i/authorized-apps.ts index 3301808e75..68bd103a6d 100644 --- a/packages/backend/src/server/api/endpoints/i/authorized-apps.ts +++ b/packages/backend/src/server/api/endpoints/i/authorized-apps.ts @@ -27,7 +27,7 @@ export default define(meta, paramDef, async (ps, user) => { take: ps.limit, skip: ps.offset, order: { - id: ps.sort == 'asc' ? 1 : -1, + id: ps.sort === 'asc' ? 1 : -1, }, }); diff --git a/packages/backend/src/server/api/endpoints/notes.ts b/packages/backend/src/server/api/endpoints/notes.ts index 99c8b973f6..2733c826e9 100644 --- a/packages/backend/src/server/api/endpoints/notes.ts +++ b/packages/backend/src/server/api/endpoints/notes.ts @@ -52,19 +52,19 @@ export default define(meta, paramDef, async (ps) => { query.andWhere('note.userHost IS NULL'); } - if (ps.reply != undefined) { + if (ps.reply !== undefined) { query.andWhere(ps.reply ? 'note.replyId IS NOT NULL' : 'note.replyId IS NULL'); } - if (ps.renote != undefined) { + if (ps.renote !== undefined) { query.andWhere(ps.renote ? 'note.renoteId IS NOT NULL' : 'note.renoteId IS NULL'); } - if (ps.withFiles != undefined) { + if (ps.withFiles !== undefined) { query.andWhere(ps.withFiles ? `note.fileIds != '{}'` : `note.fileIds = '{}'`); } - if (ps.poll != undefined) { + if (ps.poll !== undefined) { query.andWhere(ps.poll ? 'note.hasPoll = TRUE' : 'note.hasPoll = FALSE'); } diff --git a/packages/backend/src/server/api/endpoints/notes/conversation.ts b/packages/backend/src/server/api/endpoints/notes/conversation.ts index 8f5d21db60..b991a495f2 100644 --- a/packages/backend/src/server/api/endpoints/notes/conversation.ts +++ b/packages/backend/src/server/api/endpoints/notes/conversation.ts @@ -57,7 +57,7 @@ export default define(meta, paramDef, async (ps, user) => { conversation.push(p); } - if (conversation.length == ps.limit) { + if (conversation.length === ps.limit) { return; } diff --git a/packages/backend/src/server/api/endpoints/notes/polls/vote.ts b/packages/backend/src/server/api/endpoints/notes/polls/vote.ts index 6380b331f2..6244b55cf2 100644 --- a/packages/backend/src/server/api/endpoints/notes/polls/vote.ts +++ b/packages/backend/src/server/api/endpoints/notes/polls/vote.ts @@ -110,7 +110,7 @@ export default define(meta, paramDef, async (ps, user) => { if (exist.length) { if (poll.multiple) { - if (exist.some(x => x.choice == ps.choice)) { + if (exist.some(x => x.choice === ps.choice)) { throw new ApiError(meta.errors.alreadyVoted); } } else { diff --git a/packages/backend/src/server/api/private/signin.ts b/packages/backend/src/server/api/private/signin.ts index 3f7118ad22..7b66657ad8 100644 --- a/packages/backend/src/server/api/private/signin.ts +++ b/packages/backend/src/server/api/private/signin.ts @@ -24,17 +24,17 @@ export default async (ctx: Koa.Context) => { ctx.body = { error }; } - if (typeof username != 'string') { + if (typeof username !== 'string') { ctx.status = 400; return; } - if (typeof password != 'string') { + if (typeof password !== 'string') { ctx.status = 400; return; } - if (token != null && typeof token != 'string') { + if (token != null && typeof token !== 'string') { ctx.status = 400; return; } diff --git a/packages/backend/src/services/drive/upload-from-url.ts b/packages/backend/src/services/drive/upload-from-url.ts index 5007fff6ee..79b1b8c2e1 100644 --- a/packages/backend/src/services/drive/upload-from-url.ts +++ b/packages/backend/src/services/drive/upload-from-url.ts @@ -29,7 +29,7 @@ export async function uploadFromUrl({ sensitive = false, force = false, isLink = false, - comment = null + comment = null, }: Args): Promise { let name = new URL(url).pathname.split('/').pop() || null; if (name == null || !DriveFiles.validateFileName(name)) { @@ -38,7 +38,7 @@ export async function uploadFromUrl({ // If the comment is same as the name, skip comment // (image.name is passed in when receiving attachment) - if (comment !== null && name == comment) { + if (comment !== null && name === comment) { comment = null; } diff --git a/packages/backend/src/services/following/create.ts b/packages/backend/src/services/following/create.ts index d243317d97..7bc839c62e 100644 --- a/packages/backend/src/services/following/create.ts +++ b/packages/backend/src/services/following/create.ts @@ -108,7 +108,7 @@ export async function insertFollowingDoc(followee: { id: User['id']; host: User[ // Publish followed event if (Users.isLocalUser(followee)) { Users.pack(follower.id, followee).then(async packed => { - publishMainStream(followee.id, 'followed', packed) + publishMainStream(followee.id, 'followed', packed); const webhooks = (await getActiveWebhooks()).filter(x => x.userId === followee.id && x.on.includes('followed')); for (const webhook of webhooks) { From 91f4ec3747e814b941051b665645aae2433e6c1c Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 3 Apr 2022 16:30:22 +0900 Subject: [PATCH 05/19] fix types --- packages/backend/src/misc/captcha.ts | 3 ++- .../src/remote/activitypub/misc/ld-signature.ts | 3 ++- .../src/server/api/endpoints/notes/translate.ts | 3 ++- .../backend/src/services/fetch-instance-metadata.ts | 11 ++++++----- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/backend/src/misc/captcha.ts b/packages/backend/src/misc/captcha.ts index 293cbdcd37..9a87a4a3c8 100644 --- a/packages/backend/src/misc/captcha.ts +++ b/packages/backend/src/misc/captcha.ts @@ -42,7 +42,8 @@ async function getCaptchaResponse(url: string, secret: string, response: string) headers: { 'User-Agent': config.userAgent, }, - timeout: 10 * 1000, + // TODO + //timeout: 10 * 1000, agent: getAgentByUrl, }).catch(e => { throw `${e.message || e}`; diff --git a/packages/backend/src/remote/activitypub/misc/ld-signature.ts b/packages/backend/src/remote/activitypub/misc/ld-signature.ts index 5132c6ef96..362a543ece 100644 --- a/packages/backend/src/remote/activitypub/misc/ld-signature.ts +++ b/packages/backend/src/remote/activitypub/misc/ld-signature.ts @@ -113,7 +113,8 @@ export class LdSignature { headers: { Accept: 'application/ld+json, application/json', }, - timeout: this.loderTimeout, + // TODO + //timeout: this.loderTimeout, agent: u => u.protocol === 'http:' ? httpAgent : httpsAgent, }).then(res => { if (!res.ok) { diff --git a/packages/backend/src/server/api/endpoints/notes/translate.ts b/packages/backend/src/server/api/endpoints/notes/translate.ts index 068df6940b..c602981b30 100644 --- a/packages/backend/src/server/api/endpoints/notes/translate.ts +++ b/packages/backend/src/server/api/endpoints/notes/translate.ts @@ -75,7 +75,8 @@ export default define(meta, paramDef, async (ps, user) => { Accept: 'application/json, */*', }, body: params, - timeout: 10000, + // TODO + //timeout: 10000, agent: getAgentByUrl, }); diff --git a/packages/backend/src/services/fetch-instance-metadata.ts b/packages/backend/src/services/fetch-instance-metadata.ts index 2b6f82a910..d5294c5fe8 100644 --- a/packages/backend/src/services/fetch-instance-metadata.ts +++ b/packages/backend/src/services/fetch-instance-metadata.ts @@ -97,7 +97,7 @@ async function fetchNodeinfo(instance: Instance): Promise { } else { throw e.statusCode || e.message; } - }); + }) as Record; if (wellknown.links == null || !Array.isArray(wellknown.links)) { throw 'No wellknown links'; @@ -121,7 +121,7 @@ async function fetchNodeinfo(instance: Instance): Promise { logger.succ(`Successfuly fetched nodeinfo of ${instance.host}`); - return info; + return info as NodeInfo; } catch (e) { logger.error(`Failed to fetch nodeinfo of ${instance.host}: ${e}`); @@ -142,12 +142,12 @@ async function fetchDom(instance: Instance): Promise { return doc; } -async function fetchManifest(instance: Instance): Promise | null> { +async function fetchManifest(instance: Instance): Promise | null> { const url = 'https://' + instance.host; const manifestUrl = url + '/manifest.json'; - const manifest = await getJson(manifestUrl); + const manifest = await getJson(manifestUrl) as Record; return manifest; } @@ -167,7 +167,8 @@ async function fetchFaviconUrl(instance: Instance, doc: DOMWindow['document'] | const faviconUrl = url + '/favicon.ico'; const favicon = await fetch(faviconUrl, { - timeout: 10000, + // TODO + //timeout: 10000, agent: getAgentByUrl, }); From ff9a074ab645739288e4ca2b155c075abf6693e9 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 3 Apr 2022 16:35:36 +0900 Subject: [PATCH 06/19] fix type --- packages/backend/src/remote/webfinger.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend/src/remote/webfinger.ts b/packages/backend/src/remote/webfinger.ts index 9d3bfab24b..337df34c2d 100644 --- a/packages/backend/src/remote/webfinger.ts +++ b/packages/backend/src/remote/webfinger.ts @@ -15,7 +15,7 @@ type IWebFinger = { export default async function(query: string): Promise { const url = genUrl(query); - return await getJson(url, 'application/jrd+json, application/json'); + return await getJson(url, 'application/jrd+json, application/json') as IWebFinger; } function genUrl(query: string) { From 7f5d189528d37f7dd48f5421176685bd2eab36e0 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 3 Apr 2022 16:40:47 +0900 Subject: [PATCH 07/19] fix type --- packages/backend/src/remote/activitypub/deliver-manager.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend/src/remote/activitypub/deliver-manager.ts b/packages/backend/src/remote/activitypub/deliver-manager.ts index 142486f82b..4c1999e4cb 100644 --- a/packages/backend/src/remote/activitypub/deliver-manager.ts +++ b/packages/backend/src/remote/activitypub/deliver-manager.ts @@ -117,7 +117,7 @@ export default class DeliverManager { // check that they actually have an inbox && recipe.to.inbox != null, ) - .forEach(recipe => inboxes.add(recipe.to.inbox)); + .forEach(recipe => inboxes.add(recipe.to.inbox!)); // deliver for (const inbox of inboxes) { From f8e6f3cc73b041acd7c8e8186090a297db3100a9 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 3 Apr 2022 22:36:30 +0900 Subject: [PATCH 08/19] improve webhook --- CHANGELOG.md | 9 +++++++++ packages/backend/src/queue/index.ts | 8 ++++++-- .../src/queue/processors/webhook-deliver.ts | 14 ++++++++------ packages/backend/src/queue/types.ts | 3 +++ packages/backend/src/services/blocking/create.ts | 6 ++---- packages/backend/src/services/following/create.ts | 6 ++---- packages/backend/src/services/following/delete.ts | 3 +-- packages/backend/src/services/following/reject.ts | 3 +-- packages/backend/src/services/note/create.ts | 12 ++++-------- 9 files changed, 36 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c874648efd..5b233f0a77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,15 @@ You should also include the user name that made the change. --> +## 12.x.x (unreleased) + +### Improvements +- Improve webhook @syuilo + +### Bugfixes +- + + ## 12.109.2 (2022/04/03) ### Bugfixes diff --git a/packages/backend/src/queue/index.ts b/packages/backend/src/queue/index.ts index a570400b7b..5bd922468d 100644 --- a/packages/backend/src/queue/index.ts +++ b/packages/backend/src/queue/index.ts @@ -1,4 +1,5 @@ import httpSignature from 'http-signature'; +import { v4 as uuid } from 'uuid'; import config from '@/config/index.js'; import { envOption } from '../env.js'; @@ -16,7 +17,7 @@ import { getJobInfo } from './get-job-info.js'; import { systemQueue, dbQueue, deliverQueue, inboxQueue, objectStorageQueue, endedPollNotificationQueue, webhookDeliverQueue } from './queues.js'; import { ThinUser } from './types.js'; import { IActivity } from '@/remote/activitypub/type.js'; -import { Webhook } from '@/models/entities/webhook.js'; +import { Webhook, webhookEventTypes } from '@/models/entities/webhook.js'; function renderError(e: Error): any { return { @@ -262,12 +263,15 @@ export function createCleanRemoteFilesJob() { }); } -export function webhookDeliver(webhook: Webhook, content: unknown) { +export function webhookDeliver(webhook: Webhook, type: typeof webhookEventTypes[number], content: unknown) { const data = { + type, content, webhookId: webhook.id, to: webhook.url, secret: webhook.secret, + createdAt: Date.now(), + eventId: uuid(), }; return webhookDeliverQueue.add(data, { diff --git a/packages/backend/src/queue/processors/webhook-deliver.ts b/packages/backend/src/queue/processors/webhook-deliver.ts index a4d39d86e4..01d779311e 100644 --- a/packages/backend/src/queue/processors/webhook-deliver.ts +++ b/packages/backend/src/queue/processors/webhook-deliver.ts @@ -8,13 +8,9 @@ import config from '@/config/index.js'; const logger = new Logger('webhook'); -let latest: string | null = null; - export default async (job: Bull.Job) => { try { - if (latest !== (latest = JSON.stringify(job.data.content, null, 2))) { - logger.debug(`delivering ${latest}`); - } + logger.debug(`delivering ${job.data.webhookId}`); const res = await getResponse({ url: job.data.to, @@ -25,7 +21,13 @@ export default async (job: Bull.Job) => { 'X-Misskey-Hook-Id': job.data.webhookId, 'X-Misskey-Hook-Secret': job.data.secret, }, - body: JSON.stringify(job.data.content), + body: JSON.stringify({ + hookId: job.data.webhookId, + eventId: job.data.eventId, + createdAt: job.data.createdAt, + type: job.data.type, + body: job.data.content, + }), }); Webhooks.update({ id: job.data.webhookId }, { diff --git a/packages/backend/src/queue/types.ts b/packages/backend/src/queue/types.ts index 8aeacf4625..c005f78ec2 100644 --- a/packages/backend/src/queue/types.ts +++ b/packages/backend/src/queue/types.ts @@ -48,10 +48,13 @@ export type EndedPollNotificationJobData = { }; export type WebhookDeliverJobData = { + type: string; content: unknown; webhookId: Webhook['id']; to: string; secret: string; + createdAt: number; + eventId: string; }; export type ThinUser = { diff --git a/packages/backend/src/services/blocking/create.ts b/packages/backend/src/services/blocking/create.ts index 5c67190079..5e96e5037f 100644 --- a/packages/backend/src/services/blocking/create.ts +++ b/packages/backend/src/services/blocking/create.ts @@ -65,8 +65,7 @@ async function cancelRequest(follower: User, followee: User) { const webhooks = (await getActiveWebhooks()).filter(x => x.userId === follower.id && x.on.includes('unfollow')); for (const webhook of webhooks) { - webhookDeliver(webhook, { - type: 'unfollow', + webhookDeliver(webhook, 'unfollow', { user: packed, }); } @@ -118,8 +117,7 @@ async function unFollow(follower: User, followee: User) { const webhooks = (await getActiveWebhooks()).filter(x => x.userId === follower.id && x.on.includes('unfollow')); for (const webhook of webhooks) { - webhookDeliver(webhook, { - type: 'unfollow', + webhookDeliver(webhook, 'unfollow', { user: packed, }); } diff --git a/packages/backend/src/services/following/create.ts b/packages/backend/src/services/following/create.ts index 7bc839c62e..7491c44f83 100644 --- a/packages/backend/src/services/following/create.ts +++ b/packages/backend/src/services/following/create.ts @@ -97,8 +97,7 @@ export async function insertFollowingDoc(followee: { id: User['id']; host: User[ const webhooks = (await getActiveWebhooks()).filter(x => x.userId === follower.id && x.on.includes('follow')); for (const webhook of webhooks) { - webhookDeliver(webhook, { - type: 'follow', + webhookDeliver(webhook, 'follow', { user: packed, }); } @@ -112,8 +111,7 @@ export async function insertFollowingDoc(followee: { id: User['id']; host: User[ const webhooks = (await getActiveWebhooks()).filter(x => x.userId === followee.id && x.on.includes('followed')); for (const webhook of webhooks) { - webhookDeliver(webhook, { - type: 'followed', + webhookDeliver(webhook, 'followed', { user: packed, }); } diff --git a/packages/backend/src/services/following/delete.ts b/packages/backend/src/services/following/delete.ts index 85e40f1365..241f9606e5 100644 --- a/packages/backend/src/services/following/delete.ts +++ b/packages/backend/src/services/following/delete.ts @@ -38,8 +38,7 @@ export default async function(follower: { id: User['id']; host: User['host']; ur const webhooks = (await getActiveWebhooks()).filter(x => x.userId === follower.id && x.on.includes('unfollow')); for (const webhook of webhooks) { - webhookDeliver(webhook, { - type: 'unfollow', + webhookDeliver(webhook, 'unfollow', { user: packed, }); } diff --git a/packages/backend/src/services/following/reject.ts b/packages/backend/src/services/following/reject.ts index e1744e05be..691fca2456 100644 --- a/packages/backend/src/services/following/reject.ts +++ b/packages/backend/src/services/following/reject.ts @@ -115,8 +115,7 @@ async function publishUnfollow(followee: Both, follower: Local) { const webhooks = (await getActiveWebhooks()).filter(x => x.userId === follower.id && x.on.includes('unfollow')); for (const webhook of webhooks) { - webhookDeliver(webhook, { - type: 'unfollow', + webhookDeliver(webhook, 'unfollow', { user: packedFollowee, }); } diff --git a/packages/backend/src/services/note/create.ts b/packages/backend/src/services/note/create.ts index 6f373aaf45..f14bc2059b 100644 --- a/packages/backend/src/services/note/create.ts +++ b/packages/backend/src/services/note/create.ts @@ -350,8 +350,7 @@ export default async (user: { id: User['id']; username: User['username']; host: getActiveWebhooks().then(webhooks => { webhooks = webhooks.filter(x => x.userId === user.id && x.on.includes('note')); for (const webhook of webhooks) { - webhookDeliver(webhook, { - type: 'note', + webhookDeliver(webhook, 'note', { note: noteObj, }); } @@ -380,8 +379,7 @@ export default async (user: { id: User['id']; username: User['username']; host: const webhooks = (await getActiveWebhooks()).filter(x => x.userId === data.reply!.userId && x.on.includes('reply')); for (const webhook of webhooks) { - webhookDeliver(webhook, { - type: 'reply', + webhookDeliver(webhook, 'reply', { note: noteObj, }); } @@ -407,8 +405,7 @@ export default async (user: { id: User['id']; username: User['username']; host: const webhooks = (await getActiveWebhooks()).filter(x => x.userId === data.renote!.userId && x.on.includes('renote')); for (const webhook of webhooks) { - webhookDeliver(webhook, { - type: 'renote', + webhookDeliver(webhook, 'renote', { note: noteObj, }); } @@ -650,8 +647,7 @@ async function createMentionedEvents(mentionedUsers: MinimumUser[], note: Note, const webhooks = (await getActiveWebhooks()).filter(x => x.userId === u.id && x.on.includes('mention')); for (const webhook of webhooks) { - webhookDeliver(webhook, { - type: 'mention', + webhookDeliver(webhook, 'mention', { note: detailPackedNote, }); } From ec3be7e4d362464a40722240e6210dfb45caed5f Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 3 Apr 2022 22:42:01 +0900 Subject: [PATCH 09/19] enhance(webhook): add userId to payload --- packages/backend/src/queue/index.ts | 1 + packages/backend/src/queue/processors/webhook-deliver.ts | 1 + packages/backend/src/queue/types.ts | 1 + 3 files changed, 3 insertions(+) diff --git a/packages/backend/src/queue/index.ts b/packages/backend/src/queue/index.ts index 5bd922468d..2d40290e4c 100644 --- a/packages/backend/src/queue/index.ts +++ b/packages/backend/src/queue/index.ts @@ -268,6 +268,7 @@ export function webhookDeliver(webhook: Webhook, type: typeof webhookEventTypes[ type, content, webhookId: webhook.id, + userId: webhook.userId, to: webhook.url, secret: webhook.secret, createdAt: Date.now(), diff --git a/packages/backend/src/queue/processors/webhook-deliver.ts b/packages/backend/src/queue/processors/webhook-deliver.ts index 01d779311e..d49206f68f 100644 --- a/packages/backend/src/queue/processors/webhook-deliver.ts +++ b/packages/backend/src/queue/processors/webhook-deliver.ts @@ -23,6 +23,7 @@ export default async (job: Bull.Job) => { }, body: JSON.stringify({ hookId: job.data.webhookId, + userId: job.data.userId, eventId: job.data.eventId, createdAt: job.data.createdAt, type: job.data.type, diff --git a/packages/backend/src/queue/types.ts b/packages/backend/src/queue/types.ts index c005f78ec2..6c0b9d9bf6 100644 --- a/packages/backend/src/queue/types.ts +++ b/packages/backend/src/queue/types.ts @@ -51,6 +51,7 @@ export type WebhookDeliverJobData = { type: string; content: unknown; webhookId: Webhook['id']; + userId: User['id']; to: string; secret: string; createdAt: number; From 45c457b8b30028c9955f0a1c9236aa0c7409b1ea Mon Sep 17 00:00:00 2001 From: syuilo Date: Tue, 5 Apr 2022 21:32:14 +0900 Subject: [PATCH 10/19] chore: fix lint on windows --- packages/backend/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend/package.json b/packages/backend/package.json index 99f78afae9..73e937b7ff 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -5,7 +5,7 @@ "scripts": { "build": "tsc -p tsconfig.json || echo done. && tsc-alias -p tsconfig.json", "watch": "node watch.mjs", - "lint": "eslint --quiet 'src/**/*.ts'", + "lint": "eslint --quiet \"src/**/*.ts\"", "mocha": "cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=\"./test/tsconfig.json\" mocha", "test": "npm run mocha" }, From 67fc39b8dba2b7555ff96797e7c338c5ccc5a2ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Apr 2022 21:34:33 +0900 Subject: [PATCH 11/19] chore(deps): bump axios from 0.21.1 to 0.21.4 (#8471) Bumps [axios](https://github.com/axios/axios) from 0.21.1 to 0.21.4. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v0.21.1...v0.21.4) --- updated-dependencies: - dependency-name: axios dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9168176339..943e3352be 100644 --- a/yarn.lock +++ b/yarn.lock @@ -510,11 +510,11 @@ aws4@^1.8.0: integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== axios@^0.21.1: - version "0.21.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" - integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + version "0.21.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== dependencies: - follow-redirects "^1.10.0" + follow-redirects "^1.14.0" bach@^1.0.0: version "1.2.0" @@ -1617,10 +1617,10 @@ flush-write-stream@^1.0.2: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@^1.10.0: - version "1.14.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" - integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== +follow-redirects@^1.14.0: + version "1.14.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" + integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" From daa0ca72a718ed4f80b4f7321ad808d6a7d3c436 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 6 Apr 2022 00:04:25 +0900 Subject: [PATCH 12/19] fix(api): parameter validation of users/show was wrong --- CHANGELOG.md | 3 +-- packages/backend/src/server/api/endpoints/users/show.ts | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b233f0a77..ee91d43446 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,8 +16,7 @@ You should also include the user name that made the change. - Improve webhook @syuilo ### Bugfixes -- - +- API: parameter validation of users/show was wrong ## 12.109.2 (2022/04/03) diff --git a/packages/backend/src/server/api/endpoints/users/show.ts b/packages/backend/src/server/api/endpoints/users/show.ts index b1a568145a..183ff1b8bb 100644 --- a/packages/backend/src/server/api/endpoints/users/show.ts +++ b/packages/backend/src/server/api/endpoints/users/show.ts @@ -23,9 +23,9 @@ export const meta = { items: { type: 'object', ref: 'UserDetailed', - } + }, }, - ] + ], }, errors: { @@ -70,7 +70,7 @@ export const paramDef = { description: 'The local host is represented with `null`.', }, }, - required: ['username', 'host'], + required: ['username'], }, ], } as const; From 9f7cdb4bc734e02be0acc03bfae5abe94ac7466c Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 8 Apr 2022 19:01:38 +0900 Subject: [PATCH 13/19] refactor --- .../src/server/api/endpoints/notes/create.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/backend/src/server/api/endpoints/notes/create.ts b/packages/backend/src/server/api/endpoints/notes/create.ts index 24d0c8134f..9de05918c0 100644 --- a/packages/backend/src/server/api/endpoints/notes/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/create.ts @@ -9,6 +9,7 @@ import { Note } from '@/models/entities/note.js'; import { noteVisibilities } from '../../../../types.js'; import { Channel } from '@/models/entities/channel.js'; import { MAX_NOTE_TEXT_LENGTH } from '@/const.js'; +import { In } from 'typeorm'; export const meta = { tags: ['notes'], @@ -163,19 +164,18 @@ export const paramDef = { export default define(meta, paramDef, async (ps, user) => { let visibleUsers: User[] = []; if (ps.visibleUserIds) { - visibleUsers = (await Promise.all(ps.visibleUserIds.map(id => Users.findOneBy({ id })))) - .filter(x => x != null) as User[]; + visibleUsers = await Users.findBy({ + id: In(ps.visibleUserIds), + }); } let files: DriveFile[] = []; const fileIds = ps.fileIds != null ? ps.fileIds : ps.mediaIds != null ? ps.mediaIds : null; if (fileIds != null) { - files = (await Promise.all(fileIds.map(fileId => - DriveFiles.findOneBy({ - id: fileId, - userId: user.id, - }) - ))).filter(file => file != null) as DriveFile[]; + files = await DriveFiles.findBy({ + userId: user.id, + id: In(fileIds), + }); } let renote: Note | null; From 9c33e6eef79b2ac6b9ae59eff249064ee5b1b07c Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 9 Apr 2022 19:33:13 +0900 Subject: [PATCH 14/19] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ee91d43446..efd1c15ecc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ You should also include the user name that made the change. ### Bugfixes - API: parameter validation of users/show was wrong +- Federation: リモートインスタンスへのダイレクト投稿が届かない問題を修正 @syuilo ## 12.109.2 (2022/04/03) From fd4ec81bcbda13c0742ee01b5cff2f31367f74d7 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 11 Apr 2022 22:48:04 +0900 Subject: [PATCH 15/19] update deps --- package.json | 2 +- packages/backend/package.json | 22 ++- packages/backend/yarn.lock | 265 ++++++++++++++++++---------------- packages/client/package.json | 24 +-- packages/client/yarn.lock | 255 ++++++++++++++++---------------- yarn.lock | 56 +++---- 6 files changed, 323 insertions(+), 301 deletions(-) diff --git a/package.json b/package.json index 9ab8f1eccc..60d24e82d1 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "js-yaml": "4.1.0" }, "devDependencies": { - "@typescript-eslint/parser": "5.17.0", + "@typescript-eslint/parser": "5.18.0", "cross-env": "7.0.3", "cypress": "9.5.3", "start-server-and-test": "1.14.0", diff --git a/packages/backend/package.json b/packages/backend/package.json index 73e937b7ff..314818f80b 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -55,25 +55,24 @@ "@types/redis": "4.0.11", "@types/rename": "1.0.4", "@types/sanitize-html": "2.6.2", - "@types/sharp": "0.30.0", + "@types/sharp": "0.30.1", "@types/sinonjs__fake-timers": "8.1.2", "@types/speakeasy": "2.0.7", - "@types/throttle-debounce": "2.1.0", "@types/tinycolor2": "1.4.3", "@types/tmp": "0.2.3", "@types/uuid": "8.3.4", "@types/web-push": "3.3.2", "@types/websocket": "1.0.5", "@types/ws": "8.5.3", - "@typescript-eslint/eslint-plugin": "5.17.0", - "@typescript-eslint/parser": "5.17.0", - "@bull-board/koa": "3.10.2", + "@typescript-eslint/eslint-plugin": "5.18.0", + "@typescript-eslint/parser": "5.18.0", + "@bull-board/koa": "3.10.3", "abort-controller": "3.0.0", "ajv": "8.11.0", "archiver": "5.3.0", "autobind-decorator": "2.4.0", "autwh": "0.1.0", - "aws-sdk": "2.1105.0", + "aws-sdk": "2.1111.0", "bcryptjs": "2.4.3", "blurhash": "1.1.5", "broadcast-channel": "4.10.0", @@ -89,8 +88,8 @@ "date-fns": "2.28.0", "deep-email-validator": "0.1.21", "escape-regexp": "0.0.1", - "eslint": "8.12.0", - "eslint-plugin-import": "2.25.4", + "eslint": "8.13.0", + "eslint-plugin-import": "2.26.0", "feed": "4.2.2", "file-type": "17.1.1", "fluent-ffmpeg": "2.1.2", @@ -145,7 +144,7 @@ "rndstr": "1.0.0", "s-age": "1.1.2", "sanitize-html": "2.7.0", - "semver": "7.3.5", + "semver": "7.3.6", "sharp": "0.30.3", "speakeasy": "2.0.0", "strict-event-emitter-types": "2.0.0", @@ -154,7 +153,6 @@ "summaly": "2.5.0", "syslog-pro": "1.0.0", "systeminformation": "5.11.9", - "throttle-debounce": "3.0.1", "tinycolor2": "1.4.2", "tmp": "0.2.1", "ts-loader": "9.2.8", @@ -162,7 +160,7 @@ "tsc-alias": "1.4.1", "tsconfig-paths": "3.14.1", "twemoji-parser": "14.0.0", - "typeorm": "0.3.4", + "typeorm": "0.3.5", "typescript": "4.6.3", "ulid": "2.3.0", "unzipper": "0.10.11", @@ -173,7 +171,7 @@ "xev": "2.0.1" }, "devDependencies": { - "@redocly/openapi-core": "1.0.0-beta.91", + "@redocly/openapi-core": "1.0.0-beta.93", "@types/fluent-ffmpeg": "2.1.20", "cross-env": "7.0.3", "execa": "6.1.0" diff --git a/packages/backend/yarn.lock b/packages/backend/yarn.lock index 970a3f8b5c..5cd71acf9c 100644 --- a/packages/backend/yarn.lock +++ b/packages/backend/yarn.lock @@ -35,20 +35,20 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" -"@bull-board/api@3.10.2": - version "3.10.2" - resolved "https://registry.yarnpkg.com/@bull-board/api/-/api-3.10.2.tgz#382450b703c671bb64eeb4d76f139b5e172d1fde" - integrity sha512-jufgsRvAZpUoq/IbmNhwRPQKav6oFUTMjgq0Z200cvNgyFkVDexPhNKNrXdhxaKhBOass4CWvgyQQntDlvCaoQ== +"@bull-board/api@3.10.3": + version "3.10.3" + resolved "https://registry.yarnpkg.com/@bull-board/api/-/api-3.10.3.tgz#c6aad9f5cfb3acbe02c57e823ee81c1ae575849d" + integrity sha512-kV6EPwi9j71qBmozvDmtT01j986r4cFqNmBgq7HApYXW0G2U8Brmv0Ut0iMQZRc/X7aA5KYL3qXcEsriFnq+jw== dependencies: redis-info "^3.0.8" -"@bull-board/koa@3.10.2": - version "3.10.2" - resolved "https://registry.yarnpkg.com/@bull-board/koa/-/koa-3.10.2.tgz#b50049355913eb049471169faec278d30bb44559" - integrity sha512-SJu+yoE/823sjif003X7030Cj8FmbQ+shUN3LPcUlQ9+0tIQ6ao0+FifJ4uhFnp1CN6FWpn+DCAf4vlC771PNQ== +"@bull-board/koa@3.10.3": + version "3.10.3" + resolved "https://registry.yarnpkg.com/@bull-board/koa/-/koa-3.10.3.tgz#b9f02629f96f056d6a038c3c58fc339d58e55abb" + integrity sha512-DK8m09MwcRwUR3tz3xI0iSK/Ih2huQ2MAWm8krYjO5deswP2yBaCWE4OtpiULLfVpf8z4zB3Oqa0xNJrKRHTOQ== dependencies: - "@bull-board/api" "3.10.2" - "@bull-board/ui" "3.10.2" + "@bull-board/api" "3.10.3" + "@bull-board/ui" "3.10.3" ejs "^3.1.6" koa "^2.13.1" koa-mount "^4.0.0" @@ -56,12 +56,12 @@ koa-static "^5.0.0" koa-views "^7.0.1" -"@bull-board/ui@3.10.2": - version "3.10.2" - resolved "https://registry.yarnpkg.com/@bull-board/ui/-/ui-3.10.2.tgz#ab6400b1cbd459604b9e8afeaef9e3cc235d1dd9" - integrity sha512-XFFbnJjZZDoMxntNdmgJoyTlEvMcCfNqeC/QPiqTJU0X/k0cxWDx36tw83PKjN+lKxPjzN/WNpTebYZPKV78Yg== +"@bull-board/ui@3.10.3": + version "3.10.3" + resolved "https://registry.yarnpkg.com/@bull-board/ui/-/ui-3.10.3.tgz#b921199d42b32d8ddd9bbf0e35c25be0d64403e9" + integrity sha512-6zYW3FqySg+4IKEeM1jt/5ixNVBKQjtZLG9W81ADVcHk8YceQ++7URWzDb8nQEct3rEW4bjR6nicVWNXMSN7Lw== dependencies: - "@bull-board/api" "3.10.2" + "@bull-board/api" "3.10.3" "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" @@ -244,10 +244,10 @@ require-from-string "^2.0.2" uri-js "^4.2.2" -"@redocly/openapi-core@1.0.0-beta.91": - version "1.0.0-beta.91" - resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-1.0.0-beta.91.tgz#58dbd8c3cad9ef82f2437c6bbeb6a14dd1bc537d" - integrity sha512-8RhZGn5jSoy3oZE0sAdXxhPPHrqKgy2JVJzLqjgX9LDjNf7cXOTYOXkXIkjv1tfZHFBV/H7c08rRLEdxnzn0dg== +"@redocly/openapi-core@1.0.0-beta.93": + version "1.0.0-beta.93" + resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-1.0.0-beta.93.tgz#882db8684598217f621adc7349288229253a0038" + integrity sha512-xQj7UnjPj3mKtkyRrm+bjzEoyo0CVNjGP4pV6BzQ0vgKf0Jqq7apFC703psyBH+JscYr7NKK1hPQU76ylhFDdg== dependencies: "@redocly/ajv" "^8.6.4" "@types/node" "^14.11.8" @@ -785,10 +785,10 @@ "@types/express-serve-static-core" "*" "@types/mime" "*" -"@types/sharp@0.30.0": - version "0.30.0" - resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.30.0.tgz#58cb016c8fdc558b4c5771ad1f3668336685c843" - integrity sha512-bZ0Y/JVlrOyqwlBMJ2taEgnwFavjLnyZmLOLecmOesuG5kR2Lx9b2fM4osgfVjLJi8UlE+t3R1JzRVMxF6MbfA== +"@types/sharp@0.30.1": + version "0.30.1" + resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.30.1.tgz#31bd128f2437e8fc31424eb23d8284aa127bfa8d" + integrity sha512-LxzQsKo2YtvA2DlqACNXmlbLGMVJCSU/HhV4N9RrStClUEf02iN+AakD/zUOpZkbo1OG+lHk2LeqoHedLwln2w== dependencies: "@types/node" "*" @@ -804,11 +804,6 @@ dependencies: "@types/node" "*" -"@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" @@ -850,14 +845,14 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz#704eb4e75039000531255672bf1c85ee85cf1d67" - integrity sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ== +"@typescript-eslint/eslint-plugin@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.18.0.tgz#950df411cec65f90d75d6320a03b2c98f6c3af7d" + integrity sha512-tzrmdGMJI/uii9/V6lurMo4/o+dMTKDH82LkNjhJ3adCW22YQydoRs5MwTiqxGF9CSYxPxQ7EYb4jLNlIs+E+A== dependencies: - "@typescript-eslint/scope-manager" "5.17.0" - "@typescript-eslint/type-utils" "5.17.0" - "@typescript-eslint/utils" "5.17.0" + "@typescript-eslint/scope-manager" "5.18.0" + "@typescript-eslint/type-utils" "5.18.0" + "@typescript-eslint/utils" "5.18.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -865,69 +860,69 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/parser@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.17.0.tgz#7def77d5bcd8458d12d52909118cf3f0a45f89d5" - integrity sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig== +"@typescript-eslint/parser@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.18.0.tgz#2bcd4ff21df33621df33e942ccb21cb897f004c6" + integrity sha512-+08nYfurBzSSPndngnHvFw/fniWYJ5ymOrn/63oMIbgomVQOvIDhBoJmYZ9lwQOCnQV9xHGvf88ze3jFGUYooQ== dependencies: - "@typescript-eslint/scope-manager" "5.17.0" - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/typescript-estree" "5.17.0" + "@typescript-eslint/scope-manager" "5.18.0" + "@typescript-eslint/types" "5.18.0" + "@typescript-eslint/typescript-estree" "5.18.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz#4cea7d0e0bc0e79eb60cad431c89120987c3f952" - integrity sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w== +"@typescript-eslint/scope-manager@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.18.0.tgz#a7d7b49b973ba8cebf2a3710eefd457ef2fb5505" + integrity sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ== dependencies: - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/visitor-keys" "5.17.0" + "@typescript-eslint/types" "5.18.0" + "@typescript-eslint/visitor-keys" "5.18.0" -"@typescript-eslint/type-utils@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz#1c4549d68c89877662224aabb29fbbebf5fc9672" - integrity sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg== +"@typescript-eslint/type-utils@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.18.0.tgz#62dbfc8478abf36ba94a90ddf10be3cc8e471c74" + integrity sha512-vcn9/6J5D6jtHxpEJrgK8FhaM8r6J1/ZiNu70ZUJN554Y3D9t3iovi6u7JF8l/e7FcBIxeuTEidZDR70UuCIfA== dependencies: - "@typescript-eslint/utils" "5.17.0" + "@typescript-eslint/utils" "5.18.0" debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.17.0.tgz#861ec9e669ffa2aa9b873dd4d28d9b1ce26d216f" - integrity sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw== +"@typescript-eslint/types@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.18.0.tgz#4f0425d85fdb863071680983853c59a62ce9566e" + integrity sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw== -"@typescript-eslint/typescript-estree@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz#a7cba7dfc8f9cc2ac78c18584e684507df4f2488" - integrity sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg== +"@typescript-eslint/typescript-estree@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz#6498e5ee69a32e82b6e18689e2f72e4060986474" + integrity sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ== dependencies: - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/visitor-keys" "5.17.0" + "@typescript-eslint/types" "5.18.0" + "@typescript-eslint/visitor-keys" "5.18.0" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.17.0.tgz#549a9e1d491c6ccd3624bc3c1b098f5cfb45f306" - integrity sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA== +"@typescript-eslint/utils@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.18.0.tgz#27fc84cf95c1a96def0aae31684cb43a37e76855" + integrity sha512-+hFGWUMMri7OFY26TsOlGa+zgjEy1ssEipxpLjtl4wSll8zy85x0GrUSju/FHdKfVorZPYJLkF3I4XPtnCTewA== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.17.0" - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/typescript-estree" "5.17.0" + "@typescript-eslint/scope-manager" "5.18.0" + "@typescript-eslint/types" "5.18.0" + "@typescript-eslint/typescript-estree" "5.18.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz#52daae45c61b0211b4c81b53a71841911e479128" - integrity sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA== +"@typescript-eslint/visitor-keys@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.18.0.tgz#c7c07709823804171d569017f3b031ced7253e60" + integrity sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg== dependencies: - "@typescript-eslint/types" "5.17.0" + "@typescript-eslint/types" "5.18.0" eslint-visitor-keys "^3.0.0" "@ungap/promise-all-settled@1.1.2": @@ -1271,10 +1266,10 @@ autwh@0.1.0: dependencies: oauth "0.9.15" -aws-sdk@2.1105.0: - version "2.1105.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1105.0.tgz#3e63129f2aca254f1d6d5a1580b988bb786e98fa" - integrity sha512-YZ6IbKvtiw8noD/Iuyp3hXNX5NmhJ2xSU4598pZr55CfnIQ0oU5ZwtQqLPG8E07ouA363/moCYddIAVGYSkQ+A== +aws-sdk@2.1111.0: + version "2.1111.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1111.0.tgz#02b1e5c530ef8140235ee7c48c710bb2dbd7dc84" + integrity sha512-WRyNcCckzmu1djTAWfR2r+BuI/PbuLrhG3oa+oH39v4NZ4EecYWFL1CoCPlC2kRUML4maSba5T4zlxjcNl7ELQ== dependencies: buffer "4.9.2" events "1.1.1" @@ -2650,32 +2645,32 @@ eslint-import-resolver-node@^0.3.6: debug "^3.2.7" resolve "^1.20.0" -eslint-module-utils@^2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz#1d0aa455dcf41052339b63cada8ab5fd57577129" - integrity sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg== +eslint-module-utils@^2.7.3: + version "2.7.3" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" + integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== dependencies: debug "^3.2.7" find-up "^2.1.0" -eslint-plugin-import@2.25.4: - version "2.25.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" - integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== +eslint-plugin-import@2.26.0: + version "2.26.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" + integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== dependencies: array-includes "^3.1.4" array.prototype.flat "^1.2.5" debug "^2.6.9" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.2" + eslint-module-utils "^2.7.3" has "^1.0.3" - is-core-module "^2.8.0" + is-core-module "^2.8.1" is-glob "^4.0.3" - minimatch "^3.0.4" + minimatch "^3.1.2" object.values "^1.1.5" - resolve "^1.20.0" - tsconfig-paths "^3.12.0" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" eslint-scope@^5.1.1: version "5.1.1" @@ -2715,10 +2710,10 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@8.12.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.12.0.tgz#c7a5bd1cfa09079aae64c9076c07eada66a46e8e" - integrity sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q== +eslint@8.13.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.13.0.tgz#6fcea43b6811e655410f5626cfcf328016badcd7" + integrity sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ== dependencies: "@eslint/eslintrc" "^1.2.1" "@humanwhocodes/config-array" "^0.9.2" @@ -3777,10 +3772,10 @@ is-core-module@^2.2.0: dependencies: has "^1.0.3" -is-core-module@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" - integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== +is-core-module@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== dependencies: has "^1.0.3" @@ -4578,6 +4573,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-cache@^7.4.0: + version "7.8.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.8.1.tgz#68ee3f4807a57d2ba185b7fd90827d5c21ce82bb" + integrity sha512-E1v547OCgJvbvevfjgK9sNKIVXO96NnsTsFPBlg4ZxjhsJSODoH9lk8Bm0OxvHNm6Vm5Yqkl/1fErDxhYL8Skg== + luxon@^1.28.0: version "1.28.0" resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.28.0.tgz#e7f96daad3938c06a62de0fb027115d251251fbf" @@ -4718,6 +4718,13 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" +minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" @@ -5419,7 +5426,7 @@ path-key@^4.0.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== -path-parse@^1.0.6: +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -6075,6 +6082,15 @@ resolve@^1.15.1, resolve@^1.20.0: is-core-module "^2.2.0" path-parse "^1.0.6" +resolve@^1.22.0: + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + dependencies: + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + responselike@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" @@ -6197,12 +6213,12 @@ seedrandom@3.0.5: resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7" integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== -semver@7.3.5, 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== +semver@7.3.6: + version "7.3.6" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.6.tgz#5d73886fb9c0c6602e79440b97165c29581cbb2b" + integrity sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w== dependencies: - lru-cache "^6.0.0" + lru-cache "^7.4.0" semver@^5.6.0: version "5.7.1" @@ -6216,6 +6232,13 @@ semver@^7.3.2, semver@^7.3.4: 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@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" @@ -6602,6 +6625,11 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" @@ -6697,11 +6725,6 @@ thenify-all@^1.0.0: 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" @@ -6821,7 +6844,7 @@ tsc-alias@1.4.1: mylas "^2.1.4" normalize-path "^3.0.0" -tsconfig-paths@3.14.1: +tsconfig-paths@3.14.1, tsconfig-paths@^3.14.1: version "3.14.1" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== @@ -6831,16 +6854,6 @@ tsconfig-paths@3.14.1: minimist "^1.2.6" strip-bom "^3.0.0" -tsconfig-paths@^3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b" - integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.0" - strip-bom "^3.0.0" - tslib@^1.8.1: version "1.11.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" @@ -6939,10 +6952,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typeorm@0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.4.tgz#6608f7efb15c40f3fa2863cefb45ff78a208c40c" - integrity sha512-6v3HH12viDhIQwQDod/B0Plt1o7IYIVDxP7zwatD6fzN+IDdqTTinW/sWNw84Edpbhh2t7XILTaQEqj0NXFP/Q== +typeorm@0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.5.tgz#8fe50d517de5ec6f4b38856ea0f180e4a60cf7e4" + integrity sha512-KL4c8nQqouHaXs4m1J3xh7oXWqX4+A9poExbceLxBRtlavpJQYqiSnqt3JYGpy7Tl9vD5DG5DrmZrSslTkkW5Q== dependencies: "@sqltools/formatter" "^1.2.2" app-root-path "^3.0.0" diff --git a/packages/client/package.json b/packages/client/package.json index d44df92d7b..9de500f3ab 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -18,7 +18,7 @@ "@types/gulp": "4.0.9", "@types/gulp-rename": "2.0.1", "@types/is-url": "1.2.30", - "@types/katex": "0.11.1", + "@types/katex": "0.14.0", "@types/matter-js": "0.17.7", "@types/mocha": "9.1.0", "@types/oauth": "0.9.1", @@ -34,7 +34,7 @@ "@types/webpack-stream": "3.2.12", "@types/websocket": "1.0.5", "@types/ws": "8.5.3", - "@typescript-eslint/parser": "5.17.0", + "@typescript-eslint/parser": "5.18.0", "@vue/compiler-sfc": "3.2.31", "abort-controller": "3.0.0", "autobind-decorator": "2.4.0", @@ -49,11 +49,11 @@ "compare-versions": "4.1.3", "content-disposition": "0.5.4", "css-loader": "6.7.1", - "cssnano": "5.1.6", + "cssnano": "5.1.7", "date-fns": "2.28.0", "escape-regexp": "0.0.1", - "eslint": "8.12.0", - "eslint-plugin-vue": "8.5.0", + "eslint": "8.13.0", + "eslint-plugin-vue": "8.6.0", "eventemitter3": "4.0.7", "feed": "4.2.2", "glob": "7.2.0", @@ -70,7 +70,7 @@ "ms": "2.1.3", "nested-property": "4.0.0", "parse5": "6.0.1", - "photoswipe": "5.2.2", + "photoswipe": "5.2.4", "portscanner": "2.2.0", "postcss": "8.4.12", "postcss-loader": "6.2.1", @@ -85,7 +85,7 @@ "reflect-metadata": "0.1.13", "rndstr": "1.0.0", "s-age": "1.1.2", - "sass": "1.49.10", + "sass": "1.50.0", "sass-loader": "12.6.0", "seedrandom": "3.0.5", "strict-event-emitter-types": "2.0.0", @@ -93,8 +93,8 @@ "style-loader": "3.3.1", "syuilo-password-strength": "0.0.1", "textarea-caret": "3.1.0", - "three": "0.139.0", - "throttle-debounce": "3.0.1", + "three": "0.139.2", + "throttle-debounce": "4.0.0", "tinycolor2": "1.4.2", "ts-loader": "9.2.8", "tsc-alias": "1.5.0", @@ -111,16 +111,16 @@ "vue-style-loader": "4.1.3", "vue-svg-loader": "0.17.0-beta.2", "vuedraggable": "4.0.1", - "webpack": "5.70.0", + "webpack": "5.72.0", "webpack-cli": "4.9.2", "websocket": "1.0.34", "ws": "8.5.0" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "5.17.0", + "@typescript-eslint/eslint-plugin": "5.18.0", "cross-env": "7.0.3", "cypress": "9.5.3", - "eslint-plugin-import": "2.25.4", + "eslint-plugin-import": "2.26.0", "start-server-and-test": "1.14.0" } } diff --git a/packages/client/yarn.lock b/packages/client/yarn.lock index ca93735b43..a4ac6d8712 100644 --- a/packages/client/yarn.lock +++ b/packages/client/yarn.lock @@ -334,10 +334,10 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/katex@0.11.1": - version "0.11.1" - resolved "https://registry.yarnpkg.com/@types/katex/-/katex-0.11.1.tgz#34de04477dcf79e2ef6c8d23b41a3d81f9ebeaf5" - integrity sha512-DUlIj2nk0YnJdlWgsFuVKcX27MLW0KbKmGVoUHmFr+74FYYNUDAaj9ZqTADvsbE8rfxuVmSFc7KczYn5Y09ozg== +"@types/katex@0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@types/katex/-/katex-0.14.0.tgz#b84c0afc3218069a5ad64fe2a95321881021b5fe" + integrity sha512-+2FW2CcT0K3P+JMR8YG846bmDwplKUTsWgT2ENwdQ1UdVfRk3GQrh6Mi4sTopy30gI8Uau5CEqHTDZ6YvWIUPA== "@types/matter-js@0.17.7": version "0.17.7" @@ -538,14 +538,14 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz#704eb4e75039000531255672bf1c85ee85cf1d67" - integrity sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ== +"@typescript-eslint/eslint-plugin@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.18.0.tgz#950df411cec65f90d75d6320a03b2c98f6c3af7d" + integrity sha512-tzrmdGMJI/uii9/V6lurMo4/o+dMTKDH82LkNjhJ3adCW22YQydoRs5MwTiqxGF9CSYxPxQ7EYb4jLNlIs+E+A== dependencies: - "@typescript-eslint/scope-manager" "5.17.0" - "@typescript-eslint/type-utils" "5.17.0" - "@typescript-eslint/utils" "5.17.0" + "@typescript-eslint/scope-manager" "5.18.0" + "@typescript-eslint/type-utils" "5.18.0" + "@typescript-eslint/utils" "5.18.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -553,69 +553,69 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/parser@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.17.0.tgz#7def77d5bcd8458d12d52909118cf3f0a45f89d5" - integrity sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig== +"@typescript-eslint/parser@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.18.0.tgz#2bcd4ff21df33621df33e942ccb21cb897f004c6" + integrity sha512-+08nYfurBzSSPndngnHvFw/fniWYJ5ymOrn/63oMIbgomVQOvIDhBoJmYZ9lwQOCnQV9xHGvf88ze3jFGUYooQ== dependencies: - "@typescript-eslint/scope-manager" "5.17.0" - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/typescript-estree" "5.17.0" + "@typescript-eslint/scope-manager" "5.18.0" + "@typescript-eslint/types" "5.18.0" + "@typescript-eslint/typescript-estree" "5.18.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz#4cea7d0e0bc0e79eb60cad431c89120987c3f952" - integrity sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w== +"@typescript-eslint/scope-manager@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.18.0.tgz#a7d7b49b973ba8cebf2a3710eefd457ef2fb5505" + integrity sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ== dependencies: - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/visitor-keys" "5.17.0" + "@typescript-eslint/types" "5.18.0" + "@typescript-eslint/visitor-keys" "5.18.0" -"@typescript-eslint/type-utils@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz#1c4549d68c89877662224aabb29fbbebf5fc9672" - integrity sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg== +"@typescript-eslint/type-utils@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.18.0.tgz#62dbfc8478abf36ba94a90ddf10be3cc8e471c74" + integrity sha512-vcn9/6J5D6jtHxpEJrgK8FhaM8r6J1/ZiNu70ZUJN554Y3D9t3iovi6u7JF8l/e7FcBIxeuTEidZDR70UuCIfA== dependencies: - "@typescript-eslint/utils" "5.17.0" + "@typescript-eslint/utils" "5.18.0" debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.17.0.tgz#861ec9e669ffa2aa9b873dd4d28d9b1ce26d216f" - integrity sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw== +"@typescript-eslint/types@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.18.0.tgz#4f0425d85fdb863071680983853c59a62ce9566e" + integrity sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw== -"@typescript-eslint/typescript-estree@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz#a7cba7dfc8f9cc2ac78c18584e684507df4f2488" - integrity sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg== +"@typescript-eslint/typescript-estree@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz#6498e5ee69a32e82b6e18689e2f72e4060986474" + integrity sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ== dependencies: - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/visitor-keys" "5.17.0" + "@typescript-eslint/types" "5.18.0" + "@typescript-eslint/visitor-keys" "5.18.0" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.17.0.tgz#549a9e1d491c6ccd3624bc3c1b098f5cfb45f306" - integrity sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA== +"@typescript-eslint/utils@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.18.0.tgz#27fc84cf95c1a96def0aae31684cb43a37e76855" + integrity sha512-+hFGWUMMri7OFY26TsOlGa+zgjEy1ssEipxpLjtl4wSll8zy85x0GrUSju/FHdKfVorZPYJLkF3I4XPtnCTewA== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.17.0" - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/typescript-estree" "5.17.0" + "@typescript-eslint/scope-manager" "5.18.0" + "@typescript-eslint/types" "5.18.0" + "@typescript-eslint/typescript-estree" "5.18.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz#52daae45c61b0211b4c81b53a71841911e479128" - integrity sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA== +"@typescript-eslint/visitor-keys@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.18.0.tgz#c7c07709823804171d569017f3b031ced7253e60" + integrity sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg== dependencies: - "@typescript-eslint/types" "5.17.0" + "@typescript-eslint/types" "5.18.0" eslint-visitor-keys "^3.0.0" "@ungap/promise-all-settled@1.1.2": @@ -1772,10 +1772,10 @@ cssesc@^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.2.6: - version "5.2.6" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.6.tgz#3a2a17b7bccdbf27dbc6d4b9a8ae2c1f1720d50c" - integrity sha512-QwnYv/ZuNH0eWOxs3ME7w5uXXdWZKKXVGn1c6P877nPLl7SR8pAQQNe1CKbcPc+qpIbb2cq554Cv3QYG0MxTSQ== +cssnano-preset-default@^5.2.7: + version "5.2.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.7.tgz#791e3603fb8f1b46717ac53b47e3c418e950f5f3" + integrity sha512-JiKP38ymZQK+zVKevphPzNSGHSlTI+AOwlasoSRtSVMUU285O7/6uZyd5NbW92ZHp41m0sSHe6JoZosakj63uA== dependencies: css-declaration-sorter "^6.2.2" cssnano-utils "^3.1.0" @@ -1786,7 +1786,7 @@ cssnano-preset-default@^5.2.6: postcss-discard-duplicates "^5.1.0" postcss-discard-empty "^5.1.1" postcss-discard-overridden "^5.1.0" - postcss-merge-longhand "^5.1.3" + postcss-merge-longhand "^5.1.4" postcss-merge-rules "^5.1.1" postcss-minify-font-values "^5.1.0" postcss-minify-gradients "^5.1.1" @@ -1812,12 +1812,12 @@ cssnano-utils@^3.1.0: resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== -cssnano@5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.6.tgz#8133722e93049ac5c284bbe5c32cbf7fc829ceca" - integrity sha512-A7oX6Vxgpc/VzyKDTLEFpv6M0n06foVSWPAb+Xg0k6ikgSaI04SnGUKOQeBdvrXZCqhp3xdlii0cp+bUCgbCRQ== +cssnano@5.1.7: + version "5.1.7" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.7.tgz#99858bef6c76c9240f0cdc9239570bc7db8368be" + integrity sha512-pVsUV6LcTXif7lvKKW9ZrmX+rGRzxkEdJuVJcp5ftUjWITgwam5LMZOgaTvUrWPkcORBey6he7JKb4XAJvrpKg== dependencies: - cssnano-preset-default "^5.2.6" + cssnano-preset-default "^5.2.7" lilconfig "^2.0.3" yaml "^1.10.2" @@ -2288,37 +2288,37 @@ eslint-import-resolver-node@^0.3.6: debug "^3.2.7" resolve "^1.20.0" -eslint-module-utils@^2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz#1d0aa455dcf41052339b63cada8ab5fd57577129" - integrity sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg== +eslint-module-utils@^2.7.3: + version "2.7.3" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" + integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== dependencies: debug "^3.2.7" find-up "^2.1.0" -eslint-plugin-import@2.25.4: - version "2.25.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" - integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== +eslint-plugin-import@2.26.0: + version "2.26.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" + integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== dependencies: array-includes "^3.1.4" array.prototype.flat "^1.2.5" debug "^2.6.9" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.2" + eslint-module-utils "^2.7.3" has "^1.0.3" - is-core-module "^2.8.0" + is-core-module "^2.8.1" is-glob "^4.0.3" - minimatch "^3.0.4" + minimatch "^3.1.2" object.values "^1.1.5" - resolve "^1.20.0" - tsconfig-paths "^3.12.0" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" -eslint-plugin-vue@8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-8.5.0.tgz#65832bba43ca713fa5da16bdfcf55d0095677f6f" - integrity sha512-i1uHCTAKOoEj12RDvdtONWrGzjFm/djkzqfhmQ0d6M/W8KM81mhswd/z+iTZ0jCpdUedW3YRgcVfQ37/J4zoYQ== +eslint-plugin-vue@8.6.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-8.6.0.tgz#fbdf0f13f8d208a4cba752bf54042661a1aec5c3" + integrity sha512-abXiF2J18n/7ZPy9foSlJyouKf54IqpKlNvNmzhM93N0zs3QUxZG/oBd3tVPOJTKg7SlhBUtPxugpqzNbgGpQQ== dependencies: eslint-utils "^3.0.0" natural-compare "^1.4.0" @@ -2371,10 +2371,10 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@8.12.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.12.0.tgz#c7a5bd1cfa09079aae64c9076c07eada66a46e8e" - integrity sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q== +eslint@8.13.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.13.0.tgz#6fcea43b6811e655410f5626cfcf328016badcd7" + integrity sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ== dependencies: "@eslint/eslintrc" "^1.2.1" "@humanwhocodes/config-array" "^0.9.2" @@ -3243,10 +3243,10 @@ is-core-module@^2.2.0: dependencies: has "^1.0.3" -is-core-module@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" - integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== +is-core-module@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== dependencies: has "^1.0.3" @@ -3845,6 +3845,13 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" +minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" @@ -4235,7 +4242,7 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -4262,10 +4269,10 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -photoswipe@5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/photoswipe/-/photoswipe-5.2.2.tgz#3960b953c504a67d1b074f60a31229ada2ed5c07" - integrity sha512-es0AEX4zgzzcrr8ztdPWRODSARCLqCm/5H/aSwFtZwovokGtzBf/y/HXJxHMnNx6h4650DkKVIVFYILXJhmMhw== +photoswipe@5.2.4: + version "5.2.4" + resolved "https://registry.yarnpkg.com/photoswipe/-/photoswipe-5.2.4.tgz#918fd64c6b41b6a693743e5d70ee1a59747f491d" + integrity sha512-7p+VH7ELUnW9/3rCULCmyXcUCEuZwcsxvxPQYzR4wk3EaXcLCiINMCspc9Qq9AJYNsqYo1qGVL1y1Tch8uKAjw== picocolors@^1.0.0: version "1.0.0" @@ -4356,10 +4363,10 @@ postcss-loader@6.2.1: klona "^2.0.5" semver "^7.3.5" -postcss-merge-longhand@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.3.tgz#a49e2be6237316e3b55e329e0a8da15d1f9f47ab" - integrity sha512-lX8GPGvZ0iGP/IboM7HXH5JwkXvXod1Rr8H8ixwiA372hArk0zP4ZcCy4z4Prg/bfNlbbTf0KCOjCF9kKnpP/w== +postcss-merge-longhand@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.4.tgz#0f46f8753989a33260efc47de9a0cdc571f2ec5c" + integrity sha512-hbqRRqYfmXoGpzYKeW0/NCZhvNyQIlQeWVSao5iKWdyx7skLvCfQFGIUsP9NUs3dSbPac2IC4Go85/zG+7MlmA== dependencies: postcss-value-parser "^4.2.0" stylehacks "^5.1.0" @@ -4896,6 +4903,15 @@ resolve@^1.15.1, resolve@^1.20.0: is-core-module "^2.2.0" path-parse "^1.0.6" +resolve@^1.22.0: + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + dependencies: + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^1.9.0: version "1.18.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" @@ -4984,10 +5000,10 @@ sass-loader@12.6.0: klona "^2.0.4" neo-async "^2.6.2" -sass@1.49.10: - version "1.49.10" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.10.tgz#7b83cee0f03bbba443111b3f94944fde2b0c7a6b" - integrity sha512-w37zfWJwKu4I78U4z63u1mmgoncq+v3iOB4yzQMPyAPVHHawaQSnu9C9ysGQnZEhW609jkcLioJcMCqm75JMdg== +sass@1.50.0: + version "1.50.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.50.0.tgz#3e407e2ebc53b12f1e35ce45efb226ea6063c7c8" + integrity sha512-cLsD6MEZ5URXHStxApajEh7gW189kkjn4Rc8DQweMyF+o5HF5nfEz8QYLMlPsTOD88DknatTmBWkOcw5/LnJLQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -5349,6 +5365,11 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + svgo@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" @@ -5443,15 +5464,15 @@ textarea-caret@3.1.0: resolved "https://registry.yarnpkg.com/textarea-caret/-/textarea-caret-3.1.0.tgz#5d5a35bb035fd06b2ff0e25d5359e97f2655087f" integrity sha512-cXAvzO9pP5CGa6NKx0WYHl+8CHKZs8byMkt3PCJBCmq2a34YA9pO1NrQET5pzeqnBjBdToF5No4rrmkDUgQC2Q== -three@0.139.0: - version "0.139.0" - resolved "https://registry.yarnpkg.com/three/-/three-0.139.0.tgz#4805eeb4cde85d8a82b6048088230f8ce5b75375" - integrity sha512-hZ4LkCjgoEM82WLaOVptDKGpB3SkEyuJP2OHe36AFO8hS2I6CrEiNanXj7wwR3wIPT7V5wi5Y5pFnncS5SVHgQ== +three@0.139.2: + version "0.139.2" + resolved "https://registry.yarnpkg.com/three/-/three-0.139.2.tgz#b110799a15736df673b9293e31653a4ac73648dd" + integrity sha512-gV7q7QY8rogu7HLFZR9cWnOQAUedUhu2WXAnpr2kdXZP9YDKsG/0ychwQvWkZN5PlNw9mv5MoCTin6zNTXoONg== -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== +throttle-debounce@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-4.0.0.tgz#ec763b1c050c3a8f73eddd2e853a720893102a40" + integrity sha512-bO2OiH++k8Z3cTNZccOJRlxY5Sk3Tx3Kz6cQl3VY5pTRcEgqbPxwEKtrC00whFAo2jIBQlaH1ZG5mtfrBef3qw== throttleit@^1.0.0: version "1.0.0" @@ -5522,7 +5543,7 @@ tsc-alias@1.5.0: mylas "^2.1.6" normalize-path "^3.0.0" -tsconfig-paths@3.14.1: +tsconfig-paths@3.14.1, tsconfig-paths@^3.14.1: version "3.14.1" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== @@ -5532,16 +5553,6 @@ tsconfig-paths@3.14.1: minimist "^1.2.6" strip-bom "^3.0.0" -tsconfig-paths@^3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b" - integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.0" - strip-bom "^3.0.0" - tslib@^1.8.1, tslib@^1.9.0: version "1.11.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" @@ -5866,10 +5877,10 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@5.70.0: - version "5.70.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.70.0.tgz#3461e6287a72b5e6e2f4872700bc8de0d7500e6d" - integrity sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw== +webpack@5.72.0: + version "5.72.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.72.0.tgz#f8bc40d9c6bb489a4b7a8a685101d6022b8b6e28" + integrity sha512-qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^0.0.51" diff --git a/yarn.lock b/yarn.lock index 943e3352be..2dc0d12ecf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -194,48 +194,48 @@ dependencies: "@types/node" "*" -"@typescript-eslint/parser@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.17.0.tgz#7def77d5bcd8458d12d52909118cf3f0a45f89d5" - integrity sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig== +"@typescript-eslint/parser@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.18.0.tgz#2bcd4ff21df33621df33e942ccb21cb897f004c6" + integrity sha512-+08nYfurBzSSPndngnHvFw/fniWYJ5ymOrn/63oMIbgomVQOvIDhBoJmYZ9lwQOCnQV9xHGvf88ze3jFGUYooQ== dependencies: - "@typescript-eslint/scope-manager" "5.17.0" - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/typescript-estree" "5.17.0" + "@typescript-eslint/scope-manager" "5.18.0" + "@typescript-eslint/types" "5.18.0" + "@typescript-eslint/typescript-estree" "5.18.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz#4cea7d0e0bc0e79eb60cad431c89120987c3f952" - integrity sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w== +"@typescript-eslint/scope-manager@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.18.0.tgz#a7d7b49b973ba8cebf2a3710eefd457ef2fb5505" + integrity sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ== dependencies: - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/visitor-keys" "5.17.0" + "@typescript-eslint/types" "5.18.0" + "@typescript-eslint/visitor-keys" "5.18.0" -"@typescript-eslint/types@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.17.0.tgz#861ec9e669ffa2aa9b873dd4d28d9b1ce26d216f" - integrity sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw== +"@typescript-eslint/types@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.18.0.tgz#4f0425d85fdb863071680983853c59a62ce9566e" + integrity sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw== -"@typescript-eslint/typescript-estree@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz#a7cba7dfc8f9cc2ac78c18584e684507df4f2488" - integrity sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg== +"@typescript-eslint/typescript-estree@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz#6498e5ee69a32e82b6e18689e2f72e4060986474" + integrity sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ== dependencies: - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/visitor-keys" "5.17.0" + "@typescript-eslint/types" "5.18.0" + "@typescript-eslint/visitor-keys" "5.18.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.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz#52daae45c61b0211b4c81b53a71841911e479128" - integrity sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA== +"@typescript-eslint/visitor-keys@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.18.0.tgz#c7c07709823804171d569017f3b031ced7253e60" + integrity sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg== dependencies: - "@typescript-eslint/types" "5.17.0" + "@typescript-eslint/types" "5.18.0" eslint-visitor-keys "^3.0.0" aggregate-error@^3.0.0: From a7015e6f09a7d9dd8390e48db315ccf5a4bcaa51 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 11 Apr 2022 22:50:53 +0900 Subject: [PATCH 16/19] refactor --- packages/client/src/account.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/client/src/account.ts b/packages/client/src/account.ts index 4772c0baa5..f4dcab319c 100644 --- a/packages/client/src/account.ts +++ b/packages/client/src/account.ts @@ -72,7 +72,7 @@ export async function addAccount(id: Account['id'], token: Account['token']) { } } -function fetchAccount(token): Promise { +function fetchAccount(token: string): Promise { return new Promise((done, fail) => { // Fetch user fetch(`${apiUrl}/i`, { From 08ff4926c7684a5f0c37ae4aec8bdb5b75721cc4 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 11 Apr 2022 23:11:11 +0900 Subject: [PATCH 17/19] enhance(client): show loading icon on splash screen Close #8481 --- CHANGELOG.md | 1 + packages/backend/src/server/web/style.css | 47 ++++++++++++++++++- .../backend/src/server/web/views/base.pug | 3 +- 3 files changed, 49 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index efd1c15ecc..f6fafad14c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ You should also include the user name that made the change. ### Improvements - Improve webhook @syuilo +- Client: Show loading icon on splash screen @syuilo ### Bugfixes - API: parameter validation of users/show was wrong diff --git a/packages/backend/src/server/web/style.css b/packages/backend/src/server/web/style.css index 43fbe1ab06..9c4cd4b9bf 100644 --- a/packages/backend/src/server/web/style.css +++ b/packages/backend/src/server/web/style.css @@ -16,7 +16,7 @@ html { transition: opacity 0.5s ease; } -#splash > img { +#splashIcon { position: absolute; top: 0; right: 0; @@ -27,3 +27,48 @@ html { height: 64px; pointer-events: none; } + +#splashSpinner { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + display: inline-block; + width: 28px; + height: 28px; + transform: translateY(70px); +} + +#splashSpinner:before, +#splashSpinner:after { + content: " "; + display: block; + box-sizing: border-box; + width: 28px; + height: 28px; + border-radius: 50%; + border: solid 4px; +} + +#splashSpinner:before { + border-color: currentColor; + opacity: 0.3; +} + +#splashSpinner:after { + position: absolute; + top: 0; + border-color: currentColor transparent transparent transparent; + animation: splashSpinner 0.5s linear infinite; +} + +@keyframes splashSpinner { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} diff --git a/packages/backend/src/server/web/views/base.pug b/packages/backend/src/server/web/views/base.pug index abacb1ccfc..1513208310 100644 --- a/packages/backend/src/server/web/views/base.pug +++ b/packages/backend/src/server/web/views/base.pug @@ -59,5 +59,6 @@ html br | Please turn on your JavaScript div#splash - img(src= icon || '/static-assets/splash.png') + img#splashIcon(src= icon || '/static-assets/splash.png') + div#splashSpinner block content From 6e50579f9f1b9ce56eae928d202580ba06bad90a Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 11 Apr 2022 23:12:27 +0900 Subject: [PATCH 18/19] New Crowdin updates (#8469) * New translations ja-JP.yml (Bengali) * New translations ja-JP.yml (Romanian) * New translations ja-JP.yml (Romanian) * New translations ja-JP.yml (Romanian) * New translations ja-JP.yml (Romanian) * New translations ja-JP.yml (Romanian) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Chinese Traditional) * New translations ja-JP.yml (Chinese Traditional) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Arabic) * New translations ja-JP.yml (Chinese Traditional) * New translations ja-JP.yml (Chinese Traditional) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) --- locales/ar-SA.yml | 4 + locales/bn-BD.yml | 4 + locales/eo-UY.yml | 1037 +-------------------------------------------- locales/ro-RO.yml | 43 ++ locales/zh-TW.yml | 29 ++ 5 files changed, 86 insertions(+), 1031 deletions(-) diff --git a/locales/ar-SA.yml b/locales/ar-SA.yml index 69d9327837..f3f8b45777 100644 --- a/locales/ar-SA.yml +++ b/locales/ar-SA.yml @@ -908,6 +908,7 @@ _mfm: rainbow: "قوس قزح" rainbowDescription: "اجعل المحتوى يظهر بألوان الطيف" rotate: "تدوير" + rotateDescription: "يُدير المحتوى بزاوية معيّنة." _instanceTicker: none: "لا تظهره بتاتًا" remote: "أظهر للمستخدمين البِعاد" @@ -1236,6 +1237,8 @@ _pages: font: "الخط" fontSerif: "Serif" fontSansSerif: "Sans Serif" + eyeCatchingImageSet: "عيّن صورة مصغّرة" + eyeCatchingImageRemove: "احذف صورة مصغّرة" chooseBlock: "إضافة كتلة" selectType: "اختر النوع" enterVariableName: "أدخل اسم المتغيّر" @@ -1496,6 +1499,7 @@ _notification: pollVote: "مصوِت شارك في الاستطلاع" receiveFollowRequest: "طلبات المتابعة المتلقاة" followRequestAccepted: "طلبات المتابعة المقبولة" + groupInvited: "دعوات الفريق" app: "إشعارات التطبيقات المرتبطة" _deck: alwaysShowMainColumn: "أظهر العمود الرئيسي دائمًا" diff --git a/locales/bn-BD.yml b/locales/bn-BD.yml index 870a16bc09..b2ba236fd5 100644 --- a/locales/bn-BD.yml +++ b/locales/bn-BD.yml @@ -832,6 +832,10 @@ size: "আকার" numberOfColumn: "কলামের সংখ্যা" searchByGoogle: "গুগল" indefinitely: "অনির্দিষ্ট" +tenMinutes: "১০ মিনিট" +oneHour: "১ ঘণ্টা" +oneDay: "একদিন" +oneWeek: "এক সপ্তাহ" _emailUnavailable: used: "এই ইমেইল ঠিকানাটি ইতোমধ্যে ব্যবহৃত হয়েছে" format: "এই ইমেল ঠিকানাটি সঠিকভাবে লিখা হয়নি" diff --git a/locales/eo-UY.yml b/locales/eo-UY.yml index 72d81b4ac1..65a5931574 100644 --- a/locales/eo-UY.yml +++ b/locales/eo-UY.yml @@ -1,703 +1,48 @@ --- -_lang_: "Esperanto" -headlineMisskey: "Reto konektita per notoj" -introMisskey: "Bonvenon! Misskey estas malfermitkoda malcentraliza etbloga servo.\nKreu \"noto\"n por diskonigi nunan aferon, aŭ por paroli vian penson al ĉiuj ĉirkaŭ vi. 📡\nLa funkcio \"reago\" ebligas esprimi rapide vian senton pri la noto de la alia en la Fediverso. 👍\nBonvole esploru novan mondon. 🚀" -monthAndDay: "La {day}a de l' {month}a" -search: "Serĉi" -notifications: "Sciigoj" -username: "Uzantnomo" -password: "Pasvorto" -forgotPassword: "Ĉu vi forgesis vian pasvorton?" -fetchingAsApObject: "Informpetado de la Fediverso…" -ok: "Okej" -gotIt: "Kompreni" -cancel: "Nuligi" -enterUsername: "Entajpu uzantnomon" -renotedBy: "Plusendita de {user}" -noNotes: "Neniu noto!" -noNotifications: "Vi ne havas sciigojn." -instance: "Nodo" -settings: "Agordoj" -basicSettings: "Ĝeneralaj agordoj" -otherSettings: "Aliaj agordoj" -openInWindow: "Malfermi en nova fenestro" -profile: "Profilo" -timeline: "Templinio" -noAccountDescription: "La uzanto ankoraŭ ne skribis la prion de sia profilo." -login: "Saluti" -loggingIn: "Salutado…" -logout: "Adiaŭi" -signup: "Registriĝi" -uploading: "Alŝutado…" -save: "Konservi" -users: "Uzantoj" -addUser: "Aldoni uzanton" -favorite: "Preferi" -favorites: "Preferaĵoj" -unfavorite: "Malpreferi" -favorited: "Aldonita al viaj preferaĵoj." -alreadyFavorited: "Jam aldonita al viaj preferaĵoj." -cantFavorite: "Oni ne povis aldoni al viaj preferaĵoj." -pin: "Alpingli" -unpin: "Depingli" -copyContent: "Kopii enhavon" -copyLink: "Kopii la ligilon" -delete: "Forviŝi" -deleteAndEdit: "Forviŝi kaj redakti" -deleteAndEditConfirm: "Ĉu vi certas ke vi volas foriginte redakti la noton? Vi perdos ĉiujn reagojn, plusendojn, kaj respondojn je ĝi." -addToList: "Aldoni al listo" -sendMessage: "Sendi mesaĝon" -copyUsername: "Kopii uzantnomon" -searchUser: "Serĉi uzanton" -reply: "Respondi" -loadMore: "Vidi pli" -showMore: "Vidi pli" -youGotNewFollower: "eksekvis vin" -receiveFollowRequest: "Peto de sekvado estas ricevita" -followRequestAccepted: "La peto de sekvado akceptita" -mention: "Mencioj" -mentions: "Mencioj" -directNotes: "Rekte senditaj" -importAndExport: "Enporti kaj elporti" -import: "Enporti" -export: "Elporti" -files: "Dosieroj" -download: "Elŝuti" -driveFileDeleteConfirm: "Ĉu vi certas, ke vi volas forviŝi la dosieron \"{name}\"? Tio ankaŭ forviŝos la notojn kiuj citas ĝin." -unfollowConfirm: "Ĉu vi certas, ke vi volas ĉesi sekvi {name}?" +ok: "Bone" exportRequested: "Vi petis elporton. Ĝi povas bezoni longan tempon. Elportaĵo estos aldonita al disko post elportado." importRequested: "Vi petis enportadon. Ĝi povas bezoni longan tempon. " -lists: "Listoj" -noLists: "Neniu listo" -note: "Noti" -notes: "Notoj" -following: "Sekvi" -followers: "Sekvantoj" -followsYou: "Sekvas vin" -createList: "Krei liston" -manageLists: "Bonteni la listojn" -error: "Eraro" -somethingHappened: "Problemo okazis" -retry: "Provi denove" pageLoadError: "Fuŝiĝis enlegi paĝon." pageLoadErrorDescription: "Ordinare tio okazas pro la retkondiĉo aŭ la staplo de retumilo.\nPurigu la staplon, aŭ refaru poste. " -serverIsDead: "La servilo ne respondas. Vole atendu iom kaj penu denove." youShouldUpgradeClient: "Por montri ĉi paĝon, bonvolu enlegi refoje kaj uzi klienton novversian." -enterListName: "Entajpu nomon de la listo" -privacy: "Privateco" -makeFollowManuallyApprove: "Eksekvi vin devas peti al vi" -defaultNoteVisibility: "Implicita videbleco de la noto" -follow: "Sekvi" -followRequest: "Peti de sekvado" -followRequests: "Petoj de sekvado" -unfollow: "Ne plu sekvi" -followRequestPending: "Atendado akcepti vian peton de eksekvado" -enterEmoji: "Entajpu emoĵion" -renote: "Plusendi la noton" -unrenote: "Malfari plusendon" -renoted: "Sukcese plusendita" -cantRenote: "Oni ne povas plusendi la noton." -cantReRenote: "Plusendo ne estas plusendebla." -quote: "Citi" -pinnedNote: "Alpinglita noto" -pinned: "Alpingli" -you: "Vi" -clickToShow: "Klaki por malkaŝi" -sensitive: "Enhavo ne estas deca por laborejo (NSFW)" -add: "Aldoni" -reaction: "Reagoj" -reactionSetting: "Reagoj aperontaj en la elektilo de reagoj" -rememberNoteVisibility: "Rememori la agordon de videbleco de la lasta afiŝado" -attachCancel: "Deigi aldonaĵon" -markAsSensitive: "Troviĝi NSFW" -unmarkAsSensitive: "Ne troviĝi NSFW" -enterFileName: "Entajpu nomon de la dosiero" -mute: "Silentigi" -unmute: "Malsilentigi" -block: "Bloki" -unblock: "Malbloki" -suspend: "Flostigi" -unsuspend: "Fandi" -blockConfirm: "Ĉu vi certas ke vi volas bloki la uzanton?" -unblockConfirm: "Ĉu vi certas ke vi volas malbloki la uzanton?" -suspendConfirm: "Ĉu vi certas ke vi volas frostigi la uzanton?" -unsuspendConfirm: "Ĉu vi certas ke vi volas fandi la uzanton?" -selectList: "Elekti liston" -selectAntenna: "Elekti antenon" -selectWidget: "Elekti enestraĵon" -editWidgets: "Redakti fenestraĵon" -editWidgetsExit: "Fini la redaktadon" -customEmojis: "Propraj emoĝioj" -emoji: "Emoĵio" -emojis: "Emoĵio" -emojiName: "Nomo de la emoĵio" -emojiUrl: "URL de la emoĵio" -addEmoji: "Aldoni emoĵion" -settingGuide: "Agordaj rekomendoj" -cacheRemoteFiles: "Stapli forajn dosierojn" -flagAsBot: "Marki kiel esti uzanto de roboto" -flagAsCat: "Marki kiel esti kato" flagAsCatDescription: "Flagu por montri ke la konton havas kato." -flagShowTimelineReplies: "Montri la respondojn en la templinio" -autoAcceptFollowed: "Aŭtomate akcepti la peton de sekvado far uzantoj kiujn vi sekvas" -addAccount: "Aldoni konton" -loginFailed: "Saluto malsukcesis" -showOnRemote: "Vidi pli al la originala profilo" -general: "Ĝenerala" -wallpaper: "Ekranfonoj" -setWallpaper: "Apliki ekranfonon" -removeWallpaper: "Forviŝi ekranfonon. " -searchWith: "Serĉi: {q}" -youHaveNoLists: "Vi ne havas listojn." -followConfirm: "Ĉu vi certas ke vi volas sekvi {name}?" -proxyAccount: "Retperanta konto" -host: "Nodo" -selectUser: "Elekti uzanton" -recipient: "Ricevonton" -annotation: "Komentarioj" -federation: "Federaĵo" -instances: "Nodoj" -registeredAt: "Registrita je" -latestRequestSentAt: "La laste sendita peto" -latestRequestReceivedAt: "La laste ricevita peto " -latestStatus: "Laŭstato" -charts: "Diagramoj" -perHour: "por horo" -perDay: "por tago" -blockThisInstance: "Bloki la nodon" -operations: "Agoj" -software: "Programaro" -version: "Versio" -metadata: "Pridatumoj" -withNFiles: "{n} dosiero(j)" -monitor: "Monitoro" -network: "Reto" -disk: "Disko" -instanceInfo: "Informoj sur la nodo" -statistics: "Statistikoj" -clearCachedFiles: "Malplenigi la staplon" -clearCachedFilesConfirm: "Ĉu vi certas, ke vi volas forviŝi ĉiujn forajn dosierojn en la staplo?" -blockedInstances: "Blokitaj nodoj" -muteAndBlock: "Silentigi / Bloki" -mutedUsers: "Silentigitaj uzantoj" -blockedUsers: "Blokitaj uzantoj" -noUsers: "Neniu uzanto" -editProfile: "Redakti profilon" -noteDeleteConfirm: "Ĉu vi certas ke vi volas forviŝi la noton?" -pinLimitExceeded: "Vi ne povas alpingli pli" -intro: "La instalado de Misskey finiĝis! Volu krei administran konton." -done: "Fini" -processing: "Prilaborado…" -preview: "Antaŭmontro" -default: "Implicitaĵo" -noCustomEmojis: "Neniu emoĵio" -noJobs: "Neniu laboro" -federating: "Federantaj" -blocked: "Blokitaj" -suspended: "Suspenditaj" -all: "Ĉiuj" -subscribing: "Abonitaj" -publishing: "Abonintaj" -notResponding: "Alvokato ne disponeblas" -instanceFollowing: "Sekvatoj en la nodo" -instanceFollowers: "Sekvantoj el la nodo" -instanceUsers: "Uzantoj de la nodo" -changePassword: "Ŝanĝi pasvorton" -security: "Sekureco" -retypedNotMatch: "La enigitoj ne estas konformaj." -currentPassword: "Aktuala pasvorto" -newPassword: "Nova pasvorto" -newPasswordRetype: "Reentajpu la novan pasvorton" -attachFile: "Aldoni dosieron" -more: "Pli!" -featured: "Maksimumi" -usernameOrUserId: "Uzantnomo aŭ identigilo de uzanto" -noSuchUser: "Neniuj uzantoj trovitaj" -lookup: "Informpeti" -announcements: "Novaĵoj" -imageUrl: "URL de la bildo" -remove: "Forigi" -removed: "Forigita" -removeAreYouSure: "Ĉu vi certas ke vi volas forigi \"{x}\"n?" -deleteAreYouSure: "Ĉu vi certas ke vi volas forviŝi \"{x}\"'?" -resetAreYouSure: "Ĉu vi certas restarigi?" -saved: "Konservita" -messaging: "Retbabili" -upload: "Alŝuti" -keepOriginalUploading: "Konservi originalon" -fromDrive: "De la disko" -fromUrl: "De URL" -uploadFromUrl: "Alŝuti de URL" -uploadFromUrlDescription: "URL de la dosiero kiun vi volas alŝuti" -uploadFromUrlRequested: "La alŝutado estis patita" -explore: "Esplori" -messageRead: "Legita" -noMoreHistory: "Ne plu de la historio" -startMessaging: "Komenci babiladon" -nUsersRead: "Legita de {n} homoj" -agreeTo: "Mi akceptas {0}" -tos: "Kondiĉoj de uzado" -start: "Komenciĝi" -home: "Hejma" -remoteUserCaution: "La informoj eblas nekompletaj ĉar estas fora uzanto." -activity: "Aktiveco" -images: "Bildoj" -birthday: "Naskiĝdato" -yearsOld: "{age} jaroj aĝa" -registeredDate: "Dato de registriĝo" -location: "Kie" -theme: "Koloraro" -themeForLightMode: "Koloraro uzita en la luma modo" -themeForDarkMode: "Koloraro uzita en la malluma modo" -light: "Luma" -dark: "Malluma" -lightThemes: "Luma koloraro" -darkThemes: "Malluma koloraro" -syncDeviceDarkMode: "Speguli la luman modon de via aparato" -drive: "Disko" -fileName: "Dosiernomo" -selectFile: "Elekti dosieron" -selectFiles: "Elekti dosieron" -selectFolder: "Elekti dosierujon" -selectFolders: "Elekti dosierujon" -renameFile: "Alinomi la dosieron" -folderName: "Nomo de la dosierujo" -createFolder: "Krei dosierujon" -renameFolder: "Alinomi la dosierujon" -deleteFolder: "Forviŝi dosierujon" -addFile: "Aldoni dosieron" -emptyDrive: "La disko malplenas" -emptyFolder: "La dosierujo malplenas" -unableToDelete: "Ne forviŝebla" -inputNewFileName: "Entajpu novan nomon de la dosiero" -inputNewDescription: "Entajpu novan priskribon" -inputNewFolderName: "Entajpu novan nomon de la dosierujo" -hasChildFilesOrFolders: "La dosierujo ne estas forviŝebla, ĉar ĝi ne malplenas." -copyUrl: "Kopii URL" -rename: "Alinomi" -avatar: "Bildsimbolo" -banner: "Standardo" -nsfw: "Enhavo ne estas deca por laborejo (NSFW)" +flagShowTimelineReplies: "Montri respondon de notoj en templinio." +intro: "Instalado de Misskey finiĝis! Kreu administran konton." whenServerDisconnected: "Kiam vi malligiĝas de servilo" -disconnectedFromServer: "Malkonektita de servilo" -reload: "Reŝargi" -doNothing: "Ignori" -reloadConfirm: "Ĉu vi volas reŝargi?" -watch: "Observi" -unwatch: "Malobservi" -accept: "Permesi" -reject: "Malakcepti" -normal: "Normala" -instanceName: "Nomo de la nodo" -instanceDescription: "Priskribo de la nodo " -maintainerName: "Nomo de la administranto" -maintainerEmail: "Retpoŝtadreso de la administranto" -tosUrl: "URL de kondiĉoj de uzado" -thisYear: "Ĉi-jare" -thisMonth: "Ĉi-monate" -today: "Hodiaŭ" -dayX: "{day}a" -monthX: "La {month}a monato" -yearX: "La jaro {year}" -pages: "Paĝoj" -integration: "Integri" -connectService: "Konekti" -disconnectService: "Farkonektiĝi" -enableLocalTimeline: "Ebligi lokan templinion" -enableGlobalTimeline: "Ebligi mallokan templinion" -registration: "Registri" -enableRegistration: "Ebligi novan uzanton registriĝon" -invite: "Inviti" -driveCapacityPerLocalAccount: "Volumo de disko po unu loka uzanto" -driveCapacityPerRemoteAccount: "Volumo de disko po unu fora uzanto" -iconUrl: "URL de la bildsimbolo (retpaĝsimbolo, ktp.)" -bannerUrl: "URL de standardo" -backgroundImageUrl: "URL de la fona bildo" -basicInfo: "Baza informo" -pinnedUsers: "Alpinglita uzanto" -pinnedUsersDescription: "Laŭlinigu uzantnomojn en ĉiu linio, por alpingli al la paĝoj ekz \"Esplori\"." -pinnedPages: "Alpinglitaj paĝoj" -pinnedPagesDescription: "Laŭlinigu dosierindikojn de paĝo en ĉiu linio, por alpingli al la ĉefpaĝo de la nodo." -pinnedNotes: "Alpinglita noto" -hcaptcha: "hCaptcha" -enableHcaptcha: "Ebligi hCaptcha" -hcaptchaSiteKey: "Reteja ŝlosilo" -hcaptchaSecretKey: "Sekreta ŝlosilo" -recaptcha: "reCAPTCHA" -enableRecaptcha: "Ebligi reCAPTCHA" -recaptchaSiteKey: "Reteja ŝlosilo" -recaptchaSecretKey: "Sekreta ŝlosilo" -antennas: "Antenoj" -manageAntennas: "Administri antenojn" -name: "Nomo" -antennaSource: "Fonto de la anteno" -antennaKeywords: "Ricevi per ĉefterminoj" -antennaExcludeKeywords: "Krom ĉefterminoj" -notifyAntenna: "Oni sciigos novajn notojn" -withFileAntenna: "Nur kun aldonaĵo" -enableServiceworker: "Aktivigi ServiceWorker" caseSensitive: "Distingi usklecon" -withReplies: "Inkluzive respondoj" -connectedTo: "Sekva konto estas konektita" -notesAndReplies: "Kun respondoj" -withFiles: "Kun aldonaĵo" -silence: "Mutigi" -silenceConfirm: "Ĉu vi certas ke vi volas mutigi la uzanton?" -unsilence: "Malmutigi" -unsilenceConfirm: "Ĉu vi certas ke vi volas malmutigi la uzanton?" -popularUsers: "Popularaj uzantoj" -recentlyUpdatedUsers: "Lastatempe afiŝintaj uzantoj" -recentlyRegisteredUsers: "Lastatempe aniĝintaj uzantoj" -recentlyDiscoveredUsers: "Lastatempe eltrovitaj uzantoj" -exploreUsersCount: "Jen {count} uzantoj" -exploreFediverse: "Esplori la Fediverson" -popularTags: "Popularaj kradvortoj" -userList: "Listoj" -about: "Informoj" -aboutMisskey: "Pri Misskey" -administrator: "Administranto" -token: "Peco" -twoStepAuthentication: "Dua-faktora aŭtentiko" -moderator: "Kontrolisto" -nUsersMentioned: "{n} uzanto(j) menciis" -securityKey: "Sekureca ŝlosilo" -securityKeyName: "Nomo de la ŝlosilo" -registerSecurityKey: "Registri ŝlosilon de sekureco" -lastUsed: "La plej malnove uzita" -unregister: "Malregistriĝi" -passwordLessLogin: "Saluti sen pasvorto" -resetPassword: "Restarigi pasvorton" -newPasswordIs: "La nova pasvorto estas {password}." -reduceUiAnimation: "Redukti la animaciojn de la fasado" -share: "Kundividi" -notFound: "Ne trovita" -uploadFolder: "Dosierujo implicita por alŝuto" -cacheClear: "Malplenigi staplon" -markAsReadAllNotifications: "Marki ĉiujn sciigojn kiel legita" markAsReadAllUnreadNotes: "Marki ĉiujn afiŝojn kiel legita" -markAsReadAllTalkMessages: "Marki ĉiujn retbabiladojn kiel legita" -help: "Manlibro de uzado" -inputMessageHere: "Entajpu mesaĝon tie" -close: "Fermi" -group: "Grupo" -groups: "Grupoj" -createGroup: "Krei grupon" -ownedGroups: "Administrataj grupoj" -joinedGroups: "Grupoj al kiuj vi aliĝis" -invites: "Inviti" -groupName: "Grupa nomo" -members: "Membroj" -transfer: "Movi" -messagingWithUser: "Private babili " -messagingWithGroup: "Babili grupe" -title: "Titolo" -text: "Teksto" -enable: "Ebligi" -next: "Sekve" -retype: "Retajpu" -noteOf: "Noto de {user}" -inviteToGroup: "Inviti al grupo" -quoteAttached: "Kun citaĵo" -quoteQuestion: "Ĉu vi volas aldoni citaĵon?" -noMessagesYet: "Ankoraŭ neniu mesaĝo" -newMessageExists: "Vi ricevis novan mesaĝon." -onlyOneFileCanBeAttached: "Oni povas aldoni nur unu dosieron po mesaĝo." -signinRequired: "Bonvolu saluti" -invitations: "Inviti" -invitationCode: "Kodo de invito" checking: "kontrolante..." -available: "Disposabla" -unavailable: "Ne disponebla" -usernameInvalidFormat: "La uzantnomo povas enhavi minusklajn kaj majusklajn literojn, numerojn, nur kaj '_'." -tooShort: "Tro mallonga" -tooLong: "Tro longa" -weakPassword: "Malforta pasvorto" -normalPassword: "Meza pasvorto" -strongPassword: "Forta pasvorto" -passwordMatched: "Konforma" -passwordNotMatched: "Nekonforma" -signinWith: "Saluti kun {x}" signinFailed: "Fuŝiĝis ensaluti. Bonvolu kontroli uzantnomon kaj pasvorton." -or: "Aŭ" -language: "Lingvo" -uiLanguage: "Lingvo de la fasado" -groupInvited: "Invitita al grupo" -aboutX: "Pri {x}" -useOsNativeEmojis: "Uzi la emoĵiojn implicitan de la operaciumo" -youHaveNoGroups: "Neniuj grupoj" -noHistory: "Neniom historio" -signinHistory: "Historio de aliroj al la konto" -doing: "Traktado..." -category: "Kategorio" -tags: "Etikedoj" -docSource: "Fonto de la dokumento" -createAccount: "Krei konton" -existingAccount: "Ekzistan konton" -regenerate: "Regeneri" -fontSize: "Tipara grando" -noFollowRequests: "Vi ne havas peto de sekvado" -openImageInNewTab: "Malfermi la bildojn en nova tablo" -dashboard: "Stirpanelo" -local: "Loka" -remote: "Fora" -total: "Entute" -appearance: "Eksteraĵo" -clientSettings: "Agordoj de kliento" -accountSettings: "Agordoj de konto" promote: "Reklamata" -numberOfDays: "Nombro de tagoj" -hideThisNote: "Kaŝi la noton" -showFeaturedNotesInTimeline: "Montri en via templinio notojn de la tendenco" -objectStorageBaseUrl: "Baza URL" -objectStoragePrefix: "Prefix" -objectStorageRegion: "Regiono" -objectStorageUseSSL: "Oni uzas SSL" -objectStorageUseProxy: "Uzi retperilon" -serverLogs: "Servila protokolo" -deleteAll: "Forviŝi ĉiujn" -newNoteRecived: "Jen novaj notoj" -sounds: "Sonoj" -listen: "Aŭdi" -none: "Neniu" -showInPage: "Vidi en paĝo" -popout: "Superigi" -volume: "Laŭteco" -masterVolume: "Baza laŭteco" -details: "Detaloj" -chooseEmoji: "Elekti emoĵion" -recentUsed: "Lastatempe uzitaj" -install: "Instali" -uninstall: "Malinstali" -installedApps: "Instalita programo" -nothing: "Neniu" -installedDate: "Dato de instalado" -lastUsedDate: "Lastfoje uzita je" -state: "Stato" -sort: "Ordigi laŭ" -ascendingOrder: "Kreska ordo" -descendingOrder: "Malkreska ordo" -scratchpad: "Malneta redaktilo" -output: "Elmeto" -script: "Skripto" -disablePagesScript: "Malebligi AiScript en la paĝoj" updateRemoteUser: "Aktualigi informon de foraj uzantoj" -deleteAllFiles: "Forviŝi ĉiujn dosierojn" -deleteAllFilesConfirm: "Ĉu vi certas, ke vi volas forviŝi ĉiujn dosierojn?" -removeAllFollowing: "Ĉesi sekvi ĉiujn sekvatojn" -userSuspended: "La uzanto estas flostigita." -userSilenced: "La uzanto estas mutigita." yourAccountSuspendedTitle: "La konto estas frostigita." -menu: "Menuo" -addItem: "Aldoni novaĵon" -deletedNote: "Forviŝita noto" -invisibleNote: "Malpublikigita noto" -enableInfiniteScroll: "Ebligi infinitan rulumon" -visibility: "Videbleco" -poll: "Balot-enketo" -useCw: "Kaŝi enhavo" -enablePlayer: "Vidigi la filmeton" -disablePlayer: "Malfermi la filmeton" -expandTweet: "Disvolvi la pepon" -themeEditor: "Redaktilo de koloraroj" -description: "Priskribo" -describeFile: "Priskribi la bildon" -enterFileDescription: "Priskribu" -author: "Aŭtoro" -manage: "Bonteni" -plugins: "Kromaĵoj" -deck: "Kartaro" -useFullReactionPicker: "Uzi la tuton de la elektilo de reagoj" -width: "Larĝeco" -height: "Alteco" -large: "Granda" -medium: "Meza" -small: "Malgranda" -generateAccessToken: "Generi aŭtentikigan pecon" -permission: "Permesoj" -enableAll: "Ebligi ĉiujn" -disableAll: "Malebligi ĉiujn" tokenRequested: "Alirpermeso al konto" -notificationType: "Tipo de sciigoj" -edit: "Redakti" -emailServer: "Retpoŝta servilo" -enableEmail: "Ebligi dissendon de retpoŝto" -emailConfigInfo: "Uzata por konfirmi vian retadreson kiam registri kaj por restarigi vian pasvorton" -email: "Retpoŝto" -emailAddress: "Retpoŝtadreso" -smtpConfig: "Agordoj de SMTP servilo" -smtpHost: "Transa servilo" -smtpPort: "Pordo" -smtpUser: "Uzantnomo" -smtpPass: "Pasvorto" -wordMute: "Silentigi specifajn vortojn" -instanceMute: "Nodoj silentigitaj" -userSaysSomething: "{name} diras ion" -makeActive: "Aktivigi" -display: "Vidi" -copy: "Kopii" -metrics: "mezurciferoj" -overview: "Resumo" -logs: "Protokoloj" -delayed: "Prokrasto " -database: "Datumbazo" -channel: "Kanaloj" -create: "Krei" -notificationSetting: "Agordoj de sciigoj" -useGlobalSetting: "Oni uzas malloka agordo" -other: "Aliaj" -regenerateLoginToken: "Regeneri la aŭtentikigan pecon" -fileIdOrUrl: "Dosiera identigilo aŭ URL" -behavior: "Konduto" -sample: "Ekzemplo" abuseReports: "Raportoj" reportAbuse: "Raportoj" reportAbuseOf: "raporti {name}n" reporter: "Informanto" reporterOrigin: "Raportanto" -send: "Sendi" -openInNewTab: "Malfermi en nova langeto" -editTheseSettingsMayBreakAccount: "Redakti tiujn agordojn povas damaĝi vian konton." -instanceTicker: "Nomo de la nodo sendinta notojn" -waitingFor: "Atendado pro {x}" -random: "Hazarde" -system: "Sistemo" -switchUi: "Modifi la aspektigon" -desktop: "Labortablo" -createNew: "Krei novan" -optional: "Opciaj" -public: "Publika" -i18nInfo: "Misskey estas tradukata en diversaj lingvoj de volontuloj. Oni povas kontribui ĉe {link}." -manageAccessTokens: "Bonteni la aŭtentikigajn pecojn" -accountInfo: "Kontaj Informoj" -notesCount: "La nombro de notoj" -repliesCount: "La nombro de respondoj senditaj" -renotesCount: "La nombro de notoj plusenditaj de la uzanto" -repliedCount: "La nombro de respondoj ricevitaj" -renotedCount: "La nombro de plusendoj de la notoj skribitaj de la uzanto" -followingCount: "La nombro de sekvatoj" -followersCount: "La nombro de sekvantoj" -sentReactionsCount: "La nombro de la reagoj senditaj" -receivedReactionsCount: "La nombro de la reagoj ricevitaj" pollVotesCount: "Nombro de voĉdonado" -pollVotedCount: "La nombro de la voĉoj ricevitaj en siaj enketoj" -yes: "Jes" -no: "Ne" -driveFilesCount: "La nombro de la dosieroj sur la disko" -notSet: "Ne elektita" -emailVerified: "Via retpoŝtadreso estis kontrolita." -noteFavoritesCount: "La nombro de notoj preferataj" -pageLikesCount: "La nombro de paĝa plaĉon" -pageLikedCount: "La nombro de la ricevita \"Mi plaĉas\"" -contact: "Kontakto" -useSystemFont: "Uzi la tiparon implicitan de la sistemo" -developer: "Evoluiganto" -makeExplorable: "La konton videbligi sur la paĝo \"Esplori\"" -makeExplorableDescription: "Se vi elŝaltas tiun, via konto ne montros sur la paĝo \"Esplori\"." -duplicate: "Duobligi" -left: "Maldekstra" -center: "Centra" -wide: "Vasta" -narrow: "Malvasta" -needReloadToApply: "Tiu agordo estos aplikita nur poste reŝargi." -showTitlebar: "Videbligi titolan stangon" -clearCache: "Malplenigi staplon" -onlineUsersCount: "{n} uzantoj estas surlineaj" -nUsers: "{n} uzanto(j)" -nNotes: "{n} notoj" -myTheme: "Miaj koloraroj" -backgroundColor: "Fona koloro" -textColor: "Teksto" -saveAs: "Konservi kiel…" -advanced: "Altnivela" -value: "Valoro" -createdAt: "Kreita je" -updatedAt: "Laste ĝisdatigita" -saveConfirm: "Ĉu vi konservas la ŝanĝon?" -deleteConfirm: "Ĉu certas forviŝi?" invalidValue: "Nevalida valoro" -closeAccount: "Forigi konton" -currentVersion: "La aktuala versio" -latestVersion: "La plej nova versio" -youAreRunningUpToDateClient: "Vi uzas la plej novan version de via kliento." -newVersionOfClientAvailable: "Nova versio de via kliento estas disponebla." -inUse: "Uzata" -editCode: "Redakti kodon" -receiveAnnouncementFromInstance: "Ricevi informojn sciigintajn de la nodo" -emailNotification: "Sciigoj per retpoŝto" -inChannelSearch: "Serĉi en la kanalo" -useReactionPickerForContextMenu: "Dekstre-klaki por malfermi la elektilon de reagoj" -typingUsers: "{users} nun skribas…" -clear: "Vakigi" -markAllAsRead: "Marki ĉiujn kiel legito" -goBack: "Reiri antaŭ" -addDescription: "Priskribi" -info: "Informoj" -userInfo: "Informoj de uzanto" -unknown: "Nekonata" -online: "Surkonektita" -offline: "Forkonektita" notRecommended: "Evitindaj" -instanceBlocking: "Bloki specifajn nodojn" -selectAccount: "Elekti konton" switchAccount: "Ŝanĝi konton" -user: "Uzantoj" -administration: "Bontenado" -accounts: "Kontoj" configure: "Agordi" -recentPosts: "Novaj afiŝoj" -popularPosts: "Plej viditaj" -shareWithNote: "Kundividi en noto" -ads: "Reklamaĵo" +popularPosts: "Populara noto" expiration: "Limtempo" -memo: "Memorigilo" priority: "Prioritato" -high: "Alta" -middle: "Meza" -low: "Malalta" -emailNotConfiguredWarning: "Vi ne agordis retpoŝtadreso." -customCss: "Propra CSS" -global: "Malloka" squareAvatars: "Montri bildsimbolon kiel kvadrata" -sent: "Sendi" -received: "Ricevita" -searchResult: "Serĉorezultoj" -hashtags: "Kradvorto" -troubleshooting: "Problemsolvi" -learnMore: "Lernu pli" misskeyUpdated: "Misskey ĝisdatiĝis!" whatIsNew: "Montri novaĵojn" -translate: "Traduki" -translatedFrom: "Tradukita el {x}" accountDeletionInProgress: "La konto estas forviŝanta." resolved: "Solvita" unresolved: "Nesolvita" -breakFollow: "Ĉesigi la sekvadon al vi" -itsOn: "Ŝaltita" -emailRequiredForSignup: "Registri konton devas konformi retpoŝtadreson" -unread: "Nelegita" filter: "Filtrilo" -controlPanel: "Ŝaltpodio" -manageAccounts: "Bonteni la kontojn" -classic: "Klasika" -muteThread: "Silentigi la mesaĝaron" -unmuteThread: "Malsilentigi la mesaĝaron" -ffVisibility: "Videbleco de viaj sekvatoj/sekvantoj" -ffVisibilityDescription: "Oni permesas agordi tiuln kiuj povas vidi la homojn kiujn vi sekvas, kaj la homojn kiuj sekvas vin." -continueThread: "Pli vidi la mesaĝaron" deleteAccountConfirm: "La konto estos forviŝita. Ĉu vi daŭrigas fari?" -incorrectPassword: "Nevalida pasvorto" voteConfirm: "Ĉu vi voĉdonas {choice}n?" hide: "Kaŝi" -leaveGroup: "Eliĝi el la grupo" -leaveGroupConfirm: "Ĉu vi certas ke vi volas eliĝi el la grupo {name}?" -welcomeBackWithName: "Bonrevenon, {name}!" -clickToFinishEmailVerification: "Volu klaki [{ok}] por fini konfirmon de via retadreso." overridedDeviceKind: "tipo de aparato" -smartphone: "Saĝtelefono" -tablet: "Platkomputilo" -auto: "Aŭtomate" size: "Grandeco" -searchByGoogle: "Serĉi en Google-Serĉo" +searchByGoogle: "Serĉi en Guglo-Serĉilo" mutePeriod: "Daŭro de silentigo" indefinitely: "Sen limdato" tenMinutes: "Je 10 minutoj" @@ -706,341 +51,37 @@ oneDay: "Je 1 tago" oneWeek: "Je 1 semajno" failedToFetchAccountInformation: "Malsukcesas akiri informon de konto" _emailUnavailable: - used: "La retpoŝto jam estas uzita." - format: "Nevalida formato." - disposable: "Dumtempa retpoŝto ne estas uzebla." mx: "Ĉi retpoŝto-servilo ne estas uzebla." - smtp: "Tiu retpoŝta servilo ne respondas" -_ffVisibility: - public: "Publika" - followers: "Nur al sekvantoj" - private: "Malpublikigita" _signup: almostThere: "Preskaŭ plenumita" - emailAddressInfo: "Entajpu vian retpoŝton" _accountDelete: - accountDelete: "Forigi konton" requestAccountDelete: "Peti forviŝi konton" started: "Forviŝado komenciĝis." -_ad: - back: "Nuligi" -_forgotPassword: - enterEmail: "Entajpu la retpoŝton kiun vi registrigis al via konto. Ligilo por restarigi pasvorton estos sendita al la retadreso." _gallery: - my: "Miaj afiŝoj" - liked: "Ŝatitaj notoj" - like: "Ŝati" -_email: - _follow: - title: "Eksekvis vin" - _receiveFollowRequest: - title: "Vi ricevis peton de sekvado" -_plugin: - install: "Instali kromaĵon" - manage: "Bonteni kromaĵojn" -_registry: - key: "Ŝlosilo" - keys: "Ŝlosiloj" - domain: "Nomregno" - createKey: "Krei ŝlosilon" + my: "Mia afiŝo" _aboutMisskey: - about: "Misskey estas malfermitkoda programo evoluigata de syuilo ekde la 2014." - contributors: "Precipaj kontribuantoj" - allContributors: "Ĉiuj kontribuantoj" - source: "Fontkodo" - translation: "Traduki Misskey" donate: "Mondonaci al Misskey" - patrons: "Mecenatoj" -_mfm: - dummy: "Misskey evoluigas la mondon de Fediverso" - mention: "Mencioj" - hashtag: "Kradvorto" - url: "URL" - link: "Ligilo" - bold: "Grasa" - small: "Malgrande" - center: "Centrigi" - inlineCode: "Kodo (en linio)" - blockCode: "Kodo (bloko)" - inlineMath: "Formulo (en linio)" - blockMath: "Formulo (bloko)" - quote: "Citi" - emoji: "Propraj emoĝioj" - search: "Serĉi" - flip: "Inversa" - x2: "Granda" - x3: "Grandega" - x4: "Pli grandega" - font: "Presliteraro" - rotate: "Orientiĝo" -_instanceTicker: - none: "Ne montri" - remote: "Montri al foraj uzantoj" - always: "Ĉiam montri" -_serverDisconnectedBehavior: - reload: "Aŭtomate reŝargi" _channel: - create: "Krei kanalon" - edit: "Redakti kanalon" - setBanner: "Apliki standardan bildon" - removeBanner: "Forviŝi la standardan bildon" - owned: "Bontenitaj de vi" - following: "Sekvado" - usersCount: "{n} partoprenantoj" notesCount: "{n} notoj" -_menuDisplay: - sideFull: "Sur la flanko" - sideIcon: "Sur la flanko (bildsimbolo)" - top: "Sur la supro" - hide: "Kaŝi" -_wordMute: - muteWords: "Silentigitaj vortoj" - soft: "Per la kliento" - hard: "Per la servilo" - mutedNotes: "Silentigitaj notoj" _theme: explore: "Serĉi koloraron" install: "Instali koloraron" - manage: "Bonteni kolorarojn" - code: "Kolorara kodo" - description: "Priskribo" installedThemes: "Instalita koloraro" make: "Krei koloraron" addConstant: "Aldoni konstanton" constant: "Konstanto" - defaultValue: "Implicitaĵa valoro" - color: "Koloro" - func: "Funkcio" - darken: "Malbrileco" - lighten: "Brileco" keys: - bg: "Fono" shadow: "Ombro" - navBg: "Fono de flanka stango" - link: "Ligilo" - hashtag: "Kradvorto" - mention: "Mencioj" - mentionMe: "Mencio al vi" - renote: "Plusendita" infoBg: "Fono de informo" - buttonBg: "Fono de butono" - driveFolderBg: "Fono de dosierujo de la disko" - messageBg: "Fono de la retbabilejo" -_sfx: - note: "Nova noto" - noteMy: "Mia noto" - notification: "Sciigoj" - chat: "Retbabili" - chatBg: "Retbabili (BG)" - antenna: "Ricevo de la anteno" - channel: "Sciigoj de kanalo" -_ago: - future: "Futuro" - justNow: "Ĵus" - secondsAgo: "Antaŭ {n} sekundoj" - minutesAgo: "Antaŭ {n} minutoj" - hoursAgo: "Antaŭ {n} horo(j)" - daysAgo: "Antaŭ {n} tago(j)" - weeksAgo: "Antaŭ {n} semajnoj" - monthsAgo: "Antaŭ {n} monatoj" - yearsAgo: "Antaŭ {n} jaroj" -_time: - second: "sek" - minute: "min" - day: "Tago" -_tutorial: - title: "Uzado de Misskey" - step1_1: "Bonvenon." - step7_2: "Se vi volas pli scii pri Misskey, vidu la fakon {help}." - step7_3: "Do, bonvolu amuziĝi sur Misskey🚀" -_2fa: - registerKey: "Nove registri ŝlosilon" -_permissions: - "read:account": "Vidi la informojn de via konto" - "write:account": "Redatado de la informoj de via konto" - "read:blocks": "Vidi vian liston de uzantoj blokitaj" - "write:blocks": "Redakti vian liston de blokitoj" - "read:drive": "Legi vian diskon" - "write:drive": "Ĉia operacio por skribi, forviŝi, aŭ alimaniere ŝanĝi la informon de dosiero en via disko de Misskey" - "read:favorites": "Vidi vian liston de preferaĵoj" - "write:favorites": "Redakti vian liston de preferaĵoj" - "read:following": "Vidi la informojn de sekvo" - "write:following": "Sekvi/ Ĉesi sekvi alian uzanton" - "read:messaging": "Vidi viajn retbabiladojn" - "write:messaging": "Administri viajn retbabiladojn" - "read:mutes": "Vidi vian liston de silentigitoj" - "write:mutes": "Redakti vian liston de silentigitoj" - "write:notes": "Krei / Forviŝi noton" - "read:notifications": "Vidi sciigojn" - "write:notifications": "Manipulado por viaj sciigoj" - "read:reactions": "Vidi reagojn" - "write:reactions": "Redakti viajn reagojn" - "read:page-likes": "Vidi ŝatojn de paĝo" - "read:user-groups": "Vidi viajn grupojn de uzantoj" - "read:channels": "Vidi kanalojn" -_antennaSources: - all: "Ĉiuj notoj" - homeTimeline: "Notoj de la uzantoj kiujn vi sekvas" -_weekday: - sunday: "Dimanĉo" - monday: "Lundo" - tuesday: "Mardo" - wednesday: "Merkredo" - thursday: "Ĵaŭdo" - friday: "Vendredo" - saturday: "Sabato" _widgets: - notifications: "Sciigoj" - timeline: "Templinio" - clock: "Horloĝo" - activity: "Aktiveco" photos: "Fotoj" - federation: "Federaĵo" - slideshow: "Bildoprezento" - button: "Butono" - onlineUsers: "Surkonektitaj uzantoj" - aichan: "Ai" _cw: - show: "Vidi pli" chars: "{count} literoj" - files: "{count} dosiero(j)" _poll: - choiceN: "Balotilo {n}" - noMore: "Oni ne povas aldoni pli" - canMultipleVote: "Permesi plurelekton" expiration: "Limtempo" - infinite: "Por ĉiam" - votesCount: "{n} voĉoj" - totalVotes: "Sume {n} voĉoj" - vote: "Voĉdoni" - showResult: "Vidi rezultojn" - voted: "Voĉdonita" - closed: "Finita" -_visibility: - public: "Publika" - publicDescription: "Publikigi al ĉiuj en la Fediverso" - home: "Hejma" - homeDescription: "Dissendi nur sur hejma templinio" - followers: "Nur al sekvantoj" - followersDescription: "Videbligi nur al sekvantoj" - specified: "Rekte montrita" - specifiedDescription: "Montri nur al specifaj uzantoj" - localOnly: "Nur loka" - localOnlyDescription: "Ne videbligi al foraj uzantoj" -_postForm: - replyPlaceholder: "Respondi la noton…" - quotePlaceholder: "Citi la noton…" - channelPlaceholder: "Afiŝi en la kanalo…" - _placeholders: - a: "Kiel vi fartas?" - b: "Kio okazis ĉirkaŭ vi?" - c: "Kion vi pensas?" - d: "Kion vi volas diri?" - e: "Komencu skribi tie" -_profile: - name: "Nomo" - username: "Uzantnomo" - description: "Sinprezento" - metadata: "Kromaj Informoj" - metadataEdit: "Redakti kromajn informojn" - changeAvatar: "Ŝanĝi profilbildon" - changeBanner: "Ŝanĝi standardon" -_exportOrImport: - allNotes: "Ĉiuj notoj" - followingList: "Sekvatoj" - muteList: "Silentigoj" - blockingList: "Blokitoj" - userLists: "Listoj" -_charts: - federation: "Federaĵo" - usersTotal: "La totala nombro de la uzantoj" - activeUsers: "La nombro de la uzantoj aktivaj" - notesTotal: "La totala nombro de notoj" - filesTotal: "La totala nombro de la dosieroj" -_timelines: - home: "Hejma" - local: "Loka" - social: "Sociala" - global: "Malloka" _pages: - newPage: "Krei novan paĝon" - editPage: "Redakti paĝon" - deleted: "Oni forviŝis la paĝon." - editThisPage: "Redakti la paĝon" - viewPage: "Vidi paĝojn" - my: "Miaj paĝoj" - featured: "Ravaĵoj" - contents: "Enhavo" - content: "Bloko de paĝo" - title: "Temlinio" - url: "URL de la paĝo" - alignCenter: "Centrigi" - hideTitleWhenPinned: "Kaŝi la titolon de la paĝo kiam alpinglita" - chooseBlock: "Aldoni blokon" - contentBlocks: "Enhavo" - inputBlocks: "Enigo" - blocks: - text: "Teksto" - textarea: "Areo de teksto" - image: "Bildo" - button: "Butono" - _post: - canvasId: "Kanvasa identigilo" - textInput: "Enmeto el teksto" - _textInput: - text: "Titolo" - default: "Implicitaĵa valoro" - textareaInput: "Enmeto el teksto en multaj linioj" - _textareaInput: - text: "Titolo" - default: "Implicitaĵa valoro" - numberInput: "Nombra enmeto" - _numberInput: - text: "Titolo" - default: "Implicitaĵa valoro" - _canvas: - id: "Kanvasa identigilo" - width: "Larĝeco" - _note: - id: "Identigilo de noto" - _switch: - text: "Titolo" - default: "Implicitaĵa valoro" - _counter: - text: "Titolo" - _button: - text: "Titolo" - _action: - _dialog: - content: "Enhavo" - _pushEvent: - event: "Nomo de la evento" - no-variable: "Neniu" - _radioButton: - title: "Titolo" - default: "Implicitaĵa valoro" script: - categories: - random: "Hazardo" - value: "Valoro" - fn: "Funkcio" - text: "Manipulo de teksto" - list: "Listoj" blocks: - text: "Teksto" - multiLineText: "Teksto (multaj linioj)" - textList: "List de teksto" - _strLen: - arg1: "Teksto" - _strPick: - arg1: "Teksto" - _strReplace: - arg1: "Teksto" - _strReverse: - arg1: "Teksto" - _join: - arg1: "Listoj" - arg2: "apartigilo" _add: arg1: "A" arg2: "B" @@ -1080,72 +121,6 @@ _pages: _gtEq: arg1: "A" arg2: "B" - random: "Hazardo" - _randomPick: - arg1: "Listoj" - _dailyRandomPick: - arg1: "Listoj" - _seedRandomPick: - arg2: "Listoj" - _DRPWPM: - arg1: "List de teksto" - pick: "Elekti de la listo" - _pick: - arg1: "Listoj" - _listLen: - arg1: "Listoj" - _stringToNumber: - arg1: "Teksto" - _splitStrByLine: - arg1: "Teksto" - fn: "Funkcio" - _fn: - slots: "Juntoj" - arg1: "Elmeto" - thereIsEmptySlot: "La junto {slot} estas malplena!" - types: - string: "Teksto" - array: "Listoj" - stringArray: "List de teksto" - emptySlot: "Malplena junto" - argVariables: "Eniga junto" -_relayStatus: - requesting: "Atendado de aprobon" - accepted: "Konfirmita" - rejected: "Malakceptita" _notification: - fileUploaded: "La dosiero sukcese alŝutiĝis." - youGotMention: "{name} mencis" - youGotReply: "{name} respondis" - youGotQuote: "{name} citis" - youRenoted: "{name} plusendis" - youGotPoll: "{name} voĉdonis" - youGotMessagingMessageFromUser: "{name} sendis al vi mesaĝon" - youGotMessagingMessageFromGroup: "Oni sendis al la grupo {name} mesaĝon" - youWereFollowed: "Eksekvis vin" - youReceivedFollowRequest: "Vi ricevis peton de sekvado" - yourFollowRequestAccepted: "Via peto de sekvado estis akceptita." - youWereInvitedToGroup: "Invitita al grupo" - pollEnded: "La rezulto de la balot-enketo estas disponebla" _types: - all: "Ĉio" - follow: "Novaj sekvantoj" - mention: "Mencioj" - reply: "Respondoj" - renote: "Plusendoj" - quote: "Citi" - reaction: "Reagoj" - pollVote: "Voĉdonoj en balot-enketo" pollEnded: "Enketo finiĝis" - receiveFollowRequest: "Ricevi peton de sekvado" - followRequestAccepted: "Akceptita peto de sekvado" - groupInvited: "Invitita al grupo" -_deck: - profile: "Agordaro" - _columns: - notifications: "Sciigoj" - tl: "Templinio" - antenna: "Antenoj" - list: "Listoj" - mentions: "Mencioj" - direct: "Rekte" diff --git a/locales/ro-RO.yml b/locales/ro-RO.yml index 8909a72ec7..6b2ff19e8e 100644 --- a/locales/ro-RO.yml +++ b/locales/ro-RO.yml @@ -481,13 +481,24 @@ showFeaturedNotesInTimeline: "Arată notele recomandate în cronologii" objectStorage: "Object Storage" useObjectStorage: "Folosește Object Storage" objectStorageBaseUrl: "URL de bază" +objectStorageBaseUrlDesc: "URL-ul este folosit pentru referință. Specifică URL-ul CDN-ului sau Proxy-ului tău dacă folosești unul. Pentru S3 folosește 'https://.s3.amazonaws.com' și pentru GCS sau servicii echivalente folosește 'https://storage.googleapis.com/', etc." objectStorageBucket: "Bucket" objectStorageBucketDesc: "Te rog specifică numele bucket-ului furnizorului tău." objectStoragePrefix: "Prefix" objectStoragePrefixDesc: "Fișierele vor fi stocate sub directoare cu acest prefix." objectStorageEndpoint: "Endpoint" +objectStorageEndpointDesc: "Lasă acest câmp gol dacă folosești AWS S3, dacă nu specifică endpoint-ul ca '' sau ':', depinzând de ce serviciu folosești." objectStorageRegion: "Regiune" +objectStorageRegionDesc: "Specifică o regiune precum 'xx-east-1'. Dacă serviciul tău nu face distincția între regiuni lasă acest câmp gol sau introdu 'us-east-1'." objectStorageUseSSL: "Folosește SSl" +objectStorageUseSSLDesc: "Oprește această opțiune dacă nu vei folosi HTTPS pentru conexiunile API-ului" +objectStorageUseProxy: "Conectează-te prin Proxy" +objectStorageUseProxyDesc: "Oprește această opțiune dacă vei nu folosi un Proxy pentru conexiunile API-ului" +objectStorageSetPublicRead: "Setează \"public-read\" pentru încărcare" +serverLogs: "Loguri server" +deleteAll: "Șterge tot" +showFixedPostForm: "Arată caseta de postare în vârful cronologie" +newNoteRecived: "Sunt note noi" sounds: "Sunete" listen: "Ascultă" none: "Nimic" @@ -522,12 +533,42 @@ removeAllFollowingDescription: "Asta va dez-urmări toate conturile din {host}. userSuspended: "Acest utilizator a fost suspendat." userSilenced: "Acest utilizator a fost setat silențios." yourAccountSuspendedTitle: "Acest cont a fost suspendat" +yourAccountSuspendedDescription: "Acest cont a fost suspendat din cauza încălcării termenilor de serviciu al serverului sau ceva similar. Contactează administratorul dacă ai dori să afli un motiv mai detaliat. Te rog nu crea un cont nou." +menu: "Meniu" +divider: "Separator" +addItem: "Adaugă element" +relays: "Relee" +addRelay: "Adaugă Releu" +inboxUrl: "URL-ul inbox-ului" +addedRelays: "Relee adăugate" +serviceworkerInfo: "Trebuie să fie activat pentru notificări push." +deletedNote: "Notă ștearsă" +invisibleNote: "Note ascunse" +enableInfiniteScroll: "Încarcă mai mult automat" +visibility: "Vizibilitate" +poll: "Sondaj" +useCw: "Ascunde conținutul" +enablePlayer: "Deschide player-ul video" +disablePlayer: "Închide player-ul video" +expandTweet: "Expandează tweet" +themeEditor: "Editor de teme" +description: "Descriere" +describeFile: "Adaugă titrări" +enterFileDescription: "Introdu titrările" +author: "Autor" +leaveConfirm: "Ai schimbări nesalvate. Vrei să renunți la ele?" +manage: "Gestionare" +plugins: "Pluginuri" +deck: "Deck" +undeck: "Părăsește Deck" +useBlurEffectForModal: "Folosește efect de blur pentru modale" smtpHost: "Gazdă" smtpUser: "Nume de utilizator" smtpPass: "Parolă" clearCache: "Golește cache-ul" info: "Despre" user: "Utilizatori" +administration: "Gestionare" searchByGoogle: "Caută" _email: _follow: @@ -538,9 +579,11 @@ _mfm: emoji: "Emoji personalizat" search: "Caută" _theme: + description: "Descriere" keys: mention: "Mențiune" renote: "Re-notează" + divider: "Separator" _sfx: note: "Note" notification: "Notificări" diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml index a1e0a830cd..18c6f17154 100644 --- a/locales/zh-TW.yml +++ b/locales/zh-TW.yml @@ -81,6 +81,8 @@ somethingHappened: "發生錯誤" retry: "重試" pageLoadError: "載入頁面失敗" pageLoadErrorDescription: "這通常是因為網路錯誤或是瀏覽器快取殘留的原因。請先清除瀏覽器快取,稍後再重試" +serverIsDead: "伺服器沒有回應。請稍等片刻,然後重試。" +youShouldUpgradeClient: "請重新載入以使用新版本的客戶端顯示此頁面" enterListName: "輸入清單名稱" privacy: "隱私" makeFollowManuallyApprove: "手動審核追隨請求" @@ -104,6 +106,7 @@ clickToShow: "按一下以顯示" sensitive: "敏感內容" add: "新增" reaction: "情感" +reactionSetting: "在選擇器中顯示反應" reactionSettingDescription2: "拖動以重新列序,點擊以刪除,按下 + 添加。" rememberNoteVisibility: "記住貼文可見性" attachCancel: "移除附件" @@ -138,6 +141,7 @@ flagAsBot: "此使用者是機器人" flagAsBotDescription: "如果本帳戶是由程式控制,請啟用此選項。啟用後,會作為標示幫助其他開發者防止機器人之間產生無限互動的行為,並會調整Misskey內部系統將本帳戶識別為機器人" flagAsCat: "此使用者是貓" flagAsCatDescription: "如果想將本帳戶標示為一隻貓,請開啟此標示" +flagShowTimelineReplies: "在時間軸上顯示貼文的回覆" autoAcceptFollowed: "自動追隨中使用者的追隨請求" addAccount: "添加帳戶" loginFailed: "登入失敗" @@ -599,6 +603,9 @@ reportAbuse: "檢舉" reportAbuseOf: "檢舉{name}" fillAbuseReportDescription: "請填寫檢舉的詳細理由。可以的話,請附上針對的URL網址。" abuseReported: "回報已送出。感謝您的報告。" +reporter: "檢舉者" +reporteeOrigin: "檢舉來源" +reporterOrigin: "檢舉者來源" send: "發送" abuseMarkAsResolved: "處理完畢" openInNewTab: "在新分頁中開啟" @@ -734,6 +741,7 @@ postToGallery: "發佈到相簿" gallery: "相簿" recentPosts: "最新貼文" popularPosts: "熱門的貼文" +shareWithNote: "在貼文中分享" ads: "廣告" expiration: "期限" memo: "備忘錄" @@ -743,14 +751,35 @@ middle: "中" low: "低" emailNotConfiguredWarning: "沒有設定電子郵件地址" ratio: "%" +previewNoteText: "預覽文本" +customCss: "自定義 CSS" global: "公開" sent: "發送" +received: "收取" +searchResult: "搜尋結果" hashtags: "#tag" +troubleshooting: "故障排除" +useBlurEffect: "在 UI 上使用模糊效果" +misskeyUpdated: "Misskey 更新完成!" +translate: "翻譯" +translatedFrom: "從 {x} 翻譯" +accountDeletionInProgress: "正在刪除帳戶" +pubSub: "Pub/Sub 帳戶" +resolved: "已解決" +unresolved: "未解決" +breakFollow: "移除追蹤者" hide: "隱藏" +leaveGroupConfirm: "確定離開「{name}」?" +auto: "自動" searchByGoogle: "搜尋" indefinitely: "無期限" _ffVisibility: public: "發佈" + private: "私密" +_signup: + almostThere: "即將完成" +_accountDelete: + inProgress: "正在刪除" _ad: back: "返回" reduceFrequencyOfThisAd: "降低此廣告的頻率 " From 16c7ef41fbb440c2c3df680fe17507666472c5d9 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 11 Apr 2022 23:13:09 +0900 Subject: [PATCH 19/19] 12.110.0 --- CHANGELOG.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6fafad14c..2117101347 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ You should also include the user name that made the change. --> -## 12.x.x (unreleased) +## 12.110.0 (2022/04/11) ### Improvements - Improve webhook @syuilo diff --git a/package.json b/package.json index 60d24e82d1..13d70929bc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "12.109.2", + "version": "12.110.0", "codename": "indigo", "repository": { "type": "git",