From d429f810a9ea3fda9efed2ff51483d25a288ecc9 Mon Sep 17 00:00:00 2001
From: Ebise Lutica <7106976+EbiseLutica@users.noreply.github.com>
Date: Thu, 13 Apr 2023 00:31:22 +0900
Subject: [PATCH 001/143] Update CHANGELOG.md
---
CHANGELOG.md | 3 +++
1 file changed, 3 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 41353c346b..df2265727d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,9 @@
## 13.11.2
+### Note
+- 13.11.0または13.11.1から13.11.2以降にアップデートする場合、Redisのカスタム絵文字のキャッシュを削除する必要があります(https://github.com/misskey-dev/misskey/issues/10502#issuecomment-1502790755 参照)
+
### General
- チャンネルの検索用ページの追加
From 27ac3d795e7098124a7eea0dd59f6f1ef8f32394 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?=
<67428053+kakkokari-gtyih@users.noreply.github.com>
Date: Tue, 4 Jun 2024 13:14:37 +0900
Subject: [PATCH 002/143] Update about-misskey.vue
---
packages/frontend/src/pages/about-misskey.vue | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/packages/frontend/src/pages/about-misskey.vue b/packages/frontend/src/pages/about-misskey.vue
index b55ae220d8..629f00689d 100644
--- a/packages/frontend/src/pages/about-misskey.vue
+++ b/packages/frontend/src/pages/about-misskey.vue
@@ -102,13 +102,16 @@ SPDX-License-Identifier: AGPL-3.0-only
Special thanks
From 43cccaaee9be42fab38eaa9ca04bb5e55b5d8db7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?=
<67428053+kakkokari-gtyih@users.noreply.github.com>
Date: Tue, 4 Jun 2024 13:15:35 +0900
Subject: [PATCH 003/143] fix
---
packages/frontend/src/pages/about-misskey.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/frontend/src/pages/about-misskey.vue b/packages/frontend/src/pages/about-misskey.vue
index 629f00689d..cc0394f401 100644
--- a/packages/frontend/src/pages/about-misskey.vue
+++ b/packages/frontend/src/pages/about-misskey.vue
@@ -111,7 +111,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
From d4a8c63264939c4ec36af628f7e1516d2ae60254 Mon Sep 17 00:00:00 2001
From: syuilo <4439005+syuilo@users.noreply.github.com>
Date: Thu, 6 Jun 2024 09:32:04 +0900
Subject: [PATCH 004/143] enhance(backend): sentry integration for job queues
---
.../src/queue/QueueProcessorService.ts | 389 +++++++++++-------
1 file changed, 231 insertions(+), 158 deletions(-)
diff --git a/packages/backend/src/queue/QueueProcessorService.ts b/packages/backend/src/queue/QueueProcessorService.ts
index ce999d9cef..eb1901d069 100644
--- a/packages/backend/src/queue/QueueProcessorService.ts
+++ b/packages/backend/src/queue/QueueProcessorService.ts
@@ -5,6 +5,7 @@
import { Inject, Injectable, OnApplicationShutdown } from '@nestjs/common';
import * as Bull from 'bullmq';
+import * as Sentry from '@sentry/node';
import type { Config } from '@/config.js';
import { DI } from '@/di-symbols.js';
import type Logger from '@/logger.js';
@@ -135,199 +136,271 @@ export class QueueProcessorService implements OnApplicationShutdown {
}
//#region system
- this.systemQueueWorker = new Bull.Worker(QUEUE.SYSTEM, (job) => {
- switch (job.name) {
- case 'tickCharts': return this.tickChartsProcessorService.process();
- case 'resyncCharts': return this.resyncChartsProcessorService.process();
- case 'cleanCharts': return this.cleanChartsProcessorService.process();
- case 'aggregateRetention': return this.aggregateRetentionProcessorService.process();
- case 'checkExpiredMutings': return this.checkExpiredMutingsProcessorService.process();
- case 'clean': return this.cleanProcessorService.process();
- default: throw new Error(`unrecognized job type ${job.name} for system`);
- }
- }, {
- ...baseQueueOptions(this.config, QUEUE.SYSTEM),
- autorun: false,
- });
+ {
+ const processer = (job: Bull.Job) => {
+ switch (job.name) {
+ case 'tickCharts': return this.tickChartsProcessorService.process();
+ case 'resyncCharts': return this.resyncChartsProcessorService.process();
+ case 'cleanCharts': return this.cleanChartsProcessorService.process();
+ case 'aggregateRetention': return this.aggregateRetentionProcessorService.process();
+ case 'checkExpiredMutings': return this.checkExpiredMutingsProcessorService.process();
+ case 'clean': return this.cleanProcessorService.process();
+ default: throw new Error(`unrecognized job type ${job.name} for system`);
+ }
+ };
- const systemLogger = this.logger.createSubLogger('system');
+ this.systemQueueWorker = new Bull.Worker(QUEUE.SYSTEM, (job) => {
+ if (this.config.sentryForBackend) {
+ return Sentry.startSpan({ name: 'Queue: System: ' + job.name }, () => processer(job));
+ } else {
+ return processer(job);
+ }
+ }, {
+ ...baseQueueOptions(this.config, QUEUE.SYSTEM),
+ autorun: false,
+ });
- this.systemQueueWorker
- .on('active', (job) => systemLogger.debug(`active id=${job.id}`))
- .on('completed', (job, result) => systemLogger.debug(`completed(${result}) id=${job.id}`))
- .on('failed', (job, err) => systemLogger.warn(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) }))
- .on('error', (err: Error) => systemLogger.error(`error ${err.stack}`, { e: renderError(err) }))
- .on('stalled', (jobId) => systemLogger.warn(`stalled id=${jobId}`));
+ const systemLogger = this.logger.createSubLogger('system');
+
+ this.systemQueueWorker
+ .on('active', (job) => systemLogger.debug(`active id=${job.id}`))
+ .on('completed', (job, result) => systemLogger.debug(`completed(${result}) id=${job.id}`))
+ .on('failed', (job, err) => systemLogger.warn(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) }))
+ .on('error', (err: Error) => systemLogger.error(`error ${err.stack}`, { e: renderError(err) }))
+ .on('stalled', (jobId) => systemLogger.warn(`stalled id=${jobId}`));
+ }
//#endregion
//#region db
- this.dbQueueWorker = new Bull.Worker(QUEUE.DB, (job) => {
- switch (job.name) {
- case 'deleteDriveFiles': return this.deleteDriveFilesProcessorService.process(job);
- case 'exportCustomEmojis': return this.exportCustomEmojisProcessorService.process(job);
- case 'exportNotes': return this.exportNotesProcessorService.process(job);
- case 'exportClips': return this.exportClipsProcessorService.process(job);
- case 'exportFavorites': return this.exportFavoritesProcessorService.process(job);
- case 'exportFollowing': return this.exportFollowingProcessorService.process(job);
- case 'exportMuting': return this.exportMutingProcessorService.process(job);
- case 'exportBlocking': return this.exportBlockingProcessorService.process(job);
- case 'exportUserLists': return this.exportUserListsProcessorService.process(job);
- case 'exportAntennas': return this.exportAntennasProcessorService.process(job);
- case 'importFollowing': return this.importFollowingProcessorService.process(job);
- case 'importFollowingToDb': return this.importFollowingProcessorService.processDb(job);
- case 'importMuting': return this.importMutingProcessorService.process(job);
- case 'importBlocking': return this.importBlockingProcessorService.process(job);
- case 'importBlockingToDb': return this.importBlockingProcessorService.processDb(job);
- case 'importUserLists': return this.importUserListsProcessorService.process(job);
- case 'importCustomEmojis': return this.importCustomEmojisProcessorService.process(job);
- case 'importAntennas': return this.importAntennasProcessorService.process(job);
- case 'deleteAccount': return this.deleteAccountProcessorService.process(job);
- default: throw new Error(`unrecognized job type ${job.name} for db`);
- }
- }, {
- ...baseQueueOptions(this.config, QUEUE.DB),
- autorun: false,
- });
+ {
+ const processer = (job: Bull.Job) => {
+ switch (job.name) {
+ case 'deleteDriveFiles': return this.deleteDriveFilesProcessorService.process(job);
+ case 'exportCustomEmojis': return this.exportCustomEmojisProcessorService.process(job);
+ case 'exportNotes': return this.exportNotesProcessorService.process(job);
+ case 'exportClips': return this.exportClipsProcessorService.process(job);
+ case 'exportFavorites': return this.exportFavoritesProcessorService.process(job);
+ case 'exportFollowing': return this.exportFollowingProcessorService.process(job);
+ case 'exportMuting': return this.exportMutingProcessorService.process(job);
+ case 'exportBlocking': return this.exportBlockingProcessorService.process(job);
+ case 'exportUserLists': return this.exportUserListsProcessorService.process(job);
+ case 'exportAntennas': return this.exportAntennasProcessorService.process(job);
+ case 'importFollowing': return this.importFollowingProcessorService.process(job);
+ case 'importFollowingToDb': return this.importFollowingProcessorService.processDb(job);
+ case 'importMuting': return this.importMutingProcessorService.process(job);
+ case 'importBlocking': return this.importBlockingProcessorService.process(job);
+ case 'importBlockingToDb': return this.importBlockingProcessorService.processDb(job);
+ case 'importUserLists': return this.importUserListsProcessorService.process(job);
+ case 'importCustomEmojis': return this.importCustomEmojisProcessorService.process(job);
+ case 'importAntennas': return this.importAntennasProcessorService.process(job);
+ case 'deleteAccount': return this.deleteAccountProcessorService.process(job);
+ default: throw new Error(`unrecognized job type ${job.name} for db`);
+ }
+ };
- const dbLogger = this.logger.createSubLogger('db');
+ this.dbQueueWorker = new Bull.Worker(QUEUE.DB, (job) => {
+ if (this.config.sentryForBackend) {
+ return Sentry.startSpan({ name: 'Queue: DB: ' + job.name }, () => processer(job));
+ } else {
+ return processer(job);
+ }
+ }, {
+ ...baseQueueOptions(this.config, QUEUE.DB),
+ autorun: false,
+ });
- this.dbQueueWorker
- .on('active', (job) => dbLogger.debug(`active id=${job.id}`))
- .on('completed', (job, result) => dbLogger.debug(`completed(${result}) id=${job.id}`))
- .on('failed', (job, err) => dbLogger.warn(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) }))
- .on('error', (err: Error) => dbLogger.error(`error ${err.stack}`, { e: renderError(err) }))
- .on('stalled', (jobId) => dbLogger.warn(`stalled id=${jobId}`));
+ const dbLogger = this.logger.createSubLogger('db');
+
+ this.dbQueueWorker
+ .on('active', (job) => dbLogger.debug(`active id=${job.id}`))
+ .on('completed', (job, result) => dbLogger.debug(`completed(${result}) id=${job.id}`))
+ .on('failed', (job, err) => dbLogger.warn(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) }))
+ .on('error', (err: Error) => dbLogger.error(`error ${err.stack}`, { e: renderError(err) }))
+ .on('stalled', (jobId) => dbLogger.warn(`stalled id=${jobId}`));
+ }
//#endregion
//#region deliver
- this.deliverQueueWorker = new Bull.Worker(QUEUE.DELIVER, (job) => this.deliverProcessorService.process(job), {
- ...baseQueueOptions(this.config, QUEUE.DELIVER),
- autorun: false,
- concurrency: this.config.deliverJobConcurrency ?? 128,
- limiter: {
- max: this.config.deliverJobPerSec ?? 128,
- duration: 1000,
- },
- settings: {
- backoffStrategy: httpRelatedBackoff,
- },
- });
+ {
+ this.deliverQueueWorker = new Bull.Worker(QUEUE.DELIVER, (job) => {
+ if (this.config.sentryForBackend) {
+ return Sentry.startSpan({ name: 'Queue: Deliver' }, () => this.deliverProcessorService.process(job));
+ } else {
+ return this.deliverProcessorService.process(job);
+ }
+ }, {
+ ...baseQueueOptions(this.config, QUEUE.DELIVER),
+ autorun: false,
+ concurrency: this.config.deliverJobConcurrency ?? 128,
+ limiter: {
+ max: this.config.deliverJobPerSec ?? 128,
+ duration: 1000,
+ },
+ settings: {
+ backoffStrategy: httpRelatedBackoff,
+ },
+ });
- const deliverLogger = this.logger.createSubLogger('deliver');
+ const deliverLogger = this.logger.createSubLogger('deliver');
- this.deliverQueueWorker
- .on('active', (job) => deliverLogger.debug(`active ${getJobInfo(job, true)} to=${job.data.to}`))
- .on('completed', (job, result) => deliverLogger.debug(`completed(${result}) ${getJobInfo(job, true)} to=${job.data.to}`))
- .on('failed', (job, err) => deliverLogger.warn(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`))
- .on('error', (err: Error) => deliverLogger.error(`error ${err.stack}`, { e: renderError(err) }))
- .on('stalled', (jobId) => deliverLogger.warn(`stalled id=${jobId}`));
+ this.deliverQueueWorker
+ .on('active', (job) => deliverLogger.debug(`active ${getJobInfo(job, true)} to=${job.data.to}`))
+ .on('completed', (job, result) => deliverLogger.debug(`completed(${result}) ${getJobInfo(job, true)} to=${job.data.to}`))
+ .on('failed', (job, err) => deliverLogger.warn(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`))
+ .on('error', (err: Error) => deliverLogger.error(`error ${err.stack}`, { e: renderError(err) }))
+ .on('stalled', (jobId) => deliverLogger.warn(`stalled id=${jobId}`));
+ }
//#endregion
//#region inbox
- this.inboxQueueWorker = new Bull.Worker(QUEUE.INBOX, (job) => this.inboxProcessorService.process(job), {
- ...baseQueueOptions(this.config, QUEUE.INBOX),
- autorun: false,
- concurrency: this.config.inboxJobConcurrency ?? 16,
- limiter: {
- max: this.config.inboxJobPerSec ?? 32,
- duration: 1000,
- },
- settings: {
- backoffStrategy: httpRelatedBackoff,
- },
- });
+ {
+ this.inboxQueueWorker = new Bull.Worker(QUEUE.INBOX, (job) => {
+ if (this.config.sentryForBackend) {
+ return Sentry.startSpan({ name: 'Queue: Inbox' }, () => this.inboxProcessorService.process(job));
+ } else {
+ return this.inboxProcessorService.process(job);
+ }
+ }, {
+ ...baseQueueOptions(this.config, QUEUE.INBOX),
+ autorun: false,
+ concurrency: this.config.inboxJobConcurrency ?? 16,
+ limiter: {
+ max: this.config.inboxJobPerSec ?? 32,
+ duration: 1000,
+ },
+ settings: {
+ backoffStrategy: httpRelatedBackoff,
+ },
+ });
- const inboxLogger = this.logger.createSubLogger('inbox');
+ const inboxLogger = this.logger.createSubLogger('inbox');
- this.inboxQueueWorker
- .on('active', (job) => inboxLogger.debug(`active ${getJobInfo(job, true)}`))
- .on('completed', (job, result) => inboxLogger.debug(`completed(${result}) ${getJobInfo(job, true)}`))
- .on('failed', (job, err) => inboxLogger.warn(`failed(${err.stack}) ${getJobInfo(job)} activity=${job ? (job.data.activity ? job.data.activity.id : 'none') : '-'}`, { job, e: renderError(err) }))
- .on('error', (err: Error) => inboxLogger.error(`error ${err.stack}`, { e: renderError(err) }))
- .on('stalled', (jobId) => inboxLogger.warn(`stalled id=${jobId}`));
+ this.inboxQueueWorker
+ .on('active', (job) => inboxLogger.debug(`active ${getJobInfo(job, true)}`))
+ .on('completed', (job, result) => inboxLogger.debug(`completed(${result}) ${getJobInfo(job, true)}`))
+ .on('failed', (job, err) => inboxLogger.warn(`failed(${err.stack}) ${getJobInfo(job)} activity=${job ? (job.data.activity ? job.data.activity.id : 'none') : '-'}`, { job, e: renderError(err) }))
+ .on('error', (err: Error) => inboxLogger.error(`error ${err.stack}`, { e: renderError(err) }))
+ .on('stalled', (jobId) => inboxLogger.warn(`stalled id=${jobId}`));
+ }
//#endregion
//#region webhook deliver
- this.webhookDeliverQueueWorker = new Bull.Worker(QUEUE.WEBHOOK_DELIVER, (job) => this.webhookDeliverProcessorService.process(job), {
- ...baseQueueOptions(this.config, QUEUE.WEBHOOK_DELIVER),
- autorun: false,
- concurrency: 64,
- limiter: {
- max: 64,
- duration: 1000,
- },
- settings: {
- backoffStrategy: httpRelatedBackoff,
- },
- });
+ {
+ this.webhookDeliverQueueWorker = new Bull.Worker(QUEUE.WEBHOOK_DELIVER, (job) => {
+ if (this.config.sentryForBackend) {
+ return Sentry.startSpan({ name: 'Queue: WebhookDeliver' }, () => this.webhookDeliverProcessorService.process(job));
+ } else {
+ return this.webhookDeliverProcessorService.process(job);
+ }
+ }, {
+ ...baseQueueOptions(this.config, QUEUE.WEBHOOK_DELIVER),
+ autorun: false,
+ concurrency: 64,
+ limiter: {
+ max: 64,
+ duration: 1000,
+ },
+ settings: {
+ backoffStrategy: httpRelatedBackoff,
+ },
+ });
- const webhookLogger = this.logger.createSubLogger('webhook');
+ const webhookLogger = this.logger.createSubLogger('webhook');
- this.webhookDeliverQueueWorker
- .on('active', (job) => webhookLogger.debug(`active ${getJobInfo(job, true)} to=${job.data.to}`))
- .on('completed', (job, result) => webhookLogger.debug(`completed(${result}) ${getJobInfo(job, true)} to=${job.data.to}`))
- .on('failed', (job, err) => webhookLogger.warn(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`))
- .on('error', (err: Error) => webhookLogger.error(`error ${err.stack}`, { e: renderError(err) }))
- .on('stalled', (jobId) => webhookLogger.warn(`stalled id=${jobId}`));
+ this.webhookDeliverQueueWorker
+ .on('active', (job) => webhookLogger.debug(`active ${getJobInfo(job, true)} to=${job.data.to}`))
+ .on('completed', (job, result) => webhookLogger.debug(`completed(${result}) ${getJobInfo(job, true)} to=${job.data.to}`))
+ .on('failed', (job, err) => webhookLogger.warn(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`))
+ .on('error', (err: Error) => webhookLogger.error(`error ${err.stack}`, { e: renderError(err) }))
+ .on('stalled', (jobId) => webhookLogger.warn(`stalled id=${jobId}`));
+ }
//#endregion
//#region relationship
- this.relationshipQueueWorker = new Bull.Worker(QUEUE.RELATIONSHIP, (job) => {
- switch (job.name) {
- case 'follow': return this.relationshipProcessorService.processFollow(job);
- case 'unfollow': return this.relationshipProcessorService.processUnfollow(job);
- case 'block': return this.relationshipProcessorService.processBlock(job);
- case 'unblock': return this.relationshipProcessorService.processUnblock(job);
- default: throw new Error(`unrecognized job type ${job.name} for relationship`);
- }
- }, {
- ...baseQueueOptions(this.config, QUEUE.RELATIONSHIP),
- autorun: false,
- concurrency: this.config.relationshipJobConcurrency ?? 16,
- limiter: {
- max: this.config.relationshipJobPerSec ?? 64,
- duration: 1000,
- },
- });
+ {
+ const processer = (job: Bull.Job) => {
+ switch (job.name) {
+ case 'follow': return this.relationshipProcessorService.processFollow(job);
+ case 'unfollow': return this.relationshipProcessorService.processUnfollow(job);
+ case 'block': return this.relationshipProcessorService.processBlock(job);
+ case 'unblock': return this.relationshipProcessorService.processUnblock(job);
+ default: throw new Error(`unrecognized job type ${job.name} for relationship`);
+ }
+ };
- const relationshipLogger = this.logger.createSubLogger('relationship');
+ this.relationshipQueueWorker = new Bull.Worker(QUEUE.RELATIONSHIP, (job) => {
+ if (this.config.sentryForBackend) {
+ return Sentry.startSpan({ name: 'Queue: Relationship: ' + job.name }, () => processer(job));
+ } else {
+ return processer(job);
+ }
+ }, {
+ ...baseQueueOptions(this.config, QUEUE.RELATIONSHIP),
+ autorun: false,
+ concurrency: this.config.relationshipJobConcurrency ?? 16,
+ limiter: {
+ max: this.config.relationshipJobPerSec ?? 64,
+ duration: 1000,
+ },
+ });
- this.relationshipQueueWorker
- .on('active', (job) => relationshipLogger.debug(`active id=${job.id}`))
- .on('completed', (job, result) => relationshipLogger.debug(`completed(${result}) id=${job.id}`))
- .on('failed', (job, err) => relationshipLogger.warn(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) }))
- .on('error', (err: Error) => relationshipLogger.error(`error ${err.stack}`, { e: renderError(err) }))
- .on('stalled', (jobId) => relationshipLogger.warn(`stalled id=${jobId}`));
+ const relationshipLogger = this.logger.createSubLogger('relationship');
+
+ this.relationshipQueueWorker
+ .on('active', (job) => relationshipLogger.debug(`active id=${job.id}`))
+ .on('completed', (job, result) => relationshipLogger.debug(`completed(${result}) id=${job.id}`))
+ .on('failed', (job, err) => relationshipLogger.warn(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) }))
+ .on('error', (err: Error) => relationshipLogger.error(`error ${err.stack}`, { e: renderError(err) }))
+ .on('stalled', (jobId) => relationshipLogger.warn(`stalled id=${jobId}`));
+ }
//#endregion
//#region object storage
- this.objectStorageQueueWorker = new Bull.Worker(QUEUE.OBJECT_STORAGE, (job) => {
- switch (job.name) {
- case 'deleteFile': return this.deleteFileProcessorService.process(job);
- case 'cleanRemoteFiles': return this.cleanRemoteFilesProcessorService.process(job);
- default: throw new Error(`unrecognized job type ${job.name} for objectStorage`);
- }
- }, {
- ...baseQueueOptions(this.config, QUEUE.OBJECT_STORAGE),
- autorun: false,
- concurrency: 16,
- });
+ {
+ const processer = (job: Bull.Job) => {
+ switch (job.name) {
+ case 'deleteFile': return this.deleteFileProcessorService.process(job);
+ case 'cleanRemoteFiles': return this.cleanRemoteFilesProcessorService.process(job);
+ default: throw new Error(`unrecognized job type ${job.name} for objectStorage`);
+ }
+ };
- const objectStorageLogger = this.logger.createSubLogger('objectStorage');
+ this.objectStorageQueueWorker = new Bull.Worker(QUEUE.OBJECT_STORAGE, (job) => {
+ if (this.config.sentryForBackend) {
+ return Sentry.startSpan({ name: 'Queue: ObjectStorage: ' + job.name }, () => processer(job));
+ } else {
+ return processer(job);
+ }
+ }, {
+ ...baseQueueOptions(this.config, QUEUE.OBJECT_STORAGE),
+ autorun: false,
+ concurrency: 16,
+ });
- this.objectStorageQueueWorker
- .on('active', (job) => objectStorageLogger.debug(`active id=${job.id}`))
- .on('completed', (job, result) => objectStorageLogger.debug(`completed(${result}) id=${job.id}`))
- .on('failed', (job, err) => objectStorageLogger.warn(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) }))
- .on('error', (err: Error) => objectStorageLogger.error(`error ${err.stack}`, { e: renderError(err) }))
- .on('stalled', (jobId) => objectStorageLogger.warn(`stalled id=${jobId}`));
+ const objectStorageLogger = this.logger.createSubLogger('objectStorage');
+
+ this.objectStorageQueueWorker
+ .on('active', (job) => objectStorageLogger.debug(`active id=${job.id}`))
+ .on('completed', (job, result) => objectStorageLogger.debug(`completed(${result}) id=${job.id}`))
+ .on('failed', (job, err) => objectStorageLogger.warn(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) }))
+ .on('error', (err: Error) => objectStorageLogger.error(`error ${err.stack}`, { e: renderError(err) }))
+ .on('stalled', (jobId) => objectStorageLogger.warn(`stalled id=${jobId}`));
+ }
//#endregion
//#region ended poll notification
- this.endedPollNotificationQueueWorker = new Bull.Worker(QUEUE.ENDED_POLL_NOTIFICATION, (job) => this.endedPollNotificationProcessorService.process(job), {
- ...baseQueueOptions(this.config, QUEUE.ENDED_POLL_NOTIFICATION),
- autorun: false,
- });
+ {
+ this.endedPollNotificationQueueWorker = new Bull.Worker(QUEUE.ENDED_POLL_NOTIFICATION, (job) => {
+ if (this.config.sentryForBackend) {
+ return Sentry.startSpan({ name: 'Queue: EndedPollNotification' }, () => this.endedPollNotificationProcessorService.process(job));
+ } else {
+ return this.endedPollNotificationProcessorService.process(job);
+ }
+ }, {
+ ...baseQueueOptions(this.config, QUEUE.ENDED_POLL_NOTIFICATION),
+ autorun: false,
+ });
+ }
//#endregion
}
From dbf9e1194bf5b84ec711c14f27c11d2bfeb37f20 Mon Sep 17 00:00:00 2001
From: syuilo <4439005+syuilo@users.noreply.github.com>
Date: Thu, 6 Jun 2024 10:01:50 +0900
Subject: [PATCH 005/143] refactor(backend): remove unused logger option
---
packages/backend/src/core/LoggerService.ts | 4 ++--
.../backend/src/core/chart/ChartLoggerService.ts | 2 +-
packages/backend/src/logger.ts | 14 +++++---------
packages/backend/src/server/FileServerService.ts | 2 +-
packages/backend/src/server/ServerService.ts | 2 +-
5 files changed, 10 insertions(+), 14 deletions(-)
diff --git a/packages/backend/src/core/LoggerService.ts b/packages/backend/src/core/LoggerService.ts
index 96d9b09992..f102461a50 100644
--- a/packages/backend/src/core/LoggerService.ts
+++ b/packages/backend/src/core/LoggerService.ts
@@ -15,7 +15,7 @@ export class LoggerService {
}
@bindThis
- public getLogger(domain: string, color?: KEYWORD | undefined, store?: boolean) {
- return new Logger(domain, color, store);
+ public getLogger(domain: string, color?: KEYWORD | undefined) {
+ return new Logger(domain, color);
}
}
diff --git a/packages/backend/src/core/chart/ChartLoggerService.ts b/packages/backend/src/core/chart/ChartLoggerService.ts
index afc728d564..20815ea968 100644
--- a/packages/backend/src/core/chart/ChartLoggerService.ts
+++ b/packages/backend/src/core/chart/ChartLoggerService.ts
@@ -14,6 +14,6 @@ export class ChartLoggerService {
constructor(
private loggerService: LoggerService,
) {
- this.logger = this.loggerService.getLogger('chart', 'white', process.env.NODE_ENV !== 'test');
+ this.logger = this.loggerService.getLogger('chart', 'white');
}
}
diff --git a/packages/backend/src/logger.ts b/packages/backend/src/logger.ts
index d4705af601..ff5363a425 100644
--- a/packages/backend/src/logger.ts
+++ b/packages/backend/src/logger.ts
@@ -22,31 +22,27 @@ type Level = 'error' | 'success' | 'warning' | 'debug' | 'info';
export default class Logger {
private context: Context;
private parentLogger: Logger | null = null;
- private store: boolean;
- constructor(context: string, color?: KEYWORD, store = true) {
+ constructor(context: string, color?: KEYWORD) {
this.context = {
name: context,
color: color,
};
- this.store = store;
}
@bindThis
- public createSubLogger(context: string, color?: KEYWORD, store = true): Logger {
- const logger = new Logger(context, color, store);
+ public createSubLogger(context: string, color?: KEYWORD): Logger {
+ const logger = new Logger(context, color);
logger.parentLogger = this;
return logger;
}
@bindThis
- private log(level: Level, message: string, data?: Record | null, important = false, subContexts: Context[] = [], store = true): void {
+ private log(level: Level, message: string, data?: Record | null, important = false, subContexts: Context[] = []): void {
if (envOption.quiet) return;
- if (!this.store) store = false;
- if (level === 'debug') store = false;
if (this.parentLogger) {
- this.parentLogger.log(level, message, data, important, [this.context].concat(subContexts), store);
+ this.parentLogger.log(level, message, data, important, [this.context].concat(subContexts));
return;
}
diff --git a/packages/backend/src/server/FileServerService.ts b/packages/backend/src/server/FileServerService.ts
index 9db3aa1bfb..77a637d895 100644
--- a/packages/backend/src/server/FileServerService.ts
+++ b/packages/backend/src/server/FileServerService.ts
@@ -53,7 +53,7 @@ export class FileServerService {
private internalStorageService: InternalStorageService,
private loggerService: LoggerService,
) {
- this.logger = this.loggerService.getLogger('server', 'gray', false);
+ this.logger = this.loggerService.getLogger('server', 'gray');
//this.createServer = this.createServer.bind(this);
}
diff --git a/packages/backend/src/server/ServerService.ts b/packages/backend/src/server/ServerService.ts
index 3572f16627..9c849480f2 100644
--- a/packages/backend/src/server/ServerService.ts
+++ b/packages/backend/src/server/ServerService.ts
@@ -68,7 +68,7 @@ export class ServerService implements OnApplicationShutdown {
private loggerService: LoggerService,
private oauth2ProviderService: OAuth2ProviderService,
) {
- this.logger = this.loggerService.getLogger('server', 'gray', false);
+ this.logger = this.loggerService.getLogger('server', 'gray');
}
@bindThis
From 65d19279a2c19c3e6be1c4c50cc9b01c94420d6c Mon Sep 17 00:00:00 2001
From: syuilo <4439005+syuilo@users.noreply.github.com>
Date: Thu, 6 Jun 2024 10:11:43 +0900
Subject: [PATCH 006/143] fix
---
packages/backend/src/boot/master.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/backend/src/boot/master.ts b/packages/backend/src/boot/master.ts
index 75e1a80cd1..4bc5c799cf 100644
--- a/packages/backend/src/boot/master.ts
+++ b/packages/backend/src/boot/master.ts
@@ -25,7 +25,7 @@ const _dirname = dirname(_filename);
const meta = JSON.parse(fs.readFileSync(`${_dirname}/../../../../built/meta.json`, 'utf-8'));
const logger = new Logger('core', 'cyan');
-const bootLogger = logger.createSubLogger('boot', 'magenta', false);
+const bootLogger = logger.createSubLogger('boot', 'magenta');
const themeColor = chalk.hex('#86b300');
From ab69e113f4921462b72f1f352dfefe52b37862f5 Mon Sep 17 00:00:00 2001
From: syuilo <4439005+syuilo@users.noreply.github.com>
Date: Thu, 6 Jun 2024 11:20:54 +0900
Subject: [PATCH 007/143] enhance(backend): improve sentry integration
---
packages/backend/src/boot/worker.ts | 23 +++++++++++++++++++
.../src/queue/QueueProcessorService.ts | 4 ++--
.../backend/src/server/api/ApiCallService.ts | 14 +++++++----
3 files changed, 35 insertions(+), 6 deletions(-)
diff --git a/packages/backend/src/boot/worker.ts b/packages/backend/src/boot/worker.ts
index d4a7cd56e5..5d4a15b29f 100644
--- a/packages/backend/src/boot/worker.ts
+++ b/packages/backend/src/boot/worker.ts
@@ -4,13 +4,36 @@
*/
import cluster from 'node:cluster';
+import * as Sentry from '@sentry/node';
+import { nodeProfilingIntegration } from '@sentry/profiling-node';
import { envOption } from '@/env.js';
+import { loadConfig } from '@/config.js';
import { jobQueue, server } from './common.js';
/**
* Init worker process
*/
export async function workerMain() {
+ const config = loadConfig();
+
+ if (config.sentryForBackend) {
+ Sentry.init({
+ integrations: [
+ ...(config.sentryForBackend.enableNodeProfiling ? [nodeProfilingIntegration()] : []),
+ ],
+
+ // Performance Monitoring
+ tracesSampleRate: 1.0, // Capture 100% of the transactions
+
+ // Set sampling rate for profiling - this is relative to tracesSampleRate
+ profilesSampleRate: 1.0,
+
+ maxBreadcrumbs: 0,
+
+ ...config.sentryForBackend.options,
+ });
+ }
+
if (envOption.onlyServer) {
await server();
} else if (envOption.onlyQueue) {
diff --git a/packages/backend/src/queue/QueueProcessorService.ts b/packages/backend/src/queue/QueueProcessorService.ts
index eb1901d069..4f333df791 100644
--- a/packages/backend/src/queue/QueueProcessorService.ts
+++ b/packages/backend/src/queue/QueueProcessorService.ts
@@ -165,7 +165,7 @@ export class QueueProcessorService implements OnApplicationShutdown {
this.systemQueueWorker
.on('active', (job) => systemLogger.debug(`active id=${job.id}`))
.on('completed', (job, result) => systemLogger.debug(`completed(${result}) id=${job.id}`))
- .on('failed', (job, err) => systemLogger.warn(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) }))
+ .on('failed', (job, err) => systemLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) }))
.on('error', (err: Error) => systemLogger.error(`error ${err.stack}`, { e: renderError(err) }))
.on('stalled', (jobId) => systemLogger.warn(`stalled id=${jobId}`));
}
@@ -214,7 +214,7 @@ export class QueueProcessorService implements OnApplicationShutdown {
this.dbQueueWorker
.on('active', (job) => dbLogger.debug(`active id=${job.id}`))
.on('completed', (job, result) => dbLogger.debug(`completed(${result}) id=${job.id}`))
- .on('failed', (job, err) => dbLogger.warn(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) }))
+ .on('failed', (job, err) => dbLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) }))
.on('error', (err: Error) => dbLogger.error(`error ${err.stack}`, { e: renderError(err) }))
.on('stalled', (jobId) => dbLogger.warn(`stalled id=${jobId}`));
}
diff --git a/packages/backend/src/server/api/ApiCallService.ts b/packages/backend/src/server/api/ApiCallService.ts
index 271ef80554..e21a5e90ab 100644
--- a/packages/backend/src/server/api/ApiCallService.ts
+++ b/packages/backend/src/server/api/ApiCallService.ts
@@ -93,7 +93,7 @@ export class ApiCallService implements OnApplicationShutdown {
}
}
- #onExecError(ep: IEndpoint, data: any, err: Error): void {
+ #onExecError(ep: IEndpoint, data: any, err: Error, userId?: MiUser['id']): void {
if (err instanceof ApiError || err instanceof AuthenticationError) {
throw err;
} else {
@@ -108,10 +108,12 @@ export class ApiCallService implements OnApplicationShutdown {
id: errId,
},
});
- console.error(err, errId);
if (this.config.sentryForBackend) {
Sentry.captureMessage(`Internal error occurred in ${ep.name}: ${err.message}`, {
+ user: {
+ id: userId,
+ },
extra: {
ep: ep.name,
ps: data,
@@ -410,9 +412,13 @@ export class ApiCallService implements OnApplicationShutdown {
// API invoking
if (this.config.sentryForBackend) {
- return await Sentry.startSpan({ name: 'API: ' + ep.name }, () => ep.exec(data, user, token, file, request.ip, request.headers).catch((err: Error) => this.#onExecError(ep, data, err)));
+ return await Sentry.startSpan({
+ name: 'API: ' + ep.name,
+ }, () => ep.exec(data, user, token, file, request.ip, request.headers)
+ .catch((err: Error) => this.#onExecError(ep, data, err, user?.id)));
} else {
- return await ep.exec(data, user, token, file, request.ip, request.headers).catch((err: Error) => this.#onExecError(ep, data, err));
+ return await ep.exec(data, user, token, file, request.ip, request.headers)
+ .catch((err: Error) => this.#onExecError(ep, data, err, user?.id));
}
}
From a697a7f97b401d1545a7f61694b2704b4d3ac9fc Mon Sep 17 00:00:00 2001
From: syuilo <4439005+syuilo@users.noreply.github.com>
Date: Thu, 6 Jun 2024 11:38:34 +0900
Subject: [PATCH 008/143] enhance(backend): improve sentry integration
---
.../src/queue/QueueProcessorService.ts | 63 ++++++++++++++++---
1 file changed, 56 insertions(+), 7 deletions(-)
diff --git a/packages/backend/src/queue/QueueProcessorService.ts b/packages/backend/src/queue/QueueProcessorService.ts
index 4f333df791..fdeb6a9518 100644
--- a/packages/backend/src/queue/QueueProcessorService.ts
+++ b/packages/backend/src/queue/QueueProcessorService.ts
@@ -165,7 +165,14 @@ export class QueueProcessorService implements OnApplicationShutdown {
this.systemQueueWorker
.on('active', (job) => systemLogger.debug(`active id=${job.id}`))
.on('completed', (job, result) => systemLogger.debug(`completed(${result}) id=${job.id}`))
- .on('failed', (job, err) => systemLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) }))
+ .on('failed', (job, err) => {
+ systemLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
+ if (config.sentryForBackend) {
+ Sentry.captureMessage(`Queue: System: ${job?.name ?? '?'}`, {
+ extra: { job, err },
+ });
+ }
+ })
.on('error', (err: Error) => systemLogger.error(`error ${err.stack}`, { e: renderError(err) }))
.on('stalled', (jobId) => systemLogger.warn(`stalled id=${jobId}`));
}
@@ -214,7 +221,14 @@ export class QueueProcessorService implements OnApplicationShutdown {
this.dbQueueWorker
.on('active', (job) => dbLogger.debug(`active id=${job.id}`))
.on('completed', (job, result) => dbLogger.debug(`completed(${result}) id=${job.id}`))
- .on('failed', (job, err) => dbLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) }))
+ .on('failed', (job, err) => {
+ dbLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
+ if (config.sentryForBackend) {
+ Sentry.captureMessage(`Queue: DB: ${job?.name ?? '?'}`, {
+ extra: { job, err },
+ });
+ }
+ })
.on('error', (err: Error) => dbLogger.error(`error ${err.stack}`, { e: renderError(err) }))
.on('stalled', (jobId) => dbLogger.warn(`stalled id=${jobId}`));
}
@@ -246,7 +260,14 @@ export class QueueProcessorService implements OnApplicationShutdown {
this.deliverQueueWorker
.on('active', (job) => deliverLogger.debug(`active ${getJobInfo(job, true)} to=${job.data.to}`))
.on('completed', (job, result) => deliverLogger.debug(`completed(${result}) ${getJobInfo(job, true)} to=${job.data.to}`))
- .on('failed', (job, err) => deliverLogger.warn(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`))
+ .on('failed', (job, err) => {
+ deliverLogger.error(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`);
+ if (config.sentryForBackend) {
+ Sentry.captureMessage('Queue: Deliver', {
+ extra: { job, err },
+ });
+ }
+ })
.on('error', (err: Error) => deliverLogger.error(`error ${err.stack}`, { e: renderError(err) }))
.on('stalled', (jobId) => deliverLogger.warn(`stalled id=${jobId}`));
}
@@ -278,7 +299,14 @@ export class QueueProcessorService implements OnApplicationShutdown {
this.inboxQueueWorker
.on('active', (job) => inboxLogger.debug(`active ${getJobInfo(job, true)}`))
.on('completed', (job, result) => inboxLogger.debug(`completed(${result}) ${getJobInfo(job, true)}`))
- .on('failed', (job, err) => inboxLogger.warn(`failed(${err.stack}) ${getJobInfo(job)} activity=${job ? (job.data.activity ? job.data.activity.id : 'none') : '-'}`, { job, e: renderError(err) }))
+ .on('failed', (job, err) => {
+ inboxLogger.error(`failed(${err.stack}) ${getJobInfo(job)} activity=${job ? (job.data.activity ? job.data.activity.id : 'none') : '-'}`, { job, e: renderError(err) });
+ if (config.sentryForBackend) {
+ Sentry.captureMessage('Queue: Inbox', {
+ extra: { job, err },
+ });
+ }
+ })
.on('error', (err: Error) => inboxLogger.error(`error ${err.stack}`, { e: renderError(err) }))
.on('stalled', (jobId) => inboxLogger.warn(`stalled id=${jobId}`));
}
@@ -310,7 +338,14 @@ export class QueueProcessorService implements OnApplicationShutdown {
this.webhookDeliverQueueWorker
.on('active', (job) => webhookLogger.debug(`active ${getJobInfo(job, true)} to=${job.data.to}`))
.on('completed', (job, result) => webhookLogger.debug(`completed(${result}) ${getJobInfo(job, true)} to=${job.data.to}`))
- .on('failed', (job, err) => webhookLogger.warn(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`))
+ .on('failed', (job, err) => {
+ webhookLogger.error(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`);
+ if (config.sentryForBackend) {
+ Sentry.captureMessage('Queue: WebhookDeliver', {
+ extra: { job, err },
+ });
+ }
+ })
.on('error', (err: Error) => webhookLogger.error(`error ${err.stack}`, { e: renderError(err) }))
.on('stalled', (jobId) => webhookLogger.warn(`stalled id=${jobId}`));
}
@@ -349,7 +384,14 @@ export class QueueProcessorService implements OnApplicationShutdown {
this.relationshipQueueWorker
.on('active', (job) => relationshipLogger.debug(`active id=${job.id}`))
.on('completed', (job, result) => relationshipLogger.debug(`completed(${result}) id=${job.id}`))
- .on('failed', (job, err) => relationshipLogger.warn(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) }))
+ .on('failed', (job, err) => {
+ relationshipLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
+ if (config.sentryForBackend) {
+ Sentry.captureMessage(`Queue: Relationship: ${job?.name ?? '?'}`, {
+ extra: { job, err },
+ });
+ }
+ })
.on('error', (err: Error) => relationshipLogger.error(`error ${err.stack}`, { e: renderError(err) }))
.on('stalled', (jobId) => relationshipLogger.warn(`stalled id=${jobId}`));
}
@@ -382,7 +424,14 @@ export class QueueProcessorService implements OnApplicationShutdown {
this.objectStorageQueueWorker
.on('active', (job) => objectStorageLogger.debug(`active id=${job.id}`))
.on('completed', (job, result) => objectStorageLogger.debug(`completed(${result}) id=${job.id}`))
- .on('failed', (job, err) => objectStorageLogger.warn(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) }))
+ .on('failed', (job, err) => {
+ objectStorageLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
+ if (config.sentryForBackend) {
+ Sentry.captureMessage(`Queue: ObjectStorage: ${job?.name ?? '?'}`, {
+ extra: { job, err },
+ });
+ }
+ })
.on('error', (err: Error) => objectStorageLogger.error(`error ${err.stack}`, { e: renderError(err) }))
.on('stalled', (jobId) => objectStorageLogger.warn(`stalled id=${jobId}`));
}
From d55e638a231b380e733dc0ada3c3de410f918a93 Mon Sep 17 00:00:00 2001
From: syuilo <4439005+syuilo@users.noreply.github.com>
Date: Thu, 6 Jun 2024 11:40:11 +0900
Subject: [PATCH 009/143] lint fixes
---
packages/backend/src/NestLogger.ts | 2 +-
packages/backend/src/boot/entry.ts | 2 +-
packages/backend/src/postgres.ts | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/packages/backend/src/NestLogger.ts b/packages/backend/src/NestLogger.ts
index 80f1f7a024..d0be19664f 100644
--- a/packages/backend/src/NestLogger.ts
+++ b/packages/backend/src/NestLogger.ts
@@ -7,7 +7,7 @@ import { LoggerService } from '@nestjs/common';
import Logger from '@/logger.js';
const logger = new Logger('core', 'cyan');
-const nestLogger = logger.createSubLogger('nest', 'green', false);
+const nestLogger = logger.createSubLogger('nest', 'green');
export class NestLogger implements LoggerService {
/**
diff --git a/packages/backend/src/boot/entry.ts b/packages/backend/src/boot/entry.ts
index 04c6ca9723..25375c3015 100644
--- a/packages/backend/src/boot/entry.ts
+++ b/packages/backend/src/boot/entry.ts
@@ -25,7 +25,7 @@ Error.stackTraceLimit = Infinity;
EventEmitter.defaultMaxListeners = 128;
const logger = new Logger('core', 'cyan');
-const clusterLogger = logger.createSubLogger('cluster', 'orange', false);
+const clusterLogger = logger.createSubLogger('cluster', 'orange');
const ev = new Xev();
//#region Events
diff --git a/packages/backend/src/postgres.ts b/packages/backend/src/postgres.ts
index 2d14537bbb..aa2aa5e373 100644
--- a/packages/backend/src/postgres.ts
+++ b/packages/backend/src/postgres.ts
@@ -85,7 +85,7 @@ import { bindThis } from '@/decorators.js';
export const dbLogger = new MisskeyLogger('db');
-const sqlLogger = dbLogger.createSubLogger('sql', 'gray', false);
+const sqlLogger = dbLogger.createSubLogger('sql', 'gray');
class MyCustomLogger implements Logger {
@bindThis
From 8f833d742fdb10f088479c78ad489461773a8b81 Mon Sep 17 00:00:00 2001
From: syuilo <4439005+syuilo@users.noreply.github.com>
Date: Thu, 6 Jun 2024 11:51:31 +0900
Subject: [PATCH 010/143] enhance(backend): improve sentry integration
---
.../backend/src/queue/QueueProcessorService.ts | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/packages/backend/src/queue/QueueProcessorService.ts b/packages/backend/src/queue/QueueProcessorService.ts
index fdeb6a9518..6a87be021e 100644
--- a/packages/backend/src/queue/QueueProcessorService.ts
+++ b/packages/backend/src/queue/QueueProcessorService.ts
@@ -165,10 +165,10 @@ export class QueueProcessorService implements OnApplicationShutdown {
this.systemQueueWorker
.on('active', (job) => systemLogger.debug(`active id=${job.id}`))
.on('completed', (job, result) => systemLogger.debug(`completed(${result}) id=${job.id}`))
- .on('failed', (job, err) => {
+ .on('failed', (job, err: Error) => {
systemLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
if (config.sentryForBackend) {
- Sentry.captureMessage(`Queue: System: ${job?.name ?? '?'}`, {
+ Sentry.captureMessage(`Queue: System: ${job?.name ?? '?'}: ${err.message}`, {
extra: { job, err },
});
}
@@ -224,7 +224,7 @@ export class QueueProcessorService implements OnApplicationShutdown {
.on('failed', (job, err) => {
dbLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
if (config.sentryForBackend) {
- Sentry.captureMessage(`Queue: DB: ${job?.name ?? '?'}`, {
+ Sentry.captureMessage(`Queue: DB: ${job?.name ?? '?'}: ${err.message}`, {
extra: { job, err },
});
}
@@ -263,7 +263,7 @@ export class QueueProcessorService implements OnApplicationShutdown {
.on('failed', (job, err) => {
deliverLogger.error(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`);
if (config.sentryForBackend) {
- Sentry.captureMessage('Queue: Deliver', {
+ Sentry.captureMessage(`Queue: Deliver: ${err.message}`, {
extra: { job, err },
});
}
@@ -302,7 +302,7 @@ export class QueueProcessorService implements OnApplicationShutdown {
.on('failed', (job, err) => {
inboxLogger.error(`failed(${err.stack}) ${getJobInfo(job)} activity=${job ? (job.data.activity ? job.data.activity.id : 'none') : '-'}`, { job, e: renderError(err) });
if (config.sentryForBackend) {
- Sentry.captureMessage('Queue: Inbox', {
+ Sentry.captureMessage(`Queue: Inbox: ${err.message}`, {
extra: { job, err },
});
}
@@ -341,7 +341,7 @@ export class QueueProcessorService implements OnApplicationShutdown {
.on('failed', (job, err) => {
webhookLogger.error(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`);
if (config.sentryForBackend) {
- Sentry.captureMessage('Queue: WebhookDeliver', {
+ Sentry.captureMessage(`Queue: WebhookDeliver: ${err.message}`, {
extra: { job, err },
});
}
@@ -387,7 +387,7 @@ export class QueueProcessorService implements OnApplicationShutdown {
.on('failed', (job, err) => {
relationshipLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
if (config.sentryForBackend) {
- Sentry.captureMessage(`Queue: Relationship: ${job?.name ?? '?'}`, {
+ Sentry.captureMessage(`Queue: Relationship: ${job?.name ?? '?'}: ${err.message}`, {
extra: { job, err },
});
}
@@ -427,7 +427,7 @@ export class QueueProcessorService implements OnApplicationShutdown {
.on('failed', (job, err) => {
objectStorageLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
if (config.sentryForBackend) {
- Sentry.captureMessage(`Queue: ObjectStorage: ${job?.name ?? '?'}`, {
+ Sentry.captureMessage(`Queue: ObjectStorage: ${job?.name ?? '?'}: ${err.message}`, {
extra: { job, err },
});
}
From 00157864e95f4fae0c8aacff16ddac7f322ad68c Mon Sep 17 00:00:00 2001
From: taichan <40626578+tai-cha@users.noreply.github.com>
Date: Fri, 7 Jun 2024 09:00:01 +0900
Subject: [PATCH 011/143] =?UTF-8?q?fix(backend):=20=E3=83=81=E3=83=A3?=
=?UTF-8?q?=E3=83=BC=E3=83=88=E7=94=9F=E6=88=90=E6=99=82=E3=81=ABinstance.?=
=?UTF-8?q?isSuspended=E3=81=8C=E8=AA=AD=E3=81=BE=E3=82=8C=E3=81=A6?=
=?UTF-8?q?=E3=81=97=E3=81=BE=E3=81=86=E5=95=8F=E9=A1=8C=E3=81=AE=E4=BF=AE?=
=?UTF-8?q?=E6=AD=A3=20(#13951)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* fix(backend): use sustensionState instead of isSuspended
* Update CHANGELOG.md
---
CHANGELOG.md | 2 +-
packages/backend/src/core/chart/charts/federation.ts | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9d4ef23d27..3cccb451d5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,7 +7,7 @@
-
### Server
--
+- チャート生成時にinstance.suspentionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正
## 2024.5.0
diff --git a/packages/backend/src/core/chart/charts/federation.ts b/packages/backend/src/core/chart/charts/federation.ts
index 5e4555ee96..c2329a2f73 100644
--- a/packages/backend/src/core/chart/charts/federation.ts
+++ b/packages/backend/src/core/chart/charts/federation.ts
@@ -47,7 +47,7 @@ export default class FederationChart extends Chart { // eslint-di
const suspendedInstancesQuery = this.instancesRepository.createQueryBuilder('instance')
.select('instance.host')
- .where('instance.isSuspended = true');
+ .where('instance.suspensionState != \'none\'');
const pubsubSubQuery = this.followingsRepository.createQueryBuilder('f')
.select('f.followerHost')
@@ -89,7 +89,7 @@ export default class FederationChart extends Chart { // eslint-di
.select('COUNT(instance.id)')
.where(`instance.host IN (${ subInstancesQuery.getQuery() })`)
.andWhere(meta.blockedHosts.length === 0 ? '1=1' : 'instance.host NOT ILIKE ANY(ARRAY[:...blocked])', { blocked: meta.blockedHosts.flatMap(x => [x, `%.${x}`]) })
- .andWhere('instance.isSuspended = false')
+ .andWhere('instance.suspensionState = \'none\'')
.andWhere('instance.isNotResponding = false')
.getRawOne()
.then(x => parseInt(x.count, 10)),
@@ -97,7 +97,7 @@ export default class FederationChart extends Chart { // eslint-di
.select('COUNT(instance.id)')
.where(`instance.host IN (${ pubInstancesQuery.getQuery() })`)
.andWhere(meta.blockedHosts.length === 0 ? '1=1' : 'instance.host NOT ILIKE ANY(ARRAY[:...blocked])', { blocked: meta.blockedHosts.flatMap(x => [x, `%.${x}`]) })
- .andWhere('instance.isSuspended = false')
+ .andWhere('instance.suspensionState = \'none\'')
.andWhere('instance.isNotResponding = false')
.getRawOne()
.then(x => parseInt(x.count, 10)),
From 859271613958cc4a9bc8fcd9616c3146c07a50a4 Mon Sep 17 00:00:00 2001
From: syuilo <4439005+syuilo@users.noreply.github.com>
Date: Fri, 7 Jun 2024 13:15:37 +0900
Subject: [PATCH 012/143] enhance(backend): improve sentry integration
---
packages/backend/src/queue/QueueProcessorService.ts | 7 +++++++
packages/backend/src/server/api/ApiCallService.ts | 1 +
2 files changed, 8 insertions(+)
diff --git a/packages/backend/src/queue/QueueProcessorService.ts b/packages/backend/src/queue/QueueProcessorService.ts
index 6a87be021e..7bfe1f4caa 100644
--- a/packages/backend/src/queue/QueueProcessorService.ts
+++ b/packages/backend/src/queue/QueueProcessorService.ts
@@ -169,6 +169,7 @@ export class QueueProcessorService implements OnApplicationShutdown {
systemLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
if (config.sentryForBackend) {
Sentry.captureMessage(`Queue: System: ${job?.name ?? '?'}: ${err.message}`, {
+ level: 'error',
extra: { job, err },
});
}
@@ -225,6 +226,7 @@ export class QueueProcessorService implements OnApplicationShutdown {
dbLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
if (config.sentryForBackend) {
Sentry.captureMessage(`Queue: DB: ${job?.name ?? '?'}: ${err.message}`, {
+ level: 'error',
extra: { job, err },
});
}
@@ -264,6 +266,7 @@ export class QueueProcessorService implements OnApplicationShutdown {
deliverLogger.error(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`);
if (config.sentryForBackend) {
Sentry.captureMessage(`Queue: Deliver: ${err.message}`, {
+ level: 'error',
extra: { job, err },
});
}
@@ -303,6 +306,7 @@ export class QueueProcessorService implements OnApplicationShutdown {
inboxLogger.error(`failed(${err.stack}) ${getJobInfo(job)} activity=${job ? (job.data.activity ? job.data.activity.id : 'none') : '-'}`, { job, e: renderError(err) });
if (config.sentryForBackend) {
Sentry.captureMessage(`Queue: Inbox: ${err.message}`, {
+ level: 'error',
extra: { job, err },
});
}
@@ -342,6 +346,7 @@ export class QueueProcessorService implements OnApplicationShutdown {
webhookLogger.error(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`);
if (config.sentryForBackend) {
Sentry.captureMessage(`Queue: WebhookDeliver: ${err.message}`, {
+ level: 'error',
extra: { job, err },
});
}
@@ -388,6 +393,7 @@ export class QueueProcessorService implements OnApplicationShutdown {
relationshipLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
if (config.sentryForBackend) {
Sentry.captureMessage(`Queue: Relationship: ${job?.name ?? '?'}: ${err.message}`, {
+ level: 'error',
extra: { job, err },
});
}
@@ -428,6 +434,7 @@ export class QueueProcessorService implements OnApplicationShutdown {
objectStorageLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
if (config.sentryForBackend) {
Sentry.captureMessage(`Queue: ObjectStorage: ${job?.name ?? '?'}: ${err.message}`, {
+ level: 'error',
extra: { job, err },
});
}
diff --git a/packages/backend/src/server/api/ApiCallService.ts b/packages/backend/src/server/api/ApiCallService.ts
index e21a5e90ab..166f9c8675 100644
--- a/packages/backend/src/server/api/ApiCallService.ts
+++ b/packages/backend/src/server/api/ApiCallService.ts
@@ -111,6 +111,7 @@ export class ApiCallService implements OnApplicationShutdown {
if (this.config.sentryForBackend) {
Sentry.captureMessage(`Internal error occurred in ${ep.name}: ${err.message}`, {
+ level: 'error',
user: {
id: userId,
},
From e0cf5b24022e22179355cf9439d3cfea6036daba Mon Sep 17 00:00:00 2001
From: Porlam Nicla <84321396+GrapeApple0@users.noreply.github.com>
Date: Fri, 7 Jun 2024 14:46:46 +0900
Subject: [PATCH 013/143] =?UTF-8?q?=E9=85=8D=E4=BF=A1=E5=81=9C=E6=AD=A2?=
=?UTF-8?q?=E3=81=97=E3=81=9F=E3=82=A4=E3=83=B3=E3=82=B9=E3=82=BF=E3=83=B3?=
=?UTF-8?q?=E3=82=B9=E4=B8=80=E8=A6=A7=E3=81=8C=E8=A6=8B=E3=82=8C=E3=81=AA?=
=?UTF-8?q?=E3=81=8F=E3=81=AA=E3=82=8B=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE?=
=?UTF-8?q?=E6=AD=A3=20(#13945)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* 配信停止したインスタンス一覧が見れなくなる問題を修正
* Update CHANGELOG.md
---
CHANGELOG.md | 2 +-
.../backend/src/server/api/endpoints/federation/instances.ts | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3cccb451d5..f93811c606 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,7 @@
## Unreleased
### General
--
+- Fix: 配信停止したインスタンス一覧が見れなくなる問題を修正
### Client
-
diff --git a/packages/backend/src/server/api/endpoints/federation/instances.ts b/packages/backend/src/server/api/endpoints/federation/instances.ts
index 4ef4315fb3..36f4bf5aa6 100644
--- a/packages/backend/src/server/api/endpoints/federation/instances.ts
+++ b/packages/backend/src/server/api/endpoints/federation/instances.ts
@@ -117,9 +117,9 @@ export default class extends Endpoint { // eslint-
if (typeof ps.suspended === 'boolean') {
if (ps.suspended) {
- query.andWhere('instance.isSuspended = TRUE');
+ query.andWhere('instance.suspensionState != \'none\'');
} else {
- query.andWhere('instance.isSuspended = FALSE');
+ query.andWhere('instance.suspensionState = \'none\'');
}
}
From 61fae45390283aee7ac582aa5303aae863de0f7a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E3=81=8A=E3=81=95=E3=82=80=E3=81=AE=E3=81=B2=E3=81=A8?=
<46447427+samunohito@users.noreply.github.com>
Date: Sat, 8 Jun 2024 15:34:19 +0900
Subject: [PATCH 014/143] =?UTF-8?q?feat:=20=E9=80=9A=E5=A0=B1=E3=82=92?=
=?UTF-8?q?=E5=8F=97=E3=81=91=E3=81=9F=E9=9A=9B=E3=81=AB=E3=83=A1=E3=83=BC?=
=?UTF-8?q?=E3=83=AB=E3=81=BE=E3=81=9F=E3=81=AFWebhook=E3=81=A7=E9=80=9A?=
=?UTF-8?q?=E7=9F=A5=E3=82=92=E9=80=81=E5=87=BA=E5=87=BA=E6=9D=A5=E3=82=8B?=
=?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=81=99=E3=82=8B=20(#13758)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* feat: 通報を受けた際にメールまたはWebhookで通知を送出出来るようにする
* モデログに対応&エンドポイントを単一オブジェクトでのサポートに変更(API経由で大量に作るシチュエーションもないと思うので)
* fix spdx
* fix migration
* fix migration
* fix models
* add e2e webhook
* tweak
* fix modlog
* fix bugs
* add tests and fix bugs
* add tests and fix bugs
* add tests
* fix path
* regenerate locale
* 混入除去
* 混入除去
* add abuseReportResolved
* fix pnpm-lock.yaml
* add abuseReportResolved test
* fix bugs
* fix ui
* add tests
* fix CHANGELOG.md
* add tests
* add RoleService.getModeratorIds tests
* WebhookServiceをUserとSystemに分割
* fix CHANGELOG.md
* fix test
* insertOneを使う用に
* fix
* regenerate locales
* revert version
* separate webhook job queue
* fix
* :art:
* Update QueueProcessorService.ts
---------
Co-authored-by: osamu <46447427+sam-osamu@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
---
CHANGELOG.md | 1 +
locales/index.d.ts | 94 +++
locales/ja-JP.yml | 27 +
...1713656541000-abuse-report-notification.js | 62 ++
.../core/AbuseReportNotificationService.ts | 406 ++++++++++
.../backend/src/core/AbuseReportService.ts | 128 ++++
packages/backend/src/core/CoreModule.ts | 44 +-
packages/backend/src/core/EmailService.ts | 2 +
.../backend/src/core/GlobalEventService.ts | 4 +
.../backend/src/core/NoteCreateService.ts | 12 +-
packages/backend/src/core/QueueModule.ts | 38 +-
packages/backend/src/core/QueueService.ts | 63 +-
packages/backend/src/core/RoleService.ts | 30 +-
.../backend/src/core/SystemWebhookService.ts | 233 ++++++
.../backend/src/core/UserBlockingService.ts | 6 +-
.../backend/src/core/UserFollowingService.ts | 12 +-
.../backend/src/core/UserWebhookService.ts | 99 +++
packages/backend/src/core/WebhookService.ts | 97 ---
.../src/core/activitypub/ApInboxService.ts | 10 +-
...eportNotificationRecipientEntityService.ts | 88 +++
.../entities/SystemWebhookEntityService.ts | 74 ++
packages/backend/src/di-symbols.ts | 2 +
packages/backend/src/misc/json-schema.ts | 28 +-
.../AbuseReportNotificationRecipient.ts | 100 +++
.../backend/src/models/RepositoryModule.ts | 98 ++-
packages/backend/src/models/SystemWebhook.ts | 98 +++
packages/backend/src/models/_.ts | 6 +
.../abuse-report-notification-recipient.ts | 50 ++
.../src/models/json-schema/system-webhook.ts | 54 ++
packages/backend/src/postgres.ts | 8 +-
.../backend/src/queue/QueueProcessorModule.ts | 6 +-
.../src/queue/QueueProcessorService.ts | 153 ++--
packages/backend/src/queue/const.ts | 3 +-
.../SystemWebhookDeliverProcessorService.ts | 87 +++
... => UserWebhookDeliverProcessorService.ts} | 6 +-
packages/backend/src/queue/types.ts | 12 +-
.../backend/src/server/api/EndpointsModule.ts | 42 +-
packages/backend/src/server/api/endpoints.ts | 38 +-
.../notification-recipient/create.ts | 122 +++
.../notification-recipient/delete.ts | 44 ++
.../notification-recipient/list.ts | 55 ++
.../notification-recipient/show.ts | 64 ++
.../notification-recipient/update.ts | 128 ++++
.../server/api/endpoints/admin/queue/stats.ts | 5 +-
.../admin/resolve-abuse-user-report.ts | 53 +-
.../endpoints/admin/system-webhook/create.ts | 85 +++
.../endpoints/admin/system-webhook/delete.ts | 44 ++
.../endpoints/admin/system-webhook/list.ts | 60 ++
.../endpoints/admin/system-webhook/show.ts | 62 ++
.../endpoints/admin/system-webhook/update.ts | 91 +++
.../api/endpoints/users/report-abuse.ts | 54 +-
.../src/server/web/ClientServerService.ts | 17 +-
packages/backend/src/types.ts | 32 +
.../backend/test/e2e/synalio/abuse-report.ts | 401 ++++++++++
.../unit/AbuseReportNotificationService.ts | 343 +++++++++
packages/backend/test/unit/RoleService.ts | 132 +++-
.../backend/test/unit/SystemWebhookService.ts | 515 +++++++++++++
packages/frontend/src/components/MkButton.vue | 2 +
.../frontend/src/components/MkDivider.vue | 32 +
packages/frontend/src/components/MkSwitch.vue | 5 +-
.../components/MkSystemWebhookEditor.impl.ts | 45 ++
.../src/components/MkSystemWebhookEditor.vue | 217 ++++++
.../notification-recipient.editor.vue | 307 ++++++++
.../notification-recipient.item.vue | 114 +++
.../abuse-report/notification-recipient.vue | 176 +++++
packages/frontend/src/pages/admin/abuses.vue | 85 ++-
packages/frontend/src/pages/admin/index.vue | 5 +
.../src/pages/admin/modlog.ModLog.vue | 48 +-
.../src/pages/admin/system-webhook.item.vue | 117 +++
.../src/pages/admin/system-webhook.vue | 96 +++
packages/frontend/src/router/definition.ts | 8 +
packages/misskey-js/etc/misskey-js.api.md | 105 ++-
.../misskey-js/src/autogen/apiClientJSDoc.ts | 120 +++
packages/misskey-js/src/autogen/endpoint.ts | 28 +
packages/misskey-js/src/autogen/entities.ts | 18 +
packages/misskey-js/src/autogen/models.ts | 2 +
packages/misskey-js/src/autogen/types.ts | 693 ++++++++++++++++++
packages/misskey-js/src/consts.ts | 26 +
packages/misskey-js/src/entities.ts | 19 +-
79 files changed, 6527 insertions(+), 369 deletions(-)
create mode 100644 packages/backend/migration/1713656541000-abuse-report-notification.js
create mode 100644 packages/backend/src/core/AbuseReportNotificationService.ts
create mode 100644 packages/backend/src/core/AbuseReportService.ts
create mode 100644 packages/backend/src/core/SystemWebhookService.ts
create mode 100644 packages/backend/src/core/UserWebhookService.ts
delete mode 100644 packages/backend/src/core/WebhookService.ts
create mode 100644 packages/backend/src/core/entities/AbuseReportNotificationRecipientEntityService.ts
create mode 100644 packages/backend/src/core/entities/SystemWebhookEntityService.ts
create mode 100644 packages/backend/src/models/AbuseReportNotificationRecipient.ts
create mode 100644 packages/backend/src/models/SystemWebhook.ts
create mode 100644 packages/backend/src/models/json-schema/abuse-report-notification-recipient.ts
create mode 100644 packages/backend/src/models/json-schema/system-webhook.ts
create mode 100644 packages/backend/src/queue/processors/SystemWebhookDeliverProcessorService.ts
rename packages/backend/src/queue/processors/{WebhookDeliverProcessorService.ts => UserWebhookDeliverProcessorService.ts} (92%)
create mode 100644 packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/create.ts
create mode 100644 packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/delete.ts
create mode 100644 packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/list.ts
create mode 100644 packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/show.ts
create mode 100644 packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/update.ts
create mode 100644 packages/backend/src/server/api/endpoints/admin/system-webhook/create.ts
create mode 100644 packages/backend/src/server/api/endpoints/admin/system-webhook/delete.ts
create mode 100644 packages/backend/src/server/api/endpoints/admin/system-webhook/list.ts
create mode 100644 packages/backend/src/server/api/endpoints/admin/system-webhook/show.ts
create mode 100644 packages/backend/src/server/api/endpoints/admin/system-webhook/update.ts
create mode 100644 packages/backend/test/e2e/synalio/abuse-report.ts
create mode 100644 packages/backend/test/unit/AbuseReportNotificationService.ts
create mode 100644 packages/backend/test/unit/SystemWebhookService.ts
create mode 100644 packages/frontend/src/components/MkDivider.vue
create mode 100644 packages/frontend/src/components/MkSystemWebhookEditor.impl.ts
create mode 100644 packages/frontend/src/components/MkSystemWebhookEditor.vue
create mode 100644 packages/frontend/src/pages/admin/abuse-report/notification-recipient.editor.vue
create mode 100644 packages/frontend/src/pages/admin/abuse-report/notification-recipient.item.vue
create mode 100644 packages/frontend/src/pages/admin/abuse-report/notification-recipient.vue
create mode 100644 packages/frontend/src/pages/admin/system-webhook.item.vue
create mode 100644 packages/frontend/src/pages/admin/system-webhook.vue
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f93811c606..8b70636d82 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,7 @@
## Unreleased
### General
+- Feat: 通報を受けた際、または解決した際に、予め登録した宛先に通知を飛ばせるように(mail or webhook) #13705
- Fix: 配信停止したインスタンス一覧が見れなくなる問題を修正
### Client
diff --git a/locales/index.d.ts b/locales/index.d.ts
index 0b1b86d373..acdc1fc421 100644
--- a/locales/index.d.ts
+++ b/locales/index.d.ts
@@ -9305,6 +9305,10 @@ export interface Locale extends ILocale {
* Webhookを作成
*/
"createWebhook": string;
+ /**
+ * Webhookを編集
+ */
+ "modifyWebhook": string;
/**
* 名前
*/
@@ -9351,6 +9355,72 @@ export interface Locale extends ILocale {
*/
"mention": string;
};
+ "_systemEvents": {
+ /**
+ * ユーザーから通報があったとき
+ */
+ "abuseReport": string;
+ /**
+ * ユーザーからの通報を処理したとき
+ */
+ "abuseReportResolved": string;
+ };
+ /**
+ * Webhookを削除しますか?
+ */
+ "deleteConfirm": string;
+ };
+ "_abuseReport": {
+ "_notificationRecipient": {
+ /**
+ * 通報の通知先を追加
+ */
+ "createRecipient": string;
+ /**
+ * 通報の通知先を編集
+ */
+ "modifyRecipient": string;
+ /**
+ * 通知先の種類
+ */
+ "recipientType": string;
+ "_recipientType": {
+ /**
+ * メール
+ */
+ "mail": string;
+ /**
+ * Webhook
+ */
+ "webhook": string;
+ "_captions": {
+ /**
+ * モデレーター権限を持つユーザーのメールアドレスに通知を送ります(通報を受けた時のみ)
+ */
+ "mail": string;
+ /**
+ * 指定したSystemWebhookに通知を送ります(通報を受けた時と通報を解決した時にそれぞれ発信)
+ */
+ "webhook": string;
+ };
+ };
+ /**
+ * キーワード
+ */
+ "keywords": string;
+ /**
+ * 通知先ユーザー
+ */
+ "notifiedUser": string;
+ /**
+ * 使用するWebhook
+ */
+ "notifiedWebhook": string;
+ /**
+ * 通知先を削除しますか?
+ */
+ "deleteConfirm": string;
+ };
};
"_moderationLogTypes": {
/**
@@ -9497,6 +9567,30 @@ export interface Locale extends ILocale {
* ユーザーのバナーを解除
*/
"unsetUserBanner": string;
+ /**
+ * SystemWebhookを作成
+ */
+ "createSystemWebhook": string;
+ /**
+ * SystemWebhookを更新
+ */
+ "updateSystemWebhook": string;
+ /**
+ * SystemWebhookを削除
+ */
+ "deleteSystemWebhook": string;
+ /**
+ * 通報の通知先を作成
+ */
+ "createAbuseReportNotificationRecipient": string;
+ /**
+ * 通報の通知先を更新
+ */
+ "updateAbuseReportNotificationRecipient": string;
+ /**
+ * 通報の通知先を削除
+ */
+ "deleteAbuseReportNotificationRecipient": string;
};
"_fileViewer": {
/**
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index a89cfbd843..3ac1ce82a3 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -2468,6 +2468,7 @@ _drivecleaner:
_webhookSettings:
createWebhook: "Webhookを作成"
+ modifyWebhook: "Webhookを編集"
name: "名前"
secret: "シークレット"
events: "Webhookを実行するタイミング"
@@ -2480,6 +2481,26 @@ _webhookSettings:
renote: "Renoteされたとき"
reaction: "リアクションがあったとき"
mention: "メンションされたとき"
+ _systemEvents:
+ abuseReport: "ユーザーから通報があったとき"
+ abuseReportResolved: "ユーザーからの通報を処理したとき"
+ deleteConfirm: "Webhookを削除しますか?"
+
+_abuseReport:
+ _notificationRecipient:
+ createRecipient: "通報の通知先を追加"
+ modifyRecipient: "通報の通知先を編集"
+ recipientType: "通知先の種類"
+ _recipientType:
+ mail: "メール"
+ webhook: "Webhook"
+ _captions:
+ mail: "モデレーター権限を持つユーザーのメールアドレスに通知を送ります(通報を受けた時のみ)"
+ webhook: "指定したSystemWebhookに通知を送ります(通報を受けた時と通報を解決した時にそれぞれ発信)"
+ keywords: "キーワード"
+ notifiedUser: "通知先ユーザー"
+ notifiedWebhook: "使用するWebhook"
+ deleteConfirm: "通知先を削除しますか?"
_moderationLogTypes:
createRole: "ロールを作成"
@@ -2518,6 +2539,12 @@ _moderationLogTypes:
deleteAvatarDecoration: "アイコンデコレーションを削除"
unsetUserAvatar: "ユーザーのアイコンを解除"
unsetUserBanner: "ユーザーのバナーを解除"
+ createSystemWebhook: "SystemWebhookを作成"
+ updateSystemWebhook: "SystemWebhookを更新"
+ deleteSystemWebhook: "SystemWebhookを削除"
+ createAbuseReportNotificationRecipient: "通報の通知先を作成"
+ updateAbuseReportNotificationRecipient: "通報の通知先を更新"
+ deleteAbuseReportNotificationRecipient: "通報の通知先を削除"
_fileViewer:
title: "ファイルの詳細"
diff --git a/packages/backend/migration/1713656541000-abuse-report-notification.js b/packages/backend/migration/1713656541000-abuse-report-notification.js
new file mode 100644
index 0000000000..4a754f81e2
--- /dev/null
+++ b/packages/backend/migration/1713656541000-abuse-report-notification.js
@@ -0,0 +1,62 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+export class AbuseReportNotification1713656541000 {
+ name = 'AbuseReportNotification1713656541000'
+
+ async up(queryRunner) {
+ await queryRunner.query(`
+ CREATE TABLE "system_webhook" (
+ "id" varchar(32) NOT NULL,
+ "isActive" boolean NOT NULL DEFAULT true,
+ "updatedAt" timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ "latestSentAt" timestamp with time zone NULL DEFAULT NULL,
+ "latestStatus" integer NULL DEFAULT NULL,
+ "name" varchar(255) NOT NULL,
+ "on" varchar(128) [] NOT NULL DEFAULT '{}'::character varying[],
+ "url" varchar(1024) NOT NULL,
+ "secret" varchar(1024) NOT NULL,
+ CONSTRAINT "PK_system_webhook_id" PRIMARY KEY ("id")
+ );
+ CREATE INDEX "IDX_system_webhook_isActive" ON "system_webhook" ("isActive");
+ CREATE INDEX "IDX_system_webhook_on" ON "system_webhook" USING gin ("on");
+
+ CREATE TABLE "abuse_report_notification_recipient" (
+ "id" varchar(32) NOT NULL,
+ "isActive" boolean NOT NULL DEFAULT true,
+ "updatedAt" timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ "name" varchar(255) NOT NULL,
+ "method" varchar(64) NOT NULL,
+ "userId" varchar(32) NULL DEFAULT NULL,
+ "systemWebhookId" varchar(32) NULL DEFAULT NULL,
+ CONSTRAINT "PK_abuse_report_notification_recipient_id" PRIMARY KEY ("id"),
+ CONSTRAINT "FK_abuse_report_notification_recipient_userId1" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION,
+ CONSTRAINT "FK_abuse_report_notification_recipient_userId2" FOREIGN KEY ("userId") REFERENCES "user_profile"("userId") ON DELETE CASCADE ON UPDATE NO ACTION,
+ CONSTRAINT "FK_abuse_report_notification_recipient_systemWebhookId" FOREIGN KEY ("systemWebhookId") REFERENCES "system_webhook"("id") ON DELETE CASCADE ON UPDATE NO ACTION
+ );
+ CREATE INDEX "IDX_abuse_report_notification_recipient_isActive" ON "abuse_report_notification_recipient" ("isActive");
+ CREATE INDEX "IDX_abuse_report_notification_recipient_method" ON "abuse_report_notification_recipient" ("method");
+ CREATE INDEX "IDX_abuse_report_notification_recipient_userId" ON "abuse_report_notification_recipient" ("userId");
+ CREATE INDEX "IDX_abuse_report_notification_recipient_systemWebhookId" ON "abuse_report_notification_recipient" ("systemWebhookId");
+ `);
+ }
+
+ async down(queryRunner) {
+ await queryRunner.query(`
+ ALTER TABLE "abuse_report_notification_recipient" DROP CONSTRAINT "FK_abuse_report_notification_recipient_userId1";
+ ALTER TABLE "abuse_report_notification_recipient" DROP CONSTRAINT "FK_abuse_report_notification_recipient_userId2";
+ ALTER TABLE "abuse_report_notification_recipient" DROP CONSTRAINT "FK_abuse_report_notification_recipient_systemWebhookId";
+ DROP INDEX "IDX_abuse_report_notification_recipient_isActive";
+ DROP INDEX "IDX_abuse_report_notification_recipient_method";
+ DROP INDEX "IDX_abuse_report_notification_recipient_userId";
+ DROP INDEX "IDX_abuse_report_notification_recipient_systemWebhookId";
+ DROP TABLE "abuse_report_notification_recipient";
+
+ DROP INDEX "IDX_system_webhook_isActive";
+ DROP INDEX "IDX_system_webhook_on";
+ DROP TABLE "system_webhook";
+ `);
+ }
+}
diff --git a/packages/backend/src/core/AbuseReportNotificationService.ts b/packages/backend/src/core/AbuseReportNotificationService.ts
new file mode 100644
index 0000000000..df752afcd8
--- /dev/null
+++ b/packages/backend/src/core/AbuseReportNotificationService.ts
@@ -0,0 +1,406 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Inject, Injectable, type OnApplicationShutdown } from '@nestjs/common';
+import { Brackets, In, IsNull, Not } from 'typeorm';
+import * as Redis from 'ioredis';
+import sanitizeHtml from 'sanitize-html';
+import { DI } from '@/di-symbols.js';
+import { bindThis } from '@/decorators.js';
+import { GlobalEvents, GlobalEventService } from '@/core/GlobalEventService.js';
+import { isNotNull } from '@/misc/is-not-null.js';
+import type {
+ AbuseReportNotificationRecipientRepository,
+ MiAbuseReportNotificationRecipient,
+ MiAbuseUserReport,
+ MiUser,
+} from '@/models/_.js';
+import { EmailService } from '@/core/EmailService.js';
+import { MetaService } from '@/core/MetaService.js';
+import { RoleService } from '@/core/RoleService.js';
+import { RecipientMethod } from '@/models/AbuseReportNotificationRecipient.js';
+import { ModerationLogService } from '@/core/ModerationLogService.js';
+import { SystemWebhookService } from '@/core/SystemWebhookService.js';
+import { IdService } from './IdService.js';
+
+@Injectable()
+export class AbuseReportNotificationService implements OnApplicationShutdown {
+ constructor(
+ @Inject(DI.abuseReportNotificationRecipientRepository)
+ private abuseReportNotificationRecipientRepository: AbuseReportNotificationRecipientRepository,
+ @Inject(DI.redisForSub)
+ private redisForSub: Redis.Redis,
+ private idService: IdService,
+ private roleService: RoleService,
+ private systemWebhookService: SystemWebhookService,
+ private emailService: EmailService,
+ private metaService: MetaService,
+ private moderationLogService: ModerationLogService,
+ private globalEventService: GlobalEventService,
+ ) {
+ this.redisForSub.on('message', this.onMessage);
+ }
+
+ /**
+ * 管理者用Redisイベントを用いて{@link abuseReports}の内容を管理者各位に通知する.
+ * 通知先ユーザは{@link RoleService.getModeratorIds}の取得結果に依る.
+ *
+ * @see RoleService.getModeratorIds
+ * @see GlobalEventService.publishAdminStream
+ */
+ @bindThis
+ public async notifyAdminStream(abuseReports: MiAbuseUserReport[]) {
+ if (abuseReports.length <= 0) {
+ return;
+ }
+
+ const moderatorIds = await this.roleService.getModeratorIds(true, true);
+
+ for (const moderatorId of moderatorIds) {
+ for (const abuseReport of abuseReports) {
+ this.globalEventService.publishAdminStream(
+ moderatorId,
+ 'newAbuseUserReport',
+ {
+ id: abuseReport.id,
+ targetUserId: abuseReport.targetUserId,
+ reporterId: abuseReport.reporterId,
+ comment: abuseReport.comment,
+ },
+ );
+ }
+ }
+ }
+
+ /**
+ * Mailを用いて{@link abuseReports}の内容を管理者各位に通知する.
+ * メールアドレスの送信先は以下の通り.
+ * - モデレータ権限所有者ユーザ(設定画面からメールアドレスの設定を行っているユーザに限る)
+ * - metaテーブルに設定されているメールアドレス
+ *
+ * @see EmailService.sendEmail
+ */
+ @bindThis
+ public async notifyMail(abuseReports: MiAbuseUserReport[]) {
+ if (abuseReports.length <= 0) {
+ return;
+ }
+
+ const recipientEMailAddresses = await this.fetchEMailRecipients().then(it => it
+ .filter(it => it.isActive && it.userProfile?.emailVerified)
+ .map(it => it.userProfile?.email)
+ .filter(isNotNull),
+ );
+
+ // 送信先の鮮度を保つため、毎回取得する
+ const meta = await this.metaService.fetch(true);
+ recipientEMailAddresses.push(
+ ...(meta.email ? [meta.email] : []),
+ );
+
+ if (recipientEMailAddresses.length <= 0) {
+ return;
+ }
+
+ for (const mailAddress of recipientEMailAddresses) {
+ await Promise.all(
+ abuseReports.map(it => {
+ // TODO: 送信処理はJobQueue化したい
+ return this.emailService.sendEmail(
+ mailAddress,
+ 'New Abuse Report',
+ sanitizeHtml(it.comment),
+ sanitizeHtml(it.comment),
+ );
+ }),
+ );
+ }
+ }
+
+ /**
+ * SystemWebhookを用いて{@link abuseReports}の内容を管理者各位に通知する.
+ * ここではJobQueueへのエンキューのみを行うため、即時実行されない.
+ *
+ * @see SystemWebhookService.enqueueSystemWebhook
+ */
+ @bindThis
+ public async notifySystemWebhook(
+ abuseReports: MiAbuseUserReport[],
+ type: 'abuseReport' | 'abuseReportResolved',
+ ) {
+ if (abuseReports.length <= 0) {
+ return;
+ }
+
+ const recipientWebhookIds = await this.fetchWebhookRecipients()
+ .then(it => it
+ .filter(it => it.isActive && it.systemWebhookId && it.method === 'webhook')
+ .map(it => it.systemWebhookId)
+ .filter(isNotNull));
+ for (const webhookId of recipientWebhookIds) {
+ await Promise.all(
+ abuseReports.map(it => {
+ return this.systemWebhookService.enqueueSystemWebhook(
+ webhookId,
+ type,
+ it,
+ );
+ }),
+ );
+ }
+ }
+
+ /**
+ * 通報の通知先一覧を取得する.
+ *
+ * @param {Object} [params] クエリの取得条件
+ * @param {Object} [params.method] 取得する通知先の通知方法
+ * @param {Object} [opts] 動作時の詳細なオプション
+ * @param {boolean} [opts.removeUnauthorized] 副作用としてモデレータ権限を持たない送信先ユーザをDBから削除するかどうか(default: true)
+ * @param {boolean} [opts.joinUser] 通知先のユーザ情報をJOINするかどうか(default: false)
+ * @param {boolean} [opts.joinSystemWebhook] 通知先のSystemWebhook情報をJOINするかどうか(default: false)
+ * @see removeUnauthorizedRecipientUsers
+ */
+ @bindThis
+ public async fetchRecipients(
+ params?: {
+ ids?: MiAbuseReportNotificationRecipient['id'][],
+ method?: RecipientMethod[],
+ },
+ opts?: {
+ removeUnauthorized?: boolean,
+ joinUser?: boolean,
+ joinSystemWebhook?: boolean,
+ },
+ ): Promise {
+ const query = this.abuseReportNotificationRecipientRepository.createQueryBuilder('recipient');
+
+ if (opts?.joinUser) {
+ query.innerJoinAndSelect('user', 'user', 'recipient.userId = user.id');
+ query.innerJoinAndSelect('recipient.userProfile', 'userProfile');
+ }
+
+ if (opts?.joinSystemWebhook) {
+ query.innerJoinAndSelect('recipient.systemWebhook', 'systemWebhook');
+ }
+
+ if (params?.ids) {
+ query.andWhere({ id: In(params.ids) });
+ }
+
+ if (params?.method) {
+ query.andWhere(new Brackets(qb => {
+ if (params.method?.includes('email')) {
+ qb.orWhere({ method: 'email', userId: Not(IsNull()) });
+ }
+ if (params.method?.includes('webhook')) {
+ qb.orWhere({ method: 'webhook', userId: IsNull() });
+ }
+ }));
+ }
+
+ const recipients = await query.getMany();
+ if (recipients.length <= 0) {
+ return [];
+ }
+
+ // アサイン有効期限切れはイベントで拾えないので、このタイミングでチェック及び削除(オプション)
+ return (opts?.removeUnauthorized ?? true)
+ ? await this.removeUnauthorizedRecipientUsers(recipients)
+ : recipients;
+ }
+
+ /**
+ * EMailの通知先一覧を取得する.
+ * リレーション先の{@link MiUser}および{@link MiUserProfile}も同時に取得する.
+ *
+ * @param {Object} [opts]
+ * @param {boolean} [opts.removeUnauthorized] 副作用としてモデレータ権限を持たない送信先ユーザをDBから削除するかどうか(default: true)
+ * @see removeUnauthorizedRecipientUsers
+ */
+ @bindThis
+ public async fetchEMailRecipients(opts?: {
+ removeUnauthorized?: boolean
+ }): Promise {
+ return this.fetchRecipients({ method: ['email'] }, { joinUser: true, ...opts });
+ }
+
+ /**
+ * Webhookの通知先一覧を取得する.
+ * リレーション先の{@link MiSystemWebhook}も同時に取得する.
+ */
+ @bindThis
+ public fetchWebhookRecipients(): Promise {
+ return this.fetchRecipients({ method: ['webhook'] }, { joinSystemWebhook: true });
+ }
+
+ /**
+ * 通知先を作成する.
+ */
+ @bindThis
+ public async createRecipient(
+ params: {
+ isActive: MiAbuseReportNotificationRecipient['isActive'];
+ name: MiAbuseReportNotificationRecipient['name'];
+ method: MiAbuseReportNotificationRecipient['method'];
+ userId: MiAbuseReportNotificationRecipient['userId'];
+ systemWebhookId: MiAbuseReportNotificationRecipient['systemWebhookId'];
+ },
+ updater: MiUser,
+ ): Promise {
+ const id = this.idService.gen();
+ await this.abuseReportNotificationRecipientRepository.insert({
+ ...params,
+ id,
+ });
+
+ const created = await this.abuseReportNotificationRecipientRepository.findOneByOrFail({ id: id });
+
+ this.moderationLogService
+ .log(updater, 'createAbuseReportNotificationRecipient', {
+ recipientId: id,
+ recipient: created,
+ })
+ .then();
+
+ return created;
+ }
+
+ /**
+ * 通知先を更新する.
+ */
+ @bindThis
+ public async updateRecipient(
+ params: {
+ id: MiAbuseReportNotificationRecipient['id'];
+ isActive: MiAbuseReportNotificationRecipient['isActive'];
+ name: MiAbuseReportNotificationRecipient['name'];
+ method: MiAbuseReportNotificationRecipient['method'];
+ userId: MiAbuseReportNotificationRecipient['userId'];
+ systemWebhookId: MiAbuseReportNotificationRecipient['systemWebhookId'];
+ },
+ updater: MiUser,
+ ): Promise {
+ const beforeEntity = await this.abuseReportNotificationRecipientRepository.findOneByOrFail({ id: params.id });
+
+ await this.abuseReportNotificationRecipientRepository.update(params.id, {
+ isActive: params.isActive,
+ updatedAt: new Date(),
+ name: params.name,
+ method: params.method,
+ userId: params.userId,
+ systemWebhookId: params.systemWebhookId,
+ });
+
+ const afterEntity = await this.abuseReportNotificationRecipientRepository.findOneByOrFail({ id: params.id });
+
+ this.moderationLogService
+ .log(updater, 'updateAbuseReportNotificationRecipient', {
+ recipientId: params.id,
+ before: beforeEntity,
+ after: afterEntity,
+ })
+ .then();
+
+ return afterEntity;
+ }
+
+ /**
+ * 通知先を削除する.
+ */
+ @bindThis
+ public async deleteRecipient(
+ id: MiAbuseReportNotificationRecipient['id'],
+ updater: MiUser,
+ ) {
+ const entity = await this.abuseReportNotificationRecipientRepository.findBy({ id });
+
+ await this.abuseReportNotificationRecipientRepository.delete(id);
+
+ this.moderationLogService
+ .log(updater, 'deleteAbuseReportNotificationRecipient', {
+ recipientId: id,
+ recipient: entity,
+ })
+ .then();
+ }
+
+ /**
+ * モデレータ権限を持たない(*1)通知先ユーザを削除する.
+ *
+ * *1: 以下の両方を満たすものの事を言う
+ * - 通知先にユーザIDが設定されている
+ * - 付与ロールにモデレータ権限がない or アサインの有効期限が切れている
+ *
+ * @param recipients 通知先一覧の配列
+ * @returns {@lisk recipients}からモデレータ権限を持たない通知先を削除した配列
+ */
+ @bindThis
+ private async removeUnauthorizedRecipientUsers(recipients: MiAbuseReportNotificationRecipient[]): Promise {
+ const userRecipients = recipients.filter(it => it.userId !== null);
+ const recipientUserIds = new Set(userRecipients.map(it => it.userId).filter(isNotNull));
+ if (recipientUserIds.size <= 0) {
+ // ユーザが通知先として設定されていない場合、この関数での処理を行うべきレコードが無い
+ return recipients;
+ }
+
+ // モデレータ権限の有無で通知先設定を振り分ける
+ const authorizedUserIds = await this.roleService.getModeratorIds(true, true);
+ const authorizedUserRecipients = Array.of();
+ const unauthorizedUserRecipients = Array.of();
+ for (const recipient of userRecipients) {
+ // eslint-disable-next-line
+ if (authorizedUserIds.includes(recipient.userId!)) {
+ authorizedUserRecipients.push(recipient);
+ } else {
+ unauthorizedUserRecipients.push(recipient);
+ }
+ }
+
+ // モデレータ権限を持たない通知先をDBから削除する
+ if (unauthorizedUserRecipients.length > 0) {
+ await this.abuseReportNotificationRecipientRepository.delete(unauthorizedUserRecipients.map(it => it.id));
+ }
+ const nonUserRecipients = recipients.filter(it => it.userId === null);
+ return [...nonUserRecipients, ...authorizedUserRecipients].sort((a, b) => a.id.localeCompare(b.id));
+ }
+
+ @bindThis
+ private async onMessage(_: string, data: string): Promise {
+ const obj = JSON.parse(data);
+ if (obj.channel !== 'internal') {
+ return;
+ }
+
+ const { type } = obj.message as GlobalEvents['internal']['payload'];
+ switch (type) {
+ case 'roleUpdated':
+ case 'roleDeleted':
+ case 'userRoleUnassigned': {
+ // 場合によってはキャッシュ更新よりも先にここが呼ばれてしまう可能性があるのでnextTickで遅延実行
+ process.nextTick(async () => {
+ const recipients = await this.abuseReportNotificationRecipientRepository.findBy({
+ userId: Not(IsNull()),
+ });
+ await this.removeUnauthorizedRecipientUsers(recipients);
+ });
+ break;
+ }
+ default: {
+ break;
+ }
+ }
+ }
+
+ @bindThis
+ public dispose(): void {
+ this.redisForSub.off('message', this.onMessage);
+ }
+
+ @bindThis
+ public onApplicationShutdown(signal?: string | undefined): void {
+ this.dispose();
+ }
+}
diff --git a/packages/backend/src/core/AbuseReportService.ts b/packages/backend/src/core/AbuseReportService.ts
new file mode 100644
index 0000000000..69c51509ba
--- /dev/null
+++ b/packages/backend/src/core/AbuseReportService.ts
@@ -0,0 +1,128 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Inject, Injectable } from '@nestjs/common';
+import { In } from 'typeorm';
+import { DI } from '@/di-symbols.js';
+import { bindThis } from '@/decorators.js';
+import type { AbuseUserReportsRepository, MiAbuseUserReport, MiUser, UsersRepository } from '@/models/_.js';
+import { AbuseReportNotificationService } from '@/core/AbuseReportNotificationService.js';
+import { QueueService } from '@/core/QueueService.js';
+import { InstanceActorService } from '@/core/InstanceActorService.js';
+import { ApRendererService } from '@/core/activitypub/ApRendererService.js';
+import { ModerationLogService } from '@/core/ModerationLogService.js';
+import { IdService } from './IdService.js';
+
+@Injectable()
+export class AbuseReportService {
+ constructor(
+ @Inject(DI.abuseUserReportsRepository)
+ private abuseUserReportsRepository: AbuseUserReportsRepository,
+ @Inject(DI.usersRepository)
+ private usersRepository: UsersRepository,
+ private idService: IdService,
+ private abuseReportNotificationService: AbuseReportNotificationService,
+ private queueService: QueueService,
+ private instanceActorService: InstanceActorService,
+ private apRendererService: ApRendererService,
+ private moderationLogService: ModerationLogService,
+ ) {
+ }
+
+ /**
+ * ユーザからの通報をDBに記録し、その内容を下記の手段で管理者各位に通知する.
+ * - 管理者用Redisイベント
+ * - EMail(モデレータ権限所有者ユーザ+metaテーブルに設定されているメールアドレス)
+ * - SystemWebhook
+ *
+ * @param params 通報内容. もし複数件の通報に対応した時のために、あらかじめ複数件を処理できる前提で考える
+ * @see AbuseReportNotificationService.notify
+ */
+ @bindThis
+ public async report(params: {
+ targetUserId: MiAbuseUserReport['targetUserId'],
+ targetUserHost: MiAbuseUserReport['targetUserHost'],
+ reporterId: MiAbuseUserReport['reporterId'],
+ reporterHost: MiAbuseUserReport['reporterHost'],
+ comment: string,
+ }[]) {
+ const entities = params.map(param => {
+ return {
+ id: this.idService.gen(),
+ targetUserId: param.targetUserId,
+ targetUserHost: param.targetUserHost,
+ reporterId: param.reporterId,
+ reporterHost: param.reporterHost,
+ comment: param.comment,
+ };
+ });
+
+ const reports = Array.of();
+ for (const entity of entities) {
+ const report = await this.abuseUserReportsRepository.insertOne(entity);
+ reports.push(report);
+ }
+
+ return Promise.all([
+ this.abuseReportNotificationService.notifyAdminStream(reports),
+ this.abuseReportNotificationService.notifySystemWebhook(reports, 'abuseReport'),
+ this.abuseReportNotificationService.notifyMail(reports),
+ ]);
+ }
+
+ /**
+ * 通報を解決し、その内容を下記の手段で管理者各位に通知する.
+ * - SystemWebhook
+ *
+ * @param params 通報内容. もし複数件の通報に対応した時のために、あらかじめ複数件を処理できる前提で考える
+ * @param operator 通報を処理したユーザ
+ * @see AbuseReportNotificationService.notify
+ */
+ @bindThis
+ public async resolve(
+ params: {
+ reportId: string;
+ forward: boolean;
+ }[],
+ operator: MiUser,
+ ) {
+ const paramsMap = new Map(params.map(it => [it.reportId, it]));
+ const reports = await this.abuseUserReportsRepository.findBy({
+ id: In(params.map(it => it.reportId)),
+ });
+
+ for (const report of reports) {
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ const ps = paramsMap.get(report.id)!;
+
+ await this.abuseUserReportsRepository.update(report.id, {
+ resolved: true,
+ assigneeId: operator.id,
+ forwarded: ps.forward && report.targetUserHost !== null,
+ });
+
+ if (ps.forward && report.targetUserHost != null) {
+ const actor = await this.instanceActorService.getInstanceActor();
+ const targetUser = await this.usersRepository.findOneByOrFail({ id: report.targetUserId });
+
+ // eslint-disable-next-line
+ const flag = this.apRendererService.renderFlag(actor, targetUser.uri!, report.comment);
+ const contextAssignedFlag = this.apRendererService.addContext(flag);
+ this.queueService.deliver(actor, contextAssignedFlag, targetUser.inbox, false);
+ }
+
+ this.moderationLogService
+ .log(operator, 'resolveAbuseReport', {
+ reportId: report.id,
+ report: report,
+ forwarded: ps.forward && report.targetUserHost !== null,
+ })
+ .then();
+ }
+
+ return this.abuseUserReportsRepository.findBy({ id: In(reports.map(it => it.id)) })
+ .then(reports => this.abuseReportNotificationService.notifySystemWebhook(reports, 'abuseReportResolved'));
+ }
+}
diff --git a/packages/backend/src/core/CoreModule.ts b/packages/backend/src/core/CoreModule.ts
index be80df6f1c..b5b34487ec 100644
--- a/packages/backend/src/core/CoreModule.ts
+++ b/packages/backend/src/core/CoreModule.ts
@@ -5,6 +5,13 @@
import { Module } from '@nestjs/common';
import { FanoutTimelineEndpointService } from '@/core/FanoutTimelineEndpointService.js';
+import { AbuseReportService } from '@/core/AbuseReportService.js';
+import { SystemWebhookEntityService } from '@/core/entities/SystemWebhookEntityService.js';
+import {
+ AbuseReportNotificationRecipientEntityService,
+} from '@/core/entities/AbuseReportNotificationRecipientEntityService.js';
+import { AbuseReportNotificationService } from '@/core/AbuseReportNotificationService.js';
+import { SystemWebhookService } from '@/core/SystemWebhookService.js';
import { AccountMoveService } from './AccountMoveService.js';
import { AccountUpdateService } from './AccountUpdateService.js';
import { AiService } from './AiService.js';
@@ -56,7 +63,7 @@ import { UserMutingService } from './UserMutingService.js';
import { UserSuspendService } from './UserSuspendService.js';
import { UserAuthService } from './UserAuthService.js';
import { VideoProcessingService } from './VideoProcessingService.js';
-import { WebhookService } from './WebhookService.js';
+import { UserWebhookService } from './UserWebhookService.js';
import { ProxyAccountService } from './ProxyAccountService.js';
import { UtilityService } from './UtilityService.js';
import { FileInfoService } from './FileInfoService.js';
@@ -144,6 +151,8 @@ import type { Provider } from '@nestjs/common';
//#region 文字列ベースでのinjection用(循環参照対応のため)
const $LoggerService: Provider = { provide: 'LoggerService', useExisting: LoggerService };
+const $AbuseReportService: Provider = { provide: 'AbuseReportService', useExisting: AbuseReportService };
+const $AbuseReportNotificationService: Provider = { provide: 'AbuseReportNotificationService', useExisting: AbuseReportNotificationService };
const $AccountMoveService: Provider = { provide: 'AccountMoveService', useExisting: AccountMoveService };
const $AccountUpdateService: Provider = { provide: 'AccountUpdateService', useExisting: AccountUpdateService };
const $AiService: Provider = { provide: 'AiService', useExisting: AiService };
@@ -196,7 +205,8 @@ const $UserMutingService: Provider = { provide: 'UserMutingService', useExisting
const $UserSuspendService: Provider = { provide: 'UserSuspendService', useExisting: UserSuspendService };
const $UserAuthService: Provider = { provide: 'UserAuthService', useExisting: UserAuthService };
const $VideoProcessingService: Provider = { provide: 'VideoProcessingService', useExisting: VideoProcessingService };
-const $WebhookService: Provider = { provide: 'WebhookService', useExisting: WebhookService };
+const $UserWebhookService: Provider = { provide: 'UserWebhookService', useExisting: UserWebhookService };
+const $SystemWebhookService: Provider = { provide: 'SystemWebhookService', useExisting: SystemWebhookService };
const $UtilityService: Provider = { provide: 'UtilityService', useExisting: UtilityService };
const $FileInfoService: Provider = { provide: 'FileInfoService', useExisting: FileInfoService };
const $SearchService: Provider = { provide: 'SearchService', useExisting: SearchService };
@@ -225,6 +235,7 @@ const $ChartManagementService: Provider = { provide: 'ChartManagementService', u
const $AbuseUserReportEntityService: Provider = { provide: 'AbuseUserReportEntityService', useExisting: AbuseUserReportEntityService };
const $AnnouncementEntityService: Provider = { provide: 'AnnouncementEntityService', useExisting: AnnouncementEntityService };
+const $AbuseReportNotificationRecipientEntityService: Provider = { provide: 'AbuseReportNotificationRecipientEntityService', useExisting: AbuseReportNotificationRecipientEntityService };
const $AntennaEntityService: Provider = { provide: 'AntennaEntityService', useExisting: AntennaEntityService };
const $AppEntityService: Provider = { provide: 'AppEntityService', useExisting: AppEntityService };
const $AuthSessionEntityService: Provider = { provide: 'AuthSessionEntityService', useExisting: AuthSessionEntityService };
@@ -258,6 +269,7 @@ const $FlashLikeEntityService: Provider = { provide: 'FlashLikeEntityService', u
const $RoleEntityService: Provider = { provide: 'RoleEntityService', useExisting: RoleEntityService };
const $ReversiGameEntityService: Provider = { provide: 'ReversiGameEntityService', useExisting: ReversiGameEntityService };
const $MetaEntityService: Provider = { provide: 'MetaEntityService', useExisting: MetaEntityService };
+const $SystemWebhookEntityService: Provider = { provide: 'SystemWebhookEntityService', useExisting: SystemWebhookEntityService };
const $ApAudienceService: Provider = { provide: 'ApAudienceService', useExisting: ApAudienceService };
const $ApDbResolverService: Provider = { provide: 'ApDbResolverService', useExisting: ApDbResolverService };
@@ -285,6 +297,8 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
],
providers: [
LoggerService,
+ AbuseReportService,
+ AbuseReportNotificationService,
AccountMoveService,
AccountUpdateService,
AiService,
@@ -337,7 +351,8 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
UserSuspendService,
UserAuthService,
VideoProcessingService,
- WebhookService,
+ UserWebhookService,
+ SystemWebhookService,
UtilityService,
FileInfoService,
SearchService,
@@ -366,6 +381,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
AbuseUserReportEntityService,
AnnouncementEntityService,
+ AbuseReportNotificationRecipientEntityService,
AntennaEntityService,
AppEntityService,
AuthSessionEntityService,
@@ -399,6 +415,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
RoleEntityService,
ReversiGameEntityService,
MetaEntityService,
+ SystemWebhookEntityService,
ApAudienceService,
ApDbResolverService,
@@ -422,6 +439,8 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
//#region 文字列ベースでのinjection用(循環参照対応のため)
$LoggerService,
+ $AbuseReportService,
+ $AbuseReportNotificationService,
$AccountMoveService,
$AccountUpdateService,
$AiService,
@@ -474,7 +493,8 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$UserSuspendService,
$UserAuthService,
$VideoProcessingService,
- $WebhookService,
+ $UserWebhookService,
+ $SystemWebhookService,
$UtilityService,
$FileInfoService,
$SearchService,
@@ -503,6 +523,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$AbuseUserReportEntityService,
$AnnouncementEntityService,
+ $AbuseReportNotificationRecipientEntityService,
$AntennaEntityService,
$AppEntityService,
$AuthSessionEntityService,
@@ -536,6 +557,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$RoleEntityService,
$ReversiGameEntityService,
$MetaEntityService,
+ $SystemWebhookEntityService,
$ApAudienceService,
$ApDbResolverService,
@@ -560,6 +582,8 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
exports: [
QueueModule,
LoggerService,
+ AbuseReportService,
+ AbuseReportNotificationService,
AccountMoveService,
AccountUpdateService,
AiService,
@@ -612,7 +636,8 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
UserSuspendService,
UserAuthService,
VideoProcessingService,
- WebhookService,
+ UserWebhookService,
+ SystemWebhookService,
UtilityService,
FileInfoService,
SearchService,
@@ -640,6 +665,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
AbuseUserReportEntityService,
AnnouncementEntityService,
+ AbuseReportNotificationRecipientEntityService,
AntennaEntityService,
AppEntityService,
AuthSessionEntityService,
@@ -673,6 +699,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
RoleEntityService,
ReversiGameEntityService,
MetaEntityService,
+ SystemWebhookEntityService,
ApAudienceService,
ApDbResolverService,
@@ -696,6 +723,8 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
//#region 文字列ベースでのinjection用(循環参照対応のため)
$LoggerService,
+ $AbuseReportService,
+ $AbuseReportNotificationService,
$AccountMoveService,
$AccountUpdateService,
$AiService,
@@ -748,7 +777,8 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$UserSuspendService,
$UserAuthService,
$VideoProcessingService,
- $WebhookService,
+ $UserWebhookService,
+ $SystemWebhookService,
$UtilityService,
$FileInfoService,
$SearchService,
@@ -776,6 +806,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$AbuseUserReportEntityService,
$AnnouncementEntityService,
+ $AbuseReportNotificationRecipientEntityService,
$AntennaEntityService,
$AppEntityService,
$AuthSessionEntityService,
@@ -809,6 +840,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$RoleEntityService,
$ReversiGameEntityService,
$MetaEntityService,
+ $SystemWebhookEntityService,
$ApAudienceService,
$ApDbResolverService,
diff --git a/packages/backend/src/core/EmailService.ts b/packages/backend/src/core/EmailService.ts
index 08f8f80a6e..435dbbae28 100644
--- a/packages/backend/src/core/EmailService.ts
+++ b/packages/backend/src/core/EmailService.ts
@@ -16,6 +16,7 @@ import type { UserProfilesRepository } from '@/models/_.js';
import { LoggerService } from '@/core/LoggerService.js';
import { bindThis } from '@/decorators.js';
import { HttpRequestService } from '@/core/HttpRequestService.js';
+import { QueueService } from '@/core/QueueService.js';
@Injectable()
export class EmailService {
@@ -32,6 +33,7 @@ export class EmailService {
private loggerService: LoggerService,
private utilityService: UtilityService,
private httpRequestService: HttpRequestService,
+ private queueService: QueueService,
) {
this.logger = this.loggerService.getLogger('email');
}
diff --git a/packages/backend/src/core/GlobalEventService.ts b/packages/backend/src/core/GlobalEventService.ts
index 90efd63f3a..a70743bed2 100644
--- a/packages/backend/src/core/GlobalEventService.ts
+++ b/packages/backend/src/core/GlobalEventService.ts
@@ -18,6 +18,7 @@ import type { MiAbuseUserReport } from '@/models/AbuseUserReport.js';
import type { MiSignin } from '@/models/Signin.js';
import type { MiPage } from '@/models/Page.js';
import type { MiWebhook } from '@/models/Webhook.js';
+import type { MiSystemWebhook } from '@/models/SystemWebhook.js';
import type { MiMeta } from '@/models/Meta.js';
import { MiAvatarDecoration, MiReversiGame, MiRole, MiRoleAssignment } from '@/models/_.js';
import type { Packed } from '@/misc/json-schema.js';
@@ -227,6 +228,9 @@ export interface InternalEventTypes {
webhookCreated: MiWebhook;
webhookDeleted: MiWebhook;
webhookUpdated: MiWebhook;
+ systemWebhookCreated: MiSystemWebhook;
+ systemWebhookDeleted: MiSystemWebhook;
+ systemWebhookUpdated: MiSystemWebhook;
antennaCreated: MiAntenna;
antennaDeleted: MiAntenna;
antennaUpdated: MiAntenna;
diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts
index e5580f36d1..0c9de117d2 100644
--- a/packages/backend/src/core/NoteCreateService.ts
+++ b/packages/backend/src/core/NoteCreateService.ts
@@ -38,7 +38,7 @@ import InstanceChart from '@/core/chart/charts/instance.js';
import ActiveUsersChart from '@/core/chart/charts/active-users.js';
import { GlobalEventService } from '@/core/GlobalEventService.js';
import { NotificationService } from '@/core/NotificationService.js';
-import { WebhookService } from '@/core/WebhookService.js';
+import { UserWebhookService } from '@/core/UserWebhookService.js';
import { HashtagService } from '@/core/HashtagService.js';
import { AntennaService } from '@/core/AntennaService.js';
import { QueueService } from '@/core/QueueService.js';
@@ -205,7 +205,7 @@ export class NoteCreateService implements OnApplicationShutdown {
private federatedInstanceService: FederatedInstanceService,
private hashtagService: HashtagService,
private antennaService: AntennaService,
- private webhookService: WebhookService,
+ private webhookService: UserWebhookService,
private featuredService: FeaturedService,
private remoteUserResolveService: RemoteUserResolveService,
private apDeliverManagerService: ApDeliverManagerService,
@@ -606,7 +606,7 @@ export class NoteCreateService implements OnApplicationShutdown {
this.webhookService.getActiveWebhooks().then(webhooks => {
webhooks = webhooks.filter(x => x.userId === user.id && x.on.includes('note'));
for (const webhook of webhooks) {
- this.queueService.webhookDeliver(webhook, 'note', {
+ this.queueService.userWebhookDeliver(webhook, 'note', {
note: noteObj,
});
}
@@ -633,7 +633,7 @@ export class NoteCreateService implements OnApplicationShutdown {
const webhooks = (await this.webhookService.getActiveWebhooks()).filter(x => x.userId === data.reply!.userId && x.on.includes('reply'));
for (const webhook of webhooks) {
- this.queueService.webhookDeliver(webhook, 'reply', {
+ this.queueService.userWebhookDeliver(webhook, 'reply', {
note: noteObj,
});
}
@@ -656,7 +656,7 @@ export class NoteCreateService implements OnApplicationShutdown {
const webhooks = (await this.webhookService.getActiveWebhooks()).filter(x => x.userId === data.renote!.userId && x.on.includes('renote'));
for (const webhook of webhooks) {
- this.queueService.webhookDeliver(webhook, 'renote', {
+ this.queueService.userWebhookDeliver(webhook, 'renote', {
note: noteObj,
});
}
@@ -788,7 +788,7 @@ export class NoteCreateService implements OnApplicationShutdown {
const webhooks = (await this.webhookService.getActiveWebhooks()).filter(x => x.userId === u.id && x.on.includes('mention'));
for (const webhook of webhooks) {
- this.queueService.webhookDeliver(webhook, 'mention', {
+ this.queueService.userWebhookDeliver(webhook, 'mention', {
note: detailPackedNote,
});
}
diff --git a/packages/backend/src/core/QueueModule.ts b/packages/backend/src/core/QueueModule.ts
index 216734e9e5..b10b8e5899 100644
--- a/packages/backend/src/core/QueueModule.ts
+++ b/packages/backend/src/core/QueueModule.ts
@@ -7,10 +7,17 @@ import { Inject, Module, OnApplicationShutdown } from '@nestjs/common';
import * as Bull from 'bullmq';
import { DI } from '@/di-symbols.js';
import type { Config } from '@/config.js';
-import { QUEUE, baseQueueOptions } from '@/queue/const.js';
+import { baseQueueOptions, QUEUE } from '@/queue/const.js';
import { allSettled } from '@/misc/promise-tracker.js';
+import {
+ DeliverJobData,
+ EndedPollNotificationJobData,
+ InboxJobData,
+ RelationshipJobData,
+ UserWebhookDeliverJobData,
+ SystemWebhookDeliverJobData,
+} from '../queue/types.js';
import type { Provider } from '@nestjs/common';
-import type { DeliverJobData, InboxJobData, EndedPollNotificationJobData, WebhookDeliverJobData, RelationshipJobData } from '../queue/types.js';
export type SystemQueue = Bull.Queue>;
export type EndedPollNotificationQueue = Bull.Queue;
@@ -19,7 +26,8 @@ export type InboxQueue = Bull.Queue;
export type DbQueue = Bull.Queue;
export type RelationshipQueue = Bull.Queue;
export type ObjectStorageQueue = Bull.Queue;
-export type WebhookDeliverQueue = Bull.Queue;
+export type UserWebhookDeliverQueue = Bull.Queue;
+export type SystemWebhookDeliverQueue = Bull.Queue;
const $system: Provider = {
provide: 'queue:system',
@@ -63,9 +71,15 @@ const $objectStorage: Provider = {
inject: [DI.config],
};
-const $webhookDeliver: Provider = {
- provide: 'queue:webhookDeliver',
- useFactory: (config: Config) => new Bull.Queue(QUEUE.WEBHOOK_DELIVER, baseQueueOptions(config, QUEUE.WEBHOOK_DELIVER)),
+const $userWebhookDeliver: Provider = {
+ provide: 'queue:userWebhookDeliver',
+ useFactory: (config: Config) => new Bull.Queue(QUEUE.USER_WEBHOOK_DELIVER, baseQueueOptions(config, QUEUE.USER_WEBHOOK_DELIVER)),
+ inject: [DI.config],
+};
+
+const $systemWebhookDeliver: Provider = {
+ provide: 'queue:systemWebhookDeliver',
+ useFactory: (config: Config) => new Bull.Queue(QUEUE.SYSTEM_WEBHOOK_DELIVER, baseQueueOptions(config, QUEUE.SYSTEM_WEBHOOK_DELIVER)),
inject: [DI.config],
};
@@ -80,7 +94,8 @@ const $webhookDeliver: Provider = {
$db,
$relationship,
$objectStorage,
- $webhookDeliver,
+ $userWebhookDeliver,
+ $systemWebhookDeliver,
],
exports: [
$system,
@@ -90,7 +105,8 @@ const $webhookDeliver: Provider = {
$db,
$relationship,
$objectStorage,
- $webhookDeliver,
+ $userWebhookDeliver,
+ $systemWebhookDeliver,
],
})
export class QueueModule implements OnApplicationShutdown {
@@ -102,7 +118,8 @@ export class QueueModule implements OnApplicationShutdown {
@Inject('queue:db') public dbQueue: DbQueue,
@Inject('queue:relationship') public relationshipQueue: RelationshipQueue,
@Inject('queue:objectStorage') public objectStorageQueue: ObjectStorageQueue,
- @Inject('queue:webhookDeliver') public webhookDeliverQueue: WebhookDeliverQueue,
+ @Inject('queue:userWebhookDeliver') public userWebhookDeliverQueue: UserWebhookDeliverQueue,
+ @Inject('queue:systemWebhookDeliver') public systemWebhookDeliverQueue: SystemWebhookDeliverQueue,
) {}
public async dispose(): Promise {
@@ -117,7 +134,8 @@ export class QueueModule implements OnApplicationShutdown {
this.dbQueue.close(),
this.relationshipQueue.close(),
this.objectStorageQueue.close(),
- this.webhookDeliverQueue.close(),
+ this.userWebhookDeliverQueue.close(),
+ this.systemWebhookDeliverQueue.close(),
]);
}
diff --git a/packages/backend/src/core/QueueService.ts b/packages/backend/src/core/QueueService.ts
index c258a22927..80827a500b 100644
--- a/packages/backend/src/core/QueueService.ts
+++ b/packages/backend/src/core/QueueService.ts
@@ -8,15 +8,33 @@ import { Inject, Injectable } from '@nestjs/common';
import type { IActivity } from '@/core/activitypub/type.js';
import type { MiDriveFile } from '@/models/DriveFile.js';
import type { MiWebhook, webhookEventTypes } from '@/models/Webhook.js';
+import type { MiSystemWebhook, SystemWebhookEventType } from '@/models/SystemWebhook.js';
import type { Config } from '@/config.js';
import { DI } from '@/di-symbols.js';
import { bindThis } from '@/decorators.js';
import type { Antenna } from '@/server/api/endpoints/i/import-antennas.js';
-import type { DbQueue, DeliverQueue, EndedPollNotificationQueue, InboxQueue, ObjectStorageQueue, RelationshipQueue, SystemQueue, WebhookDeliverQueue } from './QueueModule.js';
-import type { DbJobData, DeliverJobData, RelationshipJobData, ThinUser } from '../queue/types.js';
+import { ApRequestCreator } from '@/core/activitypub/ApRequestService.js';
+import type {
+ DbJobData,
+ DeliverJobData,
+ RelationshipJobData,
+ SystemWebhookDeliverJobData,
+ ThinUser,
+ UserWebhookDeliverJobData,
+} from '../queue/types.js';
+import type {
+ DbQueue,
+ DeliverQueue,
+ EndedPollNotificationQueue,
+ InboxQueue,
+ ObjectStorageQueue,
+ RelationshipQueue,
+ SystemQueue,
+ UserWebhookDeliverQueue,
+ SystemWebhookDeliverQueue,
+} from './QueueModule.js';
import type httpSignature from '@peertube/http-signature';
import type * as Bull from 'bullmq';
-import { ApRequestCreator } from '@/core/activitypub/ApRequestService.js';
@Injectable()
export class QueueService {
@@ -31,7 +49,8 @@ export class QueueService {
@Inject('queue:db') public dbQueue: DbQueue,
@Inject('queue:relationship') public relationshipQueue: RelationshipQueue,
@Inject('queue:objectStorage') public objectStorageQueue: ObjectStorageQueue,
- @Inject('queue:webhookDeliver') public webhookDeliverQueue: WebhookDeliverQueue,
+ @Inject('queue:userWebhookDeliver') public userWebhookDeliverQueue: UserWebhookDeliverQueue,
+ @Inject('queue:systemWebhookDeliver') public systemWebhookDeliverQueue: SystemWebhookDeliverQueue,
) {
this.systemQueue.add('tickCharts', {
}, {
@@ -431,9 +450,13 @@ export class QueueService {
});
}
+ /**
+ * @see UserWebhookDeliverJobData
+ * @see WebhookDeliverProcessorService
+ */
@bindThis
- public webhookDeliver(webhook: MiWebhook, type: typeof webhookEventTypes[number], content: unknown) {
- const data = {
+ public userWebhookDeliver(webhook: MiWebhook, type: typeof webhookEventTypes[number], content: unknown) {
+ const data: UserWebhookDeliverJobData = {
type,
content,
webhookId: webhook.id,
@@ -444,7 +467,33 @@ export class QueueService {
eventId: randomUUID(),
};
- return this.webhookDeliverQueue.add(webhook.id, data, {
+ return this.userWebhookDeliverQueue.add(webhook.id, data, {
+ attempts: 4,
+ backoff: {
+ type: 'custom',
+ },
+ removeOnComplete: true,
+ removeOnFail: true,
+ });
+ }
+
+ /**
+ * @see SystemWebhookDeliverJobData
+ * @see WebhookDeliverProcessorService
+ */
+ @bindThis
+ public systemWebhookDeliver(webhook: MiSystemWebhook, type: SystemWebhookEventType, content: unknown) {
+ const data: SystemWebhookDeliverJobData = {
+ type,
+ content,
+ webhookId: webhook.id,
+ to: webhook.url,
+ secret: webhook.secret,
+ createdAt: Date.now(),
+ eventId: randomUUID(),
+ };
+
+ return this.systemWebhookDeliverQueue.add(webhook.id, data, {
attempts: 4,
backoff: {
type: 'custom',
diff --git a/packages/backend/src/core/RoleService.ts b/packages/backend/src/core/RoleService.ts
index d6eea70297..e2ebecb99f 100644
--- a/packages/backend/src/core/RoleService.ts
+++ b/packages/backend/src/core/RoleService.ts
@@ -410,14 +410,32 @@ export class RoleService implements OnApplicationShutdown, OnModuleInit {
}
@bindThis
- public async getModeratorIds(includeAdmins = true): Promise {
+ public async getModeratorIds(includeAdmins = true, excludeExpire = false): Promise {
const roles = await this.rolesCache.fetch(() => this.rolesRepository.findBy({}));
- const moderatorRoles = includeAdmins ? roles.filter(r => r.isModerator || r.isAdministrator) : roles.filter(r => r.isModerator);
- const assigns = moderatorRoles.length > 0 ? await this.roleAssignmentsRepository.findBy({
- roleId: In(moderatorRoles.map(r => r.id)),
- }) : [];
+ const moderatorRoles = includeAdmins
+ ? roles.filter(r => r.isModerator || r.isAdministrator)
+ : roles.filter(r => r.isModerator);
+
// TODO: isRootなアカウントも含める
- return assigns.map(a => a.userId);
+ const assigns = moderatorRoles.length > 0
+ ? await this.roleAssignmentsRepository.findBy({ roleId: In(moderatorRoles.map(r => r.id)) })
+ : [];
+
+ const now = Date.now();
+ const result = [
+ // Setを経由して重複を除去(ユーザIDは重複する可能性があるので)
+ ...new Set(
+ assigns
+ .filter(it =>
+ (excludeExpire)
+ ? (it.expiresAt == null || it.expiresAt.getTime() > now)
+ : true,
+ )
+ .map(a => a.userId),
+ ),
+ ];
+
+ return result.sort((x, y) => x.localeCompare(y));
}
@bindThis
diff --git a/packages/backend/src/core/SystemWebhookService.ts b/packages/backend/src/core/SystemWebhookService.ts
new file mode 100644
index 0000000000..bc6851f788
--- /dev/null
+++ b/packages/backend/src/core/SystemWebhookService.ts
@@ -0,0 +1,233 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Inject, Injectable } from '@nestjs/common';
+import * as Redis from 'ioredis';
+import type { MiUser, SystemWebhooksRepository } from '@/models/_.js';
+import { DI } from '@/di-symbols.js';
+import { bindThis } from '@/decorators.js';
+import { GlobalEvents, GlobalEventService } from '@/core/GlobalEventService.js';
+import { MiSystemWebhook, type SystemWebhookEventType } from '@/models/SystemWebhook.js';
+import { IdService } from '@/core/IdService.js';
+import { QueueService } from '@/core/QueueService.js';
+import { ModerationLogService } from '@/core/ModerationLogService.js';
+import { LoggerService } from '@/core/LoggerService.js';
+import Logger from '@/logger.js';
+import type { OnApplicationShutdown } from '@nestjs/common';
+
+@Injectable()
+export class SystemWebhookService implements OnApplicationShutdown {
+ private logger: Logger;
+ private activeSystemWebhooksFetched = false;
+ private activeSystemWebhooks: MiSystemWebhook[] = [];
+
+ constructor(
+ @Inject(DI.redisForSub)
+ private redisForSub: Redis.Redis,
+ @Inject(DI.systemWebhooksRepository)
+ private systemWebhooksRepository: SystemWebhooksRepository,
+ private idService: IdService,
+ private queueService: QueueService,
+ private moderationLogService: ModerationLogService,
+ private loggerService: LoggerService,
+ private globalEventService: GlobalEventService,
+ ) {
+ this.redisForSub.on('message', this.onMessage);
+ this.logger = this.loggerService.getLogger('webhook');
+ }
+
+ @bindThis
+ public async fetchActiveSystemWebhooks() {
+ if (!this.activeSystemWebhooksFetched) {
+ this.activeSystemWebhooks = await this.systemWebhooksRepository.findBy({
+ isActive: true,
+ });
+ this.activeSystemWebhooksFetched = true;
+ }
+
+ return this.activeSystemWebhooks;
+ }
+
+ /**
+ * SystemWebhook の一覧を取得する.
+ */
+ @bindThis
+ public async fetchSystemWebhooks(params?: {
+ ids?: MiSystemWebhook['id'][];
+ isActive?: MiSystemWebhook['isActive'];
+ on?: MiSystemWebhook['on'];
+ }): Promise {
+ const query = this.systemWebhooksRepository.createQueryBuilder('systemWebhook');
+ if (params) {
+ if (params.ids && params.ids.length > 0) {
+ query.andWhere('systemWebhook.id IN (:...ids)', { ids: params.ids });
+ }
+ if (params.isActive !== undefined) {
+ query.andWhere('systemWebhook.isActive = :isActive', { isActive: params.isActive });
+ }
+ if (params.on && params.on.length > 0) {
+ query.andWhere(':on <@ systemWebhook.on', { on: params.on });
+ }
+ }
+
+ return query.getMany();
+ }
+
+ /**
+ * SystemWebhook を作成する.
+ */
+ @bindThis
+ public async createSystemWebhook(
+ params: {
+ isActive: MiSystemWebhook['isActive'];
+ name: MiSystemWebhook['name'];
+ on: MiSystemWebhook['on'];
+ url: MiSystemWebhook['url'];
+ secret: MiSystemWebhook['secret'];
+ },
+ updater: MiUser,
+ ): Promise {
+ const id = this.idService.gen();
+ await this.systemWebhooksRepository.insert({
+ ...params,
+ id,
+ });
+
+ const webhook = await this.systemWebhooksRepository.findOneByOrFail({ id });
+ this.globalEventService.publishInternalEvent('systemWebhookCreated', webhook);
+ this.moderationLogService
+ .log(updater, 'createSystemWebhook', {
+ systemWebhookId: webhook.id,
+ webhook: webhook,
+ })
+ .then();
+
+ return webhook;
+ }
+
+ /**
+ * SystemWebhook を更新する.
+ */
+ @bindThis
+ public async updateSystemWebhook(
+ params: {
+ id: MiSystemWebhook['id'];
+ isActive: MiSystemWebhook['isActive'];
+ name: MiSystemWebhook['name'];
+ on: MiSystemWebhook['on'];
+ url: MiSystemWebhook['url'];
+ secret: MiSystemWebhook['secret'];
+ },
+ updater: MiUser,
+ ): Promise {
+ const beforeEntity = await this.systemWebhooksRepository.findOneByOrFail({ id: params.id });
+ await this.systemWebhooksRepository.update(beforeEntity.id, {
+ updatedAt: new Date(),
+ isActive: params.isActive,
+ name: params.name,
+ on: params.on,
+ url: params.url,
+ secret: params.secret,
+ });
+
+ const afterEntity = await this.systemWebhooksRepository.findOneByOrFail({ id: beforeEntity.id });
+ this.globalEventService.publishInternalEvent('systemWebhookUpdated', afterEntity);
+ this.moderationLogService
+ .log(updater, 'updateSystemWebhook', {
+ systemWebhookId: beforeEntity.id,
+ before: beforeEntity,
+ after: afterEntity,
+ })
+ .then();
+
+ return afterEntity;
+ }
+
+ /**
+ * SystemWebhook を削除する.
+ */
+ @bindThis
+ public async deleteSystemWebhook(id: MiSystemWebhook['id'], updater: MiUser) {
+ const webhook = await this.systemWebhooksRepository.findOneByOrFail({ id });
+ await this.systemWebhooksRepository.delete(id);
+
+ this.globalEventService.publishInternalEvent('systemWebhookDeleted', webhook);
+ this.moderationLogService
+ .log(updater, 'deleteSystemWebhook', {
+ systemWebhookId: webhook.id,
+ webhook,
+ })
+ .then();
+ }
+
+ /**
+ * SystemWebhook をWebhook配送キューに追加する
+ * @see QueueService.systemWebhookDeliver
+ */
+ @bindThis
+ public async enqueueSystemWebhook(webhook: MiSystemWebhook | MiSystemWebhook['id'], type: SystemWebhookEventType, content: unknown) {
+ const webhookEntity = typeof webhook === 'string'
+ ? (await this.fetchActiveSystemWebhooks()).find(a => a.id === webhook)
+ : webhook;
+ if (!webhookEntity || !webhookEntity.isActive) {
+ this.logger.info(`Webhook is not active or not found : ${webhook}`);
+ return;
+ }
+
+ if (!webhookEntity.on.includes(type)) {
+ this.logger.info(`Webhook ${webhookEntity.id} is not listening to ${type}`);
+ return;
+ }
+
+ return this.queueService.systemWebhookDeliver(webhookEntity, type, content);
+ }
+
+ @bindThis
+ private async onMessage(_: string, data: string): Promise {
+ const obj = JSON.parse(data);
+ if (obj.channel !== 'internal') {
+ return;
+ }
+
+ const { type, body } = obj.message as GlobalEvents['internal']['payload'];
+ switch (type) {
+ case 'systemWebhookCreated': {
+ if (body.isActive) {
+ this.activeSystemWebhooks.push(MiSystemWebhook.deserialize(body));
+ }
+ break;
+ }
+ case 'systemWebhookUpdated': {
+ if (body.isActive) {
+ const i = this.activeSystemWebhooks.findIndex(a => a.id === body.id);
+ if (i > -1) {
+ this.activeSystemWebhooks[i] = MiSystemWebhook.deserialize(body);
+ } else {
+ this.activeSystemWebhooks.push(MiSystemWebhook.deserialize(body));
+ }
+ } else {
+ this.activeSystemWebhooks = this.activeSystemWebhooks.filter(a => a.id !== body.id);
+ }
+ break;
+ }
+ case 'systemWebhookDeleted': {
+ this.activeSystemWebhooks = this.activeSystemWebhooks.filter(a => a.id !== body.id);
+ break;
+ }
+ default:
+ break;
+ }
+ }
+
+ @bindThis
+ public dispose(): void {
+ this.redisForSub.off('message', this.onMessage);
+ }
+
+ @bindThis
+ public onApplicationShutdown(signal?: string | undefined): void {
+ this.dispose();
+ }
+}
diff --git a/packages/backend/src/core/UserBlockingService.ts b/packages/backend/src/core/UserBlockingService.ts
index 96f389b54c..2f1310b8ef 100644
--- a/packages/backend/src/core/UserBlockingService.ts
+++ b/packages/backend/src/core/UserBlockingService.ts
@@ -16,7 +16,7 @@ import Logger from '@/logger.js';
import { UserEntityService } from '@/core/entities/UserEntityService.js';
import { ApRendererService } from '@/core/activitypub/ApRendererService.js';
import { LoggerService } from '@/core/LoggerService.js';
-import { WebhookService } from '@/core/WebhookService.js';
+import { UserWebhookService } from '@/core/UserWebhookService.js';
import { bindThis } from '@/decorators.js';
import { CacheService } from '@/core/CacheService.js';
import { UserFollowingService } from '@/core/UserFollowingService.js';
@@ -46,7 +46,7 @@ export class UserBlockingService implements OnModuleInit {
private idService: IdService,
private queueService: QueueService,
private globalEventService: GlobalEventService,
- private webhookService: WebhookService,
+ private webhookService: UserWebhookService,
private apRendererService: ApRendererService,
private loggerService: LoggerService,
) {
@@ -121,7 +121,7 @@ export class UserBlockingService implements OnModuleInit {
const webhooks = (await this.webhookService.getActiveWebhooks()).filter(x => x.userId === follower.id && x.on.includes('unfollow'));
for (const webhook of webhooks) {
- this.queueService.webhookDeliver(webhook, 'unfollow', {
+ this.queueService.userWebhookDeliver(webhook, 'unfollow', {
user: packed,
});
}
diff --git a/packages/backend/src/core/UserFollowingService.ts b/packages/backend/src/core/UserFollowingService.ts
index 406ea04031..267a6a3f1b 100644
--- a/packages/backend/src/core/UserFollowingService.ts
+++ b/packages/backend/src/core/UserFollowingService.ts
@@ -16,7 +16,7 @@ import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error.js
import type { Packed } from '@/misc/json-schema.js';
import InstanceChart from '@/core/chart/charts/instance.js';
import { FederatedInstanceService } from '@/core/FederatedInstanceService.js';
-import { WebhookService } from '@/core/WebhookService.js';
+import { UserWebhookService } from '@/core/UserWebhookService.js';
import { NotificationService } from '@/core/NotificationService.js';
import { DI } from '@/di-symbols.js';
import type { FollowingsRepository, FollowRequestsRepository, InstancesRepository, UserProfilesRepository, UsersRepository } from '@/models/_.js';
@@ -82,7 +82,7 @@ export class UserFollowingService implements OnModuleInit {
private metaService: MetaService,
private notificationService: NotificationService,
private federatedInstanceService: FederatedInstanceService,
- private webhookService: WebhookService,
+ private webhookService: UserWebhookService,
private apRendererService: ApRendererService,
private accountMoveService: AccountMoveService,
private fanoutTimelineService: FanoutTimelineService,
@@ -331,7 +331,7 @@ export class UserFollowingService implements OnModuleInit {
const webhooks = (await this.webhookService.getActiveWebhooks()).filter(x => x.userId === follower.id && x.on.includes('follow'));
for (const webhook of webhooks) {
- this.queueService.webhookDeliver(webhook, 'follow', {
+ this.queueService.userWebhookDeliver(webhook, 'follow', {
user: packed,
});
}
@@ -345,7 +345,7 @@ export class UserFollowingService implements OnModuleInit {
const webhooks = (await this.webhookService.getActiveWebhooks()).filter(x => x.userId === followee.id && x.on.includes('followed'));
for (const webhook of webhooks) {
- this.queueService.webhookDeliver(webhook, 'followed', {
+ this.queueService.userWebhookDeliver(webhook, 'followed', {
user: packed,
});
}
@@ -398,7 +398,7 @@ export class UserFollowingService implements OnModuleInit {
const webhooks = (await this.webhookService.getActiveWebhooks()).filter(x => x.userId === follower.id && x.on.includes('unfollow'));
for (const webhook of webhooks) {
- this.queueService.webhookDeliver(webhook, 'unfollow', {
+ this.queueService.userWebhookDeliver(webhook, 'unfollow', {
user: packed,
});
}
@@ -740,7 +740,7 @@ export class UserFollowingService implements OnModuleInit {
const webhooks = (await this.webhookService.getActiveWebhooks()).filter(x => x.userId === follower.id && x.on.includes('unfollow'));
for (const webhook of webhooks) {
- this.queueService.webhookDeliver(webhook, 'unfollow', {
+ this.queueService.userWebhookDeliver(webhook, 'unfollow', {
user: packedFollowee,
});
}
diff --git a/packages/backend/src/core/UserWebhookService.ts b/packages/backend/src/core/UserWebhookService.ts
new file mode 100644
index 0000000000..e96bfeea95
--- /dev/null
+++ b/packages/backend/src/core/UserWebhookService.ts
@@ -0,0 +1,99 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Inject, Injectable } from '@nestjs/common';
+import * as Redis from 'ioredis';
+import type { WebhooksRepository } from '@/models/_.js';
+import type { MiWebhook } from '@/models/Webhook.js';
+import { DI } from '@/di-symbols.js';
+import { bindThis } from '@/decorators.js';
+import { GlobalEvents } from '@/core/GlobalEventService.js';
+import type { OnApplicationShutdown } from '@nestjs/common';
+
+@Injectable()
+export class UserWebhookService implements OnApplicationShutdown {
+ private activeWebhooksFetched = false;
+ private activeWebhooks: MiWebhook[] = [];
+
+ constructor(
+ @Inject(DI.redisForSub)
+ private redisForSub: Redis.Redis,
+ @Inject(DI.webhooksRepository)
+ private webhooksRepository: WebhooksRepository,
+ ) {
+ this.redisForSub.on('message', this.onMessage);
+ }
+
+ @bindThis
+ public async getActiveWebhooks() {
+ if (!this.activeWebhooksFetched) {
+ this.activeWebhooks = await this.webhooksRepository.findBy({
+ active: true,
+ });
+ this.activeWebhooksFetched = true;
+ }
+
+ return this.activeWebhooks;
+ }
+
+ @bindThis
+ private async onMessage(_: string, data: string): Promise {
+ const obj = JSON.parse(data);
+ if (obj.channel !== 'internal') {
+ return;
+ }
+
+ const { type, body } = obj.message as GlobalEvents['internal']['payload'];
+ switch (type) {
+ case 'webhookCreated': {
+ if (body.active) {
+ this.activeWebhooks.push({ // TODO: このあたりのデシリアライズ処理は各modelファイル内に関数としてexportしたい
+ ...body,
+ latestSentAt: body.latestSentAt ? new Date(body.latestSentAt) : null,
+ user: null, // joinなカラムは通常取ってこないので
+ });
+ }
+ break;
+ }
+ case 'webhookUpdated': {
+ if (body.active) {
+ const i = this.activeWebhooks.findIndex(a => a.id === body.id);
+ if (i > -1) {
+ this.activeWebhooks[i] = { // TODO: このあたりのデシリアライズ処理は各modelファイル内に関数としてexportしたい
+ ...body,
+ latestSentAt: body.latestSentAt ? new Date(body.latestSentAt) : null,
+ user: null, // joinなカラムは通常取ってこないので
+ };
+ } else {
+ this.activeWebhooks.push({ // TODO: このあたりのデシリアライズ処理は各modelファイル内に関数としてexportしたい
+ ...body,
+ latestSentAt: body.latestSentAt ? new Date(body.latestSentAt) : null,
+ user: null, // joinなカラムは通常取ってこないので
+ });
+ }
+ } else {
+ this.activeWebhooks = this.activeWebhooks.filter(a => a.id !== body.id);
+ }
+ break;
+ }
+ case 'webhookDeleted': {
+ this.activeWebhooks = this.activeWebhooks.filter(a => a.id !== body.id);
+ break;
+ }
+ default:
+ break;
+ }
+ }
+
+ @bindThis
+ public dispose(): void {
+ this.redisForSub.off('message', this.onMessage);
+ }
+
+ @bindThis
+ public onApplicationShutdown(signal?: string | undefined): void {
+ this.dispose();
+ }
+}
diff --git a/packages/backend/src/core/WebhookService.ts b/packages/backend/src/core/WebhookService.ts
deleted file mode 100644
index 6be34977b0..0000000000
--- a/packages/backend/src/core/WebhookService.ts
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * SPDX-FileCopyrightText: syuilo and misskey-project
- * SPDX-License-Identifier: AGPL-3.0-only
- */
-
-import { Inject, Injectable } from '@nestjs/common';
-import * as Redis from 'ioredis';
-import type { WebhooksRepository } from '@/models/_.js';
-import type { MiWebhook } from '@/models/Webhook.js';
-import { DI } from '@/di-symbols.js';
-import { bindThis } from '@/decorators.js';
-import type { GlobalEvents } from '@/core/GlobalEventService.js';
-import type { OnApplicationShutdown } from '@nestjs/common';
-
-@Injectable()
-export class WebhookService implements OnApplicationShutdown {
- private webhooksFetched = false;
- private webhooks: MiWebhook[] = [];
-
- constructor(
- @Inject(DI.redisForSub)
- private redisForSub: Redis.Redis,
-
- @Inject(DI.webhooksRepository)
- private webhooksRepository: WebhooksRepository,
- ) {
- //this.onMessage = this.onMessage.bind(this);
- this.redisForSub.on('message', this.onMessage);
- }
-
- @bindThis
- public async getActiveWebhooks() {
- if (!this.webhooksFetched) {
- this.webhooks = await this.webhooksRepository.findBy({
- active: true,
- });
- this.webhooksFetched = true;
- }
-
- return this.webhooks;
- }
-
- @bindThis
- private async onMessage(_: string, data: string): Promise {
- const obj = JSON.parse(data);
-
- if (obj.channel === 'internal') {
- const { type, body } = obj.message as GlobalEvents['internal']['payload'];
- switch (type) {
- case 'webhookCreated':
- if (body.active) {
- this.webhooks.push({ // TODO: このあたりのデシリアライズ処理は各modelファイル内に関数としてexportしたい
- ...body,
- latestSentAt: body.latestSentAt ? new Date(body.latestSentAt) : null,
- user: null, // joinなカラムは通常取ってこないので
- });
- }
- break;
- case 'webhookUpdated':
- if (body.active) {
- const i = this.webhooks.findIndex(a => a.id === body.id);
- if (i > -1) {
- this.webhooks[i] = { // TODO: このあたりのデシリアライズ処理は各modelファイル内に関数としてexportしたい
- ...body,
- latestSentAt: body.latestSentAt ? new Date(body.latestSentAt) : null,
- user: null, // joinなカラムは通常取ってこないので
- };
- } else {
- this.webhooks.push({ // TODO: このあたりのデシリアライズ処理は各modelファイル内に関数としてexportしたい
- ...body,
- latestSentAt: body.latestSentAt ? new Date(body.latestSentAt) : null,
- user: null, // joinなカラムは通常取ってこないので
- });
- }
- } else {
- this.webhooks = this.webhooks.filter(a => a.id !== body.id);
- }
- break;
- case 'webhookDeleted':
- this.webhooks = this.webhooks.filter(a => a.id !== body.id);
- break;
- default:
- break;
- }
- }
- }
-
- @bindThis
- public dispose(): void {
- this.redisForSub.off('message', this.onMessage);
- }
-
- @bindThis
- public onApplicationShutdown(signal?: string | undefined): void {
- this.dispose();
- }
-}
diff --git a/packages/backend/src/core/activitypub/ApInboxService.ts b/packages/backend/src/core/activitypub/ApInboxService.ts
index d0d206760c..de3178b482 100644
--- a/packages/backend/src/core/activitypub/ApInboxService.ts
+++ b/packages/backend/src/core/activitypub/ApInboxService.ts
@@ -29,6 +29,7 @@ import { bindThis } from '@/decorators.js';
import type { MiRemoteUser } from '@/models/User.js';
import { isNotNull } from '@/misc/is-not-null.js';
import { GlobalEventService } from '@/core/GlobalEventService.js';
+import { AbuseReportService } from '@/core/AbuseReportService.js';
import { getApHrefNullable, getApId, getApIds, getApType, isAccept, isActor, isAdd, isAnnounce, isBlock, isCollection, isCollectionOrOrderedCollection, isCreate, isDelete, isFlag, isFollow, isLike, isMove, isPost, isReject, isRemove, isTombstone, isUndo, isUpdate, validActor, validPost } from './type.js';
import { ApNoteService } from './models/ApNoteService.js';
import { ApLoggerService } from './ApLoggerService.js';
@@ -57,9 +58,6 @@ export class ApInboxService {
@Inject(DI.followingsRepository)
private followingsRepository: FollowingsRepository,
- @Inject(DI.abuseUserReportsRepository)
- private abuseUserReportsRepository: AbuseUserReportsRepository,
-
@Inject(DI.followRequestsRepository)
private followRequestsRepository: FollowRequestsRepository,
@@ -68,6 +66,7 @@ export class ApInboxService {
private utilityService: UtilityService,
private idService: IdService,
private metaService: MetaService,
+ private abuseReportService: AbuseReportService,
private userFollowingService: UserFollowingService,
private apAudienceService: ApAudienceService,
private reactionService: ReactionService,
@@ -545,14 +544,13 @@ export class ApInboxService {
});
if (users.length < 1) return 'skip';
- await this.abuseUserReportsRepository.insert({
- id: this.idService.gen(),
+ await this.abuseReportService.report([{
targetUserId: users[0].id,
targetUserHost: users[0].host,
reporterId: actor.id,
reporterHost: actor.host,
comment: `${activity.content}\n${JSON.stringify(uris, null, 2)}`,
- });
+ }]);
return 'ok';
}
diff --git a/packages/backend/src/core/entities/AbuseReportNotificationRecipientEntityService.ts b/packages/backend/src/core/entities/AbuseReportNotificationRecipientEntityService.ts
new file mode 100644
index 0000000000..6819afafd9
--- /dev/null
+++ b/packages/backend/src/core/entities/AbuseReportNotificationRecipientEntityService.ts
@@ -0,0 +1,88 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Inject, Injectable } from '@nestjs/common';
+import { In } from 'typeorm';
+import { DI } from '@/di-symbols.js';
+import type { AbuseReportNotificationRecipientRepository, MiAbuseReportNotificationRecipient } from '@/models/_.js';
+import { bindThis } from '@/decorators.js';
+import { UserEntityService } from '@/core/entities/UserEntityService.js';
+import { Packed } from '@/misc/json-schema.js';
+import { SystemWebhookEntityService } from '@/core/entities/SystemWebhookEntityService.js';
+import { isNotNull } from '@/misc/is-not-null.js';
+
+@Injectable()
+export class AbuseReportNotificationRecipientEntityService {
+ constructor(
+ @Inject(DI.abuseReportNotificationRecipientRepository)
+ private abuseReportNotificationRecipientRepository: AbuseReportNotificationRecipientRepository,
+ private userEntityService: UserEntityService,
+ private systemWebhookEntityService: SystemWebhookEntityService,
+ ) {
+ }
+
+ @bindThis
+ public async pack(
+ src: MiAbuseReportNotificationRecipient['id'] | MiAbuseReportNotificationRecipient,
+ opts?: {
+ users: Map>,
+ webhooks: Map>,
+ },
+ ): Promise> {
+ const recipient = typeof src === 'object'
+ ? src
+ : await this.abuseReportNotificationRecipientRepository.findOneByOrFail({ id: src });
+ const user = recipient.userId
+ ? (opts?.users.get(recipient.userId) ?? await this.userEntityService.pack<'UserLite'>(recipient.userId))
+ : undefined;
+ const webhook = recipient.systemWebhookId
+ ? (opts?.webhooks.get(recipient.systemWebhookId) ?? await this.systemWebhookEntityService.pack(recipient.systemWebhookId))
+ : undefined;
+
+ return {
+ id: recipient.id,
+ isActive: recipient.isActive,
+ updatedAt: recipient.updatedAt.toISOString(),
+ name: recipient.name,
+ method: recipient.method,
+ userId: recipient.userId ?? undefined,
+ user: user,
+ systemWebhookId: recipient.systemWebhookId ?? undefined,
+ systemWebhook: webhook,
+ };
+ }
+
+ @bindThis
+ public async packMany(
+ src: MiAbuseReportNotificationRecipient['id'][] | MiAbuseReportNotificationRecipient[],
+ ): Promise[]> {
+ const objs = src.filter((it): it is MiAbuseReportNotificationRecipient => typeof it === 'object');
+ const ids = src.filter((it): it is MiAbuseReportNotificationRecipient['id'] => typeof it === 'string');
+ if (ids.length > 0) {
+ objs.push(
+ ...await this.abuseReportNotificationRecipientRepository.findBy({ id: In(ids) }),
+ );
+ }
+
+ const userIds = objs.map(it => it.userId).filter(isNotNull);
+ const users: Map> = (userIds.length > 0)
+ ? await this.userEntityService.packMany(userIds)
+ .then(it => new Map(it.map(it => [it.id, it])))
+ : new Map();
+
+ const systemWebhookIds = objs.map(it => it.systemWebhookId).filter(isNotNull);
+ const systemWebhooks: Map> = (systemWebhookIds.length > 0)
+ ? await this.systemWebhookEntityService.packMany(systemWebhookIds)
+ .then(it => new Map(it.map(it => [it.id, it])))
+ : new Map();
+
+ return Promise
+ .all(
+ objs.map(it => this.pack(it, { users: users, webhooks: systemWebhooks })),
+ )
+ .then(it => it.sort((a, b) => a.id.localeCompare(b.id)));
+ }
+}
+
diff --git a/packages/backend/src/core/entities/SystemWebhookEntityService.ts b/packages/backend/src/core/entities/SystemWebhookEntityService.ts
new file mode 100644
index 0000000000..e18734091c
--- /dev/null
+++ b/packages/backend/src/core/entities/SystemWebhookEntityService.ts
@@ -0,0 +1,74 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Inject, Injectable } from '@nestjs/common';
+import { In } from 'typeorm';
+import { DI } from '@/di-symbols.js';
+import type { MiSystemWebhook, SystemWebhooksRepository } from '@/models/_.js';
+import { bindThis } from '@/decorators.js';
+import { Packed } from '@/misc/json-schema.js';
+
+@Injectable()
+export class SystemWebhookEntityService {
+ constructor(
+ @Inject(DI.systemWebhooksRepository)
+ private systemWebhooksRepository: SystemWebhooksRepository,
+ ) {
+ }
+
+ @bindThis
+ public async pack(
+ src: MiSystemWebhook['id'] | MiSystemWebhook,
+ opts?: {
+ webhooks: Map
+ },
+ ): Promise> {
+ const webhook = typeof src === 'object'
+ ? src
+ : opts?.webhooks.get(src) ?? await this.systemWebhooksRepository.findOneByOrFail({ id: src });
+
+ return {
+ id: webhook.id,
+ isActive: webhook.isActive,
+ updatedAt: webhook.updatedAt.toISOString(),
+ latestSentAt: webhook.latestSentAt?.toISOString() ?? null,
+ latestStatus: webhook.latestStatus,
+ name: webhook.name,
+ on: webhook.on,
+ url: webhook.url,
+ secret: webhook.secret,
+ };
+ }
+
+ @bindThis
+ public async packMany(src: MiSystemWebhook['id'][] | MiSystemWebhook[]): Promise[]> {
+ if (src.length === 0) {
+ return [];
+ }
+
+ const webhooks = Array.of();
+ webhooks.push(
+ ...src.filter((it): it is MiSystemWebhook => typeof it === 'object'),
+ );
+
+ const ids = src.filter((it): it is MiSystemWebhook['id'] => typeof it === 'string');
+ if (ids.length > 0) {
+ webhooks.push(
+ ...await this.systemWebhooksRepository.findBy({ id: In(ids) }),
+ );
+ }
+
+ return Promise
+ .all(
+ webhooks.map(x =>
+ this.pack(x, {
+ webhooks: new Map(webhooks.map(x => [x.id, x])),
+ }),
+ ),
+ )
+ .then(it => it.sort((a, b) => a.id.localeCompare(b.id)));
+ }
+}
+
diff --git a/packages/backend/src/di-symbols.ts b/packages/backend/src/di-symbols.ts
index 919f4794a3..271082b4ff 100644
--- a/packages/backend/src/di-symbols.ts
+++ b/packages/backend/src/di-symbols.ts
@@ -49,6 +49,7 @@ export const DI = {
swSubscriptionsRepository: Symbol('swSubscriptionsRepository'),
hashtagsRepository: Symbol('hashtagsRepository'),
abuseUserReportsRepository: Symbol('abuseUserReportsRepository'),
+ abuseReportNotificationRecipientRepository: Symbol('abuseReportNotificationRecipientRepository'),
registrationTicketsRepository: Symbol('registrationTicketsRepository'),
authSessionsRepository: Symbol('authSessionsRepository'),
accessTokensRepository: Symbol('accessTokensRepository'),
@@ -70,6 +71,7 @@ export const DI = {
channelFavoritesRepository: Symbol('channelFavoritesRepository'),
registryItemsRepository: Symbol('registryItemsRepository'),
webhooksRepository: Symbol('webhooksRepository'),
+ systemWebhooksRepository: Symbol('systemWebhooksRepository'),
adsRepository: Symbol('adsRepository'),
passwordResetRequestsRepository: Symbol('passwordResetRequestsRepository'),
retentionAggregationsRepository: Symbol('retentionAggregationsRepository'),
diff --git a/packages/backend/src/misc/json-schema.ts b/packages/backend/src/misc/json-schema.ts
index 41e5bfe9e4..a721b8663c 100644
--- a/packages/backend/src/misc/json-schema.ts
+++ b/packages/backend/src/misc/json-schema.ts
@@ -4,12 +4,12 @@
*/
import {
- packedUserLiteSchema,
- packedUserDetailedNotMeOnlySchema,
packedMeDetailedOnlySchema,
- packedUserDetailedNotMeSchema,
packedMeDetailedSchema,
+ packedUserDetailedNotMeOnlySchema,
+ packedUserDetailedNotMeSchema,
packedUserDetailedSchema,
+ packedUserLiteSchema,
packedUserSchema,
} from '@/models/json-schema/user.js';
import { packedNoteSchema } from '@/models/json-schema/note.js';
@@ -25,7 +25,7 @@ import { packedBlockingSchema } from '@/models/json-schema/blocking.js';
import { packedNoteReactionSchema } from '@/models/json-schema/note-reaction.js';
import { packedHashtagSchema } from '@/models/json-schema/hashtag.js';
import { packedInviteCodeSchema } from '@/models/json-schema/invite-code.js';
-import { packedPageSchema, packedPageBlockSchema } from '@/models/json-schema/page.js';
+import { packedPageBlockSchema, packedPageSchema } from '@/models/json-schema/page.js';
import { packedNoteFavoriteSchema } from '@/models/json-schema/note-favorite.js';
import { packedChannelSchema } from '@/models/json-schema/channel.js';
import { packedAntennaSchema } from '@/models/json-schema/antenna.js';
@@ -38,25 +38,27 @@ import { packedFlashSchema } from '@/models/json-schema/flash.js';
import { packedAnnouncementSchema } from '@/models/json-schema/announcement.js';
import { packedSigninSchema } from '@/models/json-schema/signin.js';
import {
- packedRoleLiteSchema,
- packedRoleSchema,
- packedRolePoliciesSchema,
+ packedRoleCondFormulaFollowersOrFollowingOrNotesSchema,
packedRoleCondFormulaLogicsSchema,
- packedRoleCondFormulaValueNot,
- packedRoleCondFormulaValueIsLocalOrRemoteSchema,
packedRoleCondFormulaValueAssignedRoleSchema,
packedRoleCondFormulaValueCreatedSchema,
- packedRoleCondFormulaFollowersOrFollowingOrNotesSchema,
+ packedRoleCondFormulaValueIsLocalOrRemoteSchema,
+ packedRoleCondFormulaValueNot,
packedRoleCondFormulaValueSchema,
packedRoleCondFormulaValueUserSettingBooleanSchema,
+ packedRoleLiteSchema,
+ packedRolePoliciesSchema,
+ packedRoleSchema,
} from '@/models/json-schema/role.js';
import { packedAdSchema } from '@/models/json-schema/ad.js';
-import { packedReversiGameLiteSchema, packedReversiGameDetailedSchema } from '@/models/json-schema/reversi-game.js';
+import { packedReversiGameDetailedSchema, packedReversiGameLiteSchema } from '@/models/json-schema/reversi-game.js';
import {
- packedMetaLiteSchema,
packedMetaDetailedOnlySchema,
packedMetaDetailedSchema,
+ packedMetaLiteSchema,
} from '@/models/json-schema/meta.js';
+import { packedSystemWebhookSchema } from '@/models/json-schema/system-webhook.js';
+import { packedAbuseReportNotificationRecipientSchema } from '@/models/json-schema/abuse-report-notification-recipient.js';
export const refs = {
UserLite: packedUserLiteSchema,
@@ -111,6 +113,8 @@ export const refs = {
MetaLite: packedMetaLiteSchema,
MetaDetailedOnly: packedMetaDetailedOnlySchema,
MetaDetailed: packedMetaDetailedSchema,
+ SystemWebhook: packedSystemWebhookSchema,
+ AbuseReportNotificationRecipient: packedAbuseReportNotificationRecipientSchema,
};
export type Packed = SchemaType;
diff --git a/packages/backend/src/models/AbuseReportNotificationRecipient.ts b/packages/backend/src/models/AbuseReportNotificationRecipient.ts
new file mode 100644
index 0000000000..fbff880afc
--- /dev/null
+++ b/packages/backend/src/models/AbuseReportNotificationRecipient.ts
@@ -0,0 +1,100 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Column, Entity, Index, JoinColumn, ManyToOne, PrimaryColumn } from 'typeorm';
+import { MiSystemWebhook } from '@/models/SystemWebhook.js';
+import { MiUserProfile } from '@/models/UserProfile.js';
+import { id } from './util/id.js';
+import { MiUser } from './User.js';
+
+/**
+ * 通報受信時に通知を送信する方法.
+ */
+export type RecipientMethod = 'email' | 'webhook';
+
+@Entity('abuse_report_notification_recipient')
+export class MiAbuseReportNotificationRecipient {
+ @PrimaryColumn(id())
+ public id: string;
+
+ /**
+ * 有効かどうか.
+ */
+ @Index()
+ @Column('boolean', {
+ default: true,
+ })
+ public isActive: boolean;
+
+ /**
+ * 更新日時.
+ */
+ @Column('timestamp with time zone', {
+ default: () => 'CURRENT_TIMESTAMP',
+ })
+ public updatedAt: Date;
+
+ /**
+ * 通知設定名.
+ */
+ @Column('varchar', {
+ length: 255,
+ })
+ public name: string;
+
+ /**
+ * 通知方法.
+ */
+ @Index()
+ @Column('varchar', {
+ length: 64,
+ })
+ public method: RecipientMethod;
+
+ /**
+ * 通知先のユーザID.
+ */
+ @Index()
+ @Column({
+ ...id(),
+ nullable: true,
+ })
+ public userId: MiUser['id'] | null;
+
+ /**
+ * 通知先のユーザ.
+ */
+ @ManyToOne(type => MiUser, {
+ onDelete: 'CASCADE',
+ })
+ @JoinColumn({ name: 'userId', referencedColumnName: 'id', foreignKeyConstraintName: 'FK_abuse_report_notification_recipient_userId1' })
+ public user: MiUser | null;
+
+ /**
+ * 通知先のユーザプロフィール.
+ */
+ @ManyToOne(type => MiUserProfile, {})
+ @JoinColumn({ name: 'userId', referencedColumnName: 'userId', foreignKeyConstraintName: 'FK_abuse_report_notification_recipient_userId2' })
+ public userProfile: MiUserProfile | null;
+
+ /**
+ * 通知先のシステムWebhookId.
+ */
+ @Index()
+ @Column({
+ ...id(),
+ nullable: true,
+ })
+ public systemWebhookId: string | null;
+
+ /**
+ * 通知先のシステムWebhook.
+ */
+ @ManyToOne(type => MiSystemWebhook, {
+ onDelete: 'CASCADE',
+ })
+ @JoinColumn()
+ public systemWebhook: MiSystemWebhook | null;
+}
diff --git a/packages/backend/src/models/RepositoryModule.ts b/packages/backend/src/models/RepositoryModule.ts
index d3062d6b36..ea0f88baba 100644
--- a/packages/backend/src/models/RepositoryModule.ts
+++ b/packages/backend/src/models/RepositoryModule.ts
@@ -3,11 +3,83 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
+import type { Provider } from '@nestjs/common';
import { Module } from '@nestjs/common';
import { DI } from '@/di-symbols.js';
-import { MiRepository, MiAbuseUserReport, MiAccessToken, MiAd, MiAnnouncement, MiAnnouncementRead, MiAntenna, MiApp, MiAuthSession, MiAvatarDecoration, MiBlocking, MiChannel, MiChannelFavorite, MiChannelFollowing, MiClip, MiClipFavorite, MiClipNote, MiDriveFile, MiDriveFolder, MiEmoji, MiFlash, MiFlashLike, MiFollowRequest, MiFollowing, MiGalleryLike, MiGalleryPost, MiHashtag, MiInstance, MiMeta, MiModerationLog, MiMuting, MiNote, MiNoteFavorite, MiNoteReaction, MiNoteThreadMuting, MiNoteUnread, MiPage, MiPageLike, MiPasswordResetRequest, MiPoll, MiPollVote, MiPromoNote, MiPromoRead, MiRegistrationTicket, MiRegistryItem, MiRelay, MiRenoteMuting, MiRetentionAggregation, MiRole, MiRoleAssignment, MiSignin, MiSwSubscription, MiUsedUsername, MiUser, MiUserIp, MiUserKeypair, MiUserList, MiUserListFavorite, MiUserListMembership, MiUserMemo, MiUserNotePining, MiUserPending, MiUserProfile, MiUserPublickey, MiUserSecurityKey, MiWebhook, MiBubbleGameRecord, MiReversiGame, miRepository } from './_.js';
+import {
+ MiAbuseReportNotificationRecipient,
+ MiAbuseUserReport,
+ MiAccessToken,
+ MiAd,
+ MiAnnouncement,
+ MiAnnouncementRead,
+ MiAntenna,
+ MiApp,
+ MiAuthSession,
+ MiAvatarDecoration,
+ MiBlocking,
+ MiBubbleGameRecord,
+ MiChannel,
+ MiChannelFavorite,
+ MiChannelFollowing,
+ MiClip,
+ MiClipFavorite,
+ MiClipNote,
+ MiDriveFile,
+ MiDriveFolder,
+ MiEmoji,
+ MiFlash,
+ MiFlashLike,
+ MiFollowing,
+ MiFollowRequest,
+ MiGalleryLike,
+ MiGalleryPost,
+ MiHashtag,
+ MiInstance,
+ MiMeta,
+ MiModerationLog,
+ MiMuting,
+ MiNote,
+ MiNoteFavorite,
+ MiNoteReaction,
+ MiNoteThreadMuting,
+ MiNoteUnread,
+ MiPage,
+ MiPageLike,
+ MiPasswordResetRequest,
+ MiPoll,
+ MiPollVote,
+ MiPromoNote,
+ MiPromoRead,
+ MiRegistrationTicket,
+ MiRegistryItem,
+ MiRelay,
+ MiRenoteMuting,
+ MiRepository,
+ miRepository,
+ MiRetentionAggregation,
+ MiReversiGame,
+ MiRole,
+ MiRoleAssignment,
+ MiSignin,
+ MiSwSubscription,
+ MiSystemWebhook,
+ MiUsedUsername,
+ MiUser,
+ MiUserIp,
+ MiUserKeypair,
+ MiUserList,
+ MiUserListFavorite,
+ MiUserListMembership,
+ MiUserMemo,
+ MiUserNotePining,
+ MiUserPending,
+ MiUserProfile,
+ MiUserPublickey,
+ MiUserSecurityKey,
+ MiWebhook
+} from './_.js';
import type { DataSource } from 'typeorm';
-import type { Provider } from '@nestjs/common';
const $usersRepository: Provider = {
provide: DI.usersRepository,
@@ -225,6 +297,12 @@ const $abuseUserReportsRepository: Provider = {
inject: [DI.db],
};
+const $abuseReportNotificationRecipientRepository: Provider = {
+ provide: DI.abuseReportNotificationRecipientRepository,
+ useFactory: (db: DataSource) => db.getRepository(MiAbuseReportNotificationRecipient),
+ inject: [DI.db],
+};
+
const $registrationTicketsRepository: Provider = {
provide: DI.registrationTicketsRepository,
useFactory: (db: DataSource) => db.getRepository(MiRegistrationTicket).extend(miRepository as MiRepository),
@@ -351,6 +429,12 @@ const $webhooksRepository: Provider = {
inject: [DI.db],
};
+const $systemWebhooksRepository: Provider = {
+ provide: DI.systemWebhooksRepository,
+ useFactory: (db: DataSource) => db.getRepository(MiSystemWebhook),
+ inject: [DI.db],
+};
+
const $adsRepository: Provider = {
provide: DI.adsRepository,
useFactory: (db: DataSource) => db.getRepository(MiAd).extend(miRepository as MiRepository),
@@ -412,8 +496,7 @@ const $reversiGamesRepository: Provider = {
};
@Module({
- imports: [
- ],
+ imports: [],
providers: [
$usersRepository,
$notesRepository,
@@ -451,6 +534,7 @@ const $reversiGamesRepository: Provider = {
$swSubscriptionsRepository,
$hashtagsRepository,
$abuseUserReportsRepository,
+ $abuseReportNotificationRecipientRepository,
$registrationTicketsRepository,
$authSessionsRepository,
$accessTokensRepository,
@@ -472,6 +556,7 @@ const $reversiGamesRepository: Provider = {
$channelFavoritesRepository,
$registryItemsRepository,
$webhooksRepository,
+ $systemWebhooksRepository,
$adsRepository,
$passwordResetRequestsRepository,
$retentionAggregationsRepository,
@@ -520,6 +605,7 @@ const $reversiGamesRepository: Provider = {
$swSubscriptionsRepository,
$hashtagsRepository,
$abuseUserReportsRepository,
+ $abuseReportNotificationRecipientRepository,
$registrationTicketsRepository,
$authSessionsRepository,
$accessTokensRepository,
@@ -541,6 +627,7 @@ const $reversiGamesRepository: Provider = {
$channelFavoritesRepository,
$registryItemsRepository,
$webhooksRepository,
+ $systemWebhooksRepository,
$adsRepository,
$passwordResetRequestsRepository,
$retentionAggregationsRepository,
@@ -553,4 +640,5 @@ const $reversiGamesRepository: Provider = {
$reversiGamesRepository,
],
})
-export class RepositoryModule {}
+export class RepositoryModule {
+}
diff --git a/packages/backend/src/models/SystemWebhook.ts b/packages/backend/src/models/SystemWebhook.ts
new file mode 100644
index 0000000000..86fb323d1d
--- /dev/null
+++ b/packages/backend/src/models/SystemWebhook.ts
@@ -0,0 +1,98 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Column, Entity, Index, PrimaryColumn } from 'typeorm';
+import { Serialized } from '@/types.js';
+import { id } from './util/id.js';
+
+export const systemWebhookEventTypes = [
+ // ユーザからの通報を受けたとき
+ 'abuseReport',
+ // 通報を処理したとき
+ 'abuseReportResolved',
+] as const;
+export type SystemWebhookEventType = typeof systemWebhookEventTypes[number];
+
+@Entity('system_webhook')
+export class MiSystemWebhook {
+ @PrimaryColumn(id())
+ public id: string;
+
+ /**
+ * 有効かどうか.
+ */
+ @Index('IDX_system_webhook_isActive', { synchronize: false })
+ @Column('boolean', {
+ default: true,
+ })
+ public isActive: boolean;
+
+ /**
+ * 更新日時.
+ */
+ @Column('timestamp with time zone', {
+ default: () => 'CURRENT_TIMESTAMP',
+ })
+ public updatedAt: Date;
+
+ /**
+ * 最後に送信された日時.
+ */
+ @Column('timestamp with time zone', {
+ nullable: true,
+ })
+ public latestSentAt: Date | null;
+
+ /**
+ * 最後に送信されたステータスコード
+ */
+ @Column('integer', {
+ nullable: true,
+ })
+ public latestStatus: number | null;
+
+ /**
+ * 通知設定名.
+ */
+ @Column('varchar', {
+ length: 255,
+ })
+ public name: string;
+
+ /**
+ * イベント種別.
+ */
+ @Index('IDX_system_webhook_on', { synchronize: false })
+ @Column('varchar', {
+ length: 128,
+ array: true,
+ default: '{}',
+ })
+ public on: SystemWebhookEventType[];
+
+ /**
+ * Webhook送信先のURL.
+ */
+ @Column('varchar', {
+ length: 1024,
+ })
+ public url: string;
+
+ /**
+ * Webhook検証用の値.
+ */
+ @Column('varchar', {
+ length: 1024,
+ })
+ public secret: string;
+
+ static deserialize(obj: Serialized): MiSystemWebhook {
+ return {
+ ...obj,
+ updatedAt: new Date(obj.updatedAt),
+ latestSentAt: obj.latestSentAt ? new Date(obj.latestSentAt) : null,
+ };
+ }
+}
diff --git a/packages/backend/src/models/_.ts b/packages/backend/src/models/_.ts
index 2e6a41586e..d366ce48d0 100644
--- a/packages/backend/src/models/_.ts
+++ b/packages/backend/src/models/_.ts
@@ -11,6 +11,7 @@ import { RawSqlResultsToEntityTransformer } from 'typeorm/query-builder/transfor
import { ObjectUtils } from 'typeorm/util/ObjectUtils.js';
import { OrmUtils } from 'typeorm/util/OrmUtils.js';
import { MiAbuseUserReport } from '@/models/AbuseUserReport.js';
+import { MiAbuseReportNotificationRecipient } from '@/models/AbuseReportNotificationRecipient.js';
import { MiAccessToken } from '@/models/AccessToken.js';
import { MiAd } from '@/models/Ad.js';
import { MiAnnouncement } from '@/models/Announcement.js';
@@ -68,6 +69,7 @@ import { MiUserPublickey } from '@/models/UserPublickey.js';
import { MiUserSecurityKey } from '@/models/UserSecurityKey.js';
import { MiUserMemo } from '@/models/UserMemo.js';
import { MiWebhook } from '@/models/Webhook.js';
+import { MiSystemWebhook } from '@/models/SystemWebhook.js';
import { MiChannel } from '@/models/Channel.js';
import { MiRetentionAggregation } from '@/models/RetentionAggregation.js';
import { MiRole } from '@/models/Role.js';
@@ -144,6 +146,7 @@ export const miRepository = {
export {
MiAbuseUserReport,
+ MiAbuseReportNotificationRecipient,
MiAccessToken,
MiAd,
MiAnnouncement,
@@ -201,6 +204,7 @@ export {
MiUserPublickey,
MiUserSecurityKey,
MiWebhook,
+ MiSystemWebhook,
MiChannel,
MiRetentionAggregation,
MiRole,
@@ -213,6 +217,7 @@ export {
};
export type AbuseUserReportsRepository = Repository & MiRepository;
+export type AbuseReportNotificationRecipientRepository = Repository & MiRepository;
export type AccessTokensRepository = Repository & MiRepository;
export type AdsRepository = Repository & MiRepository;
export type AnnouncementsRepository = Repository & MiRepository;
@@ -270,6 +275,7 @@ export type UserProfilesRepository = Repository & MiRepository & MiRepository;
export type UserSecurityKeysRepository = Repository & MiRepository;
export type WebhooksRepository = Repository & MiRepository;
+export type SystemWebhooksRepository = Repository & MiRepository;
export type ChannelsRepository = Repository & MiRepository;
export type RetentionAggregationsRepository = Repository & MiRepository;
export type RolesRepository = Repository & MiRepository;
diff --git a/packages/backend/src/models/json-schema/abuse-report-notification-recipient.ts b/packages/backend/src/models/json-schema/abuse-report-notification-recipient.ts
new file mode 100644
index 0000000000..6215f0f5a2
--- /dev/null
+++ b/packages/backend/src/models/json-schema/abuse-report-notification-recipient.ts
@@ -0,0 +1,50 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+export const packedAbuseReportNotificationRecipientSchema = {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ optional: false, nullable: false,
+ },
+ isActive: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ updatedAt: {
+ type: 'string',
+ format: 'date-time',
+ optional: false, nullable: false,
+ },
+ name: {
+ type: 'string',
+ optional: false, nullable: false,
+ },
+ method: {
+ type: 'string',
+ optional: false, nullable: false,
+ enum: ['email', 'webhook'],
+ },
+ userId: {
+ type: 'string',
+ optional: true, nullable: false,
+ },
+ user: {
+ type: 'object',
+ optional: true, nullable: false,
+ ref: 'UserLite',
+ },
+ systemWebhookId: {
+ type: 'string',
+ optional: true, nullable: false,
+ },
+ systemWebhook: {
+ type: 'object',
+ optional: true, nullable: false,
+ ref: 'SystemWebhook',
+ },
+ },
+} as const;
diff --git a/packages/backend/src/models/json-schema/system-webhook.ts b/packages/backend/src/models/json-schema/system-webhook.ts
new file mode 100644
index 0000000000..d83065a743
--- /dev/null
+++ b/packages/backend/src/models/json-schema/system-webhook.ts
@@ -0,0 +1,54 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { systemWebhookEventTypes } from '@/models/SystemWebhook.js';
+
+export const packedSystemWebhookSchema = {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ optional: false, nullable: false,
+ },
+ isActive: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ updatedAt: {
+ type: 'string',
+ format: 'date-time',
+ optional: false, nullable: false,
+ },
+ latestSentAt: {
+ type: 'string',
+ format: 'date-time',
+ optional: false, nullable: true,
+ },
+ latestStatus: {
+ type: 'number',
+ optional: false, nullable: true,
+ },
+ name: {
+ type: 'string',
+ optional: false, nullable: false,
+ },
+ on: {
+ type: 'array',
+ items: {
+ type: 'string',
+ optional: false, nullable: false,
+ enum: systemWebhookEventTypes,
+ },
+ },
+ url: {
+ type: 'string',
+ optional: false, nullable: false,
+ },
+ secret: {
+ type: 'string',
+ optional: false, nullable: false,
+ },
+ },
+} as const;
diff --git a/packages/backend/src/postgres.ts b/packages/backend/src/postgres.ts
index aa2aa5e373..251a03c303 100644
--- a/packages/backend/src/postgres.ts
+++ b/packages/backend/src/postgres.ts
@@ -5,13 +5,12 @@
// https://github.com/typeorm/typeorm/issues/2400
import pg from 'pg';
-pg.types.setTypeParser(20, Number);
-
import { DataSource, Logger } from 'typeorm';
import * as highlight from 'cli-highlight';
import { entities as charts } from '@/core/chart/entities.js';
import { MiAbuseUserReport } from '@/models/AbuseUserReport.js';
+import { MiAbuseReportNotificationRecipient } from '@/models/AbuseReportNotificationRecipient.js';
import { MiAccessToken } from '@/models/AccessToken.js';
import { MiAd } from '@/models/Ad.js';
import { MiAnnouncement } from '@/models/Announcement.js';
@@ -69,6 +68,7 @@ import { MiUserProfile } from '@/models/UserProfile.js';
import { MiUserPublickey } from '@/models/UserPublickey.js';
import { MiUserSecurityKey } from '@/models/UserSecurityKey.js';
import { MiWebhook } from '@/models/Webhook.js';
+import { MiSystemWebhook } from '@/models/SystemWebhook.js';
import { MiChannel } from '@/models/Channel.js';
import { MiRetentionAggregation } from '@/models/RetentionAggregation.js';
import { MiRole } from '@/models/Role.js';
@@ -83,6 +83,8 @@ import { Config } from '@/config.js';
import MisskeyLogger from '@/logger.js';
import { bindThis } from '@/decorators.js';
+pg.types.setTypeParser(20, Number);
+
export const dbLogger = new MisskeyLogger('db');
const sqlLogger = dbLogger.createSubLogger('sql', 'gray');
@@ -167,6 +169,7 @@ export const entities = [
MiHashtag,
MiSwSubscription,
MiAbuseUserReport,
+ MiAbuseReportNotificationRecipient,
MiRegistrationTicket,
MiSignin,
MiModerationLog,
@@ -185,6 +188,7 @@ export const entities = [
MiPasswordResetRequest,
MiUserPending,
MiWebhook,
+ MiSystemWebhook,
MiUserIp,
MiRetentionAggregation,
MiRole,
diff --git a/packages/backend/src/queue/QueueProcessorModule.ts b/packages/backend/src/queue/QueueProcessorModule.ts
index 8086158997..a1fd38fcc5 100644
--- a/packages/backend/src/queue/QueueProcessorModule.ts
+++ b/packages/backend/src/queue/QueueProcessorModule.ts
@@ -11,7 +11,8 @@ import { QueueProcessorService } from './QueueProcessorService.js';
import { DeliverProcessorService } from './processors/DeliverProcessorService.js';
import { EndedPollNotificationProcessorService } from './processors/EndedPollNotificationProcessorService.js';
import { InboxProcessorService } from './processors/InboxProcessorService.js';
-import { WebhookDeliverProcessorService } from './processors/WebhookDeliverProcessorService.js';
+import { UserWebhookDeliverProcessorService } from './processors/UserWebhookDeliverProcessorService.js';
+import { SystemWebhookDeliverProcessorService } from './processors/SystemWebhookDeliverProcessorService.js';
import { CheckExpiredMutingsProcessorService } from './processors/CheckExpiredMutingsProcessorService.js';
import { CleanChartsProcessorService } from './processors/CleanChartsProcessorService.js';
import { CleanProcessorService } from './processors/CleanProcessorService.js';
@@ -71,7 +72,8 @@ import { RelationshipProcessorService } from './processors/RelationshipProcessor
DeleteFileProcessorService,
CleanRemoteFilesProcessorService,
RelationshipProcessorService,
- WebhookDeliverProcessorService,
+ UserWebhookDeliverProcessorService,
+ SystemWebhookDeliverProcessorService,
EndedPollNotificationProcessorService,
DeliverProcessorService,
InboxProcessorService,
diff --git a/packages/backend/src/queue/QueueProcessorService.ts b/packages/backend/src/queue/QueueProcessorService.ts
index 7bfe1f4caa..7bd74f3210 100644
--- a/packages/backend/src/queue/QueueProcessorService.ts
+++ b/packages/backend/src/queue/QueueProcessorService.ts
@@ -10,7 +10,8 @@ import type { Config } from '@/config.js';
import { DI } from '@/di-symbols.js';
import type Logger from '@/logger.js';
import { bindThis } from '@/decorators.js';
-import { WebhookDeliverProcessorService } from './processors/WebhookDeliverProcessorService.js';
+import { UserWebhookDeliverProcessorService } from './processors/UserWebhookDeliverProcessorService.js';
+import { SystemWebhookDeliverProcessorService } from './processors/SystemWebhookDeliverProcessorService.js';
import { EndedPollNotificationProcessorService } from './processors/EndedPollNotificationProcessorService.js';
import { DeliverProcessorService } from './processors/DeliverProcessorService.js';
import { InboxProcessorService } from './processors/InboxProcessorService.js';
@@ -76,7 +77,8 @@ export class QueueProcessorService implements OnApplicationShutdown {
private dbQueueWorker: Bull.Worker;
private deliverQueueWorker: Bull.Worker;
private inboxQueueWorker: Bull.Worker;
- private webhookDeliverQueueWorker: Bull.Worker;
+ private userWebhookDeliverQueueWorker: Bull.Worker;
+ private systemWebhookDeliverQueueWorker: Bull.Worker;
private relationshipQueueWorker: Bull.Worker;
private objectStorageQueueWorker: Bull.Worker;
private endedPollNotificationQueueWorker: Bull.Worker;
@@ -86,7 +88,8 @@ export class QueueProcessorService implements OnApplicationShutdown {
private config: Config,
private queueLoggerService: QueueLoggerService,
- private webhookDeliverProcessorService: WebhookDeliverProcessorService,
+ private userWebhookDeliverProcessorService: UserWebhookDeliverProcessorService,
+ private systemWebhookDeliverProcessorService: SystemWebhookDeliverProcessorService,
private endedPollNotificationProcessorService: EndedPollNotificationProcessorService,
private deliverProcessorService: DeliverProcessorService,
private inboxProcessorService: InboxProcessorService,
@@ -160,13 +163,13 @@ export class QueueProcessorService implements OnApplicationShutdown {
autorun: false,
});
- const systemLogger = this.logger.createSubLogger('system');
+ const logger = this.logger.createSubLogger('system');
this.systemQueueWorker
- .on('active', (job) => systemLogger.debug(`active id=${job.id}`))
- .on('completed', (job, result) => systemLogger.debug(`completed(${result}) id=${job.id}`))
+ .on('active', (job) => logger.debug(`active id=${job.id}`))
+ .on('completed', (job, result) => logger.debug(`completed(${result}) id=${job.id}`))
.on('failed', (job, err: Error) => {
- systemLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
+ logger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
if (config.sentryForBackend) {
Sentry.captureMessage(`Queue: System: ${job?.name ?? '?'}: ${err.message}`, {
level: 'error',
@@ -174,8 +177,8 @@ export class QueueProcessorService implements OnApplicationShutdown {
});
}
})
- .on('error', (err: Error) => systemLogger.error(`error ${err.stack}`, { e: renderError(err) }))
- .on('stalled', (jobId) => systemLogger.warn(`stalled id=${jobId}`));
+ .on('error', (err: Error) => logger.error(`error ${err.stack}`, { e: renderError(err) }))
+ .on('stalled', (jobId) => logger.warn(`stalled id=${jobId}`));
}
//#endregion
@@ -217,13 +220,13 @@ export class QueueProcessorService implements OnApplicationShutdown {
autorun: false,
});
- const dbLogger = this.logger.createSubLogger('db');
+ const logger = this.logger.createSubLogger('db');
this.dbQueueWorker
- .on('active', (job) => dbLogger.debug(`active id=${job.id}`))
- .on('completed', (job, result) => dbLogger.debug(`completed(${result}) id=${job.id}`))
+ .on('active', (job) => logger.debug(`active id=${job.id}`))
+ .on('completed', (job, result) => logger.debug(`completed(${result}) id=${job.id}`))
.on('failed', (job, err) => {
- dbLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
+ logger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
if (config.sentryForBackend) {
Sentry.captureMessage(`Queue: DB: ${job?.name ?? '?'}: ${err.message}`, {
level: 'error',
@@ -231,8 +234,8 @@ export class QueueProcessorService implements OnApplicationShutdown {
});
}
})
- .on('error', (err: Error) => dbLogger.error(`error ${err.stack}`, { e: renderError(err) }))
- .on('stalled', (jobId) => dbLogger.warn(`stalled id=${jobId}`));
+ .on('error', (err: Error) => logger.error(`error ${err.stack}`, { e: renderError(err) }))
+ .on('stalled', (jobId) => logger.warn(`stalled id=${jobId}`));
}
//#endregion
@@ -257,13 +260,13 @@ export class QueueProcessorService implements OnApplicationShutdown {
},
});
- const deliverLogger = this.logger.createSubLogger('deliver');
+ const logger = this.logger.createSubLogger('deliver');
this.deliverQueueWorker
- .on('active', (job) => deliverLogger.debug(`active ${getJobInfo(job, true)} to=${job.data.to}`))
- .on('completed', (job, result) => deliverLogger.debug(`completed(${result}) ${getJobInfo(job, true)} to=${job.data.to}`))
+ .on('active', (job) => logger.debug(`active ${getJobInfo(job, true)} to=${job.data.to}`))
+ .on('completed', (job, result) => logger.debug(`completed(${result}) ${getJobInfo(job, true)} to=${job.data.to}`))
.on('failed', (job, err) => {
- deliverLogger.error(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`);
+ logger.error(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`);
if (config.sentryForBackend) {
Sentry.captureMessage(`Queue: Deliver: ${err.message}`, {
level: 'error',
@@ -271,8 +274,8 @@ export class QueueProcessorService implements OnApplicationShutdown {
});
}
})
- .on('error', (err: Error) => deliverLogger.error(`error ${err.stack}`, { e: renderError(err) }))
- .on('stalled', (jobId) => deliverLogger.warn(`stalled id=${jobId}`));
+ .on('error', (err: Error) => logger.error(`error ${err.stack}`, { e: renderError(err) }))
+ .on('stalled', (jobId) => logger.warn(`stalled id=${jobId}`));
}
//#endregion
@@ -297,13 +300,13 @@ export class QueueProcessorService implements OnApplicationShutdown {
},
});
- const inboxLogger = this.logger.createSubLogger('inbox');
+ const logger = this.logger.createSubLogger('inbox');
this.inboxQueueWorker
- .on('active', (job) => inboxLogger.debug(`active ${getJobInfo(job, true)}`))
- .on('completed', (job, result) => inboxLogger.debug(`completed(${result}) ${getJobInfo(job, true)}`))
+ .on('active', (job) => logger.debug(`active ${getJobInfo(job, true)}`))
+ .on('completed', (job, result) => logger.debug(`completed(${result}) ${getJobInfo(job, true)}`))
.on('failed', (job, err) => {
- inboxLogger.error(`failed(${err.stack}) ${getJobInfo(job)} activity=${job ? (job.data.activity ? job.data.activity.id : 'none') : '-'}`, { job, e: renderError(err) });
+ logger.error(`failed(${err.stack}) ${getJobInfo(job)} activity=${job ? (job.data.activity ? job.data.activity.id : 'none') : '-'}`, { job, e: renderError(err) });
if (config.sentryForBackend) {
Sentry.captureMessage(`Queue: Inbox: ${err.message}`, {
level: 'error',
@@ -311,21 +314,21 @@ export class QueueProcessorService implements OnApplicationShutdown {
});
}
})
- .on('error', (err: Error) => inboxLogger.error(`error ${err.stack}`, { e: renderError(err) }))
- .on('stalled', (jobId) => inboxLogger.warn(`stalled id=${jobId}`));
+ .on('error', (err: Error) => logger.error(`error ${err.stack}`, { e: renderError(err) }))
+ .on('stalled', (jobId) => logger.warn(`stalled id=${jobId}`));
}
//#endregion
- //#region webhook deliver
+ //#region user-webhook deliver
{
- this.webhookDeliverQueueWorker = new Bull.Worker(QUEUE.WEBHOOK_DELIVER, (job) => {
+ this.userWebhookDeliverQueueWorker = new Bull.Worker(QUEUE.USER_WEBHOOK_DELIVER, (job) => {
if (this.config.sentryForBackend) {
- return Sentry.startSpan({ name: 'Queue: WebhookDeliver' }, () => this.webhookDeliverProcessorService.process(job));
+ return Sentry.startSpan({ name: 'Queue: UserWebhookDeliver' }, () => this.userWebhookDeliverProcessorService.process(job));
} else {
- return this.webhookDeliverProcessorService.process(job);
+ return this.userWebhookDeliverProcessorService.process(job);
}
}, {
- ...baseQueueOptions(this.config, QUEUE.WEBHOOK_DELIVER),
+ ...baseQueueOptions(this.config, QUEUE.USER_WEBHOOK_DELIVER),
autorun: false,
concurrency: 64,
limiter: {
@@ -337,22 +340,62 @@ export class QueueProcessorService implements OnApplicationShutdown {
},
});
- const webhookLogger = this.logger.createSubLogger('webhook');
+ const logger = this.logger.createSubLogger('user-webhook');
- this.webhookDeliverQueueWorker
- .on('active', (job) => webhookLogger.debug(`active ${getJobInfo(job, true)} to=${job.data.to}`))
- .on('completed', (job, result) => webhookLogger.debug(`completed(${result}) ${getJobInfo(job, true)} to=${job.data.to}`))
+ this.userWebhookDeliverQueueWorker
+ .on('active', (job) => logger.debug(`active ${getJobInfo(job, true)} to=${job.data.to}`))
+ .on('completed', (job, result) => logger.debug(`completed(${result}) ${getJobInfo(job, true)} to=${job.data.to}`))
.on('failed', (job, err) => {
- webhookLogger.error(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`);
+ logger.error(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`);
if (config.sentryForBackend) {
- Sentry.captureMessage(`Queue: WebhookDeliver: ${err.message}`, {
+ Sentry.captureMessage(`Queue: UserWebhookDeliver: ${err.message}`, {
level: 'error',
extra: { job, err },
});
}
})
- .on('error', (err: Error) => webhookLogger.error(`error ${err.stack}`, { e: renderError(err) }))
- .on('stalled', (jobId) => webhookLogger.warn(`stalled id=${jobId}`));
+ .on('error', (err: Error) => logger.error(`error ${err.stack}`, { e: renderError(err) }))
+ .on('stalled', (jobId) => logger.warn(`stalled id=${jobId}`));
+ }
+ //#endregion
+
+ //#region system-webhook deliver
+ {
+ this.systemWebhookDeliverQueueWorker = new Bull.Worker(QUEUE.SYSTEM_WEBHOOK_DELIVER, (job) => {
+ if (this.config.sentryForBackend) {
+ return Sentry.startSpan({ name: 'Queue: SystemWebhookDeliver' }, () => this.systemWebhookDeliverProcessorService.process(job));
+ } else {
+ return this.systemWebhookDeliverProcessorService.process(job);
+ }
+ }, {
+ ...baseQueueOptions(this.config, QUEUE.SYSTEM_WEBHOOK_DELIVER),
+ autorun: false,
+ concurrency: 16,
+ limiter: {
+ max: 16,
+ duration: 1000,
+ },
+ settings: {
+ backoffStrategy: httpRelatedBackoff,
+ },
+ });
+
+ const logger = this.logger.createSubLogger('system-webhook');
+
+ this.systemWebhookDeliverQueueWorker
+ .on('active', (job) => logger.debug(`active ${getJobInfo(job, true)} to=${job.data.to}`))
+ .on('completed', (job, result) => logger.debug(`completed(${result}) ${getJobInfo(job, true)} to=${job.data.to}`))
+ .on('failed', (job, err) => {
+ logger.error(`failed(${err.stack}) ${getJobInfo(job)} to=${job ? job.data.to : '-'}`);
+ if (config.sentryForBackend) {
+ Sentry.captureMessage(`Queue: SystemWebhookDeliver: ${err.message}`, {
+ level: 'error',
+ extra: { job, err },
+ });
+ }
+ })
+ .on('error', (err: Error) => logger.error(`error ${err.stack}`, { e: renderError(err) }))
+ .on('stalled', (jobId) => logger.warn(`stalled id=${jobId}`));
}
//#endregion
@@ -384,13 +427,13 @@ export class QueueProcessorService implements OnApplicationShutdown {
},
});
- const relationshipLogger = this.logger.createSubLogger('relationship');
+ const logger = this.logger.createSubLogger('relationship');
this.relationshipQueueWorker
- .on('active', (job) => relationshipLogger.debug(`active id=${job.id}`))
- .on('completed', (job, result) => relationshipLogger.debug(`completed(${result}) id=${job.id}`))
+ .on('active', (job) => logger.debug(`active id=${job.id}`))
+ .on('completed', (job, result) => logger.debug(`completed(${result}) id=${job.id}`))
.on('failed', (job, err) => {
- relationshipLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
+ logger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
if (config.sentryForBackend) {
Sentry.captureMessage(`Queue: Relationship: ${job?.name ?? '?'}: ${err.message}`, {
level: 'error',
@@ -398,8 +441,8 @@ export class QueueProcessorService implements OnApplicationShutdown {
});
}
})
- .on('error', (err: Error) => relationshipLogger.error(`error ${err.stack}`, { e: renderError(err) }))
- .on('stalled', (jobId) => relationshipLogger.warn(`stalled id=${jobId}`));
+ .on('error', (err: Error) => logger.error(`error ${err.stack}`, { e: renderError(err) }))
+ .on('stalled', (jobId) => logger.warn(`stalled id=${jobId}`));
}
//#endregion
@@ -425,13 +468,13 @@ export class QueueProcessorService implements OnApplicationShutdown {
concurrency: 16,
});
- const objectStorageLogger = this.logger.createSubLogger('objectStorage');
+ const logger = this.logger.createSubLogger('objectStorage');
this.objectStorageQueueWorker
- .on('active', (job) => objectStorageLogger.debug(`active id=${job.id}`))
- .on('completed', (job, result) => objectStorageLogger.debug(`completed(${result}) id=${job.id}`))
+ .on('active', (job) => logger.debug(`active id=${job.id}`))
+ .on('completed', (job, result) => logger.debug(`completed(${result}) id=${job.id}`))
.on('failed', (job, err) => {
- objectStorageLogger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
+ logger.error(`failed(${err.stack}) id=${job ? job.id : '-'}`, { job, e: renderError(err) });
if (config.sentryForBackend) {
Sentry.captureMessage(`Queue: ObjectStorage: ${job?.name ?? '?'}: ${err.message}`, {
level: 'error',
@@ -439,8 +482,8 @@ export class QueueProcessorService implements OnApplicationShutdown {
});
}
})
- .on('error', (err: Error) => objectStorageLogger.error(`error ${err.stack}`, { e: renderError(err) }))
- .on('stalled', (jobId) => objectStorageLogger.warn(`stalled id=${jobId}`));
+ .on('error', (err: Error) => logger.error(`error ${err.stack}`, { e: renderError(err) }))
+ .on('stalled', (jobId) => logger.warn(`stalled id=${jobId}`));
}
//#endregion
@@ -467,7 +510,8 @@ export class QueueProcessorService implements OnApplicationShutdown {
this.dbQueueWorker.run(),
this.deliverQueueWorker.run(),
this.inboxQueueWorker.run(),
- this.webhookDeliverQueueWorker.run(),
+ this.userWebhookDeliverQueueWorker.run(),
+ this.systemWebhookDeliverQueueWorker.run(),
this.relationshipQueueWorker.run(),
this.objectStorageQueueWorker.run(),
this.endedPollNotificationQueueWorker.run(),
@@ -481,7 +525,8 @@ export class QueueProcessorService implements OnApplicationShutdown {
this.dbQueueWorker.close(),
this.deliverQueueWorker.close(),
this.inboxQueueWorker.close(),
- this.webhookDeliverQueueWorker.close(),
+ this.userWebhookDeliverQueueWorker.close(),
+ this.systemWebhookDeliverQueueWorker.close(),
this.relationshipQueueWorker.close(),
this.objectStorageQueueWorker.close(),
this.endedPollNotificationQueueWorker.close(),
diff --git a/packages/backend/src/queue/const.ts b/packages/backend/src/queue/const.ts
index 132e916612..67f689b618 100644
--- a/packages/backend/src/queue/const.ts
+++ b/packages/backend/src/queue/const.ts
@@ -14,7 +14,8 @@ export const QUEUE = {
DB: 'db',
RELATIONSHIP: 'relationship',
OBJECT_STORAGE: 'objectStorage',
- WEBHOOK_DELIVER: 'webhookDeliver',
+ USER_WEBHOOK_DELIVER: 'userWebhookDeliver',
+ SYSTEM_WEBHOOK_DELIVER: 'systemWebhookDeliver',
};
export function baseQueueOptions(config: Config, queueName: typeof QUEUE[keyof typeof QUEUE]): Bull.QueueOptions {
diff --git a/packages/backend/src/queue/processors/SystemWebhookDeliverProcessorService.ts b/packages/backend/src/queue/processors/SystemWebhookDeliverProcessorService.ts
new file mode 100644
index 0000000000..f6bef52684
--- /dev/null
+++ b/packages/backend/src/queue/processors/SystemWebhookDeliverProcessorService.ts
@@ -0,0 +1,87 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Inject, Injectable } from '@nestjs/common';
+import * as Bull from 'bullmq';
+import { DI } from '@/di-symbols.js';
+import type { SystemWebhooksRepository } from '@/models/_.js';
+import type { Config } from '@/config.js';
+import type Logger from '@/logger.js';
+import { HttpRequestService } from '@/core/HttpRequestService.js';
+import { StatusError } from '@/misc/status-error.js';
+import { bindThis } from '@/decorators.js';
+import { QueueLoggerService } from '../QueueLoggerService.js';
+import { SystemWebhookDeliverJobData } from '../types.js';
+
+@Injectable()
+export class SystemWebhookDeliverProcessorService {
+ private logger: Logger;
+
+ constructor(
+ @Inject(DI.config)
+ private config: Config,
+
+ @Inject(DI.systemWebhooksRepository)
+ private systemWebhooksRepository: SystemWebhooksRepository,
+
+ private httpRequestService: HttpRequestService,
+ private queueLoggerService: QueueLoggerService,
+ ) {
+ this.logger = this.queueLoggerService.logger.createSubLogger('webhook');
+ }
+
+ @bindThis
+ public async process(job: Bull.Job): Promise {
+ try {
+ this.logger.debug(`delivering ${job.data.webhookId}`);
+
+ const res = await this.httpRequestService.send(job.data.to, {
+ method: 'POST',
+ headers: {
+ 'User-Agent': 'Misskey-Hooks',
+ 'X-Misskey-Host': this.config.host,
+ 'X-Misskey-Hook-Id': job.data.webhookId,
+ 'X-Misskey-Hook-Secret': job.data.secret,
+ 'Content-Type': 'application/json',
+ },
+ body: JSON.stringify({
+ server: this.config.url,
+ hookId: job.data.webhookId,
+ eventId: job.data.eventId,
+ createdAt: job.data.createdAt,
+ type: job.data.type,
+ body: job.data.content,
+ }),
+ });
+
+ this.systemWebhooksRepository.update({ id: job.data.webhookId }, {
+ latestSentAt: new Date(),
+ latestStatus: res.status,
+ });
+
+ return 'Success';
+ } catch (res) {
+ this.logger.error(res as Error);
+
+ this.systemWebhooksRepository.update({ id: job.data.webhookId }, {
+ latestSentAt: new Date(),
+ latestStatus: res instanceof StatusError ? res.statusCode : 1,
+ });
+
+ if (res instanceof StatusError) {
+ // 4xx
+ if (!res.isRetryable) {
+ throw new Bull.UnrecoverableError(`${res.statusCode} ${res.statusMessage}`);
+ }
+
+ // 5xx etc.
+ throw new Error(`${res.statusCode} ${res.statusMessage}`);
+ } else {
+ // DNS error, socket error, timeout ...
+ throw res;
+ }
+ }
+ }
+}
diff --git a/packages/backend/src/queue/processors/WebhookDeliverProcessorService.ts b/packages/backend/src/queue/processors/UserWebhookDeliverProcessorService.ts
similarity index 92%
rename from packages/backend/src/queue/processors/WebhookDeliverProcessorService.ts
rename to packages/backend/src/queue/processors/UserWebhookDeliverProcessorService.ts
index 8c260c0137..9ec630ef70 100644
--- a/packages/backend/src/queue/processors/WebhookDeliverProcessorService.ts
+++ b/packages/backend/src/queue/processors/UserWebhookDeliverProcessorService.ts
@@ -13,10 +13,10 @@ import { HttpRequestService } from '@/core/HttpRequestService.js';
import { StatusError } from '@/misc/status-error.js';
import { bindThis } from '@/decorators.js';
import { QueueLoggerService } from '../QueueLoggerService.js';
-import type { WebhookDeliverJobData } from '../types.js';
+import { UserWebhookDeliverJobData } from '../types.js';
@Injectable()
-export class WebhookDeliverProcessorService {
+export class UserWebhookDeliverProcessorService {
private logger: Logger;
constructor(
@@ -33,7 +33,7 @@ export class WebhookDeliverProcessorService {
}
@bindThis
- public async process(job: Bull.Job): Promise {
+ public async process(job: Bull.Job): Promise {
try {
this.logger.debug(`delivering ${job.data.webhookId}`);
diff --git a/packages/backend/src/queue/types.ts b/packages/backend/src/queue/types.ts
index ce57ba745e..a4077a0547 100644
--- a/packages/backend/src/queue/types.ts
+++ b/packages/backend/src/queue/types.ts
@@ -106,7 +106,17 @@ export type EndedPollNotificationJobData = {
noteId: MiNote['id'];
};
-export type WebhookDeliverJobData = {
+export type SystemWebhookDeliverJobData = {
+ type: string;
+ content: unknown;
+ webhookId: MiWebhook['id'];
+ to: string;
+ secret: string;
+ createdAt: number;
+ eventId: string;
+};
+
+export type UserWebhookDeliverJobData = {
type: string;
content: unknown;
webhookId: MiWebhook['id'];
diff --git a/packages/backend/src/server/api/EndpointsModule.ts b/packages/backend/src/server/api/EndpointsModule.ts
index c645f4bcc6..41576bedaa 100644
--- a/packages/backend/src/server/api/EndpointsModule.ts
+++ b/packages/backend/src/server/api/EndpointsModule.ts
@@ -6,8 +6,13 @@
import { Module } from '@nestjs/common';
import { CoreModule } from '@/core/CoreModule.js';
-import * as ep___admin_meta from './endpoints/admin/meta.js';
+import * as ep___admin_abuseReport_notificationRecipient_list from '@/server/api/endpoints/admin/abuse-report/notification-recipient/list.js';
+import * as ep___admin_abuseReport_notificationRecipient_show from '@/server/api/endpoints/admin/abuse-report/notification-recipient/show.js';
+import * as ep___admin_abuseReport_notificationRecipient_create from '@/server/api/endpoints/admin/abuse-report/notification-recipient/create.js';
+import * as ep___admin_abuseReport_notificationRecipient_update from '@/server/api/endpoints/admin/abuse-report/notification-recipient/update.js';
+import * as ep___admin_abuseReport_notificationRecipient_delete from '@/server/api/endpoints/admin/abuse-report/notification-recipient/delete.js';
import * as ep___admin_abuseUserReports from './endpoints/admin/abuse-user-reports.js';
+import * as ep___admin_meta from './endpoints/admin/meta.js';
import * as ep___admin_accounts_create from './endpoints/admin/accounts/create.js';
import * as ep___admin_accounts_delete from './endpoints/admin/accounts/delete.js';
import * as ep___admin_accounts_findByEmail from './endpoints/admin/accounts/find-by-email.js';
@@ -82,6 +87,11 @@ import * as ep___admin_roles_assign from './endpoints/admin/roles/assign.js';
import * as ep___admin_roles_unassign from './endpoints/admin/roles/unassign.js';
import * as ep___admin_roles_updateDefaultPolicies from './endpoints/admin/roles/update-default-policies.js';
import * as ep___admin_roles_users from './endpoints/admin/roles/users.js';
+import * as ep___admin_systemWebhook_create from './endpoints/admin/system-webhook/create.js';
+import * as ep___admin_systemWebhook_delete from './endpoints/admin/system-webhook/delete.js';
+import * as ep___admin_systemWebhook_list from './endpoints/admin/system-webhook/list.js';
+import * as ep___admin_systemWebhook_show from './endpoints/admin/system-webhook/show.js';
+import * as ep___admin_systemWebhook_update from './endpoints/admin/system-webhook/update.js';
import * as ep___announcements from './endpoints/announcements.js';
import * as ep___announcements_show from './endpoints/announcements/show.js';
import * as ep___antennas_create from './endpoints/antennas/create.js';
@@ -381,6 +391,11 @@ import type { Provider } from '@nestjs/common';
const $admin_meta: Provider = { provide: 'ep:admin/meta', useClass: ep___admin_meta.default };
const $admin_abuseUserReports: Provider = { provide: 'ep:admin/abuse-user-reports', useClass: ep___admin_abuseUserReports.default };
+const $admin_abuseReport_notificationRecipient_list: Provider = { provide: 'ep:admin/abuse-report/notification-recipient/list', useClass: ep___admin_abuseReport_notificationRecipient_list.default };
+const $admin_abuseReport_notificationRecipient_show: Provider = { provide: 'ep:admin/abuse-report/notification-recipient/show', useClass: ep___admin_abuseReport_notificationRecipient_show.default };
+const $admin_abuseReport_notificationRecipient_create: Provider = { provide: 'ep:admin/abuse-report/notification-recipient/create', useClass: ep___admin_abuseReport_notificationRecipient_create.default };
+const $admin_abuseReport_notificationRecipient_update: Provider = { provide: 'ep:admin/abuse-report/notification-recipient/update', useClass: ep___admin_abuseReport_notificationRecipient_update.default };
+const $admin_abuseReport_notificationRecipient_delete: Provider = { provide: 'ep:admin/abuse-report/notification-recipient/delete', useClass: ep___admin_abuseReport_notificationRecipient_delete.default };
const $admin_accounts_create: Provider = { provide: 'ep:admin/accounts/create', useClass: ep___admin_accounts_create.default };
const $admin_accounts_delete: Provider = { provide: 'ep:admin/accounts/delete', useClass: ep___admin_accounts_delete.default };
const $admin_accounts_findByEmail: Provider = { provide: 'ep:admin/accounts/find-by-email', useClass: ep___admin_accounts_findByEmail.default };
@@ -455,6 +470,11 @@ const $admin_roles_assign: Provider = { provide: 'ep:admin/roles/assign', useCla
const $admin_roles_unassign: Provider = { provide: 'ep:admin/roles/unassign', useClass: ep___admin_roles_unassign.default };
const $admin_roles_updateDefaultPolicies: Provider = { provide: 'ep:admin/roles/update-default-policies', useClass: ep___admin_roles_updateDefaultPolicies.default };
const $admin_roles_users: Provider = { provide: 'ep:admin/roles/users', useClass: ep___admin_roles_users.default };
+const $admin_systemWebhook_create: Provider = { provide: 'ep:admin/system-webhook/create', useClass: ep___admin_systemWebhook_create.default };
+const $admin_systemWebhook_delete: Provider = { provide: 'ep:admin/system-webhook/delete', useClass: ep___admin_systemWebhook_delete.default };
+const $admin_systemWebhook_list: Provider = { provide: 'ep:admin/system-webhook/list', useClass: ep___admin_systemWebhook_list.default };
+const $admin_systemWebhook_show: Provider = { provide: 'ep:admin/system-webhook/show', useClass: ep___admin_systemWebhook_show.default };
+const $admin_systemWebhook_update: Provider = { provide: 'ep:admin/system-webhook/update', useClass: ep___admin_systemWebhook_update.default };
const $announcements: Provider = { provide: 'ep:announcements', useClass: ep___announcements.default };
const $announcements_show: Provider = { provide: 'ep:announcements/show', useClass: ep___announcements_show.default };
const $antennas_create: Provider = { provide: 'ep:antennas/create', useClass: ep___antennas_create.default };
@@ -758,6 +778,11 @@ const $reversi_verify: Provider = { provide: 'ep:reversi/verify', useClass: ep__
ApiLoggerService,
$admin_meta,
$admin_abuseUserReports,
+ $admin_abuseReport_notificationRecipient_list,
+ $admin_abuseReport_notificationRecipient_show,
+ $admin_abuseReport_notificationRecipient_create,
+ $admin_abuseReport_notificationRecipient_update,
+ $admin_abuseReport_notificationRecipient_delete,
$admin_accounts_create,
$admin_accounts_delete,
$admin_accounts_findByEmail,
@@ -832,6 +857,11 @@ const $reversi_verify: Provider = { provide: 'ep:reversi/verify', useClass: ep__
$admin_roles_unassign,
$admin_roles_updateDefaultPolicies,
$admin_roles_users,
+ $admin_systemWebhook_create,
+ $admin_systemWebhook_delete,
+ $admin_systemWebhook_list,
+ $admin_systemWebhook_show,
+ $admin_systemWebhook_update,
$announcements,
$announcements_show,
$antennas_create,
@@ -1129,6 +1159,11 @@ const $reversi_verify: Provider = { provide: 'ep:reversi/verify', useClass: ep__
exports: [
$admin_meta,
$admin_abuseUserReports,
+ $admin_abuseReport_notificationRecipient_list,
+ $admin_abuseReport_notificationRecipient_show,
+ $admin_abuseReport_notificationRecipient_create,
+ $admin_abuseReport_notificationRecipient_update,
+ $admin_abuseReport_notificationRecipient_delete,
$admin_accounts_create,
$admin_accounts_delete,
$admin_accounts_findByEmail,
@@ -1203,6 +1238,11 @@ const $reversi_verify: Provider = { provide: 'ep:reversi/verify', useClass: ep__
$admin_roles_unassign,
$admin_roles_updateDefaultPolicies,
$admin_roles_users,
+ $admin_systemWebhook_create,
+ $admin_systemWebhook_delete,
+ $admin_systemWebhook_list,
+ $admin_systemWebhook_show,
+ $admin_systemWebhook_update,
$announcements,
$announcements_show,
$antennas_create,
diff --git a/packages/backend/src/server/api/endpoints.ts b/packages/backend/src/server/api/endpoints.ts
index a38c62f35a..3dfb7fdad4 100644
--- a/packages/backend/src/server/api/endpoints.ts
+++ b/packages/backend/src/server/api/endpoints.ts
@@ -6,8 +6,18 @@
import { permissions } from 'misskey-js';
import type { KeyOf, Schema } from '@/misc/json-schema.js';
-import * as ep___admin_meta from './endpoints/admin/meta.js';
+import * as ep___admin_abuseReport_notificationRecipient_list
+ from '@/server/api/endpoints/admin/abuse-report/notification-recipient/list.js';
+import * as ep___admin_abuseReport_notificationRecipient_show
+ from '@/server/api/endpoints/admin/abuse-report/notification-recipient/show.js';
+import * as ep___admin_abuseReport_notificationRecipient_create
+ from '@/server/api/endpoints/admin/abuse-report/notification-recipient/create.js';
+import * as ep___admin_abuseReport_notificationRecipient_update
+ from '@/server/api/endpoints/admin/abuse-report/notification-recipient/update.js';
+import * as ep___admin_abuseReport_notificationRecipient_delete
+ from '@/server/api/endpoints/admin/abuse-report/notification-recipient/delete.js';
import * as ep___admin_abuseUserReports from './endpoints/admin/abuse-user-reports.js';
+import * as ep___admin_meta from './endpoints/admin/meta.js';
import * as ep___admin_accounts_create from './endpoints/admin/accounts/create.js';
import * as ep___admin_accounts_delete from './endpoints/admin/accounts/delete.js';
import * as ep___admin_accounts_findByEmail from './endpoints/admin/accounts/find-by-email.js';
@@ -44,7 +54,8 @@ import * as ep___admin_emoji_setCategoryBulk from './endpoints/admin/emoji/set-c
import * as ep___admin_emoji_setLicenseBulk from './endpoints/admin/emoji/set-license-bulk.js';
import * as ep___admin_emoji_update from './endpoints/admin/emoji/update.js';
import * as ep___admin_federation_deleteAllFiles from './endpoints/admin/federation/delete-all-files.js';
-import * as ep___admin_federation_refreshRemoteInstanceMetadata from './endpoints/admin/federation/refresh-remote-instance-metadata.js';
+import * as ep___admin_federation_refreshRemoteInstanceMetadata
+ from './endpoints/admin/federation/refresh-remote-instance-metadata.js';
import * as ep___admin_federation_removeAllFollowing from './endpoints/admin/federation/remove-all-following.js';
import * as ep___admin_federation_updateInstance from './endpoints/admin/federation/update-instance.js';
import * as ep___admin_getIndexStats from './endpoints/admin/get-index-stats.js';
@@ -82,6 +93,11 @@ import * as ep___admin_roles_assign from './endpoints/admin/roles/assign.js';
import * as ep___admin_roles_unassign from './endpoints/admin/roles/unassign.js';
import * as ep___admin_roles_updateDefaultPolicies from './endpoints/admin/roles/update-default-policies.js';
import * as ep___admin_roles_users from './endpoints/admin/roles/users.js';
+import * as ep___admin_systemWebhook_create from './endpoints/admin/system-webhook/create.js';
+import * as ep___admin_systemWebhook_delete from './endpoints/admin/system-webhook/delete.js';
+import * as ep___admin_systemWebhook_list from './endpoints/admin/system-webhook/list.js';
+import * as ep___admin_systemWebhook_show from './endpoints/admin/system-webhook/show.js';
+import * as ep___admin_systemWebhook_update from './endpoints/admin/system-webhook/update.js';
import * as ep___announcements from './endpoints/announcements.js';
import * as ep___announcements_show from './endpoints/announcements/show.js';
import * as ep___antennas_create from './endpoints/antennas/create.js';
@@ -379,6 +395,11 @@ import * as ep___reversi_verify from './endpoints/reversi/verify.js';
const eps = [
['admin/meta', ep___admin_meta],
['admin/abuse-user-reports', ep___admin_abuseUserReports],
+ ['admin/abuse-report/notification-recipient/list', ep___admin_abuseReport_notificationRecipient_list],
+ ['admin/abuse-report/notification-recipient/show', ep___admin_abuseReport_notificationRecipient_show],
+ ['admin/abuse-report/notification-recipient/create', ep___admin_abuseReport_notificationRecipient_create],
+ ['admin/abuse-report/notification-recipient/update', ep___admin_abuseReport_notificationRecipient_update],
+ ['admin/abuse-report/notification-recipient/delete', ep___admin_abuseReport_notificationRecipient_delete],
['admin/accounts/create', ep___admin_accounts_create],
['admin/accounts/delete', ep___admin_accounts_delete],
['admin/accounts/find-by-email', ep___admin_accounts_findByEmail],
@@ -453,6 +474,11 @@ const eps = [
['admin/roles/unassign', ep___admin_roles_unassign],
['admin/roles/update-default-policies', ep___admin_roles_updateDefaultPolicies],
['admin/roles/users', ep___admin_roles_users],
+ ['admin/system-webhook/create', ep___admin_systemWebhook_create],
+ ['admin/system-webhook/delete', ep___admin_systemWebhook_delete],
+ ['admin/system-webhook/list', ep___admin_systemWebhook_list],
+ ['admin/system-webhook/show', ep___admin_systemWebhook_show],
+ ['admin/system-webhook/update', ep___admin_systemWebhook_update],
['announcements', ep___announcements],
['announcements/show', ep___announcements_show],
['antennas/create', ep___antennas_create],
@@ -873,8 +899,12 @@ export interface IEndpoint {
const endpoints: IEndpoint[] = (eps as [string, any]).map(([name, ep]) => {
return {
name: name,
- get meta() { return ep.meta ?? {}; },
- get params() { return ep.paramDef; },
+ get meta() {
+ return ep.meta ?? {};
+ },
+ get params() {
+ return ep.paramDef;
+ },
};
});
diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/create.ts b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/create.ts
new file mode 100644
index 0000000000..bdfbcba518
--- /dev/null
+++ b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/create.ts
@@ -0,0 +1,122 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Inject, Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import { ApiError } from '@/server/api/error.js';
+import {
+ AbuseReportNotificationRecipientEntityService,
+} from '@/core/entities/AbuseReportNotificationRecipientEntityService.js';
+import { AbuseReportNotificationService } from '@/core/AbuseReportNotificationService.js';
+import { DI } from '@/di-symbols.js';
+import type { UserProfilesRepository } from '@/models/_.js';
+
+export const meta = {
+ tags: ['admin', 'abuse-report', 'notification-recipient'],
+
+ requireCredential: true,
+ requireModerator: true,
+ secure: true,
+ kind: 'write:admin:abuse-report:notification-recipient',
+
+ res: {
+ type: 'object',
+ ref: 'AbuseReportNotificationRecipient',
+ },
+
+ errors: {
+ correlationCheckEmail: {
+ message: 'If "method" is email, "userId" must be set.',
+ code: 'CORRELATION_CHECK_EMAIL',
+ id: '348bb8ae-575a-6fe9-4327-5811999def8f',
+ httpStatusCode: 400,
+ },
+ correlationCheckWebhook: {
+ message: 'If "method" is webhook, "systemWebhookId" must be set.',
+ code: 'CORRELATION_CHECK_WEBHOOK',
+ id: 'b0c15051-de2d-29ef-260c-9585cddd701a',
+ httpStatusCode: 400,
+ },
+ emailAddressNotSet: {
+ message: 'Email address is not set.',
+ code: 'EMAIL_ADDRESS_NOT_SET',
+ id: '7cc1d85e-2f58-fc31-b644-3de8d0d3421f',
+ httpStatusCode: 400,
+ },
+ },
+} as const;
+
+export const paramDef = {
+ type: 'object',
+ properties: {
+ isActive: {
+ type: 'boolean',
+ },
+ name: {
+ type: 'string',
+ minLength: 1,
+ maxLength: 255,
+ },
+ method: {
+ type: 'string',
+ enum: ['email', 'webhook'],
+ },
+ userId: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ systemWebhookId: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ },
+ required: [
+ 'isActive',
+ 'name',
+ 'method',
+ ],
+} as const;
+
+@Injectable()
+export default class extends Endpoint { // eslint-disable-line import/no-default-export
+ constructor(
+ @Inject(DI.userProfilesRepository)
+ private userProfilesRepository: UserProfilesRepository,
+ private abuseReportNotificationService: AbuseReportNotificationService,
+ private abuseReportNotificationRecipientEntityService: AbuseReportNotificationRecipientEntityService,
+ ) {
+ super(meta, paramDef, async (ps, me) => {
+ if (ps.method === 'email') {
+ const userProfile = await this.userProfilesRepository.findOneBy({ userId: ps.userId });
+ if (!ps.userId || !userProfile) {
+ throw new ApiError(meta.errors.correlationCheckEmail);
+ }
+
+ if (!userProfile.email || !userProfile.emailVerified) {
+ throw new ApiError(meta.errors.emailAddressNotSet);
+ }
+ }
+
+ if (ps.method === 'webhook' && !ps.systemWebhookId) {
+ throw new ApiError(meta.errors.correlationCheckWebhook);
+ }
+
+ const userId = ps.method === 'email' ? ps.userId : null;
+ const systemWebhookId = ps.method === 'webhook' ? ps.systemWebhookId : null;
+ const result = await this.abuseReportNotificationService.createRecipient(
+ {
+ isActive: ps.isActive,
+ name: ps.name,
+ method: ps.method,
+ userId: userId ?? null,
+ systemWebhookId: systemWebhookId ?? null,
+ },
+ me,
+ );
+
+ return this.abuseReportNotificationRecipientEntityService.pack(result);
+ });
+ }
+}
diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/delete.ts b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/delete.ts
new file mode 100644
index 0000000000..b6dc44e09c
--- /dev/null
+++ b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/delete.ts
@@ -0,0 +1,44 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import { AbuseReportNotificationService } from '@/core/AbuseReportNotificationService.js';
+
+export const meta = {
+ tags: ['admin', 'abuse-report', 'notification-recipient'],
+
+ requireCredential: true,
+ requireModerator: true,
+ secure: true,
+ kind: 'write:admin:abuse-report:notification-recipient',
+} as const;
+
+export const paramDef = {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ },
+ required: [
+ 'id',
+ ],
+} as const;
+
+@Injectable()
+export default class extends Endpoint { // eslint-disable-line import/no-default-export
+ constructor(
+ private abuseReportNotificationService: AbuseReportNotificationService,
+ ) {
+ super(meta, paramDef, async (ps, me) => {
+ await this.abuseReportNotificationService.deleteRecipient(
+ ps.id,
+ me,
+ );
+ });
+ }
+}
diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/list.ts b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/list.ts
new file mode 100644
index 0000000000..dad9161a8a
--- /dev/null
+++ b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/list.ts
@@ -0,0 +1,55 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import {
+ AbuseReportNotificationRecipientEntityService,
+} from '@/core/entities/AbuseReportNotificationRecipientEntityService.js';
+import { AbuseReportNotificationService } from '@/core/AbuseReportNotificationService.js';
+
+export const meta = {
+ tags: ['admin', 'abuse-report', 'notification-recipient'],
+
+ requireCredential: true,
+ requireModerator: true,
+ secure: true,
+ kind: 'read:admin:abuse-report:notification-recipient',
+
+ res: {
+ type: 'array',
+ items: {
+ type: 'object',
+ ref: 'AbuseReportNotificationRecipient',
+ },
+ },
+} as const;
+
+export const paramDef = {
+ type: 'object',
+ properties: {
+ method: {
+ type: 'array',
+ items: {
+ type: 'string',
+ enum: ['email', 'webhook'],
+ },
+ },
+ },
+ required: [],
+} as const;
+
+@Injectable()
+export default class extends Endpoint { // eslint-disable-line import/no-default-export
+ constructor(
+ private abuseReportNotificationService: AbuseReportNotificationService,
+ private abuseReportNotificationRecipientEntityService: AbuseReportNotificationRecipientEntityService,
+ ) {
+ super(meta, paramDef, async (ps) => {
+ const recipients = await this.abuseReportNotificationService.fetchRecipients({ method: ps.method });
+ return this.abuseReportNotificationRecipientEntityService.packMany(recipients);
+ });
+ }
+}
diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/show.ts b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/show.ts
new file mode 100644
index 0000000000..557798f946
--- /dev/null
+++ b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/show.ts
@@ -0,0 +1,64 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import {
+ AbuseReportNotificationRecipientEntityService,
+} from '@/core/entities/AbuseReportNotificationRecipientEntityService.js';
+import { AbuseReportNotificationService } from '@/core/AbuseReportNotificationService.js';
+import { ApiError } from '@/server/api/error.js';
+
+export const meta = {
+ tags: ['admin', 'abuse-report', 'notification-recipient'],
+
+ requireCredential: true,
+ requireModerator: true,
+ secure: true,
+ kind: 'read:admin:abuse-report:notification-recipient',
+
+ res: {
+ type: 'object',
+ ref: 'AbuseReportNotificationRecipient',
+ },
+
+ errors: {
+ noSuchRecipient: {
+ message: 'No such recipient.',
+ code: 'NO_SUCH_RECIPIENT',
+ id: '013de6a8-f757-04cb-4d73-cc2a7e3368e4',
+ kind: 'server',
+ httpStatusCode: 404,
+ },
+ },
+} as const;
+
+export const paramDef = {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ },
+ required: ['id'],
+} as const;
+
+@Injectable()
+export default class extends Endpoint { // eslint-disable-line import/no-default-export
+ constructor(
+ private abuseReportNotificationService: AbuseReportNotificationService,
+ private abuseReportNotificationRecipientEntityService: AbuseReportNotificationRecipientEntityService,
+ ) {
+ super(meta, paramDef, async (ps) => {
+ const recipients = await this.abuseReportNotificationService.fetchRecipients({ ids: [ps.id] });
+ if (recipients.length === 0) {
+ throw new ApiError(meta.errors.noSuchRecipient);
+ }
+
+ return this.abuseReportNotificationRecipientEntityService.pack(recipients[0]);
+ });
+ }
+}
diff --git a/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/update.ts b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/update.ts
new file mode 100644
index 0000000000..bd4b485217
--- /dev/null
+++ b/packages/backend/src/server/api/endpoints/admin/abuse-report/notification-recipient/update.ts
@@ -0,0 +1,128 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Inject, Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import { ApiError } from '@/server/api/error.js';
+import {
+ AbuseReportNotificationRecipientEntityService,
+} from '@/core/entities/AbuseReportNotificationRecipientEntityService.js';
+import { AbuseReportNotificationService } from '@/core/AbuseReportNotificationService.js';
+import { DI } from '@/di-symbols.js';
+import type { UserProfilesRepository } from '@/models/_.js';
+
+export const meta = {
+ tags: ['admin', 'abuse-report', 'notification-recipient'],
+
+ requireCredential: true,
+ requireModerator: true,
+ secure: true,
+ kind: 'write:admin:abuse-report:notification-recipient',
+
+ res: {
+ type: 'object',
+ ref: 'AbuseReportNotificationRecipient',
+ },
+
+ errors: {
+ correlationCheckEmail: {
+ message: 'If "method" is email, "userId" must be set.',
+ code: 'CORRELATION_CHECK_EMAIL',
+ id: '348bb8ae-575a-6fe9-4327-5811999def8f',
+ httpStatusCode: 400,
+ },
+ correlationCheckWebhook: {
+ message: 'If "method" is webhook, "systemWebhookId" must be set.',
+ code: 'CORRELATION_CHECK_WEBHOOK',
+ id: 'b0c15051-de2d-29ef-260c-9585cddd701a',
+ httpStatusCode: 400,
+ },
+ emailAddressNotSet: {
+ message: 'Email address is not set.',
+ code: 'EMAIL_ADDRESS_NOT_SET',
+ id: '7cc1d85e-2f58-fc31-b644-3de8d0d3421f',
+ httpStatusCode: 400,
+ },
+ },
+} as const;
+
+export const paramDef = {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ isActive: {
+ type: 'boolean',
+ },
+ name: {
+ type: 'string',
+ minLength: 1,
+ maxLength: 255,
+ },
+ method: {
+ type: 'string',
+ enum: ['email', 'webhook'],
+ },
+ userId: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ systemWebhookId: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ },
+ required: [
+ 'id',
+ 'isActive',
+ 'name',
+ 'method',
+ ],
+} as const;
+
+@Injectable()
+export default class extends Endpoint { // eslint-disable-line import/no-default-export
+ constructor(
+ @Inject(DI.userProfilesRepository)
+ private userProfilesRepository: UserProfilesRepository,
+ private abuseReportNotificationService: AbuseReportNotificationService,
+ private abuseReportNotificationRecipientEntityService: AbuseReportNotificationRecipientEntityService,
+ ) {
+ super(meta, paramDef, async (ps, me) => {
+ if (ps.method === 'email') {
+ const userProfile = await this.userProfilesRepository.findOneBy({ userId: ps.userId });
+ if (!ps.userId || !userProfile) {
+ throw new ApiError(meta.errors.correlationCheckEmail);
+ }
+
+ if (!userProfile.email || !userProfile.emailVerified) {
+ throw new ApiError(meta.errors.emailAddressNotSet);
+ }
+ }
+
+ if (ps.method === 'webhook' && !ps.systemWebhookId) {
+ throw new ApiError(meta.errors.correlationCheckWebhook);
+ }
+
+ const userId = ps.method === 'email' ? ps.userId : null;
+ const systemWebhookId = ps.method === 'webhook' ? ps.systemWebhookId : null;
+ const result = await this.abuseReportNotificationService.updateRecipient(
+ {
+ id: ps.id,
+ isActive: ps.isActive,
+ name: ps.name,
+ method: ps.method,
+ userId: userId ?? null,
+ systemWebhookId: systemWebhookId ?? null,
+ },
+ me,
+ );
+
+ return this.abuseReportNotificationRecipientEntityService.pack(result);
+ });
+ }
+}
diff --git a/packages/backend/src/server/api/endpoints/admin/queue/stats.ts b/packages/backend/src/server/api/endpoints/admin/queue/stats.ts
index 9694b3fa40..d7f9e4eaa3 100644
--- a/packages/backend/src/server/api/endpoints/admin/queue/stats.ts
+++ b/packages/backend/src/server/api/endpoints/admin/queue/stats.ts
@@ -5,7 +5,7 @@
import { Inject, Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
-import type { DbQueue, DeliverQueue, EndedPollNotificationQueue, InboxQueue, ObjectStorageQueue, SystemQueue, WebhookDeliverQueue } from '@/core/QueueModule.js';
+import type { DbQueue, DeliverQueue, EndedPollNotificationQueue, InboxQueue, ObjectStorageQueue, SystemQueue, UserWebhookDeliverQueue, SystemWebhookDeliverQueue } from '@/core/QueueModule.js';
export const meta = {
tags: ['admin'],
@@ -53,7 +53,8 @@ export default class extends Endpoint { // eslint-
@Inject('queue:inbox') public inboxQueue: InboxQueue,
@Inject('queue:db') public dbQueue: DbQueue,
@Inject('queue:objectStorage') public objectStorageQueue: ObjectStorageQueue,
- @Inject('queue:webhookDeliver') public webhookDeliverQueue: WebhookDeliverQueue,
+ @Inject('queue:userWebhookDeliver') public userWebhookDeliverQueue: UserWebhookDeliverQueue,
+ @Inject('queue:systemWebhookDeliver') public systemWebhookDeliverQueue: SystemWebhookDeliverQueue,
) {
super(meta, paramDef, async (ps, me) => {
const deliverJobCounts = await this.deliverQueue.getJobCounts();
diff --git a/packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts b/packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts
index 8b0456068b..9b79100fcf 100644
--- a/packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts
+++ b/packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts
@@ -5,12 +5,10 @@
import { Inject, Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
-import type { UsersRepository, AbuseUserReportsRepository } from '@/models/_.js';
-import { InstanceActorService } from '@/core/InstanceActorService.js';
-import { QueueService } from '@/core/QueueService.js';
-import { ApRendererService } from '@/core/activitypub/ApRendererService.js';
+import type { AbuseUserReportsRepository } from '@/models/_.js';
import { DI } from '@/di-symbols.js';
-import { ModerationLogService } from '@/core/ModerationLogService.js';
+import { ApiError } from '@/server/api/error.js';
+import { AbuseReportService } from '@/core/AbuseReportService.js';
export const meta = {
tags: ['admin'],
@@ -18,6 +16,16 @@ export const meta = {
requireCredential: true,
requireModerator: true,
kind: 'write:admin:resolve-abuse-user-report',
+
+ errors: {
+ noSuchAbuseReport: {
+ message: 'No such abuse report.',
+ code: 'NO_SUCH_ABUSE_REPORT',
+ id: 'ac3794dd-2ce4-d878-e546-73c60c06b398',
+ kind: 'server',
+ httpStatusCode: 404,
+ },
+ },
} as const;
export const paramDef = {
@@ -29,47 +37,20 @@ export const paramDef = {
required: ['reportId'],
} as const;
-// TODO: ロジックをサービスに切り出す
-
@Injectable()
export default class extends Endpoint { // eslint-disable-line import/no-default-export
constructor(
- @Inject(DI.usersRepository)
- private usersRepository: UsersRepository,
-
@Inject(DI.abuseUserReportsRepository)
private abuseUserReportsRepository: AbuseUserReportsRepository,
-
- private queueService: QueueService,
- private instanceActorService: InstanceActorService,
- private apRendererService: ApRendererService,
- private moderationLogService: ModerationLogService,
+ private abuseReportService: AbuseReportService,
) {
super(meta, paramDef, async (ps, me) => {
const report = await this.abuseUserReportsRepository.findOneBy({ id: ps.reportId });
-
- if (report == null) {
- throw new Error('report not found');
+ if (!report) {
+ throw new ApiError(meta.errors.noSuchAbuseReport);
}
- if (ps.forward && report.targetUserHost != null) {
- const actor = await this.instanceActorService.getInstanceActor();
- const targetUser = await this.usersRepository.findOneByOrFail({ id: report.targetUserId });
-
- this.queueService.deliver(actor, this.apRendererService.addContext(this.apRendererService.renderFlag(actor, targetUser.uri!, report.comment)), targetUser.inbox, false);
- }
-
- await this.abuseUserReportsRepository.update(report.id, {
- resolved: true,
- assigneeId: me.id,
- forwarded: ps.forward && report.targetUserHost != null,
- });
-
- this.moderationLogService.log(me, 'resolveAbuseReport', {
- reportId: report.id,
- report: report,
- forwarded: ps.forward && report.targetUserHost != null,
- });
+ await this.abuseReportService.resolve([{ reportId: report.id, forward: ps.forward }], me);
});
}
}
diff --git a/packages/backend/src/server/api/endpoints/admin/system-webhook/create.ts b/packages/backend/src/server/api/endpoints/admin/system-webhook/create.ts
new file mode 100644
index 0000000000..28071e7a33
--- /dev/null
+++ b/packages/backend/src/server/api/endpoints/admin/system-webhook/create.ts
@@ -0,0 +1,85 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import { SystemWebhookEntityService } from '@/core/entities/SystemWebhookEntityService.js';
+import { systemWebhookEventTypes } from '@/models/SystemWebhook.js';
+import { SystemWebhookService } from '@/core/SystemWebhookService.js';
+
+export const meta = {
+ tags: ['admin', 'system-webhook'],
+
+ requireCredential: true,
+ requireModerator: true,
+ secure: true,
+ kind: 'write:admin:system-webhook',
+
+ res: {
+ type: 'object',
+ ref: 'SystemWebhook',
+ },
+} as const;
+
+export const paramDef = {
+ type: 'object',
+ properties: {
+ isActive: {
+ type: 'boolean',
+ },
+ name: {
+ type: 'string',
+ minLength: 1,
+ maxLength: 255,
+ },
+ on: {
+ type: 'array',
+ items: {
+ type: 'string',
+ enum: systemWebhookEventTypes,
+ },
+ },
+ url: {
+ type: 'string',
+ minLength: 1,
+ maxLength: 1024,
+ },
+ secret: {
+ type: 'string',
+ minLength: 1,
+ maxLength: 1024,
+ },
+ },
+ required: [
+ 'isActive',
+ 'name',
+ 'on',
+ 'url',
+ 'secret',
+ ],
+} as const;
+
+@Injectable()
+export default class extends Endpoint { // eslint-disable-line import/no-default-export
+ constructor(
+ private systemWebhookService: SystemWebhookService,
+ private systemWebhookEntityService: SystemWebhookEntityService,
+ ) {
+ super(meta, paramDef, async (ps, me) => {
+ const result = await this.systemWebhookService.createSystemWebhook(
+ {
+ isActive: ps.isActive,
+ name: ps.name,
+ on: ps.on,
+ url: ps.url,
+ secret: ps.secret,
+ },
+ me,
+ );
+
+ return this.systemWebhookEntityService.pack(result);
+ });
+ }
+}
diff --git a/packages/backend/src/server/api/endpoints/admin/system-webhook/delete.ts b/packages/backend/src/server/api/endpoints/admin/system-webhook/delete.ts
new file mode 100644
index 0000000000..9cdfc7e70f
--- /dev/null
+++ b/packages/backend/src/server/api/endpoints/admin/system-webhook/delete.ts
@@ -0,0 +1,44 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import { SystemWebhookService } from '@/core/SystemWebhookService.js';
+
+export const meta = {
+ tags: ['admin', 'system-webhook'],
+
+ requireCredential: true,
+ requireModerator: true,
+ secure: true,
+ kind: 'write:admin:system-webhook',
+} as const;
+
+export const paramDef = {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ },
+ required: [
+ 'id',
+ ],
+} as const;
+
+@Injectable()
+export default class extends Endpoint { // eslint-disable-line import/no-default-export
+ constructor(
+ private systemWebhookService: SystemWebhookService,
+ ) {
+ super(meta, paramDef, async (ps, me) => {
+ await this.systemWebhookService.deleteSystemWebhook(
+ ps.id,
+ me,
+ );
+ });
+ }
+}
diff --git a/packages/backend/src/server/api/endpoints/admin/system-webhook/list.ts b/packages/backend/src/server/api/endpoints/admin/system-webhook/list.ts
new file mode 100644
index 0000000000..7a440a774e
--- /dev/null
+++ b/packages/backend/src/server/api/endpoints/admin/system-webhook/list.ts
@@ -0,0 +1,60 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import { SystemWebhookEntityService } from '@/core/entities/SystemWebhookEntityService.js';
+import { systemWebhookEventTypes } from '@/models/SystemWebhook.js';
+import { SystemWebhookService } from '@/core/SystemWebhookService.js';
+
+export const meta = {
+ tags: ['admin', 'system-webhook'],
+
+ requireCredential: true,
+ requireModerator: true,
+ secure: true,
+ kind: 'write:admin:system-webhook',
+
+ res: {
+ type: 'array',
+ items: {
+ type: 'object',
+ ref: 'SystemWebhook',
+ },
+ },
+} as const;
+
+export const paramDef = {
+ type: 'object',
+ properties: {
+ isActive: {
+ type: 'boolean',
+ },
+ on: {
+ type: 'array',
+ items: {
+ type: 'string',
+ enum: systemWebhookEventTypes,
+ },
+ },
+ },
+ required: [],
+} as const;
+
+@Injectable()
+export default class extends Endpoint { // eslint-disable-line import/no-default-export
+ constructor(
+ private systemWebhookService: SystemWebhookService,
+ private systemWebhookEntityService: SystemWebhookEntityService,
+ ) {
+ super(meta, paramDef, async (ps) => {
+ const webhooks = await this.systemWebhookService.fetchSystemWebhooks({
+ isActive: ps.isActive,
+ on: ps.on,
+ });
+ return this.systemWebhookEntityService.packMany(webhooks);
+ });
+ }
+}
diff --git a/packages/backend/src/server/api/endpoints/admin/system-webhook/show.ts b/packages/backend/src/server/api/endpoints/admin/system-webhook/show.ts
new file mode 100644
index 0000000000..75862c96a7
--- /dev/null
+++ b/packages/backend/src/server/api/endpoints/admin/system-webhook/show.ts
@@ -0,0 +1,62 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import { SystemWebhookEntityService } from '@/core/entities/SystemWebhookEntityService.js';
+import { ApiError } from '@/server/api/error.js';
+import { SystemWebhookService } from '@/core/SystemWebhookService.js';
+
+export const meta = {
+ tags: ['admin', 'system-webhook'],
+
+ requireCredential: true,
+ requireModerator: true,
+ secure: true,
+ kind: 'write:admin:system-webhook',
+
+ res: {
+ type: 'object',
+ ref: 'SystemWebhook',
+ },
+
+ errors: {
+ noSuchSystemWebhook: {
+ message: 'No such SystemWebhook.',
+ code: 'NO_SUCH_SYSTEM_WEBHOOK',
+ id: '38dd1ffe-04b4-6ff5-d8ba-4e6a6ae22c9d',
+ kind: 'server',
+ httpStatusCode: 404,
+ },
+ },
+} as const;
+
+export const paramDef = {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ },
+ required: ['id'],
+} as const;
+
+@Injectable()
+export default class extends Endpoint { // eslint-disable-line import/no-default-export
+ constructor(
+ private systemWebhookService: SystemWebhookService,
+ private systemWebhookEntityService: SystemWebhookEntityService,
+ ) {
+ super(meta, paramDef, async (ps) => {
+ const webhooks = await this.systemWebhookService.fetchSystemWebhooks({ ids: [ps.id] });
+ if (webhooks.length === 0) {
+ throw new ApiError(meta.errors.noSuchSystemWebhook);
+ }
+
+ return this.systemWebhookEntityService.pack(webhooks[0]);
+ });
+ }
+}
diff --git a/packages/backend/src/server/api/endpoints/admin/system-webhook/update.ts b/packages/backend/src/server/api/endpoints/admin/system-webhook/update.ts
new file mode 100644
index 0000000000..8d68bb8f87
--- /dev/null
+++ b/packages/backend/src/server/api/endpoints/admin/system-webhook/update.ts
@@ -0,0 +1,91 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import { SystemWebhookEntityService } from '@/core/entities/SystemWebhookEntityService.js';
+import { systemWebhookEventTypes } from '@/models/SystemWebhook.js';
+import { SystemWebhookService } from '@/core/SystemWebhookService.js';
+
+export const meta = {
+ tags: ['admin', 'system-webhook'],
+
+ requireCredential: true,
+ requireModerator: true,
+ secure: true,
+ kind: 'write:admin:system-webhook',
+
+ res: {
+ type: 'object',
+ ref: 'SystemWebhook',
+ },
+} as const;
+
+export const paramDef = {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ format: 'misskey:id',
+ },
+ isActive: {
+ type: 'boolean',
+ },
+ name: {
+ type: 'string',
+ minLength: 1,
+ maxLength: 255,
+ },
+ on: {
+ type: 'array',
+ items: {
+ type: 'string',
+ enum: systemWebhookEventTypes,
+ },
+ },
+ url: {
+ type: 'string',
+ minLength: 1,
+ maxLength: 1024,
+ },
+ secret: {
+ type: 'string',
+ minLength: 1,
+ maxLength: 1024,
+ },
+ },
+ required: [
+ 'id',
+ 'isActive',
+ 'name',
+ 'on',
+ 'url',
+ 'secret',
+ ],
+} as const;
+
+@Injectable()
+export default class extends Endpoint { // eslint-disable-line import/no-default-export
+ constructor(
+ private systemWebhookService: SystemWebhookService,
+ private systemWebhookEntityService: SystemWebhookEntityService,
+ ) {
+ super(meta, paramDef, async (ps, me) => {
+ const result = await this.systemWebhookService.updateSystemWebhook(
+ {
+ id: ps.id,
+ isActive: ps.isActive,
+ name: ps.name,
+ on: ps.on,
+ url: ps.url,
+ secret: ps.secret,
+ },
+ me,
+ );
+
+ return this.systemWebhookEntityService.pack(result);
+ });
+ }
+}
diff --git a/packages/backend/src/server/api/endpoints/users/report-abuse.ts b/packages/backend/src/server/api/endpoints/users/report-abuse.ts
index 48e14b68cc..5ff6de37d2 100644
--- a/packages/backend/src/server/api/endpoints/users/report-abuse.ts
+++ b/packages/backend/src/server/api/endpoints/users/report-abuse.ts
@@ -3,17 +3,11 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import sanitizeHtml from 'sanitize-html';
-import { Inject, Injectable } from '@nestjs/common';
-import type { AbuseUserReportsRepository } from '@/models/_.js';
-import { IdService } from '@/core/IdService.js';
+import { Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
-import { GlobalEventService } from '@/core/GlobalEventService.js';
-import { MetaService } from '@/core/MetaService.js';
-import { EmailService } from '@/core/EmailService.js';
-import { DI } from '@/di-symbols.js';
import { GetterService } from '@/server/api/GetterService.js';
import { RoleService } from '@/core/RoleService.js';
+import { AbuseReportService } from '@/core/AbuseReportService.js';
import { ApiError } from '../../error.js';
export const meta = {
@@ -57,60 +51,32 @@ export const paramDef = {
@Injectable()
export default class extends Endpoint { // eslint-disable-line import/no-default-export
constructor(
- @Inject(DI.abuseUserReportsRepository)
- private abuseUserReportsRepository: AbuseUserReportsRepository,
-
- private idService: IdService,
- private metaService: MetaService,
- private emailService: EmailService,
private getterService: GetterService,
private roleService: RoleService,
- private globalEventService: GlobalEventService,
+ private abuseReportService: AbuseReportService,
) {
super(meta, paramDef, async (ps, me) => {
// Lookup user
- const user = await this.getterService.getUser(ps.userId).catch(err => {
+ const targetUser = await this.getterService.getUser(ps.userId).catch(err => {
if (err.id === '15348ddd-432d-49c2-8a5a-8069753becff') throw new ApiError(meta.errors.noSuchUser);
throw err;
});
- if (user.id === me.id) {
+ if (targetUser.id === me.id) {
throw new ApiError(meta.errors.cannotReportYourself);
}
- if (await this.roleService.isAdministrator(user)) {
+ if (await this.roleService.isAdministrator(targetUser)) {
throw new ApiError(meta.errors.cannotReportAdmin);
}
- const report = await this.abuseUserReportsRepository.insertOne({
- id: this.idService.gen(),
- targetUserId: user.id,
- targetUserHost: user.host,
+ await this.abuseReportService.report([{
+ targetUserId: targetUser.id,
+ targetUserHost: targetUser.host,
reporterId: me.id,
reporterHost: null,
comment: ps.comment,
- });
-
- // Publish event to moderators
- setImmediate(async () => {
- const moderators = await this.roleService.getModerators();
-
- for (const moderator of moderators) {
- this.globalEventService.publishAdminStream(moderator.id, 'newAbuseUserReport', {
- id: report.id,
- targetUserId: report.targetUserId,
- reporterId: report.reporterId,
- comment: report.comment,
- });
- }
-
- const meta = await this.metaService.fetch();
- if (meta.email) {
- this.emailService.sendEmail(meta.email, 'New abuse report',
- sanitizeHtml(ps.comment),
- sanitizeHtml(ps.comment));
- }
- });
+ }]);
});
}
}
diff --git a/packages/backend/src/server/web/ClientServerService.ts b/packages/backend/src/server/web/ClientServerService.ts
index ab03489c0d..f55790b636 100644
--- a/packages/backend/src/server/web/ClientServerService.ts
+++ b/packages/backend/src/server/web/ClientServerService.ts
@@ -25,7 +25,16 @@ import { getNoteSummary } from '@/misc/get-note-summary.js';
import { DI } from '@/di-symbols.js';
import * as Acct from '@/misc/acct.js';
import { MetaService } from '@/core/MetaService.js';
-import type { DbQueue, DeliverQueue, EndedPollNotificationQueue, InboxQueue, ObjectStorageQueue, SystemQueue, WebhookDeliverQueue } from '@/core/QueueModule.js';
+import type {
+ DbQueue,
+ DeliverQueue,
+ EndedPollNotificationQueue,
+ InboxQueue,
+ ObjectStorageQueue,
+ SystemQueue,
+ UserWebhookDeliverQueue,
+ SystemWebhookDeliverQueue,
+} from '@/core/QueueModule.js';
import { UserEntityService } from '@/core/entities/UserEntityService.js';
import { NoteEntityService } from '@/core/entities/NoteEntityService.js';
import { PageEntityService } from '@/core/entities/PageEntityService.js';
@@ -111,7 +120,8 @@ export class ClientServerService {
@Inject('queue:inbox') public inboxQueue: InboxQueue,
@Inject('queue:db') public dbQueue: DbQueue,
@Inject('queue:objectStorage') public objectStorageQueue: ObjectStorageQueue,
- @Inject('queue:webhookDeliver') public webhookDeliverQueue: WebhookDeliverQueue,
+ @Inject('queue:userWebhookDeliver') public userWebhookDeliverQueue: UserWebhookDeliverQueue,
+ @Inject('queue:systemWebhookDeliver') public systemWebhookDeliverQueue: SystemWebhookDeliverQueue,
) {
//this.createServer = this.createServer.bind(this);
}
@@ -239,7 +249,8 @@ export class ClientServerService {
this.inboxQueue,
this.dbQueue,
this.objectStorageQueue,
- this.webhookDeliverQueue,
+ this.userWebhookDeliverQueue,
+ this.systemWebhookDeliverQueue,
].map(q => new BullMQAdapter(q)),
serverAdapter,
});
diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts
index 929070d0d2..ecbbee4eff 100644
--- a/packages/backend/src/types.ts
+++ b/packages/backend/src/types.ts
@@ -90,6 +90,12 @@ export const moderationLogTypes = [
'deleteAvatarDecoration',
'unsetUserAvatar',
'unsetUserBanner',
+ 'createSystemWebhook',
+ 'updateSystemWebhook',
+ 'deleteSystemWebhook',
+ 'createAbuseReportNotificationRecipient',
+ 'updateAbuseReportNotificationRecipient',
+ 'deleteAbuseReportNotificationRecipient',
] as const;
export type ModerationLogPayloads = {
@@ -282,6 +288,32 @@ export type ModerationLogPayloads = {
userHost: string | null;
fileId: string;
};
+ createSystemWebhook: {
+ systemWebhookId: string;
+ webhook: any;
+ };
+ updateSystemWebhook: {
+ systemWebhookId: string;
+ before: any;
+ after: any;
+ };
+ deleteSystemWebhook: {
+ systemWebhookId: string;
+ webhook: any;
+ };
+ createAbuseReportNotificationRecipient: {
+ recipientId: string;
+ recipient: any;
+ };
+ updateAbuseReportNotificationRecipient: {
+ recipientId: string;
+ before: any;
+ after: any;
+ };
+ deleteAbuseReportNotificationRecipient: {
+ recipientId: string;
+ recipient: any;
+ };
};
export type Serialized = {
diff --git a/packages/backend/test/e2e/synalio/abuse-report.ts b/packages/backend/test/e2e/synalio/abuse-report.ts
new file mode 100644
index 0000000000..b0cc3d13ec
--- /dev/null
+++ b/packages/backend/test/e2e/synalio/abuse-report.ts
@@ -0,0 +1,401 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { entities } from 'misskey-js';
+import { beforeEach, describe, test } from '@jest/globals';
+import Fastify from 'fastify';
+import { api, randomString, role, signup, startJobQueue, UserToken } from '../../utils.js';
+import type { INestApplicationContext } from '@nestjs/common';
+
+const WEBHOOK_HOST = 'http://localhost:15080';
+const WEBHOOK_PORT = 15080;
+process.env.NODE_ENV = 'test';
+
+describe('[シナリオ] ユーザ通報', () => {
+ let queue: INestApplicationContext;
+ let admin: entities.SignupResponse;
+ let alice: entities.SignupResponse;
+ let bob: entities.SignupResponse;
+
+ type SystemWebhookPayload = {
+ server: string;
+ hookId: string;
+ eventId: string;
+ createdAt: string;
+ type: string;
+ body: any;
+ }
+
+ // -------------------------------------------------------------------------------------------
+
+ async function captureWebhook(postAction: () => Promise): Promise {
+ const fastify = Fastify();
+
+ let timeoutHandle: NodeJS.Timeout | null = null;
+ const result = await new Promise(async (resolve, reject) => {
+ fastify.all('/', async (req, res) => {
+ timeoutHandle && clearTimeout(timeoutHandle);
+
+ const body = JSON.stringify(req.body);
+ res.status(200).send('ok');
+ await fastify.close();
+ resolve(body);
+ });
+
+ await fastify.listen({ port: WEBHOOK_PORT });
+
+ timeoutHandle = setTimeout(async () => {
+ await fastify.close();
+ reject(new Error('timeout'));
+ }, 3000);
+
+ try {
+ await postAction();
+ } catch (e) {
+ await fastify.close();
+ reject(e);
+ }
+ });
+
+ await fastify.close();
+
+ return JSON.parse(result) as T;
+ }
+
+ async function createSystemWebhook(args?: Partial, credential?: UserToken): Promise {
+ const res = await api(
+ 'admin/system-webhook/create',
+ {
+ isActive: true,
+ name: randomString(),
+ on: ['abuseReport'],
+ url: WEBHOOK_HOST,
+ secret: randomString(),
+ ...args,
+ },
+ credential ?? admin,
+ );
+ return res.body;
+ }
+
+ async function createAbuseReportNotificationRecipient(args?: Partial, credential?: UserToken): Promise {
+ const res = await api(
+ 'admin/abuse-report/notification-recipient/create',
+ {
+ isActive: true,
+ name: randomString(),
+ method: 'webhook',
+ ...args,
+ },
+ credential ?? admin,
+ );
+ return res.body;
+ }
+
+ async function createAbuseReport(args?: Partial, credential?: UserToken): Promise {
+ const res = await api(
+ 'users/report-abuse',
+ {
+ userId: alice.id,
+ comment: randomString(),
+ ...args,
+ },
+ credential ?? admin,
+ );
+ return res.body;
+ }
+
+ async function resolveAbuseReport(args?: Partial, credential?: UserToken): Promise {
+ const res = await api(
+ 'admin/resolve-abuse-user-report',
+ {
+ reportId: admin.id,
+ ...args,
+ },
+ credential ?? admin,
+ );
+ return res.body;
+ }
+
+ // -------------------------------------------------------------------------------------------
+
+ beforeAll(async () => {
+ queue = await startJobQueue();
+ admin = await signup({ username: 'admin' });
+ alice = await signup({ username: 'alice' });
+ bob = await signup({ username: 'bob' });
+
+ await role(admin, { isAdministrator: true });
+ }, 1000 * 60 * 2);
+
+ afterAll(async () => {
+ await queue.close();
+ });
+
+ // -------------------------------------------------------------------------------------------
+
+ describe('SystemWebhook', () => {
+ beforeEach(async () => {
+ const webhooks = await api('admin/system-webhook/list', {}, admin);
+ for (const webhook of webhooks.body) {
+ await api('admin/system-webhook/delete', { id: webhook.id }, admin);
+ }
+ });
+
+ test('通報を受けた -> abuseReportが送出される', async () => {
+ const webhook = await createSystemWebhook({
+ on: ['abuseReport'],
+ isActive: true,
+ });
+ await createAbuseReportNotificationRecipient({ systemWebhookId: webhook.id });
+
+ // 通報(bob -> alice)
+ const abuse = {
+ userId: alice.id,
+ comment: randomString(),
+ };
+ const webhookBody = await captureWebhook(async () => {
+ await createAbuseReport(abuse, bob);
+ });
+
+ console.log(JSON.stringify(webhookBody, null, 2));
+
+ expect(webhookBody.hookId).toBe(webhook.id);
+ expect(webhookBody.type).toBe('abuseReport');
+ expect(webhookBody.body.targetUserId).toBe(alice.id);
+ expect(webhookBody.body.reporterId).toBe(bob.id);
+ expect(webhookBody.body.comment).toBe(abuse.comment);
+ });
+
+ test('通報を受けた -> abuseReportが送出される -> 解決 -> abuseReportResolvedが送出される', async () => {
+ const webhook = await createSystemWebhook({
+ on: ['abuseReport', 'abuseReportResolved'],
+ isActive: true,
+ });
+ await createAbuseReportNotificationRecipient({ systemWebhookId: webhook.id });
+
+ // 通報(bob -> alice)
+ const abuse = {
+ userId: alice.id,
+ comment: randomString(),
+ };
+ const webhookBody1 = await captureWebhook(async () => {
+ await createAbuseReport(abuse, bob);
+ });
+
+ console.log(JSON.stringify(webhookBody1, null, 2));
+ expect(webhookBody1.hookId).toBe(webhook.id);
+ expect(webhookBody1.type).toBe('abuseReport');
+ expect(webhookBody1.body.targetUserId).toBe(alice.id);
+ expect(webhookBody1.body.reporterId).toBe(bob.id);
+ expect(webhookBody1.body.assigneeId).toBeNull();
+ expect(webhookBody1.body.resolved).toBe(false);
+ expect(webhookBody1.body.comment).toBe(abuse.comment);
+
+ // 解決
+ const webhookBody2 = await captureWebhook(async () => {
+ await resolveAbuseReport({
+ reportId: webhookBody1.body.id,
+ forward: false,
+ }, admin);
+ });
+
+ console.log(JSON.stringify(webhookBody2, null, 2));
+ expect(webhookBody2.hookId).toBe(webhook.id);
+ expect(webhookBody2.type).toBe('abuseReportResolved');
+ expect(webhookBody2.body.targetUserId).toBe(alice.id);
+ expect(webhookBody2.body.reporterId).toBe(bob.id);
+ expect(webhookBody2.body.assigneeId).toBe(admin.id);
+ expect(webhookBody2.body.resolved).toBe(true);
+ expect(webhookBody2.body.comment).toBe(abuse.comment);
+ });
+
+ test('通報を受けた -> abuseReportが未許可の場合は送出されない', async () => {
+ const webhook = await createSystemWebhook({
+ on: [],
+ isActive: true,
+ });
+ await createAbuseReportNotificationRecipient({ systemWebhookId: webhook.id });
+
+ // 通報(bob -> alice)
+ const abuse = {
+ userId: alice.id,
+ comment: randomString(),
+ };
+ const webhookBody = await captureWebhook(async () => {
+ await createAbuseReport(abuse, bob);
+ }).catch(e => e.message);
+
+ expect(webhookBody).toBe('timeout');
+ });
+
+ test('通報を受けた -> abuseReportが未許可の場合は送出されない -> 解決 -> abuseReportResolvedが送出される', async () => {
+ const webhook = await createSystemWebhook({
+ on: ['abuseReportResolved'],
+ isActive: true,
+ });
+ await createAbuseReportNotificationRecipient({ systemWebhookId: webhook.id });
+
+ // 通報(bob -> alice)
+ const abuse = {
+ userId: alice.id,
+ comment: randomString(),
+ };
+ const webhookBody1 = await captureWebhook(async () => {
+ await createAbuseReport(abuse, bob);
+ }).catch(e => e.message);
+
+ expect(webhookBody1).toBe('timeout');
+
+ const abuseReportId = (await api('admin/abuse-user-reports', {}, admin)).body[0].id;
+
+ // 解決
+ const webhookBody2 = await captureWebhook(async () => {
+ await resolveAbuseReport({
+ reportId: abuseReportId,
+ forward: false,
+ }, admin);
+ });
+
+ console.log(JSON.stringify(webhookBody2, null, 2));
+ expect(webhookBody2.hookId).toBe(webhook.id);
+ expect(webhookBody2.type).toBe('abuseReportResolved');
+ expect(webhookBody2.body.targetUserId).toBe(alice.id);
+ expect(webhookBody2.body.reporterId).toBe(bob.id);
+ expect(webhookBody2.body.assigneeId).toBe(admin.id);
+ expect(webhookBody2.body.resolved).toBe(true);
+ expect(webhookBody2.body.comment).toBe(abuse.comment);
+ });
+
+ test('通報を受けた -> abuseReportが送出される -> 解決 -> abuseReportResolvedが未許可の場合は送出されない', async () => {
+ const webhook = await createSystemWebhook({
+ on: ['abuseReport'],
+ isActive: true,
+ });
+ await createAbuseReportNotificationRecipient({ systemWebhookId: webhook.id });
+
+ // 通報(bob -> alice)
+ const abuse = {
+ userId: alice.id,
+ comment: randomString(),
+ };
+ const webhookBody1 = await captureWebhook(async () => {
+ await createAbuseReport(abuse, bob);
+ });
+
+ console.log(JSON.stringify(webhookBody1, null, 2));
+ expect(webhookBody1.hookId).toBe(webhook.id);
+ expect(webhookBody1.type).toBe('abuseReport');
+ expect(webhookBody1.body.targetUserId).toBe(alice.id);
+ expect(webhookBody1.body.reporterId).toBe(bob.id);
+ expect(webhookBody1.body.assigneeId).toBeNull();
+ expect(webhookBody1.body.resolved).toBe(false);
+ expect(webhookBody1.body.comment).toBe(abuse.comment);
+
+ // 解決
+ const webhookBody2 = await captureWebhook(async () => {
+ await resolveAbuseReport({
+ reportId: webhookBody1.body.id,
+ forward: false,
+ }, admin);
+ }).catch(e => e.message);
+
+ expect(webhookBody2).toBe('timeout');
+ });
+
+ test('通報を受けた -> abuseReportが未許可の場合は送出されない -> 解決 -> abuseReportResolvedが未許可の場合は送出されない', async () => {
+ const webhook = await createSystemWebhook({
+ on: [],
+ isActive: true,
+ });
+ await createAbuseReportNotificationRecipient({ systemWebhookId: webhook.id });
+
+ // 通報(bob -> alice)
+ const abuse = {
+ userId: alice.id,
+ comment: randomString(),
+ };
+ const webhookBody1 = await captureWebhook(async () => {
+ await createAbuseReport(abuse, bob);
+ }).catch(e => e.message);
+
+ expect(webhookBody1).toBe('timeout');
+
+ const abuseReportId = (await api('admin/abuse-user-reports', {}, admin)).body[0].id;
+
+ // 解決
+ const webhookBody2 = await captureWebhook(async () => {
+ await resolveAbuseReport({
+ reportId: abuseReportId,
+ forward: false,
+ }, admin);
+ }).catch(e => e.message);
+
+ expect(webhookBody2).toBe('timeout');
+ });
+
+ test('通報を受けた -> Webhookが無効の場合は送出されない', async () => {
+ const webhook = await createSystemWebhook({
+ on: ['abuseReport', 'abuseReportResolved'],
+ isActive: false,
+ });
+ await createAbuseReportNotificationRecipient({ systemWebhookId: webhook.id });
+
+ // 通報(bob -> alice)
+ const abuse = {
+ userId: alice.id,
+ comment: randomString(),
+ };
+ const webhookBody1 = await captureWebhook(async () => {
+ await createAbuseReport(abuse, bob);
+ }).catch(e => e.message);
+
+ expect(webhookBody1).toBe('timeout');
+
+ const abuseReportId = (await api('admin/abuse-user-reports', {}, admin)).body[0].id;
+
+ // 解決
+ const webhookBody2 = await captureWebhook(async () => {
+ await resolveAbuseReport({
+ reportId: abuseReportId,
+ forward: false,
+ }, admin);
+ }).catch(e => e.message);
+
+ expect(webhookBody2).toBe('timeout');
+ });
+
+ test('通報を受けた -> 通知設定が無効の場合は送出されない', async () => {
+ const webhook = await createSystemWebhook({
+ on: ['abuseReport', 'abuseReportResolved'],
+ isActive: true,
+ });
+ await createAbuseReportNotificationRecipient({ systemWebhookId: webhook.id, isActive: false });
+
+ // 通報(bob -> alice)
+ const abuse = {
+ userId: alice.id,
+ comment: randomString(),
+ };
+ const webhookBody1 = await captureWebhook(async () => {
+ await createAbuseReport(abuse, bob);
+ }).catch(e => e.message);
+
+ expect(webhookBody1).toBe('timeout');
+
+ const abuseReportId = (await api('admin/abuse-user-reports', {}, admin)).body[0].id;
+
+ // 解決
+ const webhookBody2 = await captureWebhook(async () => {
+ await resolveAbuseReport({
+ reportId: abuseReportId,
+ forward: false,
+ }, admin);
+ }).catch(e => e.message);
+
+ expect(webhookBody2).toBe('timeout');
+ });
+ });
+});
diff --git a/packages/backend/test/unit/AbuseReportNotificationService.ts b/packages/backend/test/unit/AbuseReportNotificationService.ts
new file mode 100644
index 0000000000..e971659070
--- /dev/null
+++ b/packages/backend/test/unit/AbuseReportNotificationService.ts
@@ -0,0 +1,343 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { jest } from '@jest/globals';
+import { Test, TestingModule } from '@nestjs/testing';
+import { AbuseReportNotificationService } from '@/core/AbuseReportNotificationService.js';
+import {
+ AbuseReportNotificationRecipientRepository,
+ MiAbuseReportNotificationRecipient,
+ MiSystemWebhook,
+ MiUser,
+ SystemWebhooksRepository,
+ UserProfilesRepository,
+ UsersRepository,
+} from '@/models/_.js';
+import { DI } from '@/di-symbols.js';
+import { GlobalModule } from '@/GlobalModule.js';
+import { IdService } from '@/core/IdService.js';
+import { EmailService } from '@/core/EmailService.js';
+import { RoleService } from '@/core/RoleService.js';
+import { MetaService } from '@/core/MetaService.js';
+import { ModerationLogService } from '@/core/ModerationLogService.js';
+import { GlobalEventService } from '@/core/GlobalEventService.js';
+import { RecipientMethod } from '@/models/AbuseReportNotificationRecipient.js';
+import { SystemWebhookService } from '@/core/SystemWebhookService.js';
+import { randomString } from '../utils.js';
+
+process.env.NODE_ENV = 'test';
+
+describe('AbuseReportNotificationService', () => {
+ let app: TestingModule;
+ let service: AbuseReportNotificationService;
+
+ // --------------------------------------------------------------------------------------
+
+ let usersRepository: UsersRepository;
+ let userProfilesRepository: UserProfilesRepository;
+ let systemWebhooksRepository: SystemWebhooksRepository;
+ let abuseReportNotificationRecipientRepository: AbuseReportNotificationRecipientRepository;
+ let idService: IdService;
+ let roleService: jest.Mocked;
+ let emailService: jest.Mocked;
+ let webhookService: jest.Mocked;
+
+ // --------------------------------------------------------------------------------------
+
+ let root: MiUser;
+ let alice: MiUser;
+ let bob: MiUser;
+ let systemWebhook1: MiSystemWebhook;
+ let systemWebhook2: MiSystemWebhook;
+
+ // --------------------------------------------------------------------------------------
+
+ async function createUser(data: Partial = {}) {
+ const user = await usersRepository
+ .insert({
+ id: idService.gen(),
+ ...data,
+ })
+ .then(x => usersRepository.findOneByOrFail(x.identifiers[0]));
+
+ await userProfilesRepository.insert({
+ userId: user.id,
+ });
+
+ return user;
+ }
+
+ async function createWebhook(data: Partial = {}) {
+ return systemWebhooksRepository
+ .insert({
+ id: idService.gen(),
+ name: randomString(),
+ on: ['abuseReport'],
+ url: 'https://example.com',
+ secret: randomString(),
+ ...data,
+ })
+ .then(x => systemWebhooksRepository.findOneByOrFail(x.identifiers[0]));
+ }
+
+ async function createRecipient(data: Partial = {}) {
+ return abuseReportNotificationRecipientRepository
+ .insert({
+ id: idService.gen(),
+ isActive: true,
+ name: randomString(),
+ ...data,
+ })
+ .then(x => abuseReportNotificationRecipientRepository.findOneByOrFail(x.identifiers[0]));
+ }
+
+ // --------------------------------------------------------------------------------------
+
+ beforeAll(async () => {
+ app = await Test
+ .createTestingModule({
+ imports: [
+ GlobalModule,
+ ],
+ providers: [
+ AbuseReportNotificationService,
+ IdService,
+ {
+ provide: RoleService, useFactory: () => ({ getModeratorIds: jest.fn() }),
+ },
+ {
+ provide: SystemWebhookService, useFactory: () => ({ enqueueSystemWebhook: jest.fn() }),
+ },
+ {
+ provide: EmailService, useFactory: () => ({ sendEmail: jest.fn() }),
+ },
+ {
+ provide: MetaService, useFactory: () => ({ fetch: jest.fn() }),
+ },
+ {
+ provide: ModerationLogService, useFactory: () => ({ log: () => Promise.resolve() }),
+ },
+ {
+ provide: GlobalEventService, useFactory: () => ({ publishAdminStream: jest.fn() }),
+ },
+ ],
+ })
+ .compile();
+
+ usersRepository = app.get(DI.usersRepository);
+ userProfilesRepository = app.get(DI.userProfilesRepository);
+ systemWebhooksRepository = app.get(DI.systemWebhooksRepository);
+ abuseReportNotificationRecipientRepository = app.get(DI.abuseReportNotificationRecipientRepository);
+
+ service = app.get(AbuseReportNotificationService);
+ idService = app.get(IdService);
+ roleService = app.get(RoleService) as jest.Mocked;
+ emailService = app.get(EmailService) as jest.Mocked;
+ webhookService = app.get(SystemWebhookService) as jest.Mocked;
+
+ app.enableShutdownHooks();
+ });
+
+ beforeEach(async () => {
+ root = await createUser({ username: 'root', usernameLower: 'root', isRoot: true });
+ alice = await createUser({ username: 'alice', usernameLower: 'alice', isRoot: false });
+ bob = await createUser({ username: 'bob', usernameLower: 'bob', isRoot: false });
+ systemWebhook1 = await createWebhook();
+ systemWebhook2 = await createWebhook();
+
+ roleService.getModeratorIds.mockResolvedValue([root.id, alice.id, bob.id]);
+ });
+
+ afterEach(async () => {
+ emailService.sendEmail.mockClear();
+ webhookService.enqueueSystemWebhook.mockClear();
+
+ await usersRepository.delete({});
+ await userProfilesRepository.delete({});
+ await systemWebhooksRepository.delete({});
+ await abuseReportNotificationRecipientRepository.delete({});
+ });
+
+ afterAll(async () => {
+ await app.close();
+ });
+
+ // --------------------------------------------------------------------------------------
+
+ describe('createRecipient', () => {
+ test('作成成功1', async () => {
+ const params = {
+ isActive: true,
+ name: randomString(),
+ method: 'email' as RecipientMethod,
+ userId: alice.id,
+ systemWebhookId: null,
+ };
+
+ const recipient1 = await service.createRecipient(params, root);
+ expect(recipient1).toMatchObject(params);
+ });
+
+ test('作成成功2', async () => {
+ const params = {
+ isActive: true,
+ name: randomString(),
+ method: 'webhook' as RecipientMethod,
+ userId: null,
+ systemWebhookId: systemWebhook1.id,
+ };
+
+ const recipient1 = await service.createRecipient(params, root);
+ expect(recipient1).toMatchObject(params);
+ });
+ });
+
+ describe('updateRecipient', () => {
+ test('更新成功1', async () => {
+ const recipient1 = await createRecipient({
+ method: 'email',
+ userId: alice.id,
+ });
+
+ const params = {
+ id: recipient1.id,
+ isActive: false,
+ name: randomString(),
+ method: 'email' as RecipientMethod,
+ userId: bob.id,
+ systemWebhookId: null,
+ };
+
+ const recipient2 = await service.updateRecipient(params, root);
+ expect(recipient2).toMatchObject(params);
+ });
+
+ test('更新成功2', async () => {
+ const recipient1 = await createRecipient({
+ method: 'webhook',
+ systemWebhookId: systemWebhook1.id,
+ });
+
+ const params = {
+ id: recipient1.id,
+ isActive: false,
+ name: randomString(),
+ method: 'webhook' as RecipientMethod,
+ userId: null,
+ systemWebhookId: systemWebhook2.id,
+ };
+
+ const recipient2 = await service.updateRecipient(params, root);
+ expect(recipient2).toMatchObject(params);
+ });
+ });
+
+ describe('deleteRecipient', () => {
+ test('削除成功1', async () => {
+ const recipient1 = await createRecipient({
+ method: 'email',
+ userId: alice.id,
+ });
+
+ await service.deleteRecipient(recipient1.id, root);
+
+ await expect(abuseReportNotificationRecipientRepository.findOneBy({ id: recipient1.id })).resolves.toBeNull();
+ });
+ });
+
+ describe('fetchRecipients', () => {
+ async function create() {
+ const recipient1 = await createRecipient({
+ method: 'email',
+ userId: alice.id,
+ });
+ const recipient2 = await createRecipient({
+ method: 'email',
+ userId: bob.id,
+ });
+
+ const recipient3 = await createRecipient({
+ method: 'webhook',
+ systemWebhookId: systemWebhook1.id,
+ });
+ const recipient4 = await createRecipient({
+ method: 'webhook',
+ systemWebhookId: systemWebhook2.id,
+ });
+
+ return [recipient1, recipient2, recipient3, recipient4];
+ }
+
+ test('フィルタなし', async () => {
+ const [recipient1, recipient2, recipient3, recipient4] = await create();
+
+ const recipients = await service.fetchRecipients({});
+ expect(recipients).toEqual([recipient1, recipient2, recipient3, recipient4]);
+ });
+
+ test('フィルタなし(非モデレータは除外される)', async () => {
+ roleService.getModeratorIds.mockClear();
+ roleService.getModeratorIds.mockResolvedValue([root.id, bob.id]);
+
+ const [recipient1, recipient2, recipient3, recipient4] = await create();
+
+ const recipients = await service.fetchRecipients({});
+ // aliceはモデレータではないので除外される
+ expect(recipients).toEqual([recipient2, recipient3, recipient4]);
+ });
+
+ test('フィルタなし(非モデレータでも除外されないオプション設定)', async () => {
+ roleService.getModeratorIds.mockClear();
+ roleService.getModeratorIds.mockResolvedValue([root.id, bob.id]);
+
+ const [recipient1, recipient2, recipient3, recipient4] = await create();
+
+ const recipients = await service.fetchRecipients({}, { removeUnauthorized: false });
+ expect(recipients).toEqual([recipient1, recipient2, recipient3, recipient4]);
+ });
+
+ test('emailのみ', async () => {
+ const [recipient1, recipient2, recipient3, recipient4] = await create();
+
+ const recipients = await service.fetchRecipients({ method: ['email'] });
+ expect(recipients).toEqual([recipient1, recipient2]);
+ });
+
+ test('webhookのみ', async () => {
+ const [recipient1, recipient2, recipient3, recipient4] = await create();
+
+ const recipients = await service.fetchRecipients({ method: ['webhook'] });
+ expect(recipients).toEqual([recipient3, recipient4]);
+ });
+
+ test('すべて', async () => {
+ const [recipient1, recipient2, recipient3, recipient4] = await create();
+
+ const recipients = await service.fetchRecipients({ method: ['email', 'webhook'] });
+ expect(recipients).toEqual([recipient1, recipient2, recipient3, recipient4]);
+ });
+
+ test('ID指定', async () => {
+ const [recipient1, recipient2, recipient3, recipient4] = await create();
+
+ const recipients = await service.fetchRecipients({ ids: [recipient1.id, recipient3.id] });
+ expect(recipients).toEqual([recipient1, recipient3]);
+ });
+
+ test('ID指定(method=emailではないIDが混ざりこまない)', async () => {
+ const [recipient1, recipient2, recipient3, recipient4] = await create();
+
+ const recipients = await service.fetchRecipients({ ids: [recipient1.id, recipient3.id], method: ['email'] });
+ expect(recipients).toEqual([recipient1]);
+ });
+
+ test('ID指定(method=webhookではないIDが混ざりこまない)', async () => {
+ const [recipient1, recipient2, recipient3, recipient4] = await create();
+
+ const recipients = await service.fetchRecipients({ ids: [recipient1.id, recipient3.id], method: ['webhook'] });
+ expect(recipients).toEqual([recipient3]);
+ });
+ });
+});
diff --git a/packages/backend/test/unit/RoleService.ts b/packages/backend/test/unit/RoleService.ts
index ec441735d7..69fa4162fb 100644
--- a/packages/backend/test/unit/RoleService.ts
+++ b/packages/backend/test/unit/RoleService.ts
@@ -3,8 +3,6 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import { UserEntityService } from '@/core/entities/UserEntityService.js';
-
process.env.NODE_ENV = 'test';
import { jest } from '@jest/globals';
@@ -13,7 +11,14 @@ import { Test } from '@nestjs/testing';
import * as lolex from '@sinonjs/fake-timers';
import { GlobalModule } from '@/GlobalModule.js';
import { RoleService } from '@/core/RoleService.js';
-import type { MiRole, MiUser, RoleAssignmentsRepository, RolesRepository, UsersRepository } from '@/models/_.js';
+import {
+ MiRole,
+ MiRoleAssignment,
+ MiUser,
+ RoleAssignmentsRepository,
+ RolesRepository,
+ UsersRepository,
+} from '@/models/_.js';
import { DI } from '@/di-symbols.js';
import { MetaService } from '@/core/MetaService.js';
import { genAidx } from '@/misc/id/aidx.js';
@@ -23,6 +28,7 @@ import { GlobalEventService } from '@/core/GlobalEventService.js';
import { secureRndstr } from '@/misc/secure-rndstr.js';
import { NotificationService } from '@/core/NotificationService.js';
import { RoleCondFormulaValue } from '@/models/Role.js';
+import { UserEntityService } from '@/core/entities/UserEntityService.js';
import { sleep } from '../utils.js';
import type { TestingModule } from '@nestjs/testing';
import type { MockFunctionMetadata } from 'jest-mock';
@@ -39,27 +45,27 @@ describe('RoleService', () => {
let notificationService: jest.Mocked;
let clock: lolex.InstalledClock;
- function createUser(data: Partial = {}) {
+ async function createUser(data: Partial = {}) {
const un = secureRndstr(16);
- return usersRepository.insert({
+ const x = await usersRepository.insert({
id: genAidx(Date.now()),
username: un,
usernameLower: un,
...data,
- })
- .then(x => usersRepository.findOneByOrFail(x.identifiers[0]));
+ });
+ return await usersRepository.findOneByOrFail(x.identifiers[0]);
}
- function createRole(data: Partial = {}) {
- return rolesRepository.insert({
+ async function createRole(data: Partial = {}) {
+ const x = await rolesRepository.insert({
id: genAidx(Date.now()),
updatedAt: new Date(),
lastUsedAt: new Date(),
name: '',
description: '',
...data,
- })
- .then(x => rolesRepository.findOneByOrFail(x.identifiers[0]));
+ });
+ return await rolesRepository.findOneByOrFail(x.identifiers[0]);
}
function createConditionalRole(condFormula: RoleCondFormulaValue, data: Partial = {}) {
@@ -71,6 +77,20 @@ describe('RoleService', () => {
});
}
+ async function assignRole(args: Partial) {
+ const id = genAidx(Date.now());
+ const expiresAt = new Date();
+ expiresAt.setDate(expiresAt.getDate() + 1);
+
+ await roleAssignmentsRepository.insert({
+ id,
+ expiresAt,
+ ...args,
+ });
+
+ return await roleAssignmentsRepository.findOneByOrFail({ id });
+ }
+
function aidx() {
return genAidx(Date.now());
}
@@ -265,6 +285,96 @@ describe('RoleService', () => {
});
});
+ describe('getModeratorIds', () => {
+ test('includeAdmins = false, excludeExpire = false', async () => {
+ const [adminUser1, adminUser2, modeUser1, modeUser2, normalUser1, normalUser2] = await Promise.all([
+ createUser(), createUser(), createUser(), createUser(), createUser(), createUser(),
+ ]);
+
+ const role1 = await createRole({ name: 'admin', isAdministrator: true });
+ const role2 = await createRole({ name: 'moderator', isModerator: true });
+ const role3 = await createRole({ name: 'normal' });
+
+ await Promise.all([
+ assignRole({ userId: adminUser1.id, roleId: role1.id }),
+ assignRole({ userId: adminUser2.id, roleId: role1.id, expiresAt: new Date(Date.now() - 1000) }),
+ assignRole({ userId: modeUser1.id, roleId: role2.id }),
+ assignRole({ userId: modeUser2.id, roleId: role2.id, expiresAt: new Date(Date.now() - 1000) }),
+ assignRole({ userId: normalUser1.id, roleId: role3.id }),
+ assignRole({ userId: normalUser2.id, roleId: role3.id, expiresAt: new Date(Date.now() - 1000) }),
+ ]);
+
+ const result = await roleService.getModeratorIds(false, false);
+ expect(result).toEqual([modeUser1.id, modeUser2.id]);
+ });
+
+ test('includeAdmins = false, excludeExpire = true', async () => {
+ const [adminUser1, adminUser2, modeUser1, modeUser2, normalUser1, normalUser2] = await Promise.all([
+ createUser(), createUser(), createUser(), createUser(), createUser(), createUser(),
+ ]);
+
+ const role1 = await createRole({ name: 'admin', isAdministrator: true });
+ const role2 = await createRole({ name: 'moderator', isModerator: true });
+ const role3 = await createRole({ name: 'normal' });
+
+ await Promise.all([
+ assignRole({ userId: adminUser1.id, roleId: role1.id }),
+ assignRole({ userId: adminUser2.id, roleId: role1.id, expiresAt: new Date(Date.now() - 1000) }),
+ assignRole({ userId: modeUser1.id, roleId: role2.id }),
+ assignRole({ userId: modeUser2.id, roleId: role2.id, expiresAt: new Date(Date.now() - 1000) }),
+ assignRole({ userId: normalUser1.id, roleId: role3.id }),
+ assignRole({ userId: normalUser2.id, roleId: role3.id, expiresAt: new Date(Date.now() - 1000) }),
+ ]);
+
+ const result = await roleService.getModeratorIds(false, true);
+ expect(result).toEqual([modeUser1.id]);
+ });
+
+ test('includeAdmins = true, excludeExpire = false', async () => {
+ const [adminUser1, adminUser2, modeUser1, modeUser2, normalUser1, normalUser2] = await Promise.all([
+ createUser(), createUser(), createUser(), createUser(), createUser(), createUser(),
+ ]);
+
+ const role1 = await createRole({ name: 'admin', isAdministrator: true });
+ const role2 = await createRole({ name: 'moderator', isModerator: true });
+ const role3 = await createRole({ name: 'normal' });
+
+ await Promise.all([
+ assignRole({ userId: adminUser1.id, roleId: role1.id }),
+ assignRole({ userId: adminUser2.id, roleId: role1.id, expiresAt: new Date(Date.now() - 1000) }),
+ assignRole({ userId: modeUser1.id, roleId: role2.id }),
+ assignRole({ userId: modeUser2.id, roleId: role2.id, expiresAt: new Date(Date.now() - 1000) }),
+ assignRole({ userId: normalUser1.id, roleId: role3.id }),
+ assignRole({ userId: normalUser2.id, roleId: role3.id, expiresAt: new Date(Date.now() - 1000) }),
+ ]);
+
+ const result = await roleService.getModeratorIds(true, false);
+ expect(result).toEqual([adminUser1.id, adminUser2.id, modeUser1.id, modeUser2.id]);
+ });
+
+ test('includeAdmins = true, excludeExpire = true', async () => {
+ const [adminUser1, adminUser2, modeUser1, modeUser2, normalUser1, normalUser2] = await Promise.all([
+ createUser(), createUser(), createUser(), createUser(), createUser(), createUser(),
+ ]);
+
+ const role1 = await createRole({ name: 'admin', isAdministrator: true });
+ const role2 = await createRole({ name: 'moderator', isModerator: true });
+ const role3 = await createRole({ name: 'normal' });
+
+ await Promise.all([
+ assignRole({ userId: adminUser1.id, roleId: role1.id }),
+ assignRole({ userId: adminUser2.id, roleId: role1.id, expiresAt: new Date(Date.now() - 1000) }),
+ assignRole({ userId: modeUser1.id, roleId: role2.id }),
+ assignRole({ userId: modeUser2.id, roleId: role2.id, expiresAt: new Date(Date.now() - 1000) }),
+ assignRole({ userId: normalUser1.id, roleId: role3.id }),
+ assignRole({ userId: normalUser2.id, roleId: role3.id, expiresAt: new Date(Date.now() - 1000) }),
+ ]);
+
+ const result = await roleService.getModeratorIds(true, true);
+ expect(result).toEqual([adminUser1.id, modeUser1.id]);
+ });
+ });
+
describe('conditional role', () => {
test('~かつ~', async () => {
const [user1, user2, user3, user4] = await Promise.all([
diff --git a/packages/backend/test/unit/SystemWebhookService.ts b/packages/backend/test/unit/SystemWebhookService.ts
new file mode 100644
index 0000000000..41b7f977ca
--- /dev/null
+++ b/packages/backend/test/unit/SystemWebhookService.ts
@@ -0,0 +1,515 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { afterEach, beforeEach, describe, expect, jest } from '@jest/globals';
+import { Test, TestingModule } from '@nestjs/testing';
+import { MiUser } from '@/models/User.js';
+import { MiSystemWebhook, SystemWebhookEventType } from '@/models/SystemWebhook.js';
+import { SystemWebhooksRepository, UsersRepository } from '@/models/_.js';
+import { IdService } from '@/core/IdService.js';
+import { GlobalModule } from '@/GlobalModule.js';
+import { ModerationLogService } from '@/core/ModerationLogService.js';
+import { GlobalEventService } from '@/core/GlobalEventService.js';
+import { DI } from '@/di-symbols.js';
+import { QueueService } from '@/core/QueueService.js';
+import { LoggerService } from '@/core/LoggerService.js';
+import { SystemWebhookService } from '@/core/SystemWebhookService.js';
+import { randomString, sleep } from '../utils.js';
+
+describe('SystemWebhookService', () => {
+ let app: TestingModule;
+ let service: SystemWebhookService;
+
+ // --------------------------------------------------------------------------------------
+
+ let usersRepository: UsersRepository;
+ let systemWebhooksRepository: SystemWebhooksRepository;
+ let idService: IdService;
+ let queueService: jest.Mocked;
+
+ // --------------------------------------------------------------------------------------
+
+ let root: MiUser;
+
+ // --------------------------------------------------------------------------------------
+
+ async function createUser(data: Partial = {}) {
+ return await usersRepository
+ .insert({
+ id: idService.gen(),
+ ...data,
+ })
+ .then(x => usersRepository.findOneByOrFail(x.identifiers[0]));
+ }
+
+ async function createWebhook(data: Partial = {}) {
+ return systemWebhooksRepository
+ .insert({
+ id: idService.gen(),
+ name: randomString(),
+ on: ['abuseReport'],
+ url: 'https://example.com',
+ secret: randomString(),
+ ...data,
+ })
+ .then(x => systemWebhooksRepository.findOneByOrFail(x.identifiers[0]));
+ }
+
+ // --------------------------------------------------------------------------------------
+
+ async function beforeAllImpl() {
+ app = await Test
+ .createTestingModule({
+ imports: [
+ GlobalModule,
+ ],
+ providers: [
+ SystemWebhookService,
+ IdService,
+ LoggerService,
+ GlobalEventService,
+ {
+ provide: QueueService, useFactory: () => ({ systemWebhookDeliver: jest.fn() }),
+ },
+ {
+ provide: ModerationLogService, useFactory: () => ({ log: () => Promise.resolve() }),
+ },
+ ],
+ })
+ .compile();
+
+ usersRepository = app.get(DI.usersRepository);
+ systemWebhooksRepository = app.get(DI.systemWebhooksRepository);
+
+ service = app.get(SystemWebhookService);
+ idService = app.get(IdService);
+ queueService = app.get(QueueService) as jest.Mocked;
+
+ app.enableShutdownHooks();
+ }
+
+ async function afterAllImpl() {
+ await app.close();
+ }
+
+ async function beforeEachImpl() {
+ root = await createUser({ isRoot: true, username: 'root', usernameLower: 'root' });
+ }
+
+ async function afterEachImpl() {
+ await usersRepository.delete({});
+ await systemWebhooksRepository.delete({});
+ }
+
+ // --------------------------------------------------------------------------------------
+
+ describe('アプリを毎回作り直す必要のないグループ', () => {
+ beforeAll(beforeAllImpl);
+ afterAll(afterAllImpl);
+ beforeEach(beforeEachImpl);
+ afterEach(afterEachImpl);
+
+ describe('fetchSystemWebhooks', () => {
+ test('フィルタなし', async () => {
+ const webhook1 = await createWebhook({
+ isActive: true,
+ on: ['abuseReport'],
+ });
+ const webhook2 = await createWebhook({
+ isActive: false,
+ on: ['abuseReport'],
+ });
+ const webhook3 = await createWebhook({
+ isActive: true,
+ on: ['abuseReportResolved'],
+ });
+ const webhook4 = await createWebhook({
+ isActive: false,
+ on: [],
+ });
+
+ const fetchedWebhooks = await service.fetchSystemWebhooks();
+ expect(fetchedWebhooks).toEqual([webhook1, webhook2, webhook3, webhook4]);
+ });
+
+ test('activeのみ', async () => {
+ const webhook1 = await createWebhook({
+ isActive: true,
+ on: ['abuseReport'],
+ });
+ const webhook2 = await createWebhook({
+ isActive: false,
+ on: ['abuseReport'],
+ });
+ const webhook3 = await createWebhook({
+ isActive: true,
+ on: ['abuseReportResolved'],
+ });
+ const webhook4 = await createWebhook({
+ isActive: false,
+ on: [],
+ });
+
+ const fetchedWebhooks = await service.fetchSystemWebhooks({ isActive: true });
+ expect(fetchedWebhooks).toEqual([webhook1, webhook3]);
+ });
+
+ test('特定のイベントのみ', async () => {
+ const webhook1 = await createWebhook({
+ isActive: true,
+ on: ['abuseReport'],
+ });
+ const webhook2 = await createWebhook({
+ isActive: false,
+ on: ['abuseReport'],
+ });
+ const webhook3 = await createWebhook({
+ isActive: true,
+ on: ['abuseReportResolved'],
+ });
+ const webhook4 = await createWebhook({
+ isActive: false,
+ on: [],
+ });
+
+ const fetchedWebhooks = await service.fetchSystemWebhooks({ on: ['abuseReport'] });
+ expect(fetchedWebhooks).toEqual([webhook1, webhook2]);
+ });
+
+ test('activeな特定のイベントのみ', async () => {
+ const webhook1 = await createWebhook({
+ isActive: true,
+ on: ['abuseReport'],
+ });
+ const webhook2 = await createWebhook({
+ isActive: false,
+ on: ['abuseReport'],
+ });
+ const webhook3 = await createWebhook({
+ isActive: true,
+ on: ['abuseReportResolved'],
+ });
+ const webhook4 = await createWebhook({
+ isActive: false,
+ on: [],
+ });
+
+ const fetchedWebhooks = await service.fetchSystemWebhooks({ on: ['abuseReport'], isActive: true });
+ expect(fetchedWebhooks).toEqual([webhook1]);
+ });
+
+ test('ID指定', async () => {
+ const webhook1 = await createWebhook({
+ isActive: true,
+ on: ['abuseReport'],
+ });
+ const webhook2 = await createWebhook({
+ isActive: false,
+ on: ['abuseReport'],
+ });
+ const webhook3 = await createWebhook({
+ isActive: true,
+ on: ['abuseReportResolved'],
+ });
+ const webhook4 = await createWebhook({
+ isActive: false,
+ on: [],
+ });
+
+ const fetchedWebhooks = await service.fetchSystemWebhooks({ ids: [webhook1.id, webhook4.id] });
+ expect(fetchedWebhooks).toEqual([webhook1, webhook4]);
+ });
+
+ test('ID指定(他条件とANDになるか見たい)', async () => {
+ const webhook1 = await createWebhook({
+ isActive: true,
+ on: ['abuseReport'],
+ });
+ const webhook2 = await createWebhook({
+ isActive: false,
+ on: ['abuseReport'],
+ });
+ const webhook3 = await createWebhook({
+ isActive: true,
+ on: ['abuseReportResolved'],
+ });
+ const webhook4 = await createWebhook({
+ isActive: false,
+ on: [],
+ });
+
+ const fetchedWebhooks = await service.fetchSystemWebhooks({ ids: [webhook1.id, webhook4.id], isActive: false });
+ expect(fetchedWebhooks).toEqual([webhook4]);
+ });
+ });
+
+ describe('createSystemWebhook', () => {
+ test('作成成功 ', async () => {
+ const params = {
+ isActive: true,
+ name: randomString(),
+ on: ['abuseReport'] as SystemWebhookEventType[],
+ url: 'https://example.com',
+ secret: randomString(),
+ };
+
+ const webhook = await service.createSystemWebhook(params, root);
+ expect(webhook).toMatchObject(params);
+ });
+ });
+
+ describe('updateSystemWebhook', () => {
+ test('更新成功', async () => {
+ const webhook = await createWebhook({
+ isActive: true,
+ on: ['abuseReport'],
+ });
+
+ const params = {
+ id: webhook.id,
+ isActive: false,
+ name: randomString(),
+ on: ['abuseReport'] as SystemWebhookEventType[],
+ url: randomString(),
+ secret: randomString(),
+ };
+
+ const updatedWebhook = await service.updateSystemWebhook(params, root);
+ expect(updatedWebhook).toMatchObject(params);
+ });
+ });
+
+ describe('deleteSystemWebhook', () => {
+ test('削除成功', async () => {
+ const webhook = await createWebhook({
+ isActive: true,
+ on: ['abuseReport'],
+ });
+
+ await service.deleteSystemWebhook(webhook.id, root);
+
+ await expect(systemWebhooksRepository.findOneBy({ id: webhook.id })).resolves.toBeNull();
+ });
+ });
+ });
+
+ describe('アプリを毎回作り直す必要があるグループ', () => {
+ beforeEach(async () => {
+ await beforeAllImpl();
+ await beforeEachImpl();
+ });
+
+ afterEach(async () => {
+ await afterEachImpl();
+ await afterAllImpl();
+ });
+
+ describe('enqueueSystemWebhook', () => {
+ test('キューに追加成功', async () => {
+ const webhook = await createWebhook({
+ isActive: true,
+ on: ['abuseReport'],
+ });
+ await service.enqueueSystemWebhook(webhook.id, 'abuseReport', { foo: 'bar' });
+
+ expect(queueService.systemWebhookDeliver).toHaveBeenCalled();
+ });
+
+ test('非アクティブなWebhookはキューに追加されない', async () => {
+ const webhook = await createWebhook({
+ isActive: false,
+ on: ['abuseReport'],
+ });
+ await service.enqueueSystemWebhook(webhook.id, 'abuseReport', { foo: 'bar' });
+
+ expect(queueService.systemWebhookDeliver).not.toHaveBeenCalled();
+ });
+
+ test('未許可のイベント種別が渡された場合はWebhookはキューに追加されない', async () => {
+ const webhook1 = await createWebhook({
+ isActive: true,
+ on: [],
+ });
+ const webhook2 = await createWebhook({
+ isActive: true,
+ on: ['abuseReportResolved'],
+ });
+ await service.enqueueSystemWebhook(webhook1.id, 'abuseReport', { foo: 'bar' });
+ await service.enqueueSystemWebhook(webhook2.id, 'abuseReport', { foo: 'bar' });
+
+ expect(queueService.systemWebhookDeliver).not.toHaveBeenCalled();
+ });
+ });
+
+ describe('fetchActiveSystemWebhooks', () => {
+ describe('systemWebhookCreated', () => {
+ test('ActiveなWebhookが追加された時、キャッシュに追加されている', async () => {
+ const webhook = await service.createSystemWebhook(
+ {
+ isActive: true,
+ name: randomString(),
+ on: ['abuseReport'],
+ url: 'https://example.com',
+ secret: randomString(),
+ },
+ root,
+ );
+
+ // redisでの配信経由で更新されるのでちょっと待つ
+ await sleep(500);
+
+ const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
+ expect(fetchedWebhooks).toEqual([webhook]);
+ });
+
+ test('NotActiveなWebhookが追加された時、キャッシュに追加されていない', async () => {
+ const webhook = await service.createSystemWebhook(
+ {
+ isActive: false,
+ name: randomString(),
+ on: ['abuseReport'],
+ url: 'https://example.com',
+ secret: randomString(),
+ },
+ root,
+ );
+
+ // redisでの配信経由で更新されるのでちょっと待つ
+ await sleep(500);
+
+ const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
+ expect(fetchedWebhooks).toEqual([]);
+ });
+ });
+
+ describe('systemWebhookUpdated', () => {
+ test('ActiveなWebhookが編集された時、キャッシュに反映されている', async () => {
+ const id = idService.gen();
+ await createWebhook({ id });
+ // キャッシュ作成
+ const webhook1 = await service.fetchActiveSystemWebhooks();
+ // 読み込まれていることをチェック
+ expect(webhook1.length).toEqual(1);
+ expect(webhook1[0].id).toEqual(id);
+
+ const webhook2 = await service.updateSystemWebhook(
+ {
+ id,
+ isActive: true,
+ name: randomString(),
+ on: ['abuseReport'],
+ url: 'https://example.com',
+ secret: randomString(),
+ },
+ root,
+ );
+
+ // redisでの配信経由で更新されるのでちょっと待つ
+ await sleep(500);
+
+ const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
+ expect(fetchedWebhooks).toEqual([webhook2]);
+ });
+
+ test('NotActiveなWebhookが編集された時、キャッシュに追加されない', async () => {
+ const id = idService.gen();
+ await createWebhook({ id, isActive: false });
+ // キャッシュ作成
+ const webhook1 = await service.fetchActiveSystemWebhooks();
+ // 読み込まれていないことをチェック
+ expect(webhook1.length).toEqual(0);
+
+ const webhook2 = await service.updateSystemWebhook(
+ {
+ id,
+ isActive: false,
+ name: randomString(),
+ on: ['abuseReport'],
+ url: 'https://example.com',
+ secret: randomString(),
+ },
+ root,
+ );
+
+ // redisでの配信経由で更新されるのでちょっと待つ
+ await sleep(500);
+
+ const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
+ expect(fetchedWebhooks.length).toEqual(0);
+ });
+
+ test('NotActiveなWebhookがActiveにされた時、キャッシュに追加されている', async () => {
+ const id = idService.gen();
+ const baseWebhook = await createWebhook({ id, isActive: false });
+ // キャッシュ作成
+ const webhook1 = await service.fetchActiveSystemWebhooks();
+ // 読み込まれていないことをチェック
+ expect(webhook1.length).toEqual(0);
+
+ const webhook2 = await service.updateSystemWebhook(
+ {
+ ...baseWebhook,
+ isActive: true,
+ },
+ root,
+ );
+
+ // redisでの配信経由で更新されるのでちょっと待つ
+ await sleep(500);
+
+ const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
+ expect(fetchedWebhooks).toEqual([webhook2]);
+ });
+
+ test('ActiveなWebhookがNotActiveにされた時、キャッシュから削除されている', async () => {
+ const id = idService.gen();
+ const baseWebhook = await createWebhook({ id, isActive: true });
+ // キャッシュ作成
+ const webhook1 = await service.fetchActiveSystemWebhooks();
+ // 読み込まれていることをチェック
+ expect(webhook1.length).toEqual(1);
+ expect(webhook1[0].id).toEqual(id);
+
+ const webhook2 = await service.updateSystemWebhook(
+ {
+ ...baseWebhook,
+ isActive: false,
+ },
+ root,
+ );
+
+ // redisでの配信経由で更新されるのでちょっと待つ
+ await sleep(500);
+
+ const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
+ expect(fetchedWebhooks.length).toEqual(0);
+ });
+ });
+
+ describe('systemWebhookDeleted', () => {
+ test('キャッシュから削除されている', async () => {
+ const id = idService.gen();
+ const baseWebhook = await createWebhook({ id, isActive: true });
+ // キャッシュ作成
+ const webhook1 = await service.fetchActiveSystemWebhooks();
+ // 読み込まれていることをチェック
+ expect(webhook1.length).toEqual(1);
+ expect(webhook1[0].id).toEqual(id);
+
+ const webhook2 = await service.deleteSystemWebhook(
+ id,
+ root,
+ );
+
+ // redisでの配信経由で更新されるのでちょっと待つ
+ await sleep(500);
+
+ const fetchedWebhooks = await service.fetchActiveSystemWebhooks();
+ expect(fetchedWebhooks.length).toEqual(0);
+ });
+ });
+ });
+ });
+});
diff --git a/packages/frontend/src/components/MkButton.vue b/packages/frontend/src/components/MkButton.vue
index 3489255b91..25b003ba5a 100644
--- a/packages/frontend/src/components/MkButton.vue
+++ b/packages/frontend/src/components/MkButton.vue
@@ -11,6 +11,7 @@ SPDX-License-Identifier: AGPL-3.0-only
:type="type"
:name="name"
:value="value"
+ :disabled="disabled"
@click="emit('click', $event)"
@mousedown="onMousedown"
>
@@ -55,6 +56,7 @@ const props = defineProps<{
asLike?: boolean;
name?: string;
value?: string;
+ disabled?: boolean;
}>();
const emit = defineEmits<{
diff --git a/packages/frontend/src/components/MkDivider.vue b/packages/frontend/src/components/MkDivider.vue
new file mode 100644
index 0000000000..e4e3af99e4
--- /dev/null
+++ b/packages/frontend/src/components/MkDivider.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
diff --git a/packages/frontend/src/components/MkSwitch.vue b/packages/frontend/src/components/MkSwitch.vue
index a19b45448b..721ac357f4 100644
--- a/packages/frontend/src/components/MkSwitch.vue
+++ b/packages/frontend/src/components/MkSwitch.vue
@@ -13,7 +13,7 @@ SPDX-License-Identifier: AGPL-3.0-only
@keydown.enter="toggle"
>
-
+
@@ -34,16 +34,19 @@ const props = defineProps<{
modelValue: boolean | Ref;
disabled?: boolean;
helpText?: string;
+ noBody?: boolean;
}>();
const emit = defineEmits<{
(ev: 'update:modelValue', v: boolean): void;
+ (ev: 'change', v: boolean): void;
}>();
const checked = toRefs(props).modelValue;
const toggle = () => {
if (props.disabled) return;
emit('update:modelValue', !checked.value);
+ emit('change', !checked.value);
};
diff --git a/packages/frontend/src/components/MkSystemWebhookEditor.impl.ts b/packages/frontend/src/components/MkSystemWebhookEditor.impl.ts
new file mode 100644
index 0000000000..1222d3261d
--- /dev/null
+++ b/packages/frontend/src/components/MkSystemWebhookEditor.impl.ts
@@ -0,0 +1,45 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { defineAsyncComponent } from 'vue';
+import * as os from '@/os.js';
+
+export type SystemWebhookEventType = 'abuseReport' | 'abuseReportResolved';
+
+export type MkSystemWebhookEditorProps = {
+ mode: 'create' | 'edit';
+ id?: string;
+ requiredEvents?: SystemWebhookEventType[];
+};
+
+export type MkSystemWebhookResult = {
+ id?: string;
+ isActive: boolean;
+ name: string;
+ on: SystemWebhookEventType[];
+ url: string;
+ secret: string;
+};
+
+export async function showSystemWebhookEditorDialog(props: MkSystemWebhookEditorProps): Promise {
+ const { dispose, result } = await new Promise<{ dispose: () => void, result: MkSystemWebhookResult | null }>(async resolve => {
+ const res = await os.popup(
+ defineAsyncComponent(() => import('@/components/MkSystemWebhookEditor.vue')),
+ props,
+ {
+ submitted: (ev: MkSystemWebhookResult) => {
+ resolve({ dispose: res.dispose, result: ev });
+ },
+ closed: () => {
+ resolve({ dispose: res.dispose, result: null });
+ },
+ },
+ );
+ });
+
+ dispose();
+
+ return result;
+}
diff --git a/packages/frontend/src/components/MkSystemWebhookEditor.vue b/packages/frontend/src/components/MkSystemWebhookEditor.vue
new file mode 100644
index 0000000000..007d841f00
--- /dev/null
+++ b/packages/frontend/src/components/MkSystemWebhookEditor.vue
@@ -0,0 +1,217 @@
+
+
+
+
+
+ {{ mode === 'create' ? i18n.ts._webhookSettings.createWebhook : i18n.ts._webhookSettings.modifyWebhook }}
+
+
+
+
+
+ {{ i18n.ts._webhookSettings.name }}
+
+
+ URL
+
+
+ {{ i18n.ts._webhookSettings.secret }}
+
+
+ {{ i18n.ts._webhookSettings.events }}
+
+
+
+ {{ i18n.ts._webhookSettings._systemEvents.abuseReport }}
+
+
+ {{ i18n.ts._webhookSettings._systemEvents.abuseReportResolved }}
+
+
+
+
+
+ {{ i18n.ts.enable }}
+
+
+
+
+
+ {{ i18n.ts.ok }}
+
+ {{ i18n.ts.cancel }}
+
+
+
+
+
+
+
+
+
diff --git a/packages/frontend/src/pages/admin/abuse-report/notification-recipient.editor.vue b/packages/frontend/src/pages/admin/abuse-report/notification-recipient.editor.vue
new file mode 100644
index 0000000000..ffe9c620d6
--- /dev/null
+++ b/packages/frontend/src/pages/admin/abuse-report/notification-recipient.editor.vue
@@ -0,0 +1,307 @@
+
+
+
+
+
+ {{ mode === 'create' ? i18n.ts._abuseReport._notificationRecipient.createRecipient : i18n.ts._abuseReport._notificationRecipient.modifyRecipient }}
+
+
+
+
+
+ {{ i18n.ts.title }}
+
+
+ {{ i18n.ts._abuseReport._notificationRecipient.recipientType }}
+
+
+
+ {{ methodCaption }}
+
+
+
+
+ {{ i18n.ts._abuseReport._notificationRecipient.notifiedUser }}
+
+
+
+
+ {{ i18n.ts._abuseReport._notificationRecipient.notifiedWebhook }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ i18n.ts.enable }}
+
+
+
+
+
+ {{ i18n.ts.ok }}
+ {{ i18n.ts.cancel }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/frontend/src/pages/admin/abuse-report/notification-recipient.item.vue b/packages/frontend/src/pages/admin/abuse-report/notification-recipient.item.vue
new file mode 100644
index 0000000000..0b86808faf
--- /dev/null
+++ b/packages/frontend/src/pages/admin/abuse-report/notification-recipient.item.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
{{ methodName }}
+
{{ entity.name }}
+
+
+ {{
+ `${i18n.ts._abuseReport._notificationRecipient.notifiedUser}: ` + ((user.name) ? `${user.name}(${user.username})` : user.username)
+ }}
+
+
+ {{ `${i18n.ts._abuseReport._notificationRecipient.notifiedWebhook}: ` + systemWebhook.name }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/frontend/src/pages/admin/abuse-report/notification-recipient.vue b/packages/frontend/src/pages/admin/abuse-report/notification-recipient.vue
new file mode 100644
index 0000000000..a52f8eb7af
--- /dev/null
+++ b/packages/frontend/src/pages/admin/abuse-report/notification-recipient.vue
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ i18n.ts._abuseReport._notificationRecipient.createRecipient }}
+
+
+
+
+ {{ i18n.ts._abuseReport._notificationRecipient.recipientType }}
+
+
+
+
+
+ {{ i18n.ts._abuseReport._notificationRecipient.keywords }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/frontend/src/pages/admin/abuses.vue b/packages/frontend/src/pages/admin/abuses.vue
index d2f4a4b531..9a9fa472a5 100644
--- a/packages/frontend/src/pages/admin/abuses.vue
+++ b/packages/frontend/src/pages/admin/abuses.vue
@@ -7,30 +7,33 @@ SPDX-License-Identifier: AGPL-3.0-only
-
-
-
-
-
- {{ i18n.ts.state }}
-
-
-
-
-
- {{ i18n.ts.reporteeOrigin }}
-
-
-
-
-
- {{ i18n.ts.reporterOrigin }}
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -60,6 +61,7 @@ import MkPagination from '@/components/MkPagination.vue';
import XAbuseReport from '@/components/MkAbuseReport.vue';
import { i18n } from '@/i18n.js';
import { definePageMetadata } from '@/scripts/page-metadata.js';
+import MkButton from '@/components/MkButton.vue';
const reports = shallowRef>();
@@ -80,7 +82,7 @@ const pagination = {
};
function resolved(reportId) {
- reports.value.removeItem(reportId);
+ reports.value?.removeItem(reportId);
}
const headerActions = computed(() => []);
@@ -92,3 +94,26 @@ definePageMetadata(() => ({
icon: 'ti ti-exclamation-circle',
}));
+
+
diff --git a/packages/frontend/src/pages/admin/index.vue b/packages/frontend/src/pages/admin/index.vue
index 794feae202..292f10da1a 100644
--- a/packages/frontend/src/pages/admin/index.vue
+++ b/packages/frontend/src/pages/admin/index.vue
@@ -214,6 +214,11 @@ const menuDef = computed(() => [{
text: i18n.ts.externalServices,
to: '/admin/external-services',
active: currentPage.value?.route.name === 'external-services',
+ }, {
+ icon: 'ti ti-webhook',
+ text: 'Webhook',
+ to: '/admin/system-webhook',
+ active: currentPage.value?.route.name === 'system-webhook',
}, {
icon: 'ti ti-adjustments',
text: i18n.ts.other,
diff --git a/packages/frontend/src/pages/admin/modlog.ModLog.vue b/packages/frontend/src/pages/admin/modlog.ModLog.vue
index e33c882721..91f1c7c5e6 100644
--- a/packages/frontend/src/pages/admin/modlog.ModLog.vue
+++ b/packages/frontend/src/pages/admin/modlog.ModLog.vue
@@ -8,9 +8,35 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts._moderationLogTypes[log.type] }}
: @{{ log.info.userUsername }}{{ log.info.userHost ? '@' + log.info.userHost : '' }}
@@ -40,6 +66,12 @@ SPDX-License-Identifier: AGPL-3.0-only
: {{ log.info.avatarDecoration.name }}
: {{ log.info.before.name }}
: {{ log.info.avatarDecoration.name }}
+ : {{ log.info.webhook.name }}
+ : {{ log.info.before.name }}
+ : {{ log.info.webhook.name }}
+ : {{ log.info.recipient.name }}
+ : {{ log.info.before.name }}
+ : {{ log.info.recipient.name }}
@@ -116,6 +148,16 @@ SPDX-License-Identifier: AGPL-3.0-only
+
+
+
+
+
+
+
+
+
+
raw
diff --git a/packages/frontend/src/pages/admin/system-webhook.item.vue b/packages/frontend/src/pages/admin/system-webhook.item.vue
new file mode 100644
index 0000000000..0c07122af3
--- /dev/null
+++ b/packages/frontend/src/pages/admin/system-webhook.item.vue
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+ {{ entity.name || entity.url }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/frontend/src/pages/admin/system-webhook.vue b/packages/frontend/src/pages/admin/system-webhook.vue
new file mode 100644
index 0000000000..7a40eec944
--- /dev/null
+++ b/packages/frontend/src/pages/admin/system-webhook.vue
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ i18n.ts._webhookSettings.createWebhook }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/frontend/src/router/definition.ts b/packages/frontend/src/router/definition.ts
index c12ae0fa57..8a443f627b 100644
--- a/packages/frontend/src/router/definition.ts
+++ b/packages/frontend/src/router/definition.ts
@@ -471,6 +471,14 @@ const routes: RouteDef[] = [{
path: '/invites',
name: 'invites',
component: page(() => import('@/pages/admin/invites.vue')),
+ }, {
+ path: '/abuse-report-notification-recipient',
+ name: 'abuse-report-notification-recipient',
+ component: page(() => import('@/pages/admin/abuse-report/notification-recipient.vue')),
+ }, {
+ path: '/system-webhook',
+ name: 'system-webhook',
+ component: page(() => import('@/pages/admin/system-webhook.vue')),
}, {
path: '/',
component: page(() => import('@/pages/_empty_.vue')),
diff --git a/packages/misskey-js/etc/misskey-js.api.md b/packages/misskey-js/etc/misskey-js.api.md
index 6ff711cabb..bea89f2a7c 100644
--- a/packages/misskey-js/etc/misskey-js.api.md
+++ b/packages/misskey-js/etc/misskey-js.api.md
@@ -6,6 +6,11 @@
import { EventEmitter } from 'eventemitter3';
+// Warning: (ae-forgotten-export) The symbol "components" needs to be exported by the entry point index.d.ts
+//
+// @public (undocumented)
+type AbuseReportNotificationRecipient = components['schemas']['AbuseReportNotificationRecipient'];
+
// @public (undocumented)
export type Acct = {
username: string;
@@ -21,13 +26,38 @@ declare namespace acct {
}
export { acct }
-// Warning: (ae-forgotten-export) The symbol "components" needs to be exported by the entry point index.d.ts
-//
// @public (undocumented)
type Ad = components['schemas']['Ad'];
// Warning: (ae-forgotten-export) The symbol "operations" needs to be exported by the entry point index.d.ts
//
+// @public (undocumented)
+type AdminAbuseReportNotificationRecipientCreateRequest = operations['admin___abuse-report___notification-recipient___create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAbuseReportNotificationRecipientCreateResponse = operations['admin___abuse-report___notification-recipient___create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAbuseReportNotificationRecipientDeleteRequest = operations['admin___abuse-report___notification-recipient___delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAbuseReportNotificationRecipientListRequest = operations['admin___abuse-report___notification-recipient___list']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAbuseReportNotificationRecipientListResponse = operations['admin___abuse-report___notification-recipient___list']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAbuseReportNotificationRecipientShowRequest = operations['admin___abuse-report___notification-recipient___show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAbuseReportNotificationRecipientShowResponse = operations['admin___abuse-report___notification-recipient___show']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAbuseReportNotificationRecipientUpdateRequest = operations['admin___abuse-report___notification-recipient___update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAbuseReportNotificationRecipientUpdateResponse = operations['admin___abuse-report___notification-recipient___update']['responses']['200']['content']['application/json'];
+
// @public (undocumented)
type AdminAbuseUserReportsRequest = operations['admin___abuse-user-reports']['requestBody']['content']['application/json'];
@@ -307,6 +337,33 @@ type AdminShowUsersResponse = operations['admin___show-users']['responses']['200
// @public (undocumented)
type AdminSuspendUserRequest = operations['admin___suspend-user']['requestBody']['content']['application/json'];
+// @public (undocumented)
+type AdminSystemWebhookCreateRequest = operations['admin___system-webhook___create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminSystemWebhookCreateResponse = operations['admin___system-webhook___create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminSystemWebhookDeleteRequest = operations['admin___system-webhook___delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminSystemWebhookListRequest = operations['admin___system-webhook___list']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminSystemWebhookListResponse = operations['admin___system-webhook___list']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminSystemWebhookShowRequest = operations['admin___system-webhook___show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminSystemWebhookShowResponse = operations['admin___system-webhook___show']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminSystemWebhookUpdateRequest = operations['admin___system-webhook___update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminSystemWebhookUpdateResponse = operations['admin___system-webhook___update']['responses']['200']['content']['application/json'];
+
// @public (undocumented)
type AdminUnsetUserAvatarRequest = operations['admin___unset-user-avatar']['requestBody']['content']['application/json'];
@@ -1133,6 +1190,15 @@ declare namespace entities {
AdminMetaResponse,
AdminAbuseUserReportsRequest,
AdminAbuseUserReportsResponse,
+ AdminAbuseReportNotificationRecipientListRequest,
+ AdminAbuseReportNotificationRecipientListResponse,
+ AdminAbuseReportNotificationRecipientShowRequest,
+ AdminAbuseReportNotificationRecipientShowResponse,
+ AdminAbuseReportNotificationRecipientCreateRequest,
+ AdminAbuseReportNotificationRecipientCreateResponse,
+ AdminAbuseReportNotificationRecipientUpdateRequest,
+ AdminAbuseReportNotificationRecipientUpdateResponse,
+ AdminAbuseReportNotificationRecipientDeleteRequest,
AdminAccountsCreateRequest,
AdminAccountsCreateResponse,
AdminAccountsDeleteRequest,
@@ -1228,6 +1294,15 @@ declare namespace entities {
AdminRolesUpdateDefaultPoliciesRequest,
AdminRolesUsersRequest,
AdminRolesUsersResponse,
+ AdminSystemWebhookCreateRequest,
+ AdminSystemWebhookCreateResponse,
+ AdminSystemWebhookDeleteRequest,
+ AdminSystemWebhookListRequest,
+ AdminSystemWebhookListResponse,
+ AdminSystemWebhookShowRequest,
+ AdminSystemWebhookShowResponse,
+ AdminSystemWebhookUpdateRequest,
+ AdminSystemWebhookUpdateResponse,
AnnouncementsRequest,
AnnouncementsResponse,
AnnouncementsShowRequest,
@@ -1733,7 +1808,9 @@ declare namespace entities {
ReversiGameDetailed,
MetaLite,
MetaDetailedOnly,
- MetaDetailed
+ MetaDetailed,
+ SystemWebhook,
+ AbuseReportNotificationRecipient
}
}
export { entities }
@@ -2380,8 +2457,23 @@ type ModerationLog = {
type: 'unsetUserAvatar';
info: ModerationLogPayloads['unsetUserAvatar'];
} | {
- type: 'unsetUserBanner';
- info: ModerationLogPayloads['unsetUserBanner'];
+ type: 'createSystemWebhook';
+ info: ModerationLogPayloads['createSystemWebhook'];
+} | {
+ type: 'updateSystemWebhook';
+ info: ModerationLogPayloads['updateSystemWebhook'];
+} | {
+ type: 'deleteSystemWebhook';
+ info: ModerationLogPayloads['deleteSystemWebhook'];
+} | {
+ type: 'createAbuseReportNotificationRecipient';
+ info: ModerationLogPayloads['createAbuseReportNotificationRecipient'];
+} | {
+ type: 'updateAbuseReportNotificationRecipient';
+ info: ModerationLogPayloads['updateAbuseReportNotificationRecipient'];
+} | {
+ type: 'deleteAbuseReportNotificationRecipient';
+ info: ModerationLogPayloads['deleteAbuseReportNotificationRecipient'];
});
// @public (undocumented)
@@ -2921,6 +3013,9 @@ type SwUpdateRegistrationRequest = operations['sw___update-registration']['reque
// @public (undocumented)
type SwUpdateRegistrationResponse = operations['sw___update-registration']['responses']['200']['content']['application/json'];
+// @public (undocumented)
+type SystemWebhook = components['schemas']['SystemWebhook'];
+
// @public (undocumented)
type TestRequest = operations['test']['requestBody']['content']['application/json'];
diff --git a/packages/misskey-js/src/autogen/apiClientJSDoc.ts b/packages/misskey-js/src/autogen/apiClientJSDoc.ts
index 181f7274b7..e799d4a0c5 100644
--- a/packages/misskey-js/src/autogen/apiClientJSDoc.ts
+++ b/packages/misskey-js/src/autogen/apiClientJSDoc.ts
@@ -25,6 +25,66 @@ declare module '../api.js' {
credential?: string | null,
): Promise>;
+ /**
+ * No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *read:admin:abuse-report:notification-recipient*
+ */
+ request(
+ endpoint: E,
+ params: P,
+ credential?: string | null,
+ ): Promise>;
+
+ /**
+ * No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *read:admin:abuse-report:notification-recipient*
+ */
+ request(
+ endpoint: E,
+ params: P,
+ credential?: string | null,
+ ): Promise>;
+
+ /**
+ * No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient*
+ */
+ request(
+ endpoint: E,
+ params: P,
+ credential?: string | null,
+ ): Promise>;
+
+ /**
+ * No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient*
+ */
+ request(
+ endpoint: E,
+ params: P,
+ credential?: string | null,
+ ): Promise>;
+
+ /**
+ * No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient*
+ */
+ request(
+ endpoint: E,
+ params: P,
+ credential?: string | null,
+ ): Promise>;
+
/**
* No description provided.
*
@@ -840,6 +900,66 @@ declare module '../api.js' {
credential?: string | null,
): Promise>;
+ /**
+ * No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook*
+ */
+ request(
+ endpoint: E,
+ params: P,
+ credential?: string | null,
+ ): Promise>;
+
+ /**
+ * No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook*
+ */
+ request(
+ endpoint: E,
+ params: P,
+ credential?: string | null,
+ ): Promise>;
+
+ /**
+ * No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook*
+ */
+ request(
+ endpoint: E,
+ params: P,
+ credential?: string | null,
+ ): Promise>;
+
+ /**
+ * No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook*
+ */
+ request(
+ endpoint: E,
+ params: P,
+ credential?: string | null,
+ ): Promise>;
+
+ /**
+ * No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook*
+ */
+ request(
+ endpoint: E,
+ params: P,
+ credential?: string | null,
+ ): Promise>;
+
/**
* No description provided.
*
diff --git a/packages/misskey-js/src/autogen/endpoint.ts b/packages/misskey-js/src/autogen/endpoint.ts
index ab3baf1670..20c8509d4c 100644
--- a/packages/misskey-js/src/autogen/endpoint.ts
+++ b/packages/misskey-js/src/autogen/endpoint.ts
@@ -4,6 +4,15 @@ import type {
AdminMetaResponse,
AdminAbuseUserReportsRequest,
AdminAbuseUserReportsResponse,
+ AdminAbuseReportNotificationRecipientListRequest,
+ AdminAbuseReportNotificationRecipientListResponse,
+ AdminAbuseReportNotificationRecipientShowRequest,
+ AdminAbuseReportNotificationRecipientShowResponse,
+ AdminAbuseReportNotificationRecipientCreateRequest,
+ AdminAbuseReportNotificationRecipientCreateResponse,
+ AdminAbuseReportNotificationRecipientUpdateRequest,
+ AdminAbuseReportNotificationRecipientUpdateResponse,
+ AdminAbuseReportNotificationRecipientDeleteRequest,
AdminAccountsCreateRequest,
AdminAccountsCreateResponse,
AdminAccountsDeleteRequest,
@@ -99,6 +108,15 @@ import type {
AdminRolesUpdateDefaultPoliciesRequest,
AdminRolesUsersRequest,
AdminRolesUsersResponse,
+ AdminSystemWebhookCreateRequest,
+ AdminSystemWebhookCreateResponse,
+ AdminSystemWebhookDeleteRequest,
+ AdminSystemWebhookListRequest,
+ AdminSystemWebhookListResponse,
+ AdminSystemWebhookShowRequest,
+ AdminSystemWebhookShowResponse,
+ AdminSystemWebhookUpdateRequest,
+ AdminSystemWebhookUpdateResponse,
AnnouncementsRequest,
AnnouncementsResponse,
AnnouncementsShowRequest,
@@ -558,6 +576,11 @@ import type {
export type Endpoints = {
'admin/meta': { req: EmptyRequest; res: AdminMetaResponse };
'admin/abuse-user-reports': { req: AdminAbuseUserReportsRequest; res: AdminAbuseUserReportsResponse };
+ 'admin/abuse-report/notification-recipient/list': { req: AdminAbuseReportNotificationRecipientListRequest; res: AdminAbuseReportNotificationRecipientListResponse };
+ 'admin/abuse-report/notification-recipient/show': { req: AdminAbuseReportNotificationRecipientShowRequest; res: AdminAbuseReportNotificationRecipientShowResponse };
+ 'admin/abuse-report/notification-recipient/create': { req: AdminAbuseReportNotificationRecipientCreateRequest; res: AdminAbuseReportNotificationRecipientCreateResponse };
+ 'admin/abuse-report/notification-recipient/update': { req: AdminAbuseReportNotificationRecipientUpdateRequest; res: AdminAbuseReportNotificationRecipientUpdateResponse };
+ 'admin/abuse-report/notification-recipient/delete': { req: AdminAbuseReportNotificationRecipientDeleteRequest; res: EmptyResponse };
'admin/accounts/create': { req: AdminAccountsCreateRequest; res: AdminAccountsCreateResponse };
'admin/accounts/delete': { req: AdminAccountsDeleteRequest; res: EmptyResponse };
'admin/accounts/find-by-email': { req: AdminAccountsFindByEmailRequest; res: AdminAccountsFindByEmailResponse };
@@ -632,6 +655,11 @@ export type Endpoints = {
'admin/roles/unassign': { req: AdminRolesUnassignRequest; res: EmptyResponse };
'admin/roles/update-default-policies': { req: AdminRolesUpdateDefaultPoliciesRequest; res: EmptyResponse };
'admin/roles/users': { req: AdminRolesUsersRequest; res: AdminRolesUsersResponse };
+ 'admin/system-webhook/create': { req: AdminSystemWebhookCreateRequest; res: AdminSystemWebhookCreateResponse };
+ 'admin/system-webhook/delete': { req: AdminSystemWebhookDeleteRequest; res: EmptyResponse };
+ 'admin/system-webhook/list': { req: AdminSystemWebhookListRequest; res: AdminSystemWebhookListResponse };
+ 'admin/system-webhook/show': { req: AdminSystemWebhookShowRequest; res: AdminSystemWebhookShowResponse };
+ 'admin/system-webhook/update': { req: AdminSystemWebhookUpdateRequest; res: AdminSystemWebhookUpdateResponse };
'announcements': { req: AnnouncementsRequest; res: AnnouncementsResponse };
'announcements/show': { req: AnnouncementsShowRequest; res: AnnouncementsShowResponse };
'antennas/create': { req: AntennasCreateRequest; res: AntennasCreateResponse };
diff --git a/packages/misskey-js/src/autogen/entities.ts b/packages/misskey-js/src/autogen/entities.ts
index 02ca932d8a..357b5e9eaf 100644
--- a/packages/misskey-js/src/autogen/entities.ts
+++ b/packages/misskey-js/src/autogen/entities.ts
@@ -7,6 +7,15 @@ export type EmptyResponse = Record | undefined;
export type AdminMetaResponse = operations['admin___meta']['responses']['200']['content']['application/json'];
export type AdminAbuseUserReportsRequest = operations['admin___abuse-user-reports']['requestBody']['content']['application/json'];
export type AdminAbuseUserReportsResponse = operations['admin___abuse-user-reports']['responses']['200']['content']['application/json'];
+export type AdminAbuseReportNotificationRecipientListRequest = operations['admin___abuse-report___notification-recipient___list']['requestBody']['content']['application/json'];
+export type AdminAbuseReportNotificationRecipientListResponse = operations['admin___abuse-report___notification-recipient___list']['responses']['200']['content']['application/json'];
+export type AdminAbuseReportNotificationRecipientShowRequest = operations['admin___abuse-report___notification-recipient___show']['requestBody']['content']['application/json'];
+export type AdminAbuseReportNotificationRecipientShowResponse = operations['admin___abuse-report___notification-recipient___show']['responses']['200']['content']['application/json'];
+export type AdminAbuseReportNotificationRecipientCreateRequest = operations['admin___abuse-report___notification-recipient___create']['requestBody']['content']['application/json'];
+export type AdminAbuseReportNotificationRecipientCreateResponse = operations['admin___abuse-report___notification-recipient___create']['responses']['200']['content']['application/json'];
+export type AdminAbuseReportNotificationRecipientUpdateRequest = operations['admin___abuse-report___notification-recipient___update']['requestBody']['content']['application/json'];
+export type AdminAbuseReportNotificationRecipientUpdateResponse = operations['admin___abuse-report___notification-recipient___update']['responses']['200']['content']['application/json'];
+export type AdminAbuseReportNotificationRecipientDeleteRequest = operations['admin___abuse-report___notification-recipient___delete']['requestBody']['content']['application/json'];
export type AdminAccountsCreateRequest = operations['admin___accounts___create']['requestBody']['content']['application/json'];
export type AdminAccountsCreateResponse = operations['admin___accounts___create']['responses']['200']['content']['application/json'];
export type AdminAccountsDeleteRequest = operations['admin___accounts___delete']['requestBody']['content']['application/json'];
@@ -102,6 +111,15 @@ export type AdminRolesUnassignRequest = operations['admin___roles___unassign']['
export type AdminRolesUpdateDefaultPoliciesRequest = operations['admin___roles___update-default-policies']['requestBody']['content']['application/json'];
export type AdminRolesUsersRequest = operations['admin___roles___users']['requestBody']['content']['application/json'];
export type AdminRolesUsersResponse = operations['admin___roles___users']['responses']['200']['content']['application/json'];
+export type AdminSystemWebhookCreateRequest = operations['admin___system-webhook___create']['requestBody']['content']['application/json'];
+export type AdminSystemWebhookCreateResponse = operations['admin___system-webhook___create']['responses']['200']['content']['application/json'];
+export type AdminSystemWebhookDeleteRequest = operations['admin___system-webhook___delete']['requestBody']['content']['application/json'];
+export type AdminSystemWebhookListRequest = operations['admin___system-webhook___list']['requestBody']['content']['application/json'];
+export type AdminSystemWebhookListResponse = operations['admin___system-webhook___list']['responses']['200']['content']['application/json'];
+export type AdminSystemWebhookShowRequest = operations['admin___system-webhook___show']['requestBody']['content']['application/json'];
+export type AdminSystemWebhookShowResponse = operations['admin___system-webhook___show']['responses']['200']['content']['application/json'];
+export type AdminSystemWebhookUpdateRequest = operations['admin___system-webhook___update']['requestBody']['content']['application/json'];
+export type AdminSystemWebhookUpdateResponse = operations['admin___system-webhook___update']['responses']['200']['content']['application/json'];
export type AnnouncementsRequest = operations['announcements']['requestBody']['content']['application/json'];
export type AnnouncementsResponse = operations['announcements']['responses']['200']['content']['application/json'];
export type AnnouncementsShowRequest = operations['announcements___show']['requestBody']['content']['application/json'];
diff --git a/packages/misskey-js/src/autogen/models.ts b/packages/misskey-js/src/autogen/models.ts
index a6e5fbe689..04574849d4 100644
--- a/packages/misskey-js/src/autogen/models.ts
+++ b/packages/misskey-js/src/autogen/models.ts
@@ -51,3 +51,5 @@ export type ReversiGameDetailed = components['schemas']['ReversiGameDetailed'];
export type MetaLite = components['schemas']['MetaLite'];
export type MetaDetailedOnly = components['schemas']['MetaDetailedOnly'];
export type MetaDetailed = components['schemas']['MetaDetailed'];
+export type SystemWebhook = components['schemas']['SystemWebhook'];
+export type AbuseReportNotificationRecipient = components['schemas']['AbuseReportNotificationRecipient'];
diff --git a/packages/misskey-js/src/autogen/types.ts b/packages/misskey-js/src/autogen/types.ts
index 2c80676f3e..bdcc1dfd77 100644
--- a/packages/misskey-js/src/autogen/types.ts
+++ b/packages/misskey-js/src/autogen/types.ts
@@ -30,6 +30,56 @@ export type paths = {
*/
post: operations['admin___abuse-user-reports'];
};
+ '/admin/abuse-report/notification-recipient/list': {
+ /**
+ * admin/abuse-report/notification-recipient/list
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *read:admin:abuse-report:notification-recipient*
+ */
+ post: operations['admin___abuse-report___notification-recipient___list'];
+ };
+ '/admin/abuse-report/notification-recipient/show': {
+ /**
+ * admin/abuse-report/notification-recipient/show
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *read:admin:abuse-report:notification-recipient*
+ */
+ post: operations['admin___abuse-report___notification-recipient___show'];
+ };
+ '/admin/abuse-report/notification-recipient/create': {
+ /**
+ * admin/abuse-report/notification-recipient/create
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient*
+ */
+ post: operations['admin___abuse-report___notification-recipient___create'];
+ };
+ '/admin/abuse-report/notification-recipient/update': {
+ /**
+ * admin/abuse-report/notification-recipient/update
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient*
+ */
+ post: operations['admin___abuse-report___notification-recipient___update'];
+ };
+ '/admin/abuse-report/notification-recipient/delete': {
+ /**
+ * admin/abuse-report/notification-recipient/delete
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient*
+ */
+ post: operations['admin___abuse-report___notification-recipient___delete'];
+ };
'/admin/accounts/create': {
/**
* admin/accounts/create
@@ -697,6 +747,56 @@ export type paths = {
*/
post: operations['admin___roles___users'];
};
+ '/admin/system-webhook/create': {
+ /**
+ * admin/system-webhook/create
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook*
+ */
+ post: operations['admin___system-webhook___create'];
+ };
+ '/admin/system-webhook/delete': {
+ /**
+ * admin/system-webhook/delete
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook*
+ */
+ post: operations['admin___system-webhook___delete'];
+ };
+ '/admin/system-webhook/list': {
+ /**
+ * admin/system-webhook/list
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook*
+ */
+ post: operations['admin___system-webhook___list'];
+ };
+ '/admin/system-webhook/show': {
+ /**
+ * admin/system-webhook/show
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook*
+ */
+ post: operations['admin___system-webhook___show'];
+ };
+ '/admin/system-webhook/update': {
+ /**
+ * admin/system-webhook/update
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook*
+ */
+ post: operations['admin___system-webhook___update'];
+ };
'/announcements': {
/**
* announcements
@@ -4859,6 +4959,32 @@ export type components = {
cacheRemoteSensitiveFiles: boolean;
};
MetaDetailed: components['schemas']['MetaLite'] & components['schemas']['MetaDetailedOnly'];
+ SystemWebhook: {
+ id: string;
+ isActive: boolean;
+ /** Format: date-time */
+ updatedAt: string;
+ /** Format: date-time */
+ latestSentAt: string | null;
+ latestStatus: number | null;
+ name: string;
+ on: ('abuseReport' | 'abuseReportResolved')[];
+ url: string;
+ secret: string;
+ };
+ AbuseReportNotificationRecipient: {
+ id: string;
+ isActive: boolean;
+ /** Format: date-time */
+ updatedAt: string;
+ name: string;
+ /** @enum {string} */
+ method: 'email' | 'webhook';
+ userId?: string;
+ user?: components['schemas']['UserLite'];
+ systemWebhookId?: string;
+ systemWebhook?: components['schemas']['SystemWebhook'];
+ };
};
responses: never;
parameters: never;
@@ -5125,6 +5251,292 @@ export type operations = {
};
};
};
+ /**
+ * admin/abuse-report/notification-recipient/list
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *read:admin:abuse-report:notification-recipient*
+ */
+ 'admin___abuse-report___notification-recipient___list': {
+ requestBody: {
+ content: {
+ 'application/json': {
+ method?: ('email' | 'webhook')[];
+ };
+ };
+ };
+ responses: {
+ /** @description OK (with results) */
+ 200: {
+ content: {
+ 'application/json': components['schemas']['AbuseReportNotificationRecipient'][];
+ };
+ };
+ /** @description Client error */
+ 400: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Authentication error */
+ 401: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Forbidden error */
+ 403: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description I'm Ai */
+ 418: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Internal server error */
+ 500: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ };
+ };
+ /**
+ * admin/abuse-report/notification-recipient/show
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *read:admin:abuse-report:notification-recipient*
+ */
+ 'admin___abuse-report___notification-recipient___show': {
+ requestBody: {
+ content: {
+ 'application/json': {
+ /** Format: misskey:id */
+ id: string;
+ };
+ };
+ };
+ responses: {
+ /** @description OK (with results) */
+ 200: {
+ content: {
+ 'application/json': components['schemas']['AbuseReportNotificationRecipient'];
+ };
+ };
+ /** @description Client error */
+ 400: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Authentication error */
+ 401: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Forbidden error */
+ 403: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description I'm Ai */
+ 418: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Internal server error */
+ 500: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ };
+ };
+ /**
+ * admin/abuse-report/notification-recipient/create
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient*
+ */
+ 'admin___abuse-report___notification-recipient___create': {
+ requestBody: {
+ content: {
+ 'application/json': {
+ isActive: boolean;
+ name: string;
+ /** @enum {string} */
+ method: 'email' | 'webhook';
+ /** Format: misskey:id */
+ userId?: string;
+ /** Format: misskey:id */
+ systemWebhookId?: string;
+ };
+ };
+ };
+ responses: {
+ /** @description OK (with results) */
+ 200: {
+ content: {
+ 'application/json': components['schemas']['AbuseReportNotificationRecipient'];
+ };
+ };
+ /** @description Client error */
+ 400: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Authentication error */
+ 401: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Forbidden error */
+ 403: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description I'm Ai */
+ 418: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Internal server error */
+ 500: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ };
+ };
+ /**
+ * admin/abuse-report/notification-recipient/update
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient*
+ */
+ 'admin___abuse-report___notification-recipient___update': {
+ requestBody: {
+ content: {
+ 'application/json': {
+ /** Format: misskey:id */
+ id: string;
+ isActive: boolean;
+ name: string;
+ /** @enum {string} */
+ method: 'email' | 'webhook';
+ /** Format: misskey:id */
+ userId?: string;
+ /** Format: misskey:id */
+ systemWebhookId?: string;
+ };
+ };
+ };
+ responses: {
+ /** @description OK (with results) */
+ 200: {
+ content: {
+ 'application/json': components['schemas']['AbuseReportNotificationRecipient'];
+ };
+ };
+ /** @description Client error */
+ 400: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Authentication error */
+ 401: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Forbidden error */
+ 403: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description I'm Ai */
+ 418: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Internal server error */
+ 500: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ };
+ };
+ /**
+ * admin/abuse-report/notification-recipient/delete
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:abuse-report:notification-recipient*
+ */
+ 'admin___abuse-report___notification-recipient___delete': {
+ requestBody: {
+ content: {
+ 'application/json': {
+ /** Format: misskey:id */
+ id: string;
+ };
+ };
+ };
+ responses: {
+ /** @description OK (without any results) */
+ 204: {
+ content: never;
+ };
+ /** @description Client error */
+ 400: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Authentication error */
+ 401: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Forbidden error */
+ 403: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description I'm Ai */
+ 418: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Internal server error */
+ 500: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ };
+ };
/**
* admin/accounts/create
* @description No description provided.
@@ -9615,6 +10027,287 @@ export type operations = {
};
};
};
+ /**
+ * admin/system-webhook/create
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook*
+ */
+ 'admin___system-webhook___create': {
+ requestBody: {
+ content: {
+ 'application/json': {
+ isActive: boolean;
+ name: string;
+ on: ('abuseReport' | 'abuseReportResolved')[];
+ url: string;
+ secret: string;
+ };
+ };
+ };
+ responses: {
+ /** @description OK (with results) */
+ 200: {
+ content: {
+ 'application/json': components['schemas']['SystemWebhook'];
+ };
+ };
+ /** @description Client error */
+ 400: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Authentication error */
+ 401: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Forbidden error */
+ 403: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description I'm Ai */
+ 418: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Internal server error */
+ 500: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ };
+ };
+ /**
+ * admin/system-webhook/delete
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook*
+ */
+ 'admin___system-webhook___delete': {
+ requestBody: {
+ content: {
+ 'application/json': {
+ /** Format: misskey:id */
+ id: string;
+ };
+ };
+ };
+ responses: {
+ /** @description OK (without any results) */
+ 204: {
+ content: never;
+ };
+ /** @description Client error */
+ 400: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Authentication error */
+ 401: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Forbidden error */
+ 403: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description I'm Ai */
+ 418: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Internal server error */
+ 500: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ };
+ };
+ /**
+ * admin/system-webhook/list
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook*
+ */
+ 'admin___system-webhook___list': {
+ requestBody: {
+ content: {
+ 'application/json': {
+ isActive?: boolean;
+ on?: ('abuseReport' | 'abuseReportResolved')[];
+ };
+ };
+ };
+ responses: {
+ /** @description OK (with results) */
+ 200: {
+ content: {
+ 'application/json': components['schemas']['SystemWebhook'][];
+ };
+ };
+ /** @description Client error */
+ 400: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Authentication error */
+ 401: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Forbidden error */
+ 403: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description I'm Ai */
+ 418: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Internal server error */
+ 500: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ };
+ };
+ /**
+ * admin/system-webhook/show
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook*
+ */
+ 'admin___system-webhook___show': {
+ requestBody: {
+ content: {
+ 'application/json': {
+ /** Format: misskey:id */
+ id: string;
+ };
+ };
+ };
+ responses: {
+ /** @description OK (with results) */
+ 200: {
+ content: {
+ 'application/json': components['schemas']['SystemWebhook'];
+ };
+ };
+ /** @description Client error */
+ 400: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Authentication error */
+ 401: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Forbidden error */
+ 403: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description I'm Ai */
+ 418: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Internal server error */
+ 500: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ };
+ };
+ /**
+ * admin/system-webhook/update
+ * @description No description provided.
+ *
+ * **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
+ * **Credential required**: *Yes* / **Permission**: *write:admin:system-webhook*
+ */
+ 'admin___system-webhook___update': {
+ requestBody: {
+ content: {
+ 'application/json': {
+ /** Format: misskey:id */
+ id: string;
+ isActive: boolean;
+ name: string;
+ on: ('abuseReport' | 'abuseReportResolved')[];
+ url: string;
+ secret: string;
+ };
+ };
+ };
+ responses: {
+ /** @description OK (with results) */
+ 200: {
+ content: {
+ 'application/json': components['schemas']['SystemWebhook'];
+ };
+ };
+ /** @description Client error */
+ 400: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Authentication error */
+ 401: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Forbidden error */
+ 403: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description I'm Ai */
+ 418: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ /** @description Internal server error */
+ 500: {
+ content: {
+ 'application/json': components['schemas']['Error'];
+ };
+ };
+ };
+ };
/**
* announcements
* @description No description provided.
diff --git a/packages/misskey-js/src/consts.ts b/packages/misskey-js/src/consts.ts
index fd6ef4d68d..03b9069290 100644
--- a/packages/misskey-js/src/consts.ts
+++ b/packages/misskey-js/src/consts.ts
@@ -325,4 +325,30 @@ export type ModerationLogPayloads = {
userHost: string | null;
fileId: string;
};
+ createSystemWebhook: {
+ systemWebhookId: string;
+ webhook: any;
+ };
+ updateSystemWebhook: {
+ systemWebhookId: string;
+ before: any;
+ after: any;
+ };
+ deleteSystemWebhook: {
+ systemWebhookId: string;
+ webhook: any;
+ };
+ createAbuseReportNotificationRecipient: {
+ recipientId: string;
+ recipient: any;
+ };
+ updateAbuseReportNotificationRecipient: {
+ recipientId: string;
+ before: any;
+ after: any;
+ };
+ deleteAbuseReportNotificationRecipient: {
+ recipientId: string;
+ recipient: any;
+ };
};
diff --git a/packages/misskey-js/src/entities.ts b/packages/misskey-js/src/entities.ts
index 35503d6d6f..7a84cb6a1a 100644
--- a/packages/misskey-js/src/entities.ts
+++ b/packages/misskey-js/src/entities.ts
@@ -132,8 +132,23 @@ export type ModerationLog = {
type: 'unsetUserAvatar';
info: ModerationLogPayloads['unsetUserAvatar'];
} | {
- type: 'unsetUserBanner';
- info: ModerationLogPayloads['unsetUserBanner'];
+ type: 'createSystemWebhook';
+ info: ModerationLogPayloads['createSystemWebhook'];
+} | {
+ type: 'updateSystemWebhook';
+ info: ModerationLogPayloads['updateSystemWebhook'];
+} | {
+ type: 'deleteSystemWebhook';
+ info: ModerationLogPayloads['deleteSystemWebhook'];
+} | {
+ type: 'createAbuseReportNotificationRecipient';
+ info: ModerationLogPayloads['createAbuseReportNotificationRecipient'];
+} | {
+ type: 'updateAbuseReportNotificationRecipient';
+ info: ModerationLogPayloads['updateAbuseReportNotificationRecipient'];
+} | {
+ type: 'deleteAbuseReportNotificationRecipient';
+ info: ModerationLogPayloads['deleteAbuseReportNotificationRecipient'];
});
export type ServerStats = {
From 9849aab40283cbde2184e74d4795aec8ef8ccba3 Mon Sep 17 00:00:00 2001
From: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
Date: Sat, 8 Jun 2024 18:00:54 +0900
Subject: [PATCH 015/143] test(#10336): add `components/MkC.*` stories (#13830)
* test(storybook): add `components/MkC.*` stories
* test(storybook): add some tests
* test: add sleep
* test: comment-out flaky test
* test(storybook): add test for `MkChannelFollowButton`
* chore(storybook): tweak sleep duration in `MkChannelFollowButton` story test
* fix(chromatic): add delay to `MkChannelList`
* chore: replace `mswDecorator` with `mswLoader`
* fix(storybook): tweak some parameters
* chore: serve static files
* fix(chromatic): add delay to `MkCwButton`
* chore: delete logging for debug
* fix: add right click in `MkContextMenu` play
* refactor: remove unused imports
---
packages/frontend/.storybook/fakes.ts | 60 +++++++++
packages/frontend/.storybook/generate.tsx | 2 +-
packages/frontend/.storybook/main.ts | 1 +
packages/frontend/.storybook/preview.ts | 4 +-
packages/frontend/package.json | 2 +
.../MkChannelFollowButton.stories.impl.ts | 77 ++++++++++++
.../src/components/MkChannelFollowButton.vue | 5 +-
.../components/MkChannelList.stories.impl.ts | 65 ++++++++++
.../MkChannelPreview.stories.impl.ts | 43 +++++++
.../src/components/MkChart.stories.impl.ts | 117 ++++++++++++++++++
packages/frontend/src/components/MkChart.vue | 90 ++++++++------
.../components/MkChartLegend.stories.impl.ts | 7 ++
.../components/MkChartTooltip.stories.impl.ts | 7 ++
.../components/MkClickerGame.stories.impl.ts | 79 ++++++++++++
.../frontend/src/components/MkClickerGame.vue | 2 +-
.../components/MkClipPreview.stories.impl.ts | 43 +++++++
.../components/MkCode.core.stories.impl.ts | 7 ++
.../src/components/MkCode.stories.impl.ts | 44 +++++++
.../components/MkCodeEditor.stories.impl.ts | 62 ++++++++++
.../components/MkCodeInline.stories.impl.ts | 37 ++++++
.../components/MkColorInput.stories.impl.ts | 50 ++++++++
.../components/MkContainer.stories.impl.ts | 7 ++
.../components/MkContextMenu.stories.impl.ts | 58 +++++++++
.../MkCropperDialog.stories.impl.ts | 75 +++++++++++
...kCustomEmojiDetailedDialog.stories.impl.ts | 38 ++++++
.../src/components/MkCwButton.stories.impl.ts | 89 +++++++++++++
packages/frontend/src/scripts/test-utils.ts | 10 ++
pnpm-lock.yaml | 88 +++++++------
28 files changed, 1083 insertions(+), 86 deletions(-)
create mode 100644 packages/frontend/src/components/MkChannelFollowButton.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkChannelList.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkChannelPreview.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkChart.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkChartLegend.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkChartTooltip.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkClickerGame.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkClipPreview.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkCode.core.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkCode.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkCodeEditor.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkCodeInline.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkColorInput.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkContainer.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkContextMenu.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkCropperDialog.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkCustomEmojiDetailedDialog.stories.impl.ts
create mode 100644 packages/frontend/src/components/MkCwButton.stories.impl.ts
diff --git a/packages/frontend/.storybook/fakes.ts b/packages/frontend/.storybook/fakes.ts
index 3a24ccb248..fdb155261b 100644
--- a/packages/frontend/.storybook/fakes.ts
+++ b/packages/frontend/.storybook/fakes.ts
@@ -22,6 +22,66 @@ export function abuseUserReport() {
};
}
+export function channel(id = 'somechannelid', name = 'Some Channel', bannerUrl: string | null = 'https://github.com/misskey-dev/misskey/blob/master/packages/frontend/assets/fedi.jpg?raw=true'): entities.Channel {
+ return {
+ id,
+ createdAt: '2016-12-28T22:49:51.000Z',
+ lastNotedAt: '2016-12-28T22:49:51.000Z',
+ name,
+ description: null,
+ userId: null,
+ bannerUrl,
+ pinnedNoteIds: [],
+ color: '#000',
+ isArchived: false,
+ usersCount: 1,
+ notesCount: 1,
+ isSensitive: false,
+ allowRenoteToExternal: false,
+ };
+}
+
+export function clip(id = 'someclipid', name = 'Some Clip'): entities.Clip {
+ return {
+ id,
+ createdAt: '2016-12-28T22:49:51.000Z',
+ lastClippedAt: null,
+ userId: 'someuserid',
+ user: {
+ id: 'someuserid',
+ name: 'Misskey User',
+ username: 'miskist',
+ host: 'misskey-hub.net',
+ avatarUrl: 'https://github.com/misskey-dev/misskey/blob/master/packages/frontend/assets/about-icon.png?raw=true',
+ avatarBlurhash: 'eQFRshof5NWBRi},juayfPju53WB?0ofs;s*a{ofjuay^SoMEJR%ay',
+ avatarDecorations: [],
+ emojis: {},
+ badgeRoles: [],
+ onlineStatus: 'unknown',
+ },
+ notesCount: undefined,
+ name,
+ description: 'Some clip description',
+ isPublic: false,
+ favoritedCount: 0,
+ };
+}
+
+export function emojiDetailed(id = 'someemojiid', name = 'some_emoji'): entities.EmojiDetailed {
+ return {
+ id,
+ aliases: ['alias1', 'alias2'],
+ name,
+ category: 'emojiCategory',
+ host: null,
+ url: '/client-assets/about-icon.png',
+ license: null,
+ isSensitive: false,
+ localOnly: false,
+ roleIdsThatCanBeUsedThisEmojiAsReaction: ['roleId1', 'roleId2'],
+ };
+}
+
export function galleryPost(isSensitive = false) {
return {
id: 'somepostid',
diff --git a/packages/frontend/.storybook/generate.tsx b/packages/frontend/.storybook/generate.tsx
index d74c83a500..d21eea9d17 100644
--- a/packages/frontend/.storybook/generate.tsx
+++ b/packages/frontend/.storybook/generate.tsx
@@ -397,7 +397,7 @@ function toStories(component: string): Promise {
const globs = await Promise.all([
glob('src/components/global/Mk*.vue'),
glob('src/components/global/RouterView.vue'),
- glob('src/components/Mk{A,B}*.vue'),
+ glob('src/components/Mk[A-C]*.vue'),
glob('src/components/MkDigitalClock.vue'),
glob('src/components/MkGalleryPostPreview.vue'),
glob('src/components/MkSignupServerRules.vue'),
diff --git a/packages/frontend/.storybook/main.ts b/packages/frontend/.storybook/main.ts
index d3822942cd..9f318cf449 100644
--- a/packages/frontend/.storybook/main.ts
+++ b/packages/frontend/.storybook/main.ts
@@ -15,6 +15,7 @@ const _dirname = fileURLToPath(new URL('.', import.meta.url));
const config = {
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'],
+ staticDirs: [{ from: '../assets', to: '/client-assets' }],
addons: [
getAbsolutePath('@storybook/addon-essentials'),
getAbsolutePath('@storybook/addon-interactions'),
diff --git a/packages/frontend/.storybook/preview.ts b/packages/frontend/.storybook/preview.ts
index 982a2979ac..73ee007fb8 100644
--- a/packages/frontend/.storybook/preview.ts
+++ b/packages/frontend/.storybook/preview.ts
@@ -7,7 +7,7 @@ import { FORCE_REMOUNT } from '@storybook/core-events';
import { addons } from '@storybook/preview-api';
import { type Preview, setup } from '@storybook/vue3';
import isChromatic from 'chromatic/isChromatic';
-import { initialize, mswDecorator } from 'msw-storybook-addon';
+import { initialize, mswLoader } from 'msw-storybook-addon';
import { userDetailed } from './fakes.js';
import locale from './locale.js';
import { commonHandlers, onUnhandledRequest } from './mocks.js';
@@ -122,7 +122,6 @@ const preview = {
}
return story;
},
- mswDecorator,
(Story, context) => {
return {
setup() {
@@ -137,6 +136,7 @@ const preview = {
};
},
],
+ loaders: [mswLoader],
parameters: {
controls: {
exclude: /^__/,
diff --git a/packages/frontend/package.json b/packages/frontend/package.json
index 56b824c0c5..66940a1601 100644
--- a/packages/frontend/package.json
+++ b/packages/frontend/package.json
@@ -104,6 +104,7 @@
"@types/node": "20.12.7",
"@types/punycode": "2.1.4",
"@types/sanitize-html": "2.11.0",
+ "@types/seedrandom": "3.0.8",
"@types/throttle-debounce": "5.0.2",
"@types/tinycolor2": "1.4.6",
"@types/uuid": "9.0.8",
@@ -128,6 +129,7 @@
"prettier": "3.2.5",
"react": "18.3.1",
"react-dom": "18.3.1",
+ "seedrandom": "3.0.5",
"start-server-and-test": "2.0.3",
"storybook": "8.0.9",
"storybook-addon-misskey-theme": "github:misskey-dev/storybook-addon-misskey-theme",
diff --git a/packages/frontend/src/components/MkChannelFollowButton.stories.impl.ts b/packages/frontend/src/components/MkChannelFollowButton.stories.impl.ts
new file mode 100644
index 0000000000..b99620da22
--- /dev/null
+++ b/packages/frontend/src/components/MkChannelFollowButton.stories.impl.ts
@@ -0,0 +1,77 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+/* eslint-disable @typescript-eslint/explicit-function-return-type */
+/* eslint-disable import/no-default-export */
+import { StoryObj } from '@storybook/vue3';
+import { HttpResponse, http } from 'msw';
+import { action } from '@storybook/addon-actions';
+import { expect, userEvent, within } from '@storybook/test';
+import { channel } from '../../.storybook/fakes.js';
+import { commonHandlers } from '../../.storybook/mocks.js';
+import MkChannelFollowButton from './MkChannelFollowButton.vue';
+import { semaphore } from '@/scripts/test-utils.js';
+import { i18n } from '@/i18n.js';
+
+function sleep(ms: number) {
+ return new Promise(resolve => setTimeout(resolve, ms));
+}
+
+const s = semaphore();
+export const Default = {
+ render(args) {
+ return {
+ components: {
+ MkChannelFollowButton,
+ },
+ setup() {
+ return {
+ args,
+ };
+ },
+ computed: {
+ props() {
+ return {
+ ...this.args,
+ };
+ },
+ },
+ template: '',
+ };
+ },
+ args: {
+ channel: channel(),
+ full: true,
+ },
+ async play({ canvasElement }) {
+ await s.acquire();
+ await sleep(1000);
+ const canvas = within(canvasElement);
+ const buttonElement = canvas.getByRole('button');
+ await expect(buttonElement).toHaveTextContent(i18n.ts.follow);
+ await userEvent.click(buttonElement);
+ await sleep(1000);
+ await expect(buttonElement).toHaveTextContent(i18n.ts.unfollow);
+ await sleep(100);
+ await userEvent.click(buttonElement);
+ s.release();
+ },
+ parameters: {
+ layout: 'centered',
+ msw: {
+ handlers: [
+ ...commonHandlers,
+ http.post('/api/channels/follow', async ({ request }) => {
+ action('POST /api/channels/follow')(await request.json());
+ return HttpResponse.json({});
+ }),
+ http.post('/api/channels/unfollow', async ({ request }) => {
+ action('POST /api/channels/unfollow')(await request.json());
+ return HttpResponse.json({});
+ }),
+ ],
+ },
+ },
+} satisfies StoryObj;
diff --git a/packages/frontend/src/components/MkChannelFollowButton.vue b/packages/frontend/src/components/MkChannelFollowButton.vue
index 6b1b380e41..841d37a568 100644
--- a/packages/frontend/src/components/MkChannelFollowButton.vue
+++ b/packages/frontend/src/components/MkChannelFollowButton.vue
@@ -26,17 +26,18 @@ SPDX-License-Identifier: AGPL-3.0-only
diff --git a/packages/frontend/src/widgets/WidgetProfile.vue b/packages/frontend/src/widgets/WidgetProfile.vue
index a5578d4de6..ae39098305 100644
--- a/packages/frontend/src/widgets/WidgetProfile.vue
+++ b/packages/frontend/src/widgets/WidgetProfile.vue
@@ -82,16 +82,19 @@ defineExpose({
.body {
text-overflow: ellipsis;
overflow: clip;
+ margin-left: -10px;
+ padding: 10px;
}
.name {
color: #fff;
- filter: drop-shadow(0 0 4px #000);
+ filter: drop-shadow(0 0 4px #000) drop-shadow(0 0 0.1px rgba(0, 0, 0, 0.5));
font-weight: bold;
}
.username {
color: #fff;
- filter: drop-shadow(0 0 4px #000);
+ filter: drop-shadow(0 0 4px #000) drop-shadow(0 0 0.1px rgba(0, 0, 0, 0.5));
+ font-weight: normal;
}
From ac12ab8629f0a0172250f949a98ee1efb1d0890d Mon Sep 17 00:00:00 2001
From: Kisaragi <48310258+KisaragiEffective@users.noreply.github.com>
Date: Sat, 22 Jun 2024 12:51:02 +0900
Subject: [PATCH 047/143] =?UTF-8?q?fix(backend):=20=E3=83=95=E3=82=A3?=
=?UTF-8?q?=E3=83=BC=E3=83=89=E3=81=AE=E3=83=8E=E3=83=BC=E3=83=88=E3=81=AE?=
=?UTF-8?q?MFM=E3=81=AFHTML=E3=81=AB=E3=83=AC=E3=83=B3=E3=83=80=E3=83=BC?=
=?UTF-8?q?=E3=81=97=E3=81=A6=E3=81=8B=E3=82=89=E8=BF=94=E3=81=99=20(#1400?=
=?UTF-8?q?6)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* fix(backend): フィードのノートのMFMはHTMLにレンダーしてから返す (test wip)
* chore: beforeEachを使う?
* fix: プレーンテキストにフォールバックしてMFMが含まれていないか調べる方針を実装
* fix: application/jsonだとパースされるのでその作用をキャンセル
* build: fix lint error
* docs: update CHANGELOG.md
---------
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
---
CHANGELOG.md | 1 +
packages/backend/src/server/web/FeedService.ts | 6 +++++-
packages/backend/test/e2e/fetch-resource.ts | 17 +++++++++++++++++
packages/backend/test/utils.ts | 5 +++--
4 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c5eb698385..ab9f5f8000 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,7 @@
### Server
- チャート生成時にinstance.suspentionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正
- Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949)
+- Fix: ユーザーのフィードページのMFMをHTMLに展開するように (#14006)
- Fix: アンテナ・クリップ・リスト・ウェブフックがロールポリシーの上限より一つ多く作れてしまうのを修正 (#14036)
- Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059)
- Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正
diff --git a/packages/backend/src/server/web/FeedService.ts b/packages/backend/src/server/web/FeedService.ts
index 10e3ed2682..9d810ddc84 100644
--- a/packages/backend/src/server/web/FeedService.ts
+++ b/packages/backend/src/server/web/FeedService.ts
@@ -14,6 +14,8 @@ import { UserEntityService } from '@/core/entities/UserEntityService.js';
import { DriveFileEntityService } from '@/core/entities/DriveFileEntityService.js';
import { bindThis } from '@/decorators.js';
import { IdService } from '@/core/IdService.js';
+import { MfmService } from "@/core/MfmService.js";
+import { parse as mfmParse } from 'mfm-js';
@Injectable()
export class FeedService {
@@ -33,6 +35,7 @@ export class FeedService {
private userEntityService: UserEntityService,
private driveFileEntityService: DriveFileEntityService,
private idService: IdService,
+ private mfmService: MfmService,
) {
}
@@ -76,13 +79,14 @@ export class FeedService {
id: In(note.fileIds),
}) : [];
const file = files.find(file => file.type.startsWith('image/'));
+ const text = note.text;
feed.addItem({
title: `New note by ${author.name}`,
link: `${this.config.url}/notes/${note.id}`,
date: this.idService.parse(note.id).date,
description: note.cw ?? undefined,
- content: note.text ?? undefined,
+ content: text ? this.mfmService.toHtml(mfmParse(text), JSON.parse(note.mentionedRemoteUsers)) ?? undefined : undefined,
image: file ? this.driveFileEntityService.getPublicUrl(file) : undefined,
});
}
diff --git a/packages/backend/test/e2e/fetch-resource.ts b/packages/backend/test/e2e/fetch-resource.ts
index 4851ed14be..7efd688ec2 100644
--- a/packages/backend/test/e2e/fetch-resource.ts
+++ b/packages/backend/test/e2e/fetch-resource.ts
@@ -153,6 +153,23 @@ describe('Webリソース', () => {
path: path('nonexisting'),
status: 404,
}));
+
+ describe(' has entry such ', () => {
+ beforeEach(() => {
+ post(alice, { text: "**a**" })
+ });
+
+ test('MFMを含まない。', async () => {
+ const content = await simpleGet(path(alice.username), "*/*", undefined, res => res.text());
+ const _body: unknown = content.body;
+ // JSONフィードのときは改めて文字列化する
+ const body: string = typeof (_body) === "object" ? JSON.stringify(_body) : _body as string;
+
+ if (body.includes("**a**")) {
+ throw new Error("MFM shouldn't be included");
+ }
+ });
+ })
});
describe.each([{ path: '/api/foo' }])('$path', ({ path }) => {
diff --git a/packages/backend/test/utils.ts b/packages/backend/test/utils.ts
index 86814fffe0..aad4ab37c9 100644
--- a/packages/backend/test/utils.ts
+++ b/packages/backend/test/utils.ts
@@ -17,6 +17,7 @@ import { validateContentTypeSetAsActivityPub } from '@/core/activitypub/misc/val
import { entities } from '../src/postgres.js';
import { loadConfig } from '../src/config.js';
import type * as misskey from 'misskey-js';
+import { type Response } from 'node-fetch';
export { server as startServer, jobQueue as startJobQueue } from '@/boot/common.js';
@@ -454,7 +455,7 @@ export type SimpleGetResponse = {
type: string | null,
location: string | null
};
-export const simpleGet = async (path: string, accept = '*/*', cookie: any = undefined): Promise => {
+export const simpleGet = async (path: string, accept = '*/*', cookie: any = undefined, bodyExtractor: (res: Response) => Promise = _ => Promise.resolve(null)): Promise => {
const res = await relativeFetch(path, {
headers: {
Accept: accept,
@@ -482,7 +483,7 @@ export const simpleGet = async (path: string, accept = '*/*', cookie: any = unde
const body =
jsonTypes.includes(res.headers.get('content-type') ?? '') ? await res.json() :
htmlTypes.includes(res.headers.get('content-type') ?? '') ? new JSDOM(await res.text()) :
- null;
+ await bodyExtractor(res);
return {
status: res.status,
From b50eb511b0cf6fb05d37c3370726f940c1438a99 Mon Sep 17 00:00:00 2001
From: yupix
Date: Sat, 22 Jun 2024 14:52:27 +0900
Subject: [PATCH 048/143] =?UTF-8?q?refactor:=20api/*/update=E7=B3=BB?=
=?UTF-8?q?=E3=81=AE=E5=BF=85=E9=A0=88=E3=82=AD=E3=83=BC=E3=82=92=E6=9C=80?=
=?UTF-8?q?=E4=BD=8E=E9=99=90=E3=81=AB=20(#13824)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* refactor: clips/updateの必須キーをclipIdのみに
* refactor: admin/roles/update の必須キーをroleIdのみに
* feat: pages/update の必須キーをpageIdのみに
* refactor: gallery/posts/update の必須キーをpostidのみに
* feat: misskey-jsの型を更新
* feat: i/webhooks/updateの必須キーをwebhookIdのみに
* feat: admin/ad/updateの必須キーをidのみに
* feat: misskey-jsの型を更新
* chore: update CHANGELOG.md
* docs: update CHANGELOG.md
* fix: secretが更新できなくなる場合がある
Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
* Update packages/backend/src/server/api/endpoints/gallery/posts/update.ts
---------
Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
---
CHANGELOG.md | 6 ++
.../server/api/endpoints/admin/ad/update.ts | 6 +-
.../api/endpoints/admin/roles/update.ts | 14 ----
.../src/server/api/endpoints/clips/update.ts | 4 +-
.../api/endpoints/gallery/posts/update.ts | 24 ++++---
.../server/api/endpoints/i/webhooks/update.ts | 6 +-
.../src/server/api/endpoints/pages/update.ts | 23 ++----
packages/misskey-js/src/autogen/types.ts | 71 +++++++++----------
8 files changed, 70 insertions(+), 84 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ab9f5f8000..c1af63ad23 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,12 @@
- Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949)
- Fix: ユーザーのフィードページのMFMをHTMLに展開するように (#14006)
- Fix: アンテナ・クリップ・リスト・ウェブフックがロールポリシーの上限より一つ多く作れてしまうのを修正 (#14036)
+- Enhance: エンドポイント`clips/update`の必須項目を`clipId`のみに
+- Enhance: エンドポイント`admin/roles/update`の必須項目を`roleId`のみに
+- Enhance: エンドポイント`pages/update`の必須項目を`pageId`のみに
+- Enhance: エンドポイント`gallery/posts/update`の必須項目を`postId`のみに
+- Enhance: エンドポイント`i/webhook/update`の必須項目を`webhookId`のみに
+- Enhance: エンドポイント`admin/ad/update`の必須項目を`id`のみに
- Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059)
- Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正
diff --git a/packages/backend/src/server/api/endpoints/admin/ad/update.ts b/packages/backend/src/server/api/endpoints/admin/ad/update.ts
index 62358457ff..4e3d731aca 100644
--- a/packages/backend/src/server/api/endpoints/admin/ad/update.ts
+++ b/packages/backend/src/server/api/endpoints/admin/ad/update.ts
@@ -40,7 +40,7 @@ export const paramDef = {
startsAt: { type: 'integer' },
dayOfWeek: { type: 'integer' },
},
- required: ['id', 'memo', 'url', 'imageUrl', 'place', 'priority', 'ratio', 'expiresAt', 'startsAt', 'dayOfWeek'],
+ required: ['id'],
} as const;
@Injectable()
@@ -63,8 +63,8 @@ export default class extends Endpoint { // eslint-
ratio: ps.ratio,
memo: ps.memo,
imageUrl: ps.imageUrl,
- expiresAt: new Date(ps.expiresAt),
- startsAt: new Date(ps.startsAt),
+ expiresAt: ps.expiresAt ? new Date(ps.expiresAt) : undefined,
+ startsAt: ps.startsAt ? new Date(ps.startsAt) : undefined,
dayOfWeek: ps.dayOfWeek,
});
diff --git a/packages/backend/src/server/api/endpoints/admin/roles/update.ts b/packages/backend/src/server/api/endpoints/admin/roles/update.ts
index 5242e0be2f..465ad7aaaf 100644
--- a/packages/backend/src/server/api/endpoints/admin/roles/update.ts
+++ b/packages/backend/src/server/api/endpoints/admin/roles/update.ts
@@ -6,7 +6,6 @@
import { Inject, Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
import type { RolesRepository } from '@/models/_.js';
-import { GlobalEventService } from '@/core/GlobalEventService.js';
import { DI } from '@/di-symbols.js';
import { ApiError } from '@/server/api/error.js';
import { RoleService } from '@/core/RoleService.js';
@@ -50,19 +49,6 @@ export const paramDef = {
},
required: [
'roleId',
- 'name',
- 'description',
- 'color',
- 'iconUrl',
- 'target',
- 'condFormula',
- 'isPublic',
- 'isModerator',
- 'isAdministrator',
- 'asBadge',
- 'canEditMembersByModerator',
- 'displayOrder',
- 'policies',
],
} as const;
diff --git a/packages/backend/src/server/api/endpoints/clips/update.ts b/packages/backend/src/server/api/endpoints/clips/update.ts
index 3b44ba81b3..603a3ccf3d 100644
--- a/packages/backend/src/server/api/endpoints/clips/update.ts
+++ b/packages/backend/src/server/api/endpoints/clips/update.ts
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import { Inject, Injectable } from '@nestjs/common';
+import { Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
import { ClipEntityService } from '@/core/entities/ClipEntityService.js';
import { ClipService } from '@/core/ClipService.js';
@@ -41,7 +41,7 @@ export const paramDef = {
isPublic: { type: 'boolean' },
description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048 },
},
- required: ['clipId', 'name'],
+ required: ['clipId'],
} as const;
@Injectable()
diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/update.ts b/packages/backend/src/server/api/endpoints/gallery/posts/update.ts
index 2f977784ec..5243ee9603 100644
--- a/packages/backend/src/server/api/endpoints/gallery/posts/update.ts
+++ b/packages/backend/src/server/api/endpoints/gallery/posts/update.ts
@@ -47,7 +47,7 @@ export const paramDef = {
} },
isSensitive: { type: 'boolean', default: false },
},
- required: ['postId', 'title', 'fileIds'],
+ required: ['postId'],
} as const;
@Injectable()
@@ -62,15 +62,19 @@ export default class extends Endpoint { // eslint-
private galleryPostEntityService: GalleryPostEntityService,
) {
super(meta, paramDef, async (ps, me) => {
- const files = (await Promise.all(ps.fileIds.map(fileId =>
- this.driveFilesRepository.findOneBy({
- id: fileId,
- userId: me.id,
- }),
- ))).filter(x => x != null);
+ let files: Array | undefined;
- if (files.length === 0) {
- throw new Error();
+ if (ps.fileIds) {
+ files = (await Promise.all(ps.fileIds.map(fileId =>
+ this.driveFilesRepository.findOneBy({
+ id: fileId,
+ userId: me.id,
+ }),
+ ))).filter(x => x != null);
+
+ if (files.length === 0) {
+ throw new Error();
+ }
}
await this.galleryPostsRepository.update({
@@ -81,7 +85,7 @@ export default class extends Endpoint { // eslint-
title: ps.title,
description: ps.description,
isSensitive: ps.isSensitive,
- fileIds: files.map(file => file.id),
+ fileIds: files ? files.map(file => file.id) : undefined,
});
const post = await this.galleryPostsRepository.findOneByOrFail({ id: ps.postId });
diff --git a/packages/backend/src/server/api/endpoints/i/webhooks/update.ts b/packages/backend/src/server/api/endpoints/i/webhooks/update.ts
index 6e380d76f8..07a25bd82a 100644
--- a/packages/backend/src/server/api/endpoints/i/webhooks/update.ts
+++ b/packages/backend/src/server/api/endpoints/i/webhooks/update.ts
@@ -34,13 +34,13 @@ export const paramDef = {
webhookId: { type: 'string', format: 'misskey:id' },
name: { type: 'string', minLength: 1, maxLength: 100 },
url: { type: 'string', minLength: 1, maxLength: 1024 },
- secret: { type: 'string', maxLength: 1024, default: '' },
+ secret: { type: 'string', nullable: true, maxLength: 1024 },
on: { type: 'array', items: {
type: 'string', enum: webhookEventTypes,
} },
active: { type: 'boolean' },
},
- required: ['webhookId', 'name', 'url', 'on', 'active'],
+ required: ['webhookId'],
} as const;
// TODO: ロジックをサービスに切り出す
@@ -66,7 +66,7 @@ export default class extends Endpoint { // eslint-
await this.webhooksRepository.update(webhook.id, {
name: ps.name,
url: ps.url,
- secret: ps.secret,
+ secret: ps.secret === null ? '' : ps.secret,
on: ps.on,
active: ps.active,
});
diff --git a/packages/backend/src/server/api/endpoints/pages/update.ts b/packages/backend/src/server/api/endpoints/pages/update.ts
index b8e5e70a25..f11bbbcb1a 100644
--- a/packages/backend/src/server/api/endpoints/pages/update.ts
+++ b/packages/backend/src/server/api/endpoints/pages/update.ts
@@ -70,7 +70,7 @@ export const paramDef = {
alignCenter: { type: 'boolean' },
hideTitleWhenPinned: { type: 'boolean' },
},
- required: ['pageId', 'title', 'name', 'content', 'variables', 'script'],
+ required: ['pageId'],
} as const;
@Injectable()
@@ -91,9 +91,8 @@ export default class extends Endpoint { // eslint-
throw new ApiError(meta.errors.accessDenied);
}
- let eyeCatchingImage = null;
if (ps.eyeCatchingImageId != null) {
- eyeCatchingImage = await this.driveFilesRepository.findOneBy({
+ const eyeCatchingImage = await this.driveFilesRepository.findOneBy({
id: ps.eyeCatchingImageId,
userId: me.id,
});
@@ -116,23 +115,15 @@ export default class extends Endpoint { // eslint-
await this.pagesRepository.update(page.id, {
updatedAt: new Date(),
title: ps.title,
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
- name: ps.name === undefined ? page.name : ps.name,
+ name: ps.name,
summary: ps.summary === undefined ? page.summary : ps.summary,
content: ps.content,
variables: ps.variables,
script: ps.script,
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
- alignCenter: ps.alignCenter === undefined ? page.alignCenter : ps.alignCenter,
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
- hideTitleWhenPinned: ps.hideTitleWhenPinned === undefined ? page.hideTitleWhenPinned : ps.hideTitleWhenPinned,
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
- font: ps.font === undefined ? page.font : ps.font,
- eyeCatchingImageId: ps.eyeCatchingImageId === null
- ? null
- : ps.eyeCatchingImageId === undefined
- ? page.eyeCatchingImageId
- : eyeCatchingImage!.id,
+ alignCenter: ps.alignCenter,
+ hideTitleWhenPinned: ps.hideTitleWhenPinned,
+ font: ps.font,
+ eyeCatchingImageId: ps.eyeCatchingImageId,
});
});
}
diff --git a/packages/misskey-js/src/autogen/types.ts b/packages/misskey-js/src/autogen/types.ts
index bdcc1dfd77..72aca4dee2 100644
--- a/packages/misskey-js/src/autogen/types.ts
+++ b/packages/misskey-js/src/autogen/types.ts
@@ -5881,15 +5881,15 @@ export type operations = {
'application/json': {
/** Format: misskey:id */
id: string;
- memo: string;
- url: string;
- imageUrl: string;
- place: string;
- priority: string;
- ratio: number;
- expiresAt: number;
- startsAt: number;
- dayOfWeek: number;
+ memo?: string;
+ url?: string;
+ imageUrl?: string;
+ place?: string;
+ priority?: string;
+ ratio?: number;
+ expiresAt?: number;
+ startsAt?: number;
+ dayOfWeek?: number;
};
};
};
@@ -9744,21 +9744,21 @@ export type operations = {
'application/json': {
/** Format: misskey:id */
roleId: string;
- name: string;
- description: string;
- color: string | null;
- iconUrl: string | null;
+ name?: string;
+ description?: string;
+ color?: string | null;
+ iconUrl?: string | null;
/** @enum {string} */
- target: 'manual' | 'conditional';
- condFormula: Record;
- isPublic: boolean;
- isModerator: boolean;
- isAdministrator: boolean;
+ target?: 'manual' | 'conditional';
+ condFormula?: Record;
+ isPublic?: boolean;
+ isModerator?: boolean;
+ isAdministrator?: boolean;
isExplorable?: boolean;
- asBadge: boolean;
- canEditMembersByModerator: boolean;
- displayOrder: number;
- policies: Record;
+ asBadge?: boolean;
+ canEditMembersByModerator?: boolean;
+ displayOrder?: number;
+ policies?: Record;
};
};
};
@@ -13400,7 +13400,7 @@ export type operations = {
'application/json': {
/** Format: misskey:id */
clipId: string;
- name: string;
+ name?: string;
isPublic?: boolean;
description?: string | null;
};
@@ -16247,9 +16247,9 @@ export type operations = {
'application/json': {
/** Format: misskey:id */
postId: string;
- title: string;
+ title?: string;
description?: string | null;
- fileIds: string[];
+ fileIds?: string[];
/** @default false */
isSensitive?: boolean;
};
@@ -20030,12 +20030,11 @@ export type operations = {
'application/json': {
/** Format: misskey:id */
webhookId: string;
- name: string;
- url: string;
- /** @default */
- secret?: string;
- on: ('mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction')[];
- active: boolean;
+ name?: string;
+ url?: string;
+ secret?: string | null;
+ on?: ('mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction')[];
+ active?: boolean;
};
};
};
@@ -23404,16 +23403,16 @@ export type operations = {
'application/json': {
/** Format: misskey:id */
pageId: string;
- title: string;
- name: string;
+ title?: string;
+ name?: string;
summary?: string | null;
- content: {
+ content?: {
[key: string]: unknown;
}[];
- variables: {
+ variables?: {
[key: string]: unknown;
}[];
- script: string;
+ script?: string;
/** Format: misskey:id */
eyeCatchingImageId?: string | null;
/** @enum {string} */
From faeab96e01c7c7be5dfc85716b4a0b05b93f50ab Mon Sep 17 00:00:00 2001
From: Kisaragi <48310258+KisaragiEffective@users.noreply.github.com>
Date: Sat, 22 Jun 2024 14:55:24 +0900
Subject: [PATCH 049/143] ci: add quote (#13990)
---
.github/workflows/storybook.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/storybook.yml b/.github/workflows/storybook.yml
index c52883ffdd..daa76509c8 100644
--- a/.github/workflows/storybook.yml
+++ b/.github/workflows/storybook.yml
@@ -88,7 +88,7 @@ jobs:
if [ "$BRANCH" = "misskey-dev:$HEAD_REF" ]; then
BRANCH="$HEAD_REF"
fi
- pnpm --filter frontend chromatic --exit-once-uploaded -d storybook-static --branch-name $BRANCH $(echo "$CHROMATIC_PARAMETER")
+ pnpm --filter frontend chromatic --exit-once-uploaded -d storybook-static --branch-name "$BRANCH" $(echo "$CHROMATIC_PARAMETER")
env:
HEAD_REF: ${{ github.event.pull_request.head.ref }}
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
From bf403aa656627fc4b29aed329aa044d42a791acf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?=
<67428053+kakkokari-gtyih@users.noreply.github.com>
Date: Sat, 22 Jun 2024 15:35:54 +0900
Subject: [PATCH 050/143] =?UTF-8?q?fix(frontend):=20=E3=83=99=E3=83=BC?=
=?UTF-8?q?=E3=82=B9=E3=83=AD=E3=83=BC=E3=83=AB=E3=82=92=E7=B7=A8=E9=9B=86?=
=?UTF-8?q?=E3=81=97=E3=81=A6=E3=82=82UI=E4=B8=8A=E3=81=A7=E3=81=AF?=
=?UTF-8?q?=E5=A4=89=E6=9B=B4=E3=81=8C=E5=8F=8D=E6=98=A0=E3=81=95=E3=82=8C?=
=?UTF-8?q?=E3=81=AA=E3=81=84=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3?=
=?UTF-8?q?=20(#13995)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* fix(frontend): ベースロールを変更してもUI上では変更が反映されない問題を修正
* Update CHANGELOG.md
---
CHANGELOG.md | 1 +
packages/frontend/src/pages/admin/roles.vue | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c1af63ad23..a913e42500 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,7 @@
- Fix: `/about#federation` ページなどで各インスタンスのチャートが表示されなくなっていた問題を修正
- Fix: ユーザーページの追加情報のラベルを投稿者のサーバーの絵文字で表示する (#13968)
- Fix: リバーシの対局を正しく共有できないことがある問題を修正
+- Fix: コントロールパネルでベースロールのポリシーを編集してもUI上では変更が反映されない問題を修正
### Server
- チャート生成時にinstance.suspentionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正
diff --git a/packages/frontend/src/pages/admin/roles.vue b/packages/frontend/src/pages/admin/roles.vue
index 9753d9f6cb..50323e3de5 100644
--- a/packages/frontend/src/pages/admin/roles.vue
+++ b/packages/frontend/src/pages/admin/roles.vue
@@ -243,7 +243,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/scripts/misskey-api.js';
import { i18n } from '@/i18n.js';
import { definePageMetadata } from '@/scripts/page-metadata.js';
-import { instance } from '@/instance.js';
+import { instance, fetchInstance } from '@/instance.js';
import MkFoldableSection from '@/components/MkFoldableSection.vue';
import { ROLE_POLICIES } from '@/const.js';
import { useRouter } from '@/router/supplier.js';
@@ -267,6 +267,7 @@ async function updateBaseRole() {
await os.apiWithDialog('admin/roles/update-default-policies', {
policies,
});
+ fetchInstance(true);
}
function create() {
From 7c22a64b8c505f6e6c9da0fec16902fcd9af773f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?=
<67428053+kakkokari-gtyih@users.noreply.github.com>
Date: Sat, 22 Jun 2024 16:52:27 +0900
Subject: [PATCH 051/143] =?UTF-8?q?fix(backend):=20=E8=87=AA=E5=88=86?=
=?UTF-8?q?=E4=BB=A5=E5=A4=96=E3=81=AE=E3=82=AF=E3=83=AA=E3=83=83=E3=83=97?=
=?UTF-8?q?=E5=86=85=E3=81=AE=E3=83=8E=E3=83=BC=E3=83=88=E5=80=8B=E6=95=B0?=
=?UTF-8?q?=E3=81=8C=E8=A6=8B=E3=81=88=E3=82=8B=E3=81=AE=E3=82=92=E4=BF=AE?=
=?UTF-8?q?=E6=AD=A3=20(#14065)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* fix(backend): 自分以外のクリップ内のノート個数が見えることがあるのを修正
* Update Changelog
* fix
---
CHANGELOG.md | 1 +
packages/backend/src/core/entities/ClipEntityService.ts | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a913e42500..e4c4cfe1f0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,6 +23,7 @@
- Enhance: エンドポイント`admin/ad/update`の必須項目を`id`のみに
- Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059)
- Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正
+- Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正
## 2024.5.0
diff --git a/packages/backend/src/core/entities/ClipEntityService.ts b/packages/backend/src/core/entities/ClipEntityService.ts
index 3855a28436..d915645906 100644
--- a/packages/backend/src/core/entities/ClipEntityService.ts
+++ b/packages/backend/src/core/entities/ClipEntityService.ts
@@ -53,7 +53,7 @@ export class ClipEntityService {
isPublic: clip.isPublic,
favoritedCount: await this.clipFavoritesRepository.countBy({ clipId: clip.id }),
isFavorited: meId ? await this.clipFavoritesRepository.exists({ where: { clipId: clip.id, userId: meId } }) : undefined,
- notesCount: meId ? await this.clipNotesRepository.countBy({ clipId: clip.id }) : undefined,
+ notesCount: (meId === clip.userId) ? await this.clipNotesRepository.countBy({ clipId: clip.id }) : undefined,
});
}
From 9368eb3038d5f655b924d53800daaa7e54e08c47 Mon Sep 17 00:00:00 2001
From: Kisaragi <48310258+KisaragiEffective@users.noreply.github.com>
Date: Sat, 22 Jun 2024 19:40:55 +0900
Subject: [PATCH 052/143] refactor: say bye to the weird groupBy friends
(#13975)
* refactor(frontend): say bye to the weird groupBy friends
* refactor(backend): say bye to the weird groupBy friends
---
packages/backend/src/misc/prelude/array.ts | 38 ----------------------
packages/frontend/src/scripts/array.ts | 38 ----------------------
2 files changed, 76 deletions(-)
diff --git a/packages/backend/src/misc/prelude/array.ts b/packages/backend/src/misc/prelude/array.ts
index dbfe1fff18..f741a0c913 100644
--- a/packages/backend/src/misc/prelude/array.ts
+++ b/packages/backend/src/misc/prelude/array.ts
@@ -65,44 +65,6 @@ export function maximum(xs: number[]): number {
return Math.max(...xs);
}
-/**
- * Splits an array based on the equivalence relation.
- * The concatenation of the result is equal to the argument.
- */
-export function groupBy(f: EndoRelation, xs: T[]): T[][] {
- const groups = [] as T[][];
- for (const x of xs) {
- const lastGroup = groups.at(-1);
- if (lastGroup !== undefined && f(lastGroup[0], x)) {
- lastGroup.push(x);
- } else {
- groups.push([x]);
- }
- }
- return groups;
-}
-
-/**
- * Splits an array based on the equivalence relation induced by the function.
- * The concatenation of the result is equal to the argument.
- */
-export function groupOn(f: (x: T) => S, xs: T[]): T[][] {
- return groupBy((a, b) => f(a) === f(b), xs);
-}
-
-export function groupByX(collections: T[], keySelector: (x: T) => string) {
- return collections.reduce((obj: Record, item: T) => {
- const key = keySelector(item);
- if (!Object.prototype.hasOwnProperty.call(obj, key)) {
- obj[key] = [];
- }
-
- obj[key].push(item);
-
- return obj;
- }, {});
-}
-
/**
* Compare two arrays by lexicographical order
*/
diff --git a/packages/frontend/src/scripts/array.ts b/packages/frontend/src/scripts/array.ts
index b3d76e149f..f2feb29dfc 100644
--- a/packages/frontend/src/scripts/array.ts
+++ b/packages/frontend/src/scripts/array.ts
@@ -77,44 +77,6 @@ export function maximum(xs: number[]): number {
return Math.max(...xs);
}
-/**
- * Splits an array based on the equivalence relation.
- * The concatenation of the result is equal to the argument.
- */
-export function groupBy(f: EndoRelation, xs: T[]): T[][] {
- const groups = [] as T[][];
- for (const x of xs) {
- const lastGroup = groups.at(-1);
- if (lastGroup !== undefined && f(lastGroup[0], x)) {
- lastGroup.push(x);
- } else {
- groups.push([x]);
- }
- }
- return groups;
-}
-
-/**
- * Splits an array based on the equivalence relation induced by the function.
- * The concatenation of the result is equal to the argument.
- */
-export function groupOn(f: (x: T) => S, xs: T[]): T[][] {
- return groupBy((a, b) => f(a) === f(b), xs);
-}
-
-export function groupByX(collections: T[], keySelector: (x: T) => string) {
- return collections.reduce((obj: Record, item: T) => {
- const key = keySelector(item);
- if (typeof obj[key] === 'undefined') {
- obj[key] = [];
- }
-
- obj[key].push(item);
-
- return obj;
- }, {});
-}
-
/**
* Compare two arrays by lexicographical order
*/
From b8b4dc50384aa3f146d90b10d7f13f87a4a2232c Mon Sep 17 00:00:00 2001
From: anatawa12
Date: Sat, 22 Jun 2024 19:45:08 +0900
Subject: [PATCH 053/143] build: install pnpm with corepack on docker build
(#13926)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* build: install pnpm with corepack on build
* docs(changelog): Dockerコンテナの立ち上げ時に`pnpm`のインストールで固まることがある問題
---
CHANGELOG.md | 1 +
Dockerfile | 4 ++++
2 files changed, 5 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e4c4cfe1f0..ca74d71719 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,7 @@
### General
- Feat: 通報を受けた際、または解決した際に、予め登録した宛先に通知を飛ばせるように(mail or webhook) #13705
- Fix: 配信停止したインスタンス一覧が見れなくなる問題を修正
+- Fix: Dockerコンテナの立ち上げ時に`pnpm`のインストールで固まることがある問題
### Client
- Fix: `/about#federation` ページなどで各インスタンスのチャートが表示されなくなっていた問題を修正
diff --git a/Dockerfile b/Dockerfile
index 9fc2d611cd..d6ca6b8cdf 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -82,6 +82,10 @@ RUN apt-get update \
USER misskey
WORKDIR /misskey
+# add package.json to add pnpm
+COPY --chown=misskey:misskey ./package.json ./package.json
+RUN corepack install
+
COPY --chown=misskey:misskey --from=target-builder /misskey/node_modules ./node_modules
COPY --chown=misskey:misskey --from=target-builder /misskey/packages/backend/node_modules ./packages/backend/node_modules
COPY --chown=misskey:misskey --from=target-builder /misskey/packages/misskey-js/node_modules ./packages/misskey-js/node_modules
From 00b213373bd3f60a6144344ab8cbda08418ca1e4 Mon Sep 17 00:00:00 2001
From: woxtu
Date: Sat, 22 Jun 2024 19:46:29 +0900
Subject: [PATCH 054/143] Remove @types/node-fetch (#13948)
---
packages/backend/package.json | 1 -
pnpm-lock.yaml | 11 -----------
2 files changed, 12 deletions(-)
diff --git a/packages/backend/package.json b/packages/backend/package.json
index 15134b1ca8..0467ab0bee 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -207,7 +207,6 @@
"@types/mime-types": "2.1.4",
"@types/ms": "0.7.34",
"@types/node": "20.12.7",
- "@types/node-fetch": "3.0.3",
"@types/nodemailer": "6.4.15",
"@types/oauth": "0.9.4",
"@types/oauth2orize": "1.11.5",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1281f7eefe..09df15853b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -586,9 +586,6 @@ importers:
'@types/node':
specifier: 20.12.7
version: 20.12.7
- '@types/node-fetch':
- specifier: 3.0.3
- version: 3.0.3
'@types/nodemailer':
specifier: 6.4.15
version: 6.4.15
@@ -4625,10 +4622,6 @@ packages:
'@types/node-fetch@2.6.4':
resolution: {integrity: sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==}
- '@types/node-fetch@3.0.3':
- resolution: {integrity: sha512-HhggYPH5N+AQe/OmN6fmhKmRRt2XuNJow+R3pQwJxOOF9GuwM7O2mheyGeIrs5MOIeNjDEdgdoyHBOrFeJBR3g==}
- deprecated: This is a stub types definition. node-fetch provides its own type definitions, so you do not need this installed.
-
'@types/node@18.17.15':
resolution: {integrity: sha512-2yrWpBk32tvV/JAd3HNHWuZn/VDN1P+72hWirHnvsvTGSqbANi+kSeuQR9yAHnbvaBvHDsoTdXV0Fe+iRtHLKA==}
@@ -16025,10 +16018,6 @@ snapshots:
'@types/node': 20.12.7
form-data: 3.0.1
- '@types/node-fetch@3.0.3':
- dependencies:
- node-fetch: 3.3.2
-
'@types/node@18.17.15': {}
'@types/node@20.11.5':
From 961cb6c5eeb7745dc156327d2041241b70098b70 Mon Sep 17 00:00:00 2001
From: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
Date: Sat, 22 Jun 2024 19:49:38 +0900
Subject: [PATCH 055/143] fix(backend): fix creating reactions bugs (#13901)
* fix(backend): add fallback for empty string when creating reaction
* fix(backend): prohibit reactions to Renote
* test(backend): add some tests for `notes/reactions/create` endpoint
* Update CHANGELOG.md
* lint
* Update CHANGELOG.md
---------
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
---
CHANGELOG.md | 2 +
packages/backend/src/core/ReactionService.ts | 8 ++-
.../api/endpoints/notes/reactions/create.ts | 7 +++
packages/backend/test/e2e/endpoints.ts | 61 +++++++++++++++++++
4 files changed, 77 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ca74d71719..354bbd20fd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,6 +25,8 @@
- Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059)
- Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正
- Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正
+- Fix: 空文字列のリアクションはフォールバックされるように
+- Fix: リノートにリアクションできないように
## 2024.5.0
diff --git a/packages/backend/src/core/ReactionService.ts b/packages/backend/src/core/ReactionService.ts
index cb0b079df0..64c7b2ed03 100644
--- a/packages/backend/src/core/ReactionService.ts
+++ b/packages/backend/src/core/ReactionService.ts
@@ -29,6 +29,7 @@ import { CustomEmojiService } from '@/core/CustomEmojiService.js';
import { RoleService } from '@/core/RoleService.js';
import { FeaturedService } from '@/core/FeaturedService.js';
import { trackPromise } from '@/misc/promise-tracker.js';
+import { isQuote, isRenote } from '@/misc/is-renote.js';
const FALLBACK = '\u2764';
const PER_NOTE_REACTION_USER_PAIR_CACHE_MAX = 16;
@@ -117,11 +118,16 @@ export class ReactionService {
throw new IdentifiableError('68e9d2d1-48bf-42c2-b90a-b20e09fd3d48', 'Note not accessible for you.');
}
+ // Check if note is Renote
+ if (isRenote(note) && !isQuote(note)) {
+ throw new IdentifiableError('12c35529-3c79-4327-b1cc-e2cf63a71925', 'You cannot react to Renote.');
+ }
+
let reaction = _reaction ?? FALLBACK;
if (note.reactionAcceptance === 'likeOnly' || ((note.reactionAcceptance === 'likeOnlyForRemote' || note.reactionAcceptance === 'nonSensitiveOnlyForLocalLikeOnlyForRemote') && (user.host != null))) {
reaction = '\u2764';
- } else if (_reaction) {
+ } else if (_reaction != null) {
const custom = reaction.match(isCustomEmojiRegexp);
if (custom) {
const reacterHost = this.utilityService.toPunyNullable(user.host);
diff --git a/packages/backend/src/server/api/endpoints/notes/reactions/create.ts b/packages/backend/src/server/api/endpoints/notes/reactions/create.ts
index b9899608bf..0f0dcca605 100644
--- a/packages/backend/src/server/api/endpoints/notes/reactions/create.ts
+++ b/packages/backend/src/server/api/endpoints/notes/reactions/create.ts
@@ -36,6 +36,12 @@ export const meta = {
code: 'YOU_HAVE_BEEN_BLOCKED',
id: '20ef5475-9f38-4e4c-bd33-de6d979498ec',
},
+
+ cannotReactToRenote: {
+ message: 'You cannot react to Renote.',
+ code: 'CANNOT_REACT_TO_RENOTE',
+ id: 'eaccdc08-ddef-43fe-908f-d108faad57f5',
+ },
},
} as const;
@@ -62,6 +68,7 @@ export default class extends Endpoint { // eslint-
await this.reactionService.create(me, note, ps.reaction).catch(err => {
if (err.id === '51c42bb4-931a-456b-bff7-e5a8a70dd298') throw new ApiError(meta.errors.alreadyReacted);
if (err.id === 'e70412a4-7197-4726-8e74-f3e0deb92aa7') throw new ApiError(meta.errors.youHaveBeenBlocked);
+ if (err.id === '12c35529-3c79-4327-b1cc-e2cf63a71925') throw new ApiError(meta.errors.cannotReactToRenote);
throw err;
});
return;
diff --git a/packages/backend/test/e2e/endpoints.ts b/packages/backend/test/e2e/endpoints.ts
index bc89dc37f4..de5e8ba95e 100644
--- a/packages/backend/test/e2e/endpoints.ts
+++ b/packages/backend/test/e2e/endpoints.ts
@@ -266,6 +266,67 @@ describe('Endpoints', () => {
assert.strictEqual(res.status, 400);
});
+ test('リノートにリアクションできない', async () => {
+ const bobNote = await post(bob, { text: 'hi' });
+ const bobRenote = await post(bob, { renoteId: bobNote.id });
+
+ const res = await api('notes/reactions/create', {
+ noteId: bobRenote.id,
+ reaction: '🚀',
+ }, alice);
+
+ assert.strictEqual(res.status, 400);
+ assert.strictEqual(res.body.error.code, 'CANNOT_REACT_TO_RENOTE');
+ });
+
+ test('引用にリアクションできる', async () => {
+ const bobNote = await post(bob, { text: 'hi' });
+ const bobRenote = await post(bob, { text: 'hi again', renoteId: bobNote.id });
+
+ const res = await api('notes/reactions/create', {
+ noteId: bobRenote.id,
+ reaction: '🚀',
+ }, alice);
+
+ assert.strictEqual(res.status, 204);
+ });
+
+ test('空文字列のリアクションは\u2764にフォールバックされる', async () => {
+ const bobNote = await post(bob, { text: 'hi' });
+
+ const res = await api('notes/reactions/create', {
+ noteId: bobNote.id,
+ reaction: '',
+ }, alice);
+
+ assert.strictEqual(res.status, 204);
+
+ const reaction = await api('notes/reactions', {
+ noteId: bobNote.id,
+ });
+
+ assert.strictEqual(reaction.body.length, 1);
+ assert.strictEqual(reaction.body[0].type, '\u2764');
+ });
+
+ test('絵文字ではない文字列のリアクションは\u2764にフォールバックされる', async () => {
+ const bobNote = await post(bob, { text: 'hi' });
+
+ const res = await api('notes/reactions/create', {
+ noteId: bobNote.id,
+ reaction: 'Hello!',
+ }, alice);
+
+ assert.strictEqual(res.status, 204);
+
+ const reaction = await api('notes/reactions', {
+ noteId: bobNote.id,
+ });
+
+ assert.strictEqual(reaction.body.length, 1);
+ assert.strictEqual(reaction.body[0].type, '\u2764');
+ });
+
test('空のパラメータで怒られる', async () => {
// @ts-expect-error param must not be empty
const res = await api('notes/reactions/create', {}, alice);
From 2acbec6891a94dc9291b3e0c3d2e24d13367ba1c Mon Sep 17 00:00:00 2001
From: Ibuki Sugiyama
Date: Sat, 22 Jun 2024 19:50:32 +0900
Subject: [PATCH 056/143] enhance: update datasaver switch titles (#12834)
---
locales/ja-JP.yml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index 3ac1ce82a3..0d89d33abe 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -2599,16 +2599,16 @@ _externalResourceInstaller:
_dataSaver:
_media:
- title: "メディアの読み込み"
+ title: "メディアの読み込みを無効化"
description: "画像・動画が自動で読み込まれるのを防止します。隠れている画像・動画はタップすると読み込まれます。"
_avatar:
- title: "アイコン画像"
+ title: "アイコン画像のアニメーションを無効化"
description: "アイコン画像のアニメーションが停止します。アニメーション画像は通常の画像よりファイルサイズが大きいことがあるので、データ通信量をさらに削減できます。"
_urlPreview:
- title: "URLプレビューのサムネイル"
+ title: "URLプレビューのサムネイルを非表示"
description: "URLプレビューのサムネイル画像が読み込まれなくなります。"
_code:
- title: "コードハイライト"
+ title: "コードハイライトを非表示"
description: "MFMなどでコードハイライト記法が使われている場合、タップするまで読み込まれなくなります。コードハイライトではハイライトする言語ごとにその定義ファイルを読み込む必要がありますが、それらが自動で読み込まれなくなるため、通信量の削減が見込めます。"
_hemisphere:
From b269c431686b04fbfc256c5a1fe621bc70f7ea06 Mon Sep 17 00:00:00 2001
From: woxtu
Date: Sun, 23 Jun 2024 01:00:12 +0900
Subject: [PATCH 057/143] Fix type annotations (#14071)
---
packages/frontend/src/filters/user.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/frontend/src/filters/user.ts b/packages/frontend/src/filters/user.ts
index b713d41789..a87766764d 100644
--- a/packages/frontend/src/filters/user.ts
+++ b/packages/frontend/src/filters/user.ts
@@ -6,7 +6,7 @@
import * as Misskey from 'misskey-js';
import { url } from '@/config.js';
-export const acct = (user: misskey.Acct) => {
+export const acct = (user: Misskey.Acct) => {
return Misskey.acct.toString(user);
};
@@ -14,6 +14,6 @@ export const userName = (user: Misskey.entities.User) => {
return user.name || user.username;
};
-export const userPage = (user: misskey.Acct, path?, absolute = false) => {
+export const userPage = (user: Misskey.Acct, path?: string, absolute = false) => {
return `${absolute ? url : ''}/@${acct(user)}${(path ? `/${path}` : '')}`;
};
From b95a0457a94b135df9b9511ef77558d1a81962f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?=
<67428053+kakkokari-gtyih@users.noreply.github.com>
Date: Sun, 23 Jun 2024 19:04:01 +0900
Subject: [PATCH 058/143] fix(frontend): run `pnpm build-assets` (#14077)
---
locales/index.d.ts | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/locales/index.d.ts b/locales/index.d.ts
index acdc1fc421..ebd980ed85 100644
--- a/locales/index.d.ts
+++ b/locales/index.d.ts
@@ -9761,7 +9761,7 @@ export interface Locale extends ILocale {
"_dataSaver": {
"_media": {
/**
- * メディアの読み込み
+ * メディアの読み込みを無効化
*/
"title": string;
/**
@@ -9771,7 +9771,7 @@ export interface Locale extends ILocale {
};
"_avatar": {
/**
- * アイコン画像
+ * アイコン画像のアニメーションを無効化
*/
"title": string;
/**
@@ -9781,7 +9781,7 @@ export interface Locale extends ILocale {
};
"_urlPreview": {
/**
- * URLプレビューのサムネイル
+ * URLプレビューのサムネイルを非表示
*/
"title": string;
/**
@@ -9791,7 +9791,7 @@ export interface Locale extends ILocale {
};
"_code": {
/**
- * コードハイライト
+ * コードハイライトを非表示
*/
"title": string;
/**
From 634764e1a6e06ea9c117b720d58685fe99cae81a Mon Sep 17 00:00:00 2001
From: woxtu
Date: Mon, 24 Jun 2024 21:32:12 +0900
Subject: [PATCH 059/143] refactor(frontend): Remove unused directives (#14085)
---
packages/frontend/src/components/MkCaptcha.vue | 1 -
packages/frontend/src/i18n.ts | 1 -
2 files changed, 2 deletions(-)
diff --git a/packages/frontend/src/components/MkCaptcha.vue b/packages/frontend/src/components/MkCaptcha.vue
index c64bb47e77..c5b6e0caed 100644
--- a/packages/frontend/src/components/MkCaptcha.vue
+++ b/packages/frontend/src/components/MkCaptcha.vue
@@ -104,7 +104,6 @@ async function requestRender() {
});
} else if (props.provider === 'mcaptcha' && props.instanceUrl && props.sitekey) {
const { default: Widget } = await import('@mcaptcha/vanilla-glue');
- // @ts-expect-error avoid typecheck error
new Widget({
siteKey: {
instanceUrl: new URL(props.instanceUrl),
diff --git a/packages/frontend/src/i18n.ts b/packages/frontend/src/i18n.ts
index cc9faddb20..10d6adbcd0 100644
--- a/packages/frontend/src/i18n.ts
+++ b/packages/frontend/src/i18n.ts
@@ -11,6 +11,5 @@ import { I18n } from '@/scripts/i18n.js';
export const i18n = markRaw(new I18n(locale));
export function updateI18n(newLocale: Locale) {
- // @ts-expect-error -- private field
i18n.locale = newLocale;
}
From 1c5d0cf5364ed841bd181b75682503a648a90bd6 Mon Sep 17 00:00:00 2001
From: yupix
Date: Wed, 26 Jun 2024 10:25:18 +0900
Subject: [PATCH 060/143] =?UTF-8?q?feat:=20=E3=82=A2=E3=83=B3=E3=83=86?=
=?UTF-8?q?=E3=83=8A=E3=81=AE=E7=B7=A8=E9=9B=86=E7=94=BB=E9=9D=A2=E3=81=AE?=
=?UTF-8?q?=E3=83=9C=E3=82=BF=E3=83=B3=E3=81=ABgap=E3=82=92=E8=BF=BD?=
=?UTF-8?q?=E5=8A=A0=20(#14091)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
CHANGELOG.md | 1 +
packages/frontend/src/pages/my-antennas/editor.vue | 6 ++++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 354bbd20fd..290b13ab36 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@
- Fix: ユーザーページの追加情報のラベルを投稿者のサーバーの絵文字で表示する (#13968)
- Fix: リバーシの対局を正しく共有できないことがある問題を修正
- Fix: コントロールパネルでベースロールのポリシーを編集してもUI上では変更が反映されない問題を修正
+- Fix: アンテナの編集画面のボタンに隙間を追加
### Server
- チャート生成時にinstance.suspentionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正
diff --git a/packages/frontend/src/pages/my-antennas/editor.vue b/packages/frontend/src/pages/my-antennas/editor.vue
index 2949bfc02c..02e8f98265 100644
--- a/packages/frontend/src/pages/my-antennas/editor.vue
+++ b/packages/frontend/src/pages/my-antennas/editor.vue
@@ -41,8 +41,10 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.withFileAntenna }}
-
{{ i18n.ts.save }}
-
{{ i18n.ts.delete }}
+
+ {{ i18n.ts.save }}
+ {{ i18n.ts.delete }}
+
From 77012f2f2925c93978a3a5844d1adddd330d777b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E3=81=AC=E3=82=8B=E3=81=8D=E3=82=83=E3=81=A3=E3=81=A8?=
Date: Thu, 27 Jun 2024 10:40:46 +0900
Subject: [PATCH 061/143] =?UTF-8?q?fix(frontend):=20=E3=83=86=E3=83=BC?=
=?UTF-8?q?=E3=83=9E=E3=83=97=E3=83=AC=E3=83=93=E3=83=A5=E3=83=BC=E3=81=8C?=
=?UTF-8?q?=E8=A6=8B=E3=82=8C=E3=81=AA=E3=81=84=E5=95=8F=E9=A1=8C=E3=82=92?=
=?UTF-8?q?=E4=BF=AE=E6=AD=A3=20(#14097)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* fix(frontend): テーマプレビューが見れない問題を修正
* fix: MkPreview.vue, preview.vue
---
.../frontend/src/components/MkPreview.vue | 150 ++++++++++++++++++
packages/frontend/src/pages/preview.vue | 26 +++
packages/frontend/src/router/definition.ts | 3 +
3 files changed, 179 insertions(+)
create mode 100644 packages/frontend/src/components/MkPreview.vue
create mode 100644 packages/frontend/src/pages/preview.vue
diff --git a/packages/frontend/src/components/MkPreview.vue b/packages/frontend/src/components/MkPreview.vue
new file mode 100644
index 0000000000..d950d66c6e
--- /dev/null
+++ b/packages/frontend/src/components/MkPreview.vue
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+ Text
+
+
+ Switch is now {{ flag ? 'on' : 'off' }}
+
+
+ Misskey
+ Mastodon
+ Pleroma
+
+
+ This is
+ the button
+
+
+
+
+
+
+ Open menu
+ Open dialog
+ Open form
+ Open drive
+
+
+
+
+
+
+
diff --git a/packages/frontend/src/pages/preview.vue b/packages/frontend/src/pages/preview.vue
new file mode 100644
index 0000000000..8e07b190aa
--- /dev/null
+++ b/packages/frontend/src/pages/preview.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
diff --git a/packages/frontend/src/router/definition.ts b/packages/frontend/src/router/definition.ts
index 8a443f627b..12ab633af1 100644
--- a/packages/frontend/src/router/definition.ts
+++ b/packages/frontend/src/router/definition.ts
@@ -251,6 +251,9 @@ const routes: RouteDef[] = [{
}, {
path: '/scratchpad',
component: page(() => import('@/pages/scratchpad.vue')),
+}, {
+ path: '/preview',
+ component: page(() => import('@/pages/preview.vue')),
}, {
path: '/auth/:token',
component: page(() => import('@/pages/auth.vue')),
From 0e512d4ff6d2a7c56ac6295bf26d1101a3b6a317 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E3=81=AC=E3=82=8B=E3=81=8D=E3=82=83=E3=81=A3=E3=81=A8?=
Date: Thu, 27 Jun 2024 18:23:47 +0900
Subject: [PATCH 062/143] update: CHANGELOG.md for #14097 (#14099)
---
CHANGELOG.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 290b13ab36..3a28c9ef64 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@
- Fix: リバーシの対局を正しく共有できないことがある問題を修正
- Fix: コントロールパネルでベースロールのポリシーを編集してもUI上では変更が反映されない問題を修正
- Fix: アンテナの編集画面のボタンに隙間を追加
+- Fix: テーマプレビューが見れない問題を修正
### Server
- チャート生成時にinstance.suspentionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正
From 4096dabe1e4b6ebb43e47fbee19954fb92adbdc7 Mon Sep 17 00:00:00 2001
From: woxtu
Date: Thu, 27 Jun 2024 21:59:19 +0900
Subject: [PATCH 063/143] Add null checking (#14089)
---
packages/frontend/src/components/MkFollowButton.vue | 2 ++
1 file changed, 2 insertions(+)
diff --git a/packages/frontend/src/components/MkFollowButton.vue b/packages/frontend/src/components/MkFollowButton.vue
index 636e61db8f..6a4081079c 100644
--- a/packages/frontend/src/components/MkFollowButton.vue
+++ b/packages/frontend/src/components/MkFollowButton.vue
@@ -121,6 +121,8 @@ async function onClick() {
});
hasPendingFollowRequestFromYou.value = true;
+ if ($i == null) return;
+
claimAchievement('following1');
if ($i.followingCount >= 10) {
From a6edd50a5d292e29e6292754a7be95205ac7dbc1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E3=81=AC=E3=82=8B=E3=81=8D=E3=82=83=E3=81=A3=E3=81=A8?=
Date: Fri, 28 Jun 2024 11:16:12 +0900
Subject: [PATCH 064/143] =?UTF-8?q?chore(docker-compose):=20=E6=8E=A8?=
=?UTF-8?q?=E5=A5=A8=E3=81=AE=E5=90=8D=E5=89=8D=E3=81=AB=E3=81=99=E3=82=8B?=
=?UTF-8?q?=20(#14096)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* chore(docker-compose): 推奨の名前にする
https://github.com/compose-spec/compose-spec/blob/5c18e329d5a15a15e4b636ed093b256b96615e33/spec.md#compose-file
* yaml to yml
* fix
* fix
---
.devcontainer/{docker-compose.yml => compose.yml} | 2 --
.devcontainer/devcontainer.json | 2 +-
.dockerignore | 4 ++--
.github/workflows/dockle.yml | 2 +-
.gitignore | 4 ++--
CONTRIBUTING.md | 2 +-
docker-compose.local-db.yml => compose.local-db.yml | 2 --
docker-compose_example.yml => compose_example.yml | 2 --
packages/backend/test/{docker-compose.yml => compose.yml} | 2 --
9 files changed, 7 insertions(+), 15 deletions(-)
rename .devcontainer/{docker-compose.yml => compose.yml} (98%)
rename docker-compose.local-db.yml => compose.local-db.yml (98%)
rename docker-compose_example.yml => compose_example.yml (99%)
rename packages/backend/test/{docker-compose.yml => compose.yml} (94%)
diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/compose.yml
similarity index 98%
rename from .devcontainer/docker-compose.yml
rename to .devcontainer/compose.yml
index a52d086fb6..d02d2a8f4a 100644
--- a/.devcontainer/docker-compose.yml
+++ b/.devcontainer/compose.yml
@@ -1,5 +1,3 @@
-version: '3.8'
-
services:
app:
build:
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 344edbd65d..7ea23e314e 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -1,6 +1,6 @@
{
"name": "Misskey",
- "dockerComposeFile": "docker-compose.yml",
+ "dockerComposeFile": "compose.yml",
"service": "app",
"workspaceFolder": "/workspace",
"features": {
diff --git a/.dockerignore b/.dockerignore
index 1de0c7982b..7dbb06e1d0 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -7,7 +7,7 @@ Dockerfile
build/
built/
db/
-docker-compose.yml
+.devcontainer/compose.yml
node_modules/
packages/*/node_modules
redis/
@@ -28,4 +28,4 @@ fluent-emojis/
.idea/
packages/*/.vscode/
-packages/backend/test/docker-compose.yml
+packages/backend/test/compose.yml
diff --git a/.github/workflows/dockle.yml b/.github/workflows/dockle.yml
index 968971dd8d..c3dba4213d 100644
--- a/.github/workflows/dockle.yml
+++ b/.github/workflows/dockle.yml
@@ -22,7 +22,7 @@ jobs:
sudo dpkg -i dockle.deb
- run: |
cp .config/docker_example.env .config/docker.env
- cp ./docker-compose_example.yml ./docker-compose.yml
+ cp ./compose_example.yml ./compose.yml
- run: |
docker compose up -d web
docker tag "$(docker compose images web | awk 'OFS=":" {print $4}' | tail -n +2)" misskey-web:latest
diff --git a/.gitignore b/.gitignore
index bdc14fea0a..3466984cf6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,8 +35,8 @@ coverage
!/.config/example.yml
!/.config/docker_example.yml
!/.config/docker_example.env
-docker-compose.yml
-!/.devcontainer/docker-compose.yml
+.devcontainer/compose.yml
+!/.devcontainer/compose.yml
# misskey
/build
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index dcb625626d..06c2d2f21d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -165,7 +165,7 @@ cp .github/misskey/test.yml .config/
```
Prepare DB/Redis for testing.
```
-docker compose -f packages/backend/test/docker-compose.yml up
+docker compose -f packages/backend/test/compose.yaml up
```
Alternatively, prepare an empty (data can be erased) DB and edit `.config/test.yml`.
diff --git a/docker-compose.local-db.yml b/compose.local-db.yml
similarity index 98%
rename from docker-compose.local-db.yml
rename to compose.local-db.yml
index 16ba4b49e1..3835cb23db 100644
--- a/docker-compose.local-db.yml
+++ b/compose.local-db.yml
@@ -1,5 +1,3 @@
-version: "3"
-
# このconfigは、 dockerでMisskey本体を起動せず、 redisとpostgresql などだけを起動します
services:
diff --git a/docker-compose_example.yml b/compose_example.yml
similarity index 99%
rename from docker-compose_example.yml
rename to compose_example.yml
index 5cebbe4164..75d0d3a59c 100644
--- a/docker-compose_example.yml
+++ b/compose_example.yml
@@ -1,5 +1,3 @@
-version: "3"
-
services:
web:
build: .
diff --git a/packages/backend/test/docker-compose.yml b/packages/backend/test/compose.yml
similarity index 94%
rename from packages/backend/test/docker-compose.yml
rename to packages/backend/test/compose.yml
index f2d8990758..6593fc33dd 100644
--- a/packages/backend/test/docker-compose.yml
+++ b/packages/backend/test/compose.yml
@@ -1,5 +1,3 @@
-version: "3"
-
services:
redistest:
image: redis:7
From f1b1e2a7cca3d69eb6162d4c16746968d855ea40 Mon Sep 17 00:00:00 2001
From: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
Date: Tue, 2 Jul 2024 10:57:20 +0900
Subject: [PATCH 065/143] fix(storybook): prevent infinite remount of component
(#14101)
* fix(storybook): prevent infinite remount of component
* fix: disable flaky `.toMatch()` test
---
packages/frontend/.storybook/preview.ts | 6 +-
.../MkChannelFollowButton.stories.impl.ts | 6 --
.../components/MkClickerGame.stories.impl.ts | 12 ++-
.../src/components/MkCwButton.stories.impl.ts | 10 ---
.../src/components/global/MkA.stories.impl.ts | 2 -
.../components/global/MkAd.stories.impl.ts | 87 +++++++------------
packages/frontend/src/scripts/test-utils.ts | 10 ---
7 files changed, 41 insertions(+), 92 deletions(-)
diff --git a/packages/frontend/.storybook/preview.ts b/packages/frontend/.storybook/preview.ts
index 73ee007fb8..d000a28232 100644
--- a/packages/frontend/.storybook/preview.ts
+++ b/packages/frontend/.storybook/preview.ts
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import { FORCE_REMOUNT } from '@storybook/core-events';
+import { FORCE_RE_RENDER, FORCE_REMOUNT } from '@storybook/core-events';
import { addons } from '@storybook/preview-api';
import { type Preview, setup } from '@storybook/vue3';
import isChromatic from 'chromatic/isChromatic';
@@ -16,7 +16,7 @@ import '../src/style.scss';
const appInitialized = Symbol();
-let lastStory = null;
+let lastStory: string | null = null;
let moduleInitialized = false;
let unobserve = () => {};
let misskeyOS = null;
@@ -110,7 +110,7 @@ const preview = {
}).catch(() => {});
Promise.all([resetIndexedDBPromise, resetDefaultStorePromise]).then(() => {
initLocalStorage();
- channel.emit(FORCE_REMOUNT, { storyId: context.id });
+ channel.emit(FORCE_RE_RENDER, { storyId: context.id });
});
}
const story = Story();
diff --git a/packages/frontend/src/components/MkChannelFollowButton.stories.impl.ts b/packages/frontend/src/components/MkChannelFollowButton.stories.impl.ts
index b99620da22..b9770670dc 100644
--- a/packages/frontend/src/components/MkChannelFollowButton.stories.impl.ts
+++ b/packages/frontend/src/components/MkChannelFollowButton.stories.impl.ts
@@ -12,14 +12,12 @@ import { expect, userEvent, within } from '@storybook/test';
import { channel } from '../../.storybook/fakes.js';
import { commonHandlers } from '../../.storybook/mocks.js';
import MkChannelFollowButton from './MkChannelFollowButton.vue';
-import { semaphore } from '@/scripts/test-utils.js';
import { i18n } from '@/i18n.js';
function sleep(ms: number) {
return new Promise(resolve => setTimeout(resolve, ms));
}
-const s = semaphore();
export const Default = {
render(args) {
return {
@@ -46,17 +44,13 @@ export const Default = {
full: true,
},
async play({ canvasElement }) {
- await s.acquire();
- await sleep(1000);
const canvas = within(canvasElement);
const buttonElement = canvas.getByRole('button');
await expect(buttonElement).toHaveTextContent(i18n.ts.follow);
await userEvent.click(buttonElement);
await sleep(1000);
await expect(buttonElement).toHaveTextContent(i18n.ts.unfollow);
- await sleep(100);
await userEvent.click(buttonElement);
- s.release();
},
parameters: {
layout: 'centered',
diff --git a/packages/frontend/src/components/MkClickerGame.stories.impl.ts b/packages/frontend/src/components/MkClickerGame.stories.impl.ts
index 8378010f8b..36313f965d 100644
--- a/packages/frontend/src/components/MkClickerGame.stories.impl.ts
+++ b/packages/frontend/src/components/MkClickerGame.stories.impl.ts
@@ -8,7 +8,7 @@
import { StoryObj } from '@storybook/vue3';
import { HttpResponse, http } from 'msw';
import { action } from '@storybook/addon-actions';
-import { expect, within } from '@storybook/test';
+import { expect, userEvent, within } from '@storybook/test';
import { commonHandlers } from '../../.storybook/mocks.js';
import MkClickerGame from './MkClickerGame.vue';
@@ -41,12 +41,10 @@ export const Default = {
await sleep(1000);
const canvas = within(canvasElement);
const count = canvas.getByTestId('count');
- // NOTE: flaky なので N/A も通しておく
- await expect(count).toHaveTextContent(/^(0|N\/A)$/);
- // FIXME: flaky
- // const buttonElement = canvas.getByRole('button');
- // await userEvent.click(buttonElement);
- // await expect(count).toHaveTextContent('1');
+ await expect(count).toHaveTextContent('0');
+ const buttonElement = canvas.getByRole('button');
+ await userEvent.click(buttonElement);
+ await expect(count).toHaveTextContent('1');
},
parameters: {
layout: 'centered',
diff --git a/packages/frontend/src/components/MkCwButton.stories.impl.ts b/packages/frontend/src/components/MkCwButton.stories.impl.ts
index 05c6001552..5d6ea56da9 100644
--- a/packages/frontend/src/components/MkCwButton.stories.impl.ts
+++ b/packages/frontend/src/components/MkCwButton.stories.impl.ts
@@ -11,13 +11,6 @@ import { expect, userEvent, within } from '@storybook/test';
import { file } from '../../.storybook/fakes.js';
import MkCwButton from './MkCwButton.vue';
import { i18n } from '@/i18n.js';
-import { semaphore } from '@/scripts/test-utils.js';
-
-function sleep(ms: number) {
- return new Promise(resolve => setTimeout(resolve, ms));
-}
-
-const s = semaphore();
export const Default = {
render(args) {
@@ -54,8 +47,6 @@ export const Default = {
text: 'Some CW content',
},
async play({ canvasElement }) {
- await s.acquire();
- await sleep(1000);
const canvas = within(canvasElement);
const buttonElement = canvas.getByRole('button');
await expect(buttonElement).toHaveTextContent(i18n.ts._cw.show);
@@ -63,7 +54,6 @@ export const Default = {
await userEvent.click(buttonElement);
await expect(buttonElement).toHaveTextContent(i18n.ts._cw.hide);
await userEvent.click(buttonElement);
- s.release();
},
parameters: {
chromatic: {
diff --git a/packages/frontend/src/components/global/MkA.stories.impl.ts b/packages/frontend/src/components/global/MkA.stories.impl.ts
index c1d8cf0ca6..02e5a7f98c 100644
--- a/packages/frontend/src/components/global/MkA.stories.impl.ts
+++ b/packages/frontend/src/components/global/MkA.stories.impl.ts
@@ -35,12 +35,10 @@ export const Default = {
// FIXME: 通るけどその後落ちるのでコメントアウト
// await expect(a.href).toMatch(/^https?:\/\/.*#test$/);
await userEvent.pointer({ keys: '[MouseRight]', target: a });
- await tick();
const menu = canvas.getByRole('menu');
await expect(menu).toBeInTheDocument();
await userEvent.click(a);
a.blur();
- await tick();
await expect(menu).not.toBeInTheDocument();
},
args: {
diff --git a/packages/frontend/src/components/global/MkAd.stories.impl.ts b/packages/frontend/src/components/global/MkAd.stories.impl.ts
index aef26ab92d..8c0b7ef52f 100644
--- a/packages/frontend/src/components/global/MkAd.stories.impl.ts
+++ b/packages/frontend/src/components/global/MkAd.stories.impl.ts
@@ -9,12 +9,6 @@ import { StoryObj } from '@storybook/vue3';
import MkAd from './MkAd.vue';
import { i18n } from '@/i18n.js';
-let lock: Promise | undefined;
-
-function sleep(ms: number) {
- return new Promise(resolve => setTimeout(resolve, ms));
-}
-
const common = {
render(args) {
return {
@@ -37,56 +31,41 @@ const common = {
};
},
async play({ canvasElement, args }) {
- if (lock) {
- console.warn('This test is unexpectedly running twice in parallel, fix it!');
- console.warn('See also: https://github.com/misskey-dev/misskey/issues/11267');
- await lock;
+ const canvas = within(canvasElement);
+ const a = canvas.getByRole('link');
+ // FIXME: 通るけどその後落ちるのでコメントアウト
+ // await expect(a.href).toMatch(/^https?:\/\/.*#test$/);
+ const img = within(a).getByRole('img');
+ await expect(img).toBeInTheDocument();
+ let buttons = canvas.getAllByRole('button');
+ await expect(buttons).toHaveLength(1);
+ const i = buttons[0];
+ await expect(i).toBeInTheDocument();
+ await userEvent.click(i);
+ await expect(canvasElement).toHaveTextContent(i18n.ts._ad.back);
+ await expect(a).not.toBeInTheDocument();
+ await expect(i).not.toBeInTheDocument();
+ buttons = canvas.getAllByRole('button');
+ const hasReduceFrequency = args.specify?.ratio !== 0;
+ await expect(buttons).toHaveLength(hasReduceFrequency ? 2 : 1);
+ const reduce = hasReduceFrequency ? buttons[0] : null;
+ const back = buttons[hasReduceFrequency ? 1 : 0];
+ if (reduce) {
+ await expect(reduce).toBeInTheDocument();
+ await expect(reduce).toHaveTextContent(i18n.ts._ad.reduceFrequencyOfThisAd);
}
-
- let resolve: (value?: any) => void;
- lock = new Promise(r => resolve = r);
-
- try {
- // NOTE: sleep しないと何故か落ちる
- await sleep(100);
- const canvas = within(canvasElement);
- const a = canvas.getByRole('link');
- // await expect(a.href).toMatch(/^https?:\/\/.*#test$/);
- const img = within(a).getByRole('img');
- await expect(img).toBeInTheDocument();
- let buttons = canvas.getAllByRole('button');
- await expect(buttons).toHaveLength(1);
- const i = buttons[0];
- await expect(i).toBeInTheDocument();
- await userEvent.click(i);
- await expect(canvasElement).toHaveTextContent(i18n.ts._ad.back);
- await expect(a).not.toBeInTheDocument();
- await expect(i).not.toBeInTheDocument();
- buttons = canvas.getAllByRole('button');
- const hasReduceFrequency = args.specify?.ratio !== 0;
- await expect(buttons).toHaveLength(hasReduceFrequency ? 2 : 1);
- const reduce = hasReduceFrequency ? buttons[0] : null;
- const back = buttons[hasReduceFrequency ? 1 : 0];
- if (reduce) {
- await expect(reduce).toBeInTheDocument();
- await expect(reduce).toHaveTextContent(i18n.ts._ad.reduceFrequencyOfThisAd);
- }
- await expect(back).toBeInTheDocument();
- await expect(back).toHaveTextContent(i18n.ts._ad.back);
- await userEvent.click(back);
- await waitFor(() => expect(canvas.queryByRole('img')).toBeTruthy());
- if (reduce) {
- await expect(reduce).not.toBeInTheDocument();
- }
- await expect(back).not.toBeInTheDocument();
- const aAgain = canvas.getByRole('link');
- await expect(aAgain).toBeInTheDocument();
- const imgAgain = within(aAgain).getByRole('img');
- await expect(imgAgain).toBeInTheDocument();
- } finally {
- resolve!();
- lock = undefined;
+ await expect(back).toBeInTheDocument();
+ await expect(back).toHaveTextContent(i18n.ts._ad.back);
+ await userEvent.click(back);
+ await waitFor(() => expect(canvas.queryByRole('img')).toBeTruthy());
+ if (reduce) {
+ await expect(reduce).not.toBeInTheDocument();
}
+ await expect(back).not.toBeInTheDocument();
+ const aAgain = canvas.getByRole('link');
+ await expect(aAgain).toBeInTheDocument();
+ const imgAgain = within(aAgain).getByRole('img');
+ await expect(imgAgain).toBeInTheDocument();
},
args: {
prefer: [],
diff --git a/packages/frontend/src/scripts/test-utils.ts b/packages/frontend/src/scripts/test-utils.ts
index a32315f4df..52bb2d94e0 100644
--- a/packages/frontend/src/scripts/test-utils.ts
+++ b/packages/frontend/src/scripts/test-utils.ts
@@ -7,13 +7,3 @@ export async function tick(): Promise {
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
await new Promise((globalThis.requestIdleCallback ?? setTimeout) as never);
}
-
-/**
- * @see https://github.com/misskey-dev/misskey/issues/11267
- */
-export function semaphore(counter = 0, waiting: (() => void)[] = []) {
- return {
- acquire: () => ++counter > 1 && new Promise(resolve => waiting.push(resolve)),
- release: () => --counter && waiting.pop()?.(),
- };
-}
From 427648c4b8c5b7699c92afa95a14097bb9329ee8 Mon Sep 17 00:00:00 2001
From: syuilo <4439005+syuilo@users.noreply.github.com>
Date: Tue, 2 Jul 2024 11:38:34 +0900
Subject: [PATCH 066/143] update deps (#14057)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* wip
* locales/index.jsのymlファイル取得ロジックを調節
* regenerate pnpm-lock.yaml
* fix(backend): typecheck fails
* chore(deps): bump ip-cidr from 4.0.0 to 4.0.1 in /packages/backend
* chore: migrate ESLint configs to flat config (#14094)
* chore: migrate ESLint configs to flat config
* fix: update paths
* fix: frontend lint fails
* refactor(misskey-js): lint build.js
* update deps
---------
Co-authored-by: samunohito <46447427+samunohito@users.noreply.github.com>
Co-authored-by: zyoshoka
Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
---
.github/workflows/lint.yml | 4 +-
locales/index.js | 6 +-
package.json | 20 +-
packages/backend/.eslintignore | 4 -
packages/backend/.eslintrc.cjs | 32 -
packages/backend/eslint.config.js | 46 +
packages/backend/package.json | 98 +-
packages/backend/test-server/.eslintrc.cjs | 32 -
packages/backend/test-server/eslint.config.js | 43 +
packages/backend/test/.eslintrc.cjs | 11 -
packages/backend/test/eslint.config.js | 22 +
packages/frontend/.eslintrc.cjs | 82 -
packages/frontend/eslint.config.js | 95 +
packages/frontend/package.json | 116 +-
packages/frontend/tsconfig.json | 1 -
packages/misskey-bubble-game/.eslintignore | 8 -
packages/misskey-bubble-game/.eslintrc.cjs | 9 -
packages/misskey-bubble-game/eslint.config.js | 27 +
packages/misskey-bubble-game/package.json | 4 +-
packages/misskey-js/.eslintignore | 8 -
packages/misskey-js/.eslintrc.cjs | 9 -
packages/misskey-js/build.js | 32 +-
packages/misskey-js/eslint.config.js | 28 +
packages/misskey-js/generator/.eslintrc.cjs | 9 -
.../misskey-js/generator/eslint.config.js | 17 +
packages/misskey-js/generator/package.json | 4 +-
packages/misskey-js/package.json | 24 +-
packages/misskey-reversi/.eslintignore | 8 -
packages/misskey-reversi/.eslintrc.cjs | 10 -
packages/misskey-reversi/eslint.config.js | 23 +
packages/misskey-reversi/package.json | 4 +-
packages/shared/.eslintrc.js | 7 -
packages/shared/eslint.config.js | 28 +
packages/shared/package.json | 3 +
packages/sw/.eslintrc.cjs | 20 -
packages/sw/eslint.config.js | 32 +
packages/sw/package.json | 10 +-
pnpm-lock.yaml | 9005 +++++++++--------
scripts/changelog-checker/.eslintrc.cjs | 9 -
scripts/changelog-checker/eslint.config.js | 17 +
40 files changed, 5556 insertions(+), 4411 deletions(-)
delete mode 100644 packages/backend/.eslintignore
delete mode 100644 packages/backend/.eslintrc.cjs
create mode 100644 packages/backend/eslint.config.js
delete mode 100644 packages/backend/test-server/.eslintrc.cjs
create mode 100644 packages/backend/test-server/eslint.config.js
delete mode 100644 packages/backend/test/.eslintrc.cjs
create mode 100644 packages/backend/test/eslint.config.js
delete mode 100644 packages/frontend/.eslintrc.cjs
create mode 100644 packages/frontend/eslint.config.js
delete mode 100644 packages/misskey-bubble-game/.eslintignore
delete mode 100644 packages/misskey-bubble-game/.eslintrc.cjs
create mode 100644 packages/misskey-bubble-game/eslint.config.js
delete mode 100644 packages/misskey-js/.eslintignore
delete mode 100644 packages/misskey-js/.eslintrc.cjs
create mode 100644 packages/misskey-js/eslint.config.js
delete mode 100644 packages/misskey-js/generator/.eslintrc.cjs
create mode 100644 packages/misskey-js/generator/eslint.config.js
delete mode 100644 packages/misskey-reversi/.eslintignore
delete mode 100644 packages/misskey-reversi/.eslintrc.cjs
create mode 100644 packages/misskey-reversi/eslint.config.js
delete mode 100644 packages/shared/.eslintrc.js
create mode 100644 packages/shared/eslint.config.js
create mode 100644 packages/shared/package.json
delete mode 100644 packages/sw/.eslintrc.cjs
create mode 100644 packages/sw/eslint.config.js
delete mode 100644 scripts/changelog-checker/.eslintrc.cjs
create mode 100644 scripts/changelog-checker/eslint.config.js
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 76616ec5a7..1a1b30168a 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -10,14 +10,14 @@ on:
- packages/frontend/**
- packages/sw/**
- packages/misskey-js/**
- - packages/shared/.eslintrc.js
+ - packages/shared/eslint.config.js
pull_request:
paths:
- packages/backend/**
- packages/frontend/**
- packages/sw/**
- packages/misskey-js/**
- - packages/shared/.eslintrc.js
+ - packages/shared/eslint.config.js
jobs:
pnpm_install:
diff --git a/locales/index.js b/locales/index.js
index 650e552337..c2738884eb 100644
--- a/locales/index.js
+++ b/locales/index.js
@@ -52,7 +52,11 @@ const primaries = {
const clean = (text) => text.replace(new RegExp(String.fromCodePoint(0x08), 'g'), '');
export function build() {
- const locales = languages.reduce((a, c) => (a[c] = yaml.load(clean(fs.readFileSync(new URL(`${c}.yml`, import.meta.url), 'utf-8'))) || {}, a), {});
+ // vitestの挙動を調整するため、一度ローカル変数化する必要がある
+ // https://github.com/vitest-dev/vitest/issues/3988#issuecomment-1686599577
+ // https://github.com/misskey-dev/misskey/pull/14057#issuecomment-2192833785
+ const metaUrl = import.meta.url;
+ const locales = languages.reduce((a, c) => (a[c] = yaml.load(clean(fs.readFileSync(new URL(`${c}.yml`, metaUrl), 'utf-8'))) || {}, a), {});
// 空文字列が入ることがあり、フォールバックが動作しなくなるのでプロパティごと消す
const removeEmpty = (obj) => {
diff --git a/package.json b/package.json
index 5adce65415..bf8415d212 100644
--- a/package.json
+++ b/package.json
@@ -55,20 +55,22 @@
"js-yaml": "4.1.0",
"postcss": "8.4.38",
"tar": "6.2.1",
- "terser": "5.30.3",
- "typescript": "5.5.2",
- "esbuild": "0.20.2",
+ "terser": "5.31.1",
+ "typescript": "5.5.3",
+ "esbuild": "0.22.0",
"glob": "10.3.12"
},
"devDependencies": {
- "@types/node": "20.12.7",
- "@typescript-eslint/eslint-plugin": "7.7.1",
- "@typescript-eslint/parser": "7.7.1",
+ "@misskey-dev/eslint-plugin": "2.0.2",
+ "@types/node": "20.14.9",
+ "@typescript-eslint/eslint-plugin": "7.15.0",
+ "@typescript-eslint/parser": "7.15.0",
"cross-env": "7.0.3",
- "cypress": "13.7.3",
- "eslint": "8.57.0",
+ "cypress": "13.13.0",
+ "eslint": "9.6.0",
+ "globals": "15.7.0",
"ncp": "2.0.0",
- "start-server-and-test": "2.0.3"
+ "start-server-and-test": "2.0.4"
},
"optionalDependencies": {
"@tensorflow/tfjs-core": "4.4.0"
diff --git a/packages/backend/.eslintignore b/packages/backend/.eslintignore
deleted file mode 100644
index 790eb90145..0000000000
--- a/packages/backend/.eslintignore
+++ /dev/null
@@ -1,4 +0,0 @@
-node_modules
-/built
-/.eslintrc.js
-/@types/**/*
diff --git a/packages/backend/.eslintrc.cjs b/packages/backend/.eslintrc.cjs
deleted file mode 100644
index f9fe4814e6..0000000000
--- a/packages/backend/.eslintrc.cjs
+++ /dev/null
@@ -1,32 +0,0 @@
-module.exports = {
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json', './test/tsconfig.json'],
- },
- extends: [
- '../shared/.eslintrc.js',
- ],
- rules: {
- 'import/order': ['warn', {
- 'groups': ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'],
- 'pathGroups': [
- {
- 'pattern': '@/**',
- 'group': 'external',
- 'position': 'after'
- }
- ],
- }],
- 'no-restricted-globals': [
- 'error',
- {
- 'name': '__dirname',
- 'message': 'Not in ESModule. Use `import.meta.url` instead.'
- },
- {
- 'name': '__filename',
- 'message': 'Not in ESModule. Use `import.meta.url` instead.'
- }
- ]
- },
-};
diff --git a/packages/backend/eslint.config.js b/packages/backend/eslint.config.js
new file mode 100644
index 0000000000..318b7fd340
--- /dev/null
+++ b/packages/backend/eslint.config.js
@@ -0,0 +1,46 @@
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ ignores: ['**/node_modules', 'built', '@types/**/*'],
+ },
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json', './test/tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ rules: {
+ 'import/order': ['warn', {
+ groups: [
+ 'builtin',
+ 'external',
+ 'internal',
+ 'parent',
+ 'sibling',
+ 'index',
+ 'object',
+ 'type',
+ ],
+ pathGroups: [{
+ pattern: '@/**',
+ group: 'external',
+ position: 'after',
+ }],
+ }],
+ 'no-restricted-globals': ['error', {
+ name: '__dirname',
+ message: 'Not in ESModule. Use `import.meta.url` instead.',
+ }, {
+ name: '__filename',
+ message: 'Not in ESModule. Use `import.meta.url` instead.',
+ }],
+ },
+ },
+];
diff --git a/packages/backend/package.json b/packages/backend/package.json
index 0467ab0bee..22fdc5cf16 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -65,43 +65,43 @@
"utf-8-validate": "6.0.3"
},
"dependencies": {
- "@aws-sdk/client-s3": "3.412.0",
- "@aws-sdk/lib-storage": "3.412.0",
- "@bull-board/api": "5.17.0",
- "@bull-board/fastify": "5.17.0",
- "@bull-board/ui": "5.17.0",
+ "@aws-sdk/client-s3": "3.600.0",
+ "@aws-sdk/lib-storage": "3.600.0",
+ "@bull-board/api": "5.20.5",
+ "@bull-board/fastify": "5.20.5",
+ "@bull-board/ui": "5.20.5",
"@discordapp/twemoji": "15.0.3",
"@fastify/accepts": "4.3.0",
"@fastify/cookie": "9.3.1",
"@fastify/cors": "9.0.1",
"@fastify/express": "3.0.0",
"@fastify/http-proxy": "9.5.0",
- "@fastify/multipart": "8.2.0",
- "@fastify/static": "7.0.3",
+ "@fastify/multipart": "8.3.0",
+ "@fastify/static": "7.0.4",
"@fastify/view": "9.1.0",
"@misskey-dev/sharp-read-bmp": "1.2.0",
"@misskey-dev/summaly": "5.1.0",
- "@napi-rs/canvas": "^0.1.52",
- "@nestjs/common": "10.3.8",
- "@nestjs/core": "10.3.8",
- "@nestjs/testing": "10.3.8",
+ "@napi-rs/canvas": "^0.1.53",
+ "@nestjs/common": "10.3.10",
+ "@nestjs/core": "10.3.10",
+ "@nestjs/testing": "10.3.10",
"@peertube/http-signature": "1.7.0",
- "@sentry/node": "^8.5.0",
- "@sentry/profiling-node": "^8.5.0",
+ "@sentry/node": "8.13.0",
+ "@sentry/profiling-node": "8.13.0",
"@simplewebauthn/server": "10.0.0",
"@sinonjs/fake-timers": "11.2.2",
"@smithy/node-http-handler": "2.5.0",
"@swc/cli": "0.3.12",
- "@swc/core": "1.4.17",
+ "@swc/core": "1.6.6",
"@twemoji/parser": "15.1.1",
"accepts": "1.3.8",
- "ajv": "8.13.0",
+ "ajv": "8.16.0",
"archiver": "7.0.1",
"async-mutex": "0.5.0",
"bcryptjs": "2.4.3",
"blurhash": "2.0.5",
"body-parser": "1.20.2",
- "bullmq": "5.7.8",
+ "bullmq": "5.8.3",
"cacheable-lookup": "7.0.0",
"cbor": "9.0.2",
"chalk": "5.3.0",
@@ -112,27 +112,27 @@
"content-disposition": "0.5.4",
"date-fns": "2.30.0",
"deep-email-validator": "0.1.21",
- "fastify": "4.26.2",
+ "fastify": "4.28.1",
"fastify-raw-body": "4.3.0",
"feed": "4.2.2",
"file-type": "19.0.0",
- "fluent-ffmpeg": "2.1.2",
+ "fluent-ffmpeg": "2.1.3",
"form-data": "4.0.0",
- "got": "14.2.1",
+ "got": "14.4.1",
"happy-dom": "10.0.3",
"hpagent": "1.2.0",
"htmlescape": "1.1.1",
"http-link-header": "1.1.3",
"ioredis": "5.4.1",
- "ip-cidr": "3.1.0",
+ "ip-cidr": "4.0.1",
"ipaddr.js": "2.2.0",
- "is-svg": "5.0.0",
+ "is-svg": "5.0.1",
"js-yaml": "4.1.0",
- "jsdom": "24.0.0",
+ "jsdom": "24.1.0",
"json5": "2.2.3",
"jsonld": "8.3.2",
"jsrsasign": "11.1.0",
- "meilisearch": "0.38.0",
+ "meilisearch": "0.41.0",
"mfm-js": "0.24.0",
"microformats-parser": "2.0.2",
"mime-types": "2.1.35",
@@ -142,24 +142,24 @@
"nanoid": "5.0.7",
"nested-property": "4.0.0",
"node-fetch": "3.3.2",
- "nodemailer": "6.9.13",
+ "nodemailer": "6.9.14",
"nsfwjs": "2.4.2",
"oauth": "0.10.0",
"oauth2orize": "1.12.0",
"oauth2orize-pkce": "0.1.2",
"os-utils": "0.0.14",
- "otpauth": "9.2.3",
+ "otpauth": "9.3.1",
"parse5": "7.1.2",
- "pg": "8.11.5",
+ "pg": "8.12.0",
"pkce-challenge": "4.1.0",
"probe-image-size": "7.2.3",
"promise-limit": "2.7.0",
- "pug": "3.0.2",
+ "pug": "3.0.3",
"punycode": "2.3.1",
"qrcode": "1.5.3",
"random-seed": "0.3.0",
"ratelimiter": "3.4.1",
- "re2": "1.21.2",
+ "re2": "1.21.3",
"redis-lock": "0.1.4",
"reflect-metadata": "0.2.2",
"rename": "1.0.4",
@@ -167,27 +167,26 @@
"rxjs": "7.8.1",
"sanitize-html": "2.13.0",
"secure-json-parse": "2.7.0",
- "sharp": "0.33.3",
+ "sharp": "0.33.4",
"slacc": "0.0.10",
"strict-event-emitter-types": "2.0.0",
"stringz": "2.1.0",
- "systeminformation": "5.22.7",
+ "systeminformation": "5.22.11",
"tinycolor2": "1.6.0",
"tmp": "0.2.3",
- "tsc-alias": "1.8.8",
+ "tsc-alias": "1.8.10",
"tsconfig-paths": "4.2.0",
"typeorm": "0.3.20",
- "typescript": "5.5.2",
+ "typescript": "5.5.3",
"ulid": "2.3.0",
"vary": "1.1.2",
"web-push": "3.6.7",
- "ws": "8.17.0",
+ "ws": "8.17.1",
"xev": "3.0.2"
},
"devDependencies": {
"@jest/globals": "29.7.0",
- "@misskey-dev/eslint-plugin": "1.0.0",
- "@nestjs/platform-express": "10.3.8",
+ "@nestjs/platform-express": "10.3.10",
"@simplewebauthn/types": "10.0.0",
"@swc/jest": "0.2.36",
"@types/accepts": "1.3.7",
@@ -197,21 +196,21 @@
"@types/color-convert": "2.0.3",
"@types/content-disposition": "0.5.8",
"@types/fluent-ffmpeg": "2.1.24",
- "@types/htmlescape": "^1.1.3",
- "@types/http-link-header": "1.0.5",
+ "@types/htmlescape": "1.1.3",
+ "@types/http-link-header": "1.0.7",
"@types/jest": "29.5.12",
"@types/js-yaml": "4.0.9",
- "@types/jsdom": "21.1.6",
- "@types/jsonld": "1.5.13",
+ "@types/jsdom": "21.1.7",
+ "@types/jsonld": "1.5.14",
"@types/jsrsasign": "10.5.14",
"@types/mime-types": "2.1.4",
"@types/ms": "0.7.34",
- "@types/node": "20.12.7",
+ "@types/node": "20.14.9",
"@types/nodemailer": "6.4.15",
- "@types/oauth": "0.9.4",
+ "@types/oauth": "0.9.5",
"@types/oauth2orize": "1.11.5",
"@types/oauth2orize-pkce": "0.1.2",
- "@types/pg": "8.11.5",
+ "@types/pg": "8.11.6",
"@types/pug": "2.0.10",
"@types/punycode": "2.1.4",
"@types/qrcode": "1.5.5",
@@ -227,18 +226,17 @@
"@types/vary": "1.1.3",
"@types/web-push": "3.6.3",
"@types/ws": "8.5.10",
- "@typescript-eslint/eslint-plugin": "7.7.1",
- "@typescript-eslint/parser": "7.7.1",
- "aws-sdk-client-mock": "3.0.1",
+ "@typescript-eslint/eslint-plugin": "7.15.0",
+ "@typescript-eslint/parser": "7.15.0",
+ "aws-sdk-client-mock": "4.0.1",
"cross-env": "7.0.3",
- "eslint": "8.57.0",
"eslint-plugin-import": "2.29.1",
- "execa": "8.0.1",
- "fkill": "^9.0.0",
+ "execa": "9.2.0",
+ "fkill": "9.0.0",
"jest": "29.7.0",
"jest-mock": "29.7.0",
- "nodemon": "3.1.0",
+ "nodemon": "3.1.4",
"pid-port": "1.0.0",
- "simple-oauth2": "5.0.0"
+ "simple-oauth2": "5.0.1"
}
}
diff --git a/packages/backend/test-server/.eslintrc.cjs b/packages/backend/test-server/.eslintrc.cjs
deleted file mode 100644
index c261741a36..0000000000
--- a/packages/backend/test-server/.eslintrc.cjs
+++ /dev/null
@@ -1,32 +0,0 @@
-module.exports = {
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: [
- '../../shared/.eslintrc.js',
- ],
- rules: {
- 'import/order': ['warn', {
- 'groups': ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'],
- 'pathGroups': [
- {
- 'pattern': '@/**',
- 'group': 'external',
- 'position': 'after'
- }
- ],
- }],
- 'no-restricted-globals': [
- 'error',
- {
- 'name': '__dirname',
- 'message': 'Not in ESModule. Use `import.meta.url` instead.'
- },
- {
- 'name': '__filename',
- 'message': 'Not in ESModule. Use `import.meta.url` instead.'
- }
- ]
- },
-};
diff --git a/packages/backend/test-server/eslint.config.js b/packages/backend/test-server/eslint.config.js
new file mode 100644
index 0000000000..b9c16d469f
--- /dev/null
+++ b/packages/backend/test-server/eslint.config.js
@@ -0,0 +1,43 @@
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ rules: {
+ 'import/order': ['warn', {
+ groups: [
+ 'builtin',
+ 'external',
+ 'internal',
+ 'parent',
+ 'sibling',
+ 'index',
+ 'object',
+ 'type',
+ ],
+ pathGroups: [{
+ pattern: '@/**',
+ group: 'external',
+ position: 'after',
+ }],
+ }],
+ 'no-restricted-globals': ['error', {
+ name: '__dirname',
+ message: 'Not in ESModule. Use `import.meta.url` instead.',
+ }, {
+ name: '__filename',
+ message: 'Not in ESModule. Use `import.meta.url` instead.',
+ }],
+ },
+ },
+];
diff --git a/packages/backend/test/.eslintrc.cjs b/packages/backend/test/.eslintrc.cjs
deleted file mode 100644
index 41ecea0c3f..0000000000
--- a/packages/backend/test/.eslintrc.cjs
+++ /dev/null
@@ -1,11 +0,0 @@
-module.exports = {
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: ['../.eslintrc.cjs'],
- env: {
- node: true,
- jest: true,
- },
-};
diff --git a/packages/backend/test/eslint.config.js b/packages/backend/test/eslint.config.js
new file mode 100644
index 0000000000..a0f43babad
--- /dev/null
+++ b/packages/backend/test/eslint.config.js
@@ -0,0 +1,22 @@
+import globals from 'globals';
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ languageOptions: {
+ globals: {
+ ...globals.node,
+ ...globals.jest,
+ },
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ },
+];
diff --git a/packages/frontend/.eslintrc.cjs b/packages/frontend/.eslintrc.cjs
deleted file mode 100644
index fd562e1c40..0000000000
--- a/packages/frontend/.eslintrc.cjs
+++ /dev/null
@@ -1,82 +0,0 @@
-module.exports = {
- root: true,
- env: {
- 'node': false,
- },
- parser: 'vue-eslint-parser',
- parserOptions: {
- 'parser': '@typescript-eslint/parser',
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- extraFileExtensions: ['.vue'],
- },
- extends: [
- '../shared/.eslintrc.js',
- 'plugin:vue/vue3-recommended',
- ],
- rules: {
- '@typescript-eslint/no-empty-interface': [
- 'error',
- {
- 'allowSingleExtends': true,
- },
- ],
- // window の禁止理由: グローバルスコープと衝突し、予期せぬ結果を招くため
- // e の禁止理由: error や event など、複数のキーワードの頭文字であり分かりにくいため
- 'id-denylist': ['error', 'window', 'e'],
- 'no-shadow': ['warn'],
- 'vue/attributes-order': ['error', {
- 'alphabetical': false,
- }],
- 'vue/no-use-v-if-with-v-for': ['error', {
- 'allowUsingIterationVar': false,
- }],
- 'vue/no-ref-as-operand': 'error',
- 'vue/no-multi-spaces': ['error', {
- 'ignoreProperties': false,
- }],
- 'vue/no-v-html': 'warn',
- 'vue/order-in-components': 'error',
- 'vue/html-indent': ['warn', 'tab', {
- 'attribute': 1,
- 'baseIndent': 0,
- 'closeBracket': 0,
- 'alignAttributesVertically': true,
- 'ignores': [],
- }],
- 'vue/html-closing-bracket-spacing': ['warn', {
- 'startTag': 'never',
- 'endTag': 'never',
- 'selfClosingTag': 'never',
- }],
- 'vue/multi-word-component-names': 'warn',
- 'vue/require-v-for-key': 'warn',
- 'vue/no-unused-components': 'warn',
- 'vue/no-unused-vars': 'warn',
- 'vue/no-dupe-keys': 'warn',
- 'vue/valid-v-for': 'warn',
- 'vue/return-in-computed-property': 'warn',
- 'vue/no-setup-props-reactivity-loss': 'warn',
- 'vue/max-attributes-per-line': 'off',
- 'vue/html-self-closing': 'off',
- 'vue/singleline-html-element-content-newline': 'off',
- 'vue/v-on-event-hyphenation': ['error', 'never', { autofix: true }],
- 'vue/attribute-hyphenation': ['error', 'never'],
- },
- globals: {
- // Node.js
- 'module': false,
- 'require': false,
- '__dirname': false,
-
- // Misskey
- '_DEV_': false,
- '_LANGS_': false,
- '_VERSION_': false,
- '_ENV_': false,
- '_PERF_PREFIX_': false,
- '_DATA_TRANSFER_DRIVE_FILE_': false,
- '_DATA_TRANSFER_DRIVE_FOLDER_': false,
- '_DATA_TRANSFER_DECK_COLUMN_': false,
- },
-};
diff --git a/packages/frontend/eslint.config.js b/packages/frontend/eslint.config.js
new file mode 100644
index 0000000000..dd8f03dac5
--- /dev/null
+++ b/packages/frontend/eslint.config.js
@@ -0,0 +1,95 @@
+import globals from 'globals';
+import tsParser from '@typescript-eslint/parser';
+import parser from 'vue-eslint-parser';
+import pluginVue from 'eslint-plugin-vue';
+import pluginMisskey from '@misskey-dev/eslint-plugin';
+import sharedConfig from '../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ files: ['src/**/*.vue'],
+ ...pluginMisskey.configs.typescript,
+ },
+ ...pluginVue.configs['flat/recommended'],
+ {
+ files: ['src/**/*.{ts,vue}'],
+ languageOptions: {
+ globals: {
+ ...Object.fromEntries(Object.entries(globals.node).map(([key]) => [key, 'off'])),
+ ...globals.browser,
+
+ // Node.js
+ module: false,
+ require: false,
+ __dirname: false,
+
+ // Misskey
+ _DEV_: false,
+ _LANGS_: false,
+ _VERSION_: false,
+ _ENV_: false,
+ _PERF_PREFIX_: false,
+ _DATA_TRANSFER_DRIVE_FILE_: false,
+ _DATA_TRANSFER_DRIVE_FOLDER_: false,
+ _DATA_TRANSFER_DECK_COLUMN_: false,
+ },
+ parser,
+ parserOptions: {
+ extraFileExtensions: ['.vue'],
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ rules: {
+ '@typescript-eslint/no-empty-interface': ['error', {
+ allowSingleExtends: true,
+ }],
+ // window の禁止理由: グローバルスコープと衝突し、予期せぬ結果を招くため
+ // e の禁止理由: error や event など、複数のキーワードの頭文字であり分かりにくいため
+ 'id-denylist': ['error', 'window', 'e'],
+ 'no-shadow': ['warn'],
+ 'vue/attributes-order': ['error', {
+ alphabetical: false,
+ }],
+ 'vue/no-use-v-if-with-v-for': ['error', {
+ allowUsingIterationVar: false,
+ }],
+ 'vue/no-ref-as-operand': 'error',
+ 'vue/no-multi-spaces': ['error', {
+ ignoreProperties: false,
+ }],
+ 'vue/no-v-html': 'warn',
+ 'vue/order-in-components': 'error',
+ 'vue/html-indent': ['warn', 'tab', {
+ attribute: 1,
+ baseIndent: 0,
+ closeBracket: 0,
+ alignAttributesVertically: true,
+ ignores: [],
+ }],
+ 'vue/html-closing-bracket-spacing': ['warn', {
+ startTag: 'never',
+ endTag: 'never',
+ selfClosingTag: 'never',
+ }],
+ 'vue/multi-word-component-names': 'warn',
+ 'vue/require-v-for-key': 'warn',
+ 'vue/no-unused-components': 'warn',
+ 'vue/no-unused-vars': 'warn',
+ 'vue/no-dupe-keys': 'warn',
+ 'vue/valid-v-for': 'warn',
+ 'vue/return-in-computed-property': 'warn',
+ 'vue/no-setup-props-reactivity-loss': 'warn',
+ 'vue/max-attributes-per-line': 'off',
+ 'vue/html-self-closing': 'off',
+ 'vue/singleline-html-element-content-newline': 'off',
+ 'vue/v-on-event-hyphenation': ['error', 'never', {
+ autofix: true,
+ }],
+ 'vue/attribute-hyphenation': ['error', 'never'],
+ },
+ },
+];
diff --git a/packages/frontend/package.json b/packages/frontend/package.json
index a63d97658b..743722c231 100644
--- a/packages/frontend/package.json
+++ b/packages/frontend/package.json
@@ -22,24 +22,24 @@
"@mcaptcha/vanilla-glue": "0.1.0-alpha-3",
"@misskey-dev/browser-image-resizer": "2024.1.0",
"@rollup/plugin-json": "6.1.0",
- "@rollup/plugin-replace": "5.0.5",
+ "@rollup/plugin-replace": "5.0.7",
"@rollup/pluginutils": "5.1.0",
"@syuilo/aiscript": "0.18.0",
"@tabler/icons-webfont": "3.3.0",
"@twemoji/parser": "15.1.1",
- "@vitejs/plugin-vue": "5.0.4",
- "@vue/compiler-sfc": "3.4.26",
+ "@vitejs/plugin-vue": "5.0.5",
+ "@vue/compiler-sfc": "3.4.31",
"aiscript-vscode": "github:aiscript-dev/aiscript-vscode#v0.1.9",
"astring": "1.8.6",
"broadcast-channel": "7.0.0",
"buraha": "0.0.1",
"canvas-confetti": "1.9.3",
- "chart.js": "4.4.2",
+ "chart.js": "4.4.3",
"chartjs-adapter-date-fns": "3.0.0",
"chartjs-chart-matrix": "2.0.1",
"chartjs-plugin-gradient": "0.6.1",
"chartjs-plugin-zoom": "2.0.1",
- "chromatic": "11.3.0",
+ "chromatic": "11.5.4",
"compare-versions": "6.1.0",
"cropperjs": "2.0.0-beta.5",
"date-fns": "2.30.0",
@@ -55,89 +55,87 @@
"misskey-bubble-game": "workspace:*",
"misskey-js": "workspace:*",
"misskey-reversi": "workspace:*",
- "photoswipe": "5.4.3",
+ "photoswipe": "5.4.4",
"punycode": "2.3.1",
- "rollup": "4.17.2",
+ "rollup": "4.18.0",
"sanitize-html": "2.13.0",
- "sass": "1.76.0",
- "shiki": "1.4.0",
+ "sass": "1.77.6",
+ "shiki": "1.10.0",
"strict-event-emitter-types": "2.0.0",
"textarea-caret": "3.1.0",
- "three": "0.164.1",
- "throttle-debounce": "5.0.0",
+ "three": "0.165.0",
+ "throttle-debounce": "5.0.2",
"tinycolor2": "1.6.0",
- "tsc-alias": "1.8.8",
+ "tsc-alias": "1.8.10",
"tsconfig-paths": "4.2.0",
- "typescript": "5.5.2",
- "uuid": "9.0.1",
- "v-code-diff": "1.11.0",
- "vite": "5.2.11",
- "vue": "3.4.26",
+ "typescript": "5.5.3",
+ "uuid": "10.0.0",
+ "v-code-diff": "1.12.0",
+ "vite": "5.3.2",
+ "vue": "3.4.31",
"vuedraggable": "next"
},
"devDependencies": {
- "@misskey-dev/eslint-plugin": "1.0.0",
"@misskey-dev/summaly": "5.1.0",
- "@storybook/addon-actions": "8.0.9",
- "@storybook/addon-essentials": "8.0.9",
- "@storybook/addon-interactions": "8.0.9",
- "@storybook/addon-links": "8.0.9",
- "@storybook/addon-mdx-gfm": "8.0.9",
- "@storybook/addon-storysource": "8.0.9",
- "@storybook/blocks": "8.0.9",
- "@storybook/components": "8.0.9",
- "@storybook/core-events": "8.0.9",
- "@storybook/manager-api": "8.0.9",
- "@storybook/preview-api": "8.0.9",
- "@storybook/react": "8.0.9",
- "@storybook/react-vite": "8.0.9",
- "@storybook/test": "8.0.9",
- "@storybook/theming": "8.0.9",
- "@storybook/types": "8.0.9",
- "@storybook/vue3": "8.0.9",
- "@storybook/vue3-vite": "8.0.9",
- "@testing-library/vue": "8.0.3",
+ "@storybook/addon-actions": "8.1.11",
+ "@storybook/addon-essentials": "8.1.11",
+ "@storybook/addon-interactions": "8.1.11",
+ "@storybook/addon-links": "8.1.11",
+ "@storybook/addon-mdx-gfm": "8.1.11",
+ "@storybook/addon-storysource": "8.1.11",
+ "@storybook/blocks": "8.1.11",
+ "@storybook/components": "8.1.11",
+ "@storybook/core-events": "8.1.11",
+ "@storybook/manager-api": "8.1.11",
+ "@storybook/preview-api": "8.1.11",
+ "@storybook/react": "8.1.11",
+ "@storybook/react-vite": "8.1.11",
+ "@storybook/test": "8.1.11",
+ "@storybook/theming": "8.1.11",
+ "@storybook/types": "8.1.11",
+ "@storybook/vue3": "8.1.11",
+ "@storybook/vue3-vite": "8.1.11",
+ "@testing-library/vue": "8.1.0",
"@types/escape-regexp": "0.0.3",
"@types/estree": "1.0.5",
"@types/matter-js": "0.19.6",
- "@types/micromatch": "4.0.7",
- "@types/node": "20.12.7",
+ "@types/micromatch": "4.0.9",
+ "@types/node": "20.14.9",
"@types/punycode": "2.1.4",
"@types/sanitize-html": "2.11.0",
"@types/seedrandom": "3.0.8",
"@types/throttle-debounce": "5.0.2",
"@types/tinycolor2": "1.4.6",
- "@types/uuid": "9.0.8",
+ "@types/uuid": "10.0.0",
"@types/ws": "8.5.10",
- "@typescript-eslint/eslint-plugin": "7.7.1",
- "@typescript-eslint/parser": "7.7.1",
- "@vitest/coverage-v8": "0.34.6",
- "@vue/runtime-core": "3.4.26",
- "acorn": "8.11.3",
+ "@typescript-eslint/eslint-plugin": "7.15.0",
+ "@typescript-eslint/parser": "7.15.0",
+ "@vitest/coverage-v8": "1.6.0",
+ "@vue/runtime-core": "3.4.31",
+ "acorn": "8.12.0",
"cross-env": "7.0.3",
- "cypress": "13.8.1",
- "eslint": "8.57.0",
+ "cypress": "13.13.0",
"eslint-plugin-import": "2.29.1",
- "eslint-plugin-vue": "9.25.0",
+ "eslint-plugin-vue": "9.26.0",
"fast-glob": "3.3.2",
"happy-dom": "10.0.3",
"intersection-observer": "0.12.2",
- "micromatch": "4.0.5",
- "msw": "2.2.14",
- "msw-storybook-addon": "2.0.1",
- "nodemon": "3.1.0",
- "prettier": "3.2.5",
+ "micromatch": "4.0.7",
+ "msw": "2.3.1",
+ "msw-storybook-addon": "2.0.2",
+ "nodemon": "3.1.4",
+ "prettier": "3.3.2",
"react": "18.3.1",
"react-dom": "18.3.1",
"seedrandom": "3.0.5",
- "start-server-and-test": "2.0.3",
- "storybook": "8.0.9",
+ "start-server-and-test": "2.0.4",
+ "storybook": "8.1.11",
"storybook-addon-misskey-theme": "github:misskey-dev/storybook-addon-misskey-theme",
"vite-plugin-turbosnap": "1.0.3",
- "vitest": "0.34.6",
+ "vitest": "1.6.0",
"vitest-fetch-mock": "0.2.2",
- "vue-component-type-helpers": "2.0.16",
- "vue-eslint-parser": "9.4.2",
- "vue-tsc": "2.0.16"
+ "vue-component-type-helpers": "2.0.24",
+ "vue-eslint-parser": "9.4.3",
+ "vue-tsc": "2.0.24"
}
}
diff --git a/packages/frontend/tsconfig.json b/packages/frontend/tsconfig.json
index 187a2473ba..fe4d202894 100644
--- a/packages/frontend/tsconfig.json
+++ b/packages/frontend/tsconfig.json
@@ -44,7 +44,6 @@
},
"compileOnSave": false,
"include": [
- ".eslintrc.js",
"./**/*.ts",
"./**/*.vue"
],
diff --git a/packages/misskey-bubble-game/.eslintignore b/packages/misskey-bubble-game/.eslintignore
deleted file mode 100644
index 52ea8b3362..0000000000
--- a/packages/misskey-bubble-game/.eslintignore
+++ /dev/null
@@ -1,8 +0,0 @@
-node_modules
-/built
-/coverage
-/.eslintrc.js
-/jest.config.ts
-/test
-/test-d
-build.js
diff --git a/packages/misskey-bubble-game/.eslintrc.cjs b/packages/misskey-bubble-game/.eslintrc.cjs
deleted file mode 100644
index e2e31e9e33..0000000000
--- a/packages/misskey-bubble-game/.eslintrc.cjs
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: [
- '../shared/.eslintrc.js',
- ],
-};
diff --git a/packages/misskey-bubble-game/eslint.config.js b/packages/misskey-bubble-game/eslint.config.js
new file mode 100644
index 0000000000..86c21a22a3
--- /dev/null
+++ b/packages/misskey-bubble-game/eslint.config.js
@@ -0,0 +1,27 @@
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ ignores: [
+ '**/node_modules',
+ 'built',
+ 'coverage',
+ 'jest.config.ts',
+ 'test',
+ 'test-d',
+ ],
+ },
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ },
+];
diff --git a/packages/misskey-bubble-game/package.json b/packages/misskey-bubble-game/package.json
index a3aad147a9..528eb00b74 100644
--- a/packages/misskey-bubble-game/package.json
+++ b/packages/misskey-bubble-game/package.json
@@ -17,18 +17,16 @@
"scripts": {
"build": "node ./build.js",
"watch": "nodemon -w package.json -e json --exec \"node ./build.js --watch\"",
- "eslint": "eslint . --ext .js,.jsx,.ts,.tsx",
+ "eslint": "eslint './**/*.{js,jsx,ts,tsx}'",
"typecheck": "tsc --noEmit",
"lint": "pnpm typecheck && pnpm eslint"
},
"devDependencies": {
- "@misskey-dev/eslint-plugin": "1.0.0",
"@types/matter-js": "0.19.6",
"@types/seedrandom": "3.0.8",
"@types/node": "20.11.5",
"@typescript-eslint/eslint-plugin": "7.1.0",
"@typescript-eslint/parser": "7.1.0",
- "eslint": "8.57.0",
"nodemon": "3.0.2",
"execa": "8.0.1",
"typescript": "5.3.3",
diff --git a/packages/misskey-js/.eslintignore b/packages/misskey-js/.eslintignore
deleted file mode 100644
index 52ea8b3362..0000000000
--- a/packages/misskey-js/.eslintignore
+++ /dev/null
@@ -1,8 +0,0 @@
-node_modules
-/built
-/coverage
-/.eslintrc.js
-/jest.config.ts
-/test
-/test-d
-build.js
diff --git a/packages/misskey-js/.eslintrc.cjs b/packages/misskey-js/.eslintrc.cjs
deleted file mode 100644
index e2e31e9e33..0000000000
--- a/packages/misskey-js/.eslintrc.cjs
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: [
- '../shared/.eslintrc.js',
- ],
-};
diff --git a/packages/misskey-js/build.js b/packages/misskey-js/build.js
index 0b79f4b915..a13d9c1186 100644
--- a/packages/misskey-js/build.js
+++ b/packages/misskey-js/build.js
@@ -1,32 +1,32 @@
-import * as esbuild from "esbuild";
-import { build } from "esbuild";
-import { globSync } from "glob";
-import { execa } from "execa";
-import fs from "node:fs";
-import { fileURLToPath } from "node:url";
-import { dirname } from "node:path";
+import fs from 'node:fs';
+import { fileURLToPath } from 'node:url';
+import { dirname } from 'node:path';
+import * as esbuild from 'esbuild';
+import { build } from 'esbuild';
+import { globSync } from 'glob';
+import { execa } from 'execa';
const _filename = fileURLToPath(import.meta.url);
const _dirname = dirname(_filename);
const _package = JSON.parse(fs.readFileSync(_dirname + '/package.json', 'utf-8'));
-const entryPoints = globSync("./src/**/**.{ts,tsx}");
+const entryPoints = globSync('./src/**/**.{ts,tsx}');
/** @type {import('esbuild').BuildOptions} */
const options = {
entryPoints,
minify: process.env.NODE_ENV === 'production',
- outdir: "./built",
- target: "es2022",
- platform: "browser",
- format: "esm",
+ outdir: './built',
+ target: 'es2022',
+ platform: 'browser',
+ format: 'esm',
sourcemap: 'linked',
};
// built配下をすべて削除する
fs.rmSync('./built', { recursive: true, force: true });
-if (process.argv.map(arg => arg.toLowerCase()).includes("--watch")) {
+if (process.argv.map(arg => arg.toLowerCase()).includes('--watch')) {
await watchSrc();
} else {
await buildSrc();
@@ -36,7 +36,7 @@ async function buildSrc() {
console.log(`[${_package.name}] start building...`);
await build(options)
- .then(it => {
+ .then(() => {
console.log(`[${_package.name}] build succeeded.`);
})
.catch((err) => {
@@ -65,7 +65,7 @@ function buildDts() {
{
stdout: process.stdout,
stderr: process.stderr,
- }
+ },
);
}
@@ -86,7 +86,7 @@ async function watchSrc() {
},
}];
- console.log(`[${_package.name}] start watching...`)
+ console.log(`[${_package.name}] start watching...`);
const context = await esbuild.context({ ...options, plugins });
await context.watch();
diff --git a/packages/misskey-js/eslint.config.js b/packages/misskey-js/eslint.config.js
new file mode 100644
index 0000000000..e34e7510b2
--- /dev/null
+++ b/packages/misskey-js/eslint.config.js
@@ -0,0 +1,28 @@
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ ignores: [
+ '**/node_modules',
+ 'built',
+ 'coverage',
+ 'jest.config.ts',
+ 'test',
+ 'test-d',
+ 'generator',
+ ],
+ },
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ },
+];
diff --git a/packages/misskey-js/generator/.eslintrc.cjs b/packages/misskey-js/generator/.eslintrc.cjs
deleted file mode 100644
index 6a8b31da9c..0000000000
--- a/packages/misskey-js/generator/.eslintrc.cjs
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: [
- '../../shared/.eslintrc.js',
- ],
-};
diff --git a/packages/misskey-js/generator/eslint.config.js b/packages/misskey-js/generator/eslint.config.js
new file mode 100644
index 0000000000..4bf78c3b91
--- /dev/null
+++ b/packages/misskey-js/generator/eslint.config.js
@@ -0,0 +1,17 @@
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ },
+];
diff --git a/packages/misskey-js/generator/package.json b/packages/misskey-js/generator/package.json
index a1c0f41cb2..4a02bcd8ff 100644
--- a/packages/misskey-js/generator/package.json
+++ b/packages/misskey-js/generator/package.json
@@ -4,15 +4,13 @@
"description": "Misskey TypeGenerator",
"type": "module",
"scripts": {
- "generate": "tsx src/generator.ts && eslint ./built/**/* --ext .ts --fix"
+ "generate": "tsx src/generator.ts && eslint ./built/**/*.ts --fix"
},
"devDependencies": {
- "@misskey-dev/eslint-plugin": "^1.0.0",
"@readme/openapi-parser": "2.5.0",
"@types/node": "20.9.1",
"@typescript-eslint/eslint-plugin": "6.11.0",
"@typescript-eslint/parser": "6.11.0",
- "eslint": "8.53.0",
"openapi-types": "12.1.3",
"openapi-typescript": "6.7.3",
"ts-case-convert": "2.0.2",
diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json
index b99d0dd260..00342d3dbc 100644
--- a/packages/misskey-js/package.json
+++ b/packages/misskey-js/package.json
@@ -22,7 +22,7 @@
"tsd": "tsd",
"api": "pnpm api-extractor run --local --verbose",
"api-prod": "pnpm api-extractor run --verbose",
- "eslint": "eslint . --ext .js,.jsx,.ts,.tsx",
+ "eslint": "eslint './**/*.{js,jsx,ts,tsx}'",
"typecheck": "tsc --noEmit",
"lint": "pnpm typecheck && pnpm eslint",
"jest": "jest --coverage --detectOpenHandles",
@@ -35,25 +35,23 @@
"directory": "packages/misskey-js"
},
"devDependencies": {
- "@microsoft/api-extractor": "7.43.1",
- "@misskey-dev/eslint-plugin": "1.0.0",
+ "@microsoft/api-extractor": "7.47.0",
"@swc/jest": "0.2.36",
"@types/jest": "29.5.12",
- "@types/node": "20.12.7",
- "@typescript-eslint/eslint-plugin": "7.7.1",
- "@typescript-eslint/parser": "7.7.1",
- "eslint": "8.57.0",
+ "@types/node": "20.14.9",
+ "@typescript-eslint/eslint-plugin": "7.15.0",
+ "@typescript-eslint/parser": "7.15.0",
"jest": "29.7.0",
"jest-fetch-mock": "3.0.3",
"jest-websocket-mock": "2.5.0",
"mock-socket": "9.3.1",
"ncp": "2.0.0",
- "nodemon": "3.1.0",
- "execa": "8.0.1",
- "tsd": "0.30.7",
- "typescript": "5.5.2",
- "esbuild": "0.19.11",
- "glob": "10.3.12"
+ "nodemon": "3.1.4",
+ "execa": "9.2.0",
+ "tsd": "0.31.1",
+ "typescript": "5.5.3",
+ "esbuild": "0.22.0",
+ "glob": "10.4.2"
},
"files": [
"built"
diff --git a/packages/misskey-reversi/.eslintignore b/packages/misskey-reversi/.eslintignore
deleted file mode 100644
index 52ea8b3362..0000000000
--- a/packages/misskey-reversi/.eslintignore
+++ /dev/null
@@ -1,8 +0,0 @@
-node_modules
-/built
-/coverage
-/.eslintrc.js
-/jest.config.ts
-/test
-/test-d
-build.js
diff --git a/packages/misskey-reversi/.eslintrc.cjs b/packages/misskey-reversi/.eslintrc.cjs
deleted file mode 100644
index db37a01098..0000000000
--- a/packages/misskey-reversi/.eslintrc.cjs
+++ /dev/null
@@ -1,10 +0,0 @@
-module.exports = {
- root: true,
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: [
- '../shared/.eslintrc.js',
- ],
-};
diff --git a/packages/misskey-reversi/eslint.config.js b/packages/misskey-reversi/eslint.config.js
new file mode 100644
index 0000000000..3f81df7145
--- /dev/null
+++ b/packages/misskey-reversi/eslint.config.js
@@ -0,0 +1,23 @@
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ ignores: [
+ '**/node_modules',
+ 'built',
+ ],
+ },
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ },
+];
diff --git a/packages/misskey-reversi/package.json b/packages/misskey-reversi/package.json
index 45a6120861..c6db6e6221 100644
--- a/packages/misskey-reversi/package.json
+++ b/packages/misskey-reversi/package.json
@@ -17,16 +17,14 @@
"scripts": {
"build": "node ./build.js",
"watch": "nodemon -w package.json -e json --exec \"node ./build.js --watch\"",
- "eslint": "eslint . --ext .js,.jsx,.ts,.tsx",
+ "eslint": "eslint './**/*.{js,jsx,ts,tsx}'",
"typecheck": "tsc --noEmit",
"lint": "pnpm typecheck && pnpm eslint"
},
"devDependencies": {
- "@misskey-dev/eslint-plugin": "1.0.0",
"@types/node": "20.11.5",
"@typescript-eslint/eslint-plugin": "7.1.0",
"@typescript-eslint/parser": "7.1.0",
- "eslint": "8.57.0",
"execa": "8.0.1",
"nodemon": "3.0.2",
"typescript": "5.3.3",
diff --git a/packages/shared/.eslintrc.js b/packages/shared/.eslintrc.js
deleted file mode 100644
index 58247877ae..0000000000
--- a/packages/shared/.eslintrc.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = {
- root: true,
- ignorePatterns: ['**/.eslintrc.cjs'],
- extends: [
- 'plugin:@misskey-dev/recommended',
- ],
-};
diff --git a/packages/shared/eslint.config.js b/packages/shared/eslint.config.js
new file mode 100644
index 0000000000..e9d27c4a72
--- /dev/null
+++ b/packages/shared/eslint.config.js
@@ -0,0 +1,28 @@
+import globals from 'globals';
+import pluginMisskey from '@misskey-dev/eslint-plugin';
+
+export default [
+ ...pluginMisskey.configs['recommended'],
+ {
+ files: ['**/*.cjs'],
+ languageOptions: {
+ parserOptions: {
+ sourceType: 'commonjs',
+ },
+ },
+ },
+ {
+ files: ['**/*.js', '**/*.jsx'],
+ languageOptions: {
+ parserOptions: {
+ sourceType: 'module',
+ },
+ },
+ },
+ {
+ files: ['build.js'],
+ languageOptions: {
+ globals: globals.node,
+ },
+ },
+];
diff --git a/packages/shared/package.json b/packages/shared/package.json
new file mode 100644
index 0000000000..bedb411a91
--- /dev/null
+++ b/packages/shared/package.json
@@ -0,0 +1,3 @@
+{
+ "type": "module"
+}
diff --git a/packages/sw/.eslintrc.cjs b/packages/sw/.eslintrc.cjs
deleted file mode 100644
index b1fd6b5edc..0000000000
--- a/packages/sw/.eslintrc.cjs
+++ /dev/null
@@ -1,20 +0,0 @@
-module.exports = {
- root: true,
- env: {
- node: false,
- },
- parserOptions: {
- parser: '@typescript-eslint/parser',
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: ['../shared/.eslintrc.js'],
- globals: {
- require: false,
- _DEV_: false,
- _LANGS_: false,
- _VERSION_: false,
- _ENV_: false,
- _PERF_PREFIX_: false,
- },
-};
diff --git a/packages/sw/eslint.config.js b/packages/sw/eslint.config.js
new file mode 100644
index 0000000000..c62a2eadc6
--- /dev/null
+++ b/packages/sw/eslint.config.js
@@ -0,0 +1,32 @@
+import globals from 'globals';
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ ignores: ['build.js'],
+ languageOptions: {
+ globals: {
+ ...Object.fromEntries(Object.entries(globals.node).map(([key]) => [key, 'off'])),
+ require: false,
+ _DEV_: false,
+ _LANGS_: false,
+ _VERSION_: false,
+ _ENV_: false,
+ _PERF_PREFIX_: false,
+ },
+ },
+ },
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ },
+];
diff --git a/packages/sw/package.json b/packages/sw/package.json
index 2deda47369..bcd642ffc4 100644
--- a/packages/sw/package.json
+++ b/packages/sw/package.json
@@ -9,18 +9,16 @@
"lint": "pnpm typecheck && pnpm eslint"
},
"dependencies": {
- "esbuild": "0.20.2",
+ "esbuild": "0.22.0",
"idb-keyval": "6.2.1",
"misskey-js": "workspace:*"
},
"devDependencies": {
- "@misskey-dev/eslint-plugin": "1.0.0",
- "@typescript-eslint/parser": "7.7.1",
+ "@typescript-eslint/parser": "7.15.0",
"@typescript/lib-webworker": "npm:@types/serviceworker@0.0.67",
- "eslint": "8.57.0",
"eslint-plugin-import": "2.29.1",
- "nodemon": "3.1.0",
- "typescript": "5.5.2"
+ "nodemon": "3.1.4",
+ "typescript": "5.5.3"
},
"type": "module"
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 09df15853b..10968f3e82 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -16,8 +16,8 @@ importers:
specifier: 6.1.2
version: 6.1.2(postcss@8.4.38)
esbuild:
- specifier: 0.20.2
- version: 0.20.2
+ specifier: 0.22.0
+ version: 0.22.0
execa:
specifier: 8.0.1
version: 8.0.1
@@ -40,58 +40,64 @@ importers:
specifier: 6.2.1
version: 6.2.1
terser:
- specifier: 5.30.3
- version: 5.30.3
+ specifier: 5.31.1
+ version: 5.31.1
typescript:
- specifier: 5.5.2
- version: 5.5.2
+ specifier: 5.5.3
+ version: 5.5.3
optionalDependencies:
'@tensorflow/tfjs-core':
specifier: 4.4.0
version: 4.4.0(encoding@0.1.13)
devDependencies:
+ '@misskey-dev/eslint-plugin':
+ specifier: 2.0.2
+ version: 2.0.2(@eslint/compat@1.1.0)(@typescript-eslint/eslint-plugin@7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3))(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0))(eslint@9.6.0)(globals@15.7.0)
'@types/node':
- specifier: 20.12.7
- version: 20.12.7
+ specifier: 20.14.9
+ version: 20.14.9
'@typescript-eslint/eslint-plugin':
- specifier: 7.7.1
- version: 7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)
+ specifier: 7.15.0
+ version: 7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)
'@typescript-eslint/parser':
- specifier: 7.7.1
- version: 7.7.1(eslint@8.57.0)(typescript@5.5.2)
+ specifier: 7.15.0
+ version: 7.15.0(eslint@9.6.0)(typescript@5.5.3)
cross-env:
specifier: 7.0.3
version: 7.0.3
cypress:
- specifier: 13.7.3
- version: 13.7.3
+ specifier: 13.13.0
+ version: 13.13.0
eslint:
- specifier: 8.57.0
- version: 8.57.0
+ specifier: 9.6.0
+ version: 9.6.0
+ globals:
+ specifier: 15.7.0
+ version: 15.7.0
ncp:
specifier: 2.0.0
version: 2.0.0
start-server-and-test:
- specifier: 2.0.3
- version: 2.0.3
+ specifier: 2.0.4
+ version: 2.0.4
packages/backend:
dependencies:
'@aws-sdk/client-s3':
- specifier: 3.412.0
- version: 3.412.0
+ specifier: 3.600.0
+ version: 3.600.0
'@aws-sdk/lib-storage':
- specifier: 3.412.0
- version: 3.412.0(@aws-sdk/client-s3@3.412.0)
+ specifier: 3.600.0
+ version: 3.600.0(@aws-sdk/client-s3@3.600.0)
'@bull-board/api':
- specifier: 5.17.0
- version: 5.17.0(@bull-board/ui@5.17.0)
+ specifier: 5.20.5
+ version: 5.20.5(@bull-board/ui@5.20.5)
'@bull-board/fastify':
- specifier: 5.17.0
- version: 5.17.0
+ specifier: 5.20.5
+ version: 5.20.5
'@bull-board/ui':
- specifier: 5.17.0
- version: 5.17.0
+ specifier: 5.20.5
+ version: 5.20.5
'@discordapp/twemoji':
specifier: 15.0.3
version: 15.0.3
@@ -111,11 +117,11 @@ importers:
specifier: 9.5.0
version: 9.5.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
'@fastify/multipart':
- specifier: 8.2.0
- version: 8.2.0
+ specifier: 8.3.0
+ version: 8.3.0
'@fastify/static':
- specifier: 7.0.3
- version: 7.0.3
+ specifier: 7.0.4
+ version: 7.0.4
'@fastify/view':
specifier: 9.1.0
version: 9.1.0
@@ -126,26 +132,26 @@ importers:
specifier: 5.1.0
version: 5.1.0
'@napi-rs/canvas':
- specifier: ^0.1.52
- version: 0.1.52
+ specifier: ^0.1.53
+ version: 0.1.53
'@nestjs/common':
- specifier: 10.3.8
- version: 10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1)
+ specifier: 10.3.10
+ version: 10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1)
'@nestjs/core':
- specifier: 10.3.8
- version: 10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)
+ specifier: 10.3.10
+ version: 10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)
'@nestjs/testing':
- specifier: 10.3.8
- version: 10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8))
+ specifier: 10.3.10
+ version: 10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10))
'@peertube/http-signature':
specifier: 1.7.0
version: 1.7.0
'@sentry/node':
- specifier: ^8.5.0
- version: 8.5.0
+ specifier: 8.13.0
+ version: 8.13.0
'@sentry/profiling-node':
- specifier: ^8.5.0
- version: 8.5.0
+ specifier: 8.13.0
+ version: 8.13.0
'@simplewebauthn/server':
specifier: 10.0.0
version: 10.0.0(encoding@0.1.13)
@@ -157,10 +163,10 @@ importers:
version: 2.5.0
'@swc/cli':
specifier: 0.3.12
- version: 0.3.12(@swc/core@1.4.17)(chokidar@3.5.3)
+ version: 0.3.12(@swc/core@1.6.6)(chokidar@3.5.3)
'@swc/core':
- specifier: 1.4.17
- version: 1.4.17
+ specifier: 1.6.6
+ version: 1.6.6
'@twemoji/parser':
specifier: 15.1.1
version: 15.1.1
@@ -168,8 +174,8 @@ importers:
specifier: 1.3.8
version: 1.3.8
ajv:
- specifier: 8.13.0
- version: 8.13.0
+ specifier: 8.16.0
+ version: 8.16.0
archiver:
specifier: 7.0.1
version: 7.0.1
@@ -186,8 +192,8 @@ importers:
specifier: 1.20.2
version: 1.20.2
bullmq:
- specifier: 5.7.8
- version: 5.7.8
+ specifier: 5.8.3
+ version: 5.8.3
cacheable-lookup:
specifier: 7.0.0
version: 7.0.0
@@ -219,8 +225,8 @@ importers:
specifier: 0.1.21
version: 0.1.21
fastify:
- specifier: 4.26.2
- version: 4.26.2
+ specifier: 4.28.1
+ version: 4.28.1
fastify-raw-body:
specifier: 4.3.0
version: 4.3.0
@@ -231,14 +237,14 @@ importers:
specifier: 19.0.0
version: 19.0.0
fluent-ffmpeg:
- specifier: 2.1.2
- version: 2.1.2
+ specifier: 2.1.3
+ version: 2.1.3
form-data:
specifier: 4.0.0
version: 4.0.0
got:
- specifier: 14.2.1
- version: 14.2.1
+ specifier: 14.4.1
+ version: 14.4.1
happy-dom:
specifier: 10.0.3
version: 10.0.3
@@ -255,20 +261,20 @@ importers:
specifier: 5.4.1
version: 5.4.1
ip-cidr:
- specifier: 3.1.0
- version: 3.1.0
+ specifier: 4.0.1
+ version: 4.0.1
ipaddr.js:
specifier: 2.2.0
version: 2.2.0
is-svg:
- specifier: 5.0.0
- version: 5.0.0
+ specifier: 5.0.1
+ version: 5.0.1
js-yaml:
specifier: 4.1.0
version: 4.1.0
jsdom:
- specifier: 24.0.0
- version: 24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
+ specifier: 24.1.0
+ version: 24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
json5:
specifier: 2.2.3
version: 2.2.3
@@ -279,8 +285,8 @@ importers:
specifier: 11.1.0
version: 11.1.0
meilisearch:
- specifier: 0.38.0
- version: 0.38.0(encoding@0.1.13)
+ specifier: 0.41.0
+ version: 0.41.0(encoding@0.1.13)
mfm-js:
specifier: 0.24.0
version: 0.24.0
@@ -309,8 +315,8 @@ importers:
specifier: 3.3.2
version: 3.3.2
nodemailer:
- specifier: 6.9.13
- version: 6.9.13
+ specifier: 6.9.14
+ version: 6.9.14
nsfwjs:
specifier: 2.4.2
version: 2.4.2(@tensorflow/tfjs@4.4.0(encoding@0.1.13)(seedrandom@3.0.5))
@@ -327,14 +333,14 @@ importers:
specifier: 0.0.14
version: 0.0.14
otpauth:
- specifier: 9.2.3
- version: 9.2.3
+ specifier: 9.3.1
+ version: 9.3.1
parse5:
specifier: 7.1.2
version: 7.1.2
pg:
- specifier: 8.11.5
- version: 8.11.5
+ specifier: 8.12.0
+ version: 8.12.0
pkce-challenge:
specifier: 4.1.0
version: 4.1.0
@@ -345,8 +351,8 @@ importers:
specifier: 2.7.0
version: 2.7.0
pug:
- specifier: 3.0.2
- version: 3.0.2
+ specifier: 3.0.3
+ version: 3.0.3
punycode:
specifier: 2.3.1
version: 2.3.1
@@ -360,8 +366,8 @@ importers:
specifier: 3.4.1
version: 3.4.1
re2:
- specifier: 1.21.2
- version: 1.21.2
+ specifier: 1.21.3
+ version: 1.21.3
redis-lock:
specifier: 0.1.4
version: 0.1.4
@@ -384,8 +390,8 @@ importers:
specifier: 2.7.0
version: 2.7.0
sharp:
- specifier: 0.33.3
- version: 0.33.3
+ specifier: 0.33.4
+ version: 0.33.4
slacc:
specifier: 0.0.10
version: 0.0.10
@@ -396,8 +402,8 @@ importers:
specifier: 2.1.0
version: 2.1.0
systeminformation:
- specifier: 5.22.7
- version: 5.22.7
+ specifier: 5.22.11
+ version: 5.22.11
tinycolor2:
specifier: 1.6.0
version: 1.6.0
@@ -405,17 +411,17 @@ importers:
specifier: 0.2.3
version: 0.2.3
tsc-alias:
- specifier: 1.8.8
- version: 1.8.8
+ specifier: 1.8.10
+ version: 1.8.10
tsconfig-paths:
specifier: 4.2.0
version: 4.2.0
typeorm:
specifier: 0.3.20
- version: 0.3.20(ioredis@5.4.1)(pg@8.11.5)
+ version: 0.3.20(ioredis@5.4.1)(pg@8.12.0)
typescript:
- specifier: 5.5.2
- version: 5.5.2
+ specifier: 5.5.3
+ version: 5.5.3
ulid:
specifier: 2.3.0
version: 2.3.0
@@ -426,8 +432,8 @@ importers:
specifier: 3.6.7
version: 3.6.7
ws:
- specifier: 8.17.0
- version: 8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
+ specifier: 8.17.1
+ version: 8.17.1(bufferutil@4.0.7)(utf-8-validate@6.0.3)
xev:
specifier: 3.0.2
version: 3.0.2
@@ -523,18 +529,15 @@ importers:
'@jest/globals':
specifier: 29.7.0
version: 29.7.0
- '@misskey-dev/eslint-plugin':
- specifier: 1.0.0
- version: 1.0.0(@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2))(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0))(eslint@8.57.0)
'@nestjs/platform-express':
- specifier: 10.3.8
- version: 10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8)
+ specifier: 10.3.10
+ version: 10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10)
'@simplewebauthn/types':
specifier: 10.0.0
version: 10.0.0
'@swc/jest':
specifier: 0.2.36
- version: 0.2.36(@swc/core@1.4.17)
+ version: 0.2.36(@swc/core@1.6.6)
'@types/accepts':
specifier: 1.3.7
version: 1.3.7
@@ -557,11 +560,11 @@ importers:
specifier: 2.1.24
version: 2.1.24
'@types/htmlescape':
- specifier: ^1.1.3
+ specifier: 1.1.3
version: 1.1.3
'@types/http-link-header':
- specifier: 1.0.5
- version: 1.0.5
+ specifier: 1.0.7
+ version: 1.0.7
'@types/jest':
specifier: 29.5.12
version: 29.5.12
@@ -569,11 +572,11 @@ importers:
specifier: 4.0.9
version: 4.0.9
'@types/jsdom':
- specifier: 21.1.6
- version: 21.1.6
+ specifier: 21.1.7
+ version: 21.1.7
'@types/jsonld':
- specifier: 1.5.13
- version: 1.5.13
+ specifier: 1.5.14
+ version: 1.5.14
'@types/jsrsasign':
specifier: 10.5.14
version: 10.5.14
@@ -584,14 +587,14 @@ importers:
specifier: 0.7.34
version: 0.7.34
'@types/node':
- specifier: 20.12.7
- version: 20.12.7
+ specifier: 20.14.9
+ version: 20.14.9
'@types/nodemailer':
specifier: 6.4.15
version: 6.4.15
'@types/oauth':
- specifier: 0.9.4
- version: 0.9.4
+ specifier: 0.9.5
+ version: 0.9.5
'@types/oauth2orize':
specifier: 1.11.5
version: 1.11.5
@@ -599,8 +602,8 @@ importers:
specifier: 0.1.2
version: 0.1.2
'@types/pg':
- specifier: 8.11.5
- version: 8.11.5
+ specifier: 8.11.6
+ version: 8.11.6
'@types/pug':
specifier: 2.0.10
version: 2.0.10
@@ -647,44 +650,41 @@ importers:
specifier: 8.5.10
version: 8.5.10
'@typescript-eslint/eslint-plugin':
- specifier: 7.7.1
- version: 7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)
+ specifier: 7.15.0
+ version: 7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)
'@typescript-eslint/parser':
- specifier: 7.7.1
- version: 7.7.1(eslint@8.57.0)(typescript@5.5.2)
+ specifier: 7.15.0
+ version: 7.15.0(eslint@9.6.0)(typescript@5.5.3)
aws-sdk-client-mock:
- specifier: 3.0.1
- version: 3.0.1
+ specifier: 4.0.1
+ version: 4.0.1
cross-env:
specifier: 7.0.3
version: 7.0.3
- eslint:
- specifier: 8.57.0
- version: 8.57.0
eslint-plugin-import:
specifier: 2.29.1
- version: 2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)
+ version: 2.29.1(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)
execa:
- specifier: 8.0.1
- version: 8.0.1
+ specifier: 9.2.0
+ version: 9.2.0
fkill:
- specifier: ^9.0.0
+ specifier: 9.0.0
version: 9.0.0
jest:
specifier: 29.7.0
- version: 29.7.0(@types/node@20.12.7)
+ version: 29.7.0(@types/node@20.14.9)
jest-mock:
specifier: 29.7.0
version: 29.7.0
nodemon:
- specifier: 3.1.0
- version: 3.1.0
+ specifier: 3.1.4
+ version: 3.1.4
pid-port:
specifier: 1.0.0
version: 1.0.0
simple-oauth2:
- specifier: 5.0.0
- version: 5.0.0
+ specifier: 5.0.1
+ version: 5.0.1
packages/frontend:
dependencies:
@@ -702,13 +702,13 @@ importers:
version: 2024.1.0
'@rollup/plugin-json':
specifier: 6.1.0
- version: 6.1.0(rollup@4.17.2)
+ version: 6.1.0(rollup@4.18.0)
'@rollup/plugin-replace':
- specifier: 5.0.5
- version: 5.0.5(rollup@4.17.2)
+ specifier: 5.0.7
+ version: 5.0.7(rollup@4.18.0)
'@rollup/pluginutils':
specifier: 5.1.0
- version: 5.1.0(rollup@4.17.2)
+ version: 5.1.0(rollup@4.18.0)
'@syuilo/aiscript':
specifier: 0.18.0
version: 0.18.0
@@ -719,11 +719,11 @@ importers:
specifier: 15.1.1
version: 15.1.1
'@vitejs/plugin-vue':
- specifier: 5.0.4
- version: 5.0.4(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))(vue@3.4.26(typescript@5.5.2))
+ specifier: 5.0.5
+ version: 5.0.5(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))(vue@3.4.31(typescript@5.5.3))
'@vue/compiler-sfc':
- specifier: 3.4.26
- version: 3.4.26
+ specifier: 3.4.31
+ version: 3.4.31
aiscript-vscode:
specifier: github:aiscript-dev/aiscript-vscode#v0.1.9
version: https://codeload.github.com/aiscript-dev/aiscript-vscode/tar.gz/34bf4e1530efcf1efa855bd04e2dab39735e1b02
@@ -740,23 +740,23 @@ importers:
specifier: 1.9.3
version: 1.9.3
chart.js:
- specifier: 4.4.2
- version: 4.4.2
+ specifier: 4.4.3
+ version: 4.4.3
chartjs-adapter-date-fns:
specifier: 3.0.0
- version: 3.0.0(chart.js@4.4.2)(date-fns@2.30.0)
+ version: 3.0.0(chart.js@4.4.3)(date-fns@2.30.0)
chartjs-chart-matrix:
specifier: 2.0.1
- version: 2.0.1(chart.js@4.4.2)
+ version: 2.0.1(chart.js@4.4.3)
chartjs-plugin-gradient:
specifier: 0.6.1
- version: 0.6.1(chart.js@4.4.2)
+ version: 0.6.1(chart.js@4.4.3)
chartjs-plugin-zoom:
specifier: 2.0.1
- version: 2.0.1(chart.js@4.4.2)
+ version: 2.0.1(chart.js@4.4.3)
chromatic:
- specifier: 11.3.0
- version: 11.3.0
+ specifier: 11.5.4
+ version: 11.5.4
compare-versions:
specifier: 6.1.0
version: 6.1.0
@@ -803,23 +803,23 @@ importers:
specifier: workspace:*
version: link:../misskey-reversi
photoswipe:
- specifier: 5.4.3
- version: 5.4.3
+ specifier: 5.4.4
+ version: 5.4.4
punycode:
specifier: 2.3.1
version: 2.3.1
rollup:
- specifier: 4.17.2
- version: 4.17.2
+ specifier: 4.18.0
+ version: 4.18.0
sanitize-html:
specifier: 2.13.0
version: 2.13.0
sass:
- specifier: 1.76.0
- version: 1.76.0
+ specifier: 1.77.6
+ version: 1.77.6
shiki:
- specifier: 1.4.0
- version: 1.4.0
+ specifier: 1.10.0
+ version: 1.10.0
strict-event-emitter-types:
specifier: 2.0.0
version: 2.0.0
@@ -827,102 +827,99 @@ importers:
specifier: 3.1.0
version: 3.1.0
three:
- specifier: 0.164.1
- version: 0.164.1
+ specifier: 0.165.0
+ version: 0.165.0
throttle-debounce:
- specifier: 5.0.0
- version: 5.0.0
+ specifier: 5.0.2
+ version: 5.0.2
tinycolor2:
specifier: 1.6.0
version: 1.6.0
tsc-alias:
- specifier: 1.8.8
- version: 1.8.8
+ specifier: 1.8.10
+ version: 1.8.10
tsconfig-paths:
specifier: 4.2.0
version: 4.2.0
typescript:
- specifier: 5.5.2
- version: 5.5.2
+ specifier: 5.5.3
+ version: 5.5.3
uuid:
- specifier: 9.0.1
- version: 9.0.1
+ specifier: 10.0.0
+ version: 10.0.0
v-code-diff:
- specifier: 1.11.0
- version: 1.11.0(vue@3.4.26(typescript@5.5.2))
+ specifier: 1.12.0
+ version: 1.12.0(vue@3.4.31(typescript@5.5.3))
vite:
- specifier: 5.2.11
- version: 5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
+ specifier: 5.3.2
+ version: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
vue:
- specifier: 3.4.26
- version: 3.4.26(typescript@5.5.2)
+ specifier: 3.4.31
+ version: 3.4.31(typescript@5.5.3)
vuedraggable:
specifier: next
- version: 4.1.0(vue@3.4.26(typescript@5.5.2))
+ version: 4.1.0(vue@3.4.31(typescript@5.5.3))
devDependencies:
- '@misskey-dev/eslint-plugin':
- specifier: 1.0.0
- version: 1.0.0(@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2))(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0))(eslint@8.57.0)
'@misskey-dev/summaly':
specifier: 5.1.0
version: 5.1.0
'@storybook/addon-actions':
- specifier: 8.0.9
- version: 8.0.9
+ specifier: 8.1.11
+ version: 8.1.11
'@storybook/addon-essentials':
- specifier: 8.0.9
- version: 8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 8.1.11
+ version: 8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@storybook/addon-interactions':
- specifier: 8.0.9
- version: 8.0.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.12.7))(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))
+ specifier: 8.1.11
+ version: 8.1.11(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.9))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))
'@storybook/addon-links':
- specifier: 8.0.9
- version: 8.0.9(react@18.3.1)
+ specifier: 8.1.11
+ version: 8.1.11(react@18.3.1)
'@storybook/addon-mdx-gfm':
- specifier: 8.0.9
- version: 8.0.9
+ specifier: 8.1.11
+ version: 8.1.11
'@storybook/addon-storysource':
- specifier: 8.0.9
- version: 8.0.9
+ specifier: 8.1.11
+ version: 8.1.11
'@storybook/blocks':
- specifier: 8.0.9
- version: 8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 8.1.11
+ version: 8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@storybook/components':
- specifier: 8.0.9
- version: 8.0.9(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 8.1.11
+ version: 8.1.11(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@storybook/core-events':
- specifier: 8.0.9
- version: 8.0.9
+ specifier: 8.1.11
+ version: 8.1.11
'@storybook/manager-api':
- specifier: 8.0.9
- version: 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 8.1.11
+ version: 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@storybook/preview-api':
- specifier: 8.0.9
- version: 8.0.9
+ specifier: 8.1.11
+ version: 8.1.11
'@storybook/react':
- specifier: 8.0.9
- version: 8.0.9(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2)
+ specifier: 8.1.11
+ version: 8.1.11(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.3)
'@storybook/react-vite':
- specifier: 8.0.9
- version: 8.0.9(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.17.2)(typescript@5.5.2)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))
+ specifier: 8.1.11
+ version: 8.1.11(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.18.0)(typescript@5.5.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))
'@storybook/test':
- specifier: 8.0.9
- version: 8.0.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.12.7))(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))
+ specifier: 8.1.11
+ version: 8.1.11(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.9))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))
'@storybook/theming':
- specifier: 8.0.9
- version: 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 8.1.11
+ version: 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@storybook/types':
- specifier: 8.0.9
- version: 8.0.9
+ specifier: 8.1.11
+ version: 8.1.11
'@storybook/vue3':
- specifier: 8.0.9
- version: 8.0.9(encoding@0.1.13)(vue@3.4.26(typescript@5.5.2))
+ specifier: 8.1.11
+ version: 8.1.11(encoding@0.1.13)(prettier@3.3.2)(vue@3.4.31(typescript@5.5.3))
'@storybook/vue3-vite':
- specifier: 8.0.9
- version: 8.0.9(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))(vue@3.4.26(typescript@5.5.2))
+ specifier: 8.1.11
+ version: 8.1.11(bufferutil@4.0.7)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))(vue@3.4.31(typescript@5.5.3))
'@testing-library/vue':
- specifier: 8.0.3
- version: 8.0.3(@vue/compiler-sfc@3.4.26)(@vue/server-renderer@3.4.26(vue@3.4.26(typescript@5.5.2)))(vue@3.4.26(typescript@5.5.2))
+ specifier: 8.1.0
+ version: 8.1.0(@vue/compiler-sfc@3.4.31)(@vue/server-renderer@3.4.29(vue@3.4.31(typescript@5.5.3)))(vue@3.4.31(typescript@5.5.3))
'@types/escape-regexp':
specifier: 0.0.3
version: 0.0.3
@@ -933,11 +930,11 @@ importers:
specifier: 0.19.6
version: 0.19.6
'@types/micromatch':
- specifier: 4.0.7
- version: 4.0.7
+ specifier: 4.0.9
+ version: 4.0.9
'@types/node':
- specifier: 20.12.7
- version: 20.12.7
+ specifier: 20.14.9
+ version: 20.14.9
'@types/punycode':
specifier: 2.1.4
version: 2.1.4
@@ -954,41 +951,38 @@ importers:
specifier: 1.4.6
version: 1.4.6
'@types/uuid':
- specifier: 9.0.8
- version: 9.0.8
+ specifier: 10.0.0
+ version: 10.0.0
'@types/ws':
specifier: 8.5.10
version: 8.5.10
'@typescript-eslint/eslint-plugin':
- specifier: 7.7.1
- version: 7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)
+ specifier: 7.15.0
+ version: 7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)
'@typescript-eslint/parser':
- specifier: 7.7.1
- version: 7.7.1(eslint@8.57.0)(typescript@5.5.2)
+ specifier: 7.15.0
+ version: 7.15.0(eslint@9.6.0)(typescript@5.5.3)
'@vitest/coverage-v8':
- specifier: 0.34.6
- version: 0.34.6(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))
+ specifier: 1.6.0
+ version: 1.6.0(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))
'@vue/runtime-core':
- specifier: 3.4.26
- version: 3.4.26
+ specifier: 3.4.31
+ version: 3.4.31
acorn:
- specifier: 8.11.3
- version: 8.11.3
+ specifier: 8.12.0
+ version: 8.12.0
cross-env:
specifier: 7.0.3
version: 7.0.3
cypress:
- specifier: 13.8.1
- version: 13.8.1
- eslint:
- specifier: 8.57.0
- version: 8.57.0
+ specifier: 13.13.0
+ version: 13.13.0
eslint-plugin-import:
specifier: 2.29.1
- version: 2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)
+ version: 2.29.1(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)
eslint-plugin-vue:
- specifier: 9.25.0
- version: 9.25.0(eslint@8.57.0)
+ specifier: 9.26.0
+ version: 9.26.0(eslint@9.6.0)
fast-glob:
specifier: 3.3.2
version: 3.3.2
@@ -999,20 +993,20 @@ importers:
specifier: 0.12.2
version: 0.12.2
micromatch:
- specifier: 4.0.5
- version: 4.0.5
+ specifier: 4.0.7
+ version: 4.0.7
msw:
- specifier: 2.2.14
- version: 2.2.14(typescript@5.5.2)
+ specifier: 2.3.1
+ version: 2.3.1(typescript@5.5.3)
msw-storybook-addon:
- specifier: 2.0.1
- version: 2.0.1(msw@2.2.14(typescript@5.5.2))
+ specifier: 2.0.2
+ version: 2.0.2(msw@2.3.1(typescript@5.5.3))
nodemon:
- specifier: 3.1.0
- version: 3.1.0
+ specifier: 3.1.4
+ version: 3.1.4
prettier:
- specifier: 3.2.5
- version: 3.2.5
+ specifier: 3.3.2
+ version: 3.3.2
react:
specifier: 18.3.1
version: 18.3.1
@@ -1023,32 +1017,32 @@ importers:
specifier: 3.0.5
version: 3.0.5
start-server-and-test:
- specifier: 2.0.3
- version: 2.0.3
+ specifier: 2.0.4
+ version: 2.0.4
storybook:
- specifier: 8.0.9
- version: 8.0.9(@babel/preset-env@7.23.5(@babel/core@7.24.0))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)
+ specifier: 8.1.11
+ version: 8.1.11(@babel/preset-env@7.24.7(@babel/core@7.24.7))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)
storybook-addon-misskey-theme:
specifier: github:misskey-dev/storybook-addon-misskey-theme
- version: https://codeload.github.com/misskey-dev/storybook-addon-misskey-theme/tar.gz/cf583db098365b2ccc81a82f63ca9c93bc32b640(@storybook/blocks@8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/components@8.0.9(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/core-events@8.0.9)(@storybook/manager-api@8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/preview-api@8.0.9)(@storybook/theming@8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/types@8.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: https://codeload.github.com/misskey-dev/storybook-addon-misskey-theme/tar.gz/cf583db098365b2ccc81a82f63ca9c93bc32b640(@storybook/blocks@8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/components@8.1.11(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/core-events@8.1.11)(@storybook/manager-api@8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/preview-api@8.1.11)(@storybook/theming@8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/types@8.1.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
vite-plugin-turbosnap:
specifier: 1.0.3
version: 1.0.3
vitest:
- specifier: 0.34.6
- version: 0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3)
+ specifier: 1.6.0
+ version: 1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1)
vitest-fetch-mock:
specifier: 0.2.2
- version: 0.2.2(encoding@0.1.13)(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))
+ version: 0.2.2(encoding@0.1.13)(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))
vue-component-type-helpers:
- specifier: 2.0.16
- version: 2.0.16
+ specifier: 2.0.24
+ version: 2.0.24
vue-eslint-parser:
- specifier: 9.4.2
- version: 9.4.2(eslint@8.57.0)
+ specifier: 9.4.3
+ version: 9.4.3(eslint@9.6.0)
vue-tsc:
- specifier: 2.0.16
- version: 2.0.16(typescript@5.5.2)
+ specifier: 2.0.24
+ version: 2.0.24(typescript@5.5.3)
packages/misskey-bubble-game:
dependencies:
@@ -1062,9 +1056,6 @@ importers:
specifier: 3.0.5
version: 3.0.5
devDependencies:
- '@misskey-dev/eslint-plugin':
- specifier: 1.0.0
- version: 1.0.0(@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3))(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0))(eslint@8.57.0)
'@types/matter-js':
specifier: 0.19.6
version: 0.19.6
@@ -1076,16 +1067,13 @@ importers:
version: 3.0.8
'@typescript-eslint/eslint-plugin':
specifier: 7.1.0
- version: 7.1.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3)
+ version: 7.1.0(@typescript-eslint/parser@7.1.0(eslint@9.6.0)(typescript@5.3.3))(eslint@9.6.0)(typescript@5.3.3)
'@typescript-eslint/parser':
specifier: 7.1.0
- version: 7.1.0(eslint@8.57.0)(typescript@5.3.3)
+ version: 7.1.0(eslint@9.6.0)(typescript@5.3.3)
esbuild:
specifier: 0.19.11
version: 0.19.11
- eslint:
- specifier: 8.57.0
- version: 8.57.0
execa:
specifier: 8.0.1
version: 8.0.1
@@ -1109,41 +1097,35 @@ importers:
version: 4.4.0
devDependencies:
'@microsoft/api-extractor':
- specifier: 7.43.1
- version: 7.43.1(@types/node@20.12.7)
- '@misskey-dev/eslint-plugin':
- specifier: 1.0.0
- version: 1.0.0(@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2))(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0))(eslint@8.57.0)
+ specifier: 7.47.0
+ version: 7.47.0(@types/node@20.14.9)
'@swc/jest':
specifier: 0.2.36
- version: 0.2.36(@swc/core@1.4.17)
+ version: 0.2.36(@swc/core@1.6.6)
'@types/jest':
specifier: 29.5.12
version: 29.5.12
'@types/node':
- specifier: 20.12.7
- version: 20.12.7
+ specifier: 20.14.9
+ version: 20.14.9
'@typescript-eslint/eslint-plugin':
- specifier: 7.7.1
- version: 7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)
+ specifier: 7.15.0
+ version: 7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)
'@typescript-eslint/parser':
- specifier: 7.7.1
- version: 7.7.1(eslint@8.57.0)(typescript@5.5.2)
+ specifier: 7.15.0
+ version: 7.15.0(eslint@9.6.0)(typescript@5.5.3)
esbuild:
- specifier: 0.19.11
- version: 0.19.11
- eslint:
- specifier: 8.57.0
- version: 8.57.0
+ specifier: 0.22.0
+ version: 0.22.0
execa:
- specifier: 8.0.1
- version: 8.0.1
+ specifier: 9.2.0
+ version: 9.2.0
glob:
- specifier: 10.3.12
- version: 10.3.12
+ specifier: 10.4.2
+ version: 10.4.2
jest:
specifier: 29.7.0
- version: 29.7.0(@types/node@20.12.7)
+ version: 29.7.0(@types/node@20.14.9)
jest-fetch-mock:
specifier: 3.0.3
version: 3.0.3(encoding@0.1.13)
@@ -1157,20 +1139,17 @@ importers:
specifier: 2.0.0
version: 2.0.0
nodemon:
- specifier: 3.1.0
- version: 3.1.0
+ specifier: 3.1.4
+ version: 3.1.4
tsd:
- specifier: 0.30.7
- version: 0.30.7
+ specifier: 0.31.1
+ version: 0.31.1
typescript:
- specifier: 5.5.2
- version: 5.5.2
+ specifier: 5.5.3
+ version: 5.5.3
packages/misskey-js/generator:
devDependencies:
- '@misskey-dev/eslint-plugin':
- specifier: ^1.0.0
- version: 1.0.0(@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0)(typescript@5.3.3))(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0))(eslint@8.53.0)
'@readme/openapi-parser':
specifier: 2.5.0
version: 2.5.0(openapi-types@12.1.3)
@@ -1179,13 +1158,10 @@ importers:
version: 20.9.1
'@typescript-eslint/eslint-plugin':
specifier: 6.11.0
- version: 6.11.0(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0)(typescript@5.3.3)
+ version: 6.11.0(@typescript-eslint/parser@6.11.0(eslint@9.6.0)(typescript@5.3.3))(eslint@9.6.0)(typescript@5.3.3)
'@typescript-eslint/parser':
specifier: 6.11.0
- version: 6.11.0(eslint@8.53.0)(typescript@5.3.3)
- eslint:
- specifier: 8.53.0
- version: 8.53.0
+ version: 6.11.0(eslint@9.6.0)(typescript@5.3.3)
openapi-types:
specifier: 12.1.3
version: 12.1.3
@@ -1208,24 +1184,18 @@ importers:
specifier: 1.2.2
version: 1.2.2
devDependencies:
- '@misskey-dev/eslint-plugin':
- specifier: 1.0.0
- version: 1.0.0(@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3))(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0))(eslint@8.57.0)
'@types/node':
specifier: 20.11.5
version: 20.11.5
'@typescript-eslint/eslint-plugin':
specifier: 7.1.0
- version: 7.1.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3)
+ version: 7.1.0(@typescript-eslint/parser@7.1.0(eslint@9.6.0)(typescript@5.3.3))(eslint@9.6.0)(typescript@5.3.3)
'@typescript-eslint/parser':
specifier: 7.1.0
- version: 7.1.0(eslint@8.57.0)(typescript@5.3.3)
+ version: 7.1.0(eslint@9.6.0)(typescript@5.3.3)
esbuild:
specifier: 0.19.11
version: 0.19.11
- eslint:
- specifier: 8.57.0
- version: 8.57.0
execa:
specifier: 8.0.1
version: 8.0.1
@@ -1242,8 +1212,8 @@ importers:
packages/sw:
dependencies:
esbuild:
- specifier: 0.20.2
- version: 0.20.2
+ specifier: 0.22.0
+ version: 0.22.0
idb-keyval:
specifier: 6.2.1
version: 6.2.1
@@ -1251,27 +1221,21 @@ importers:
specifier: workspace:*
version: link:../misskey-js
devDependencies:
- '@misskey-dev/eslint-plugin':
- specifier: 1.0.0
- version: 1.0.0(@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2))(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0))(eslint@8.57.0)
'@typescript-eslint/parser':
- specifier: 7.7.1
- version: 7.7.1(eslint@8.57.0)(typescript@5.5.2)
+ specifier: 7.15.0
+ version: 7.15.0(eslint@9.6.0)(typescript@5.5.3)
'@typescript/lib-webworker':
specifier: npm:@types/serviceworker@0.0.67
version: '@types/serviceworker@0.0.67'
- eslint:
- specifier: 8.57.0
- version: 8.57.0
eslint-plugin-import:
specifier: 2.29.1
- version: 2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)
+ version: 2.29.1(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)
nodemon:
- specifier: 3.1.0
- version: 3.1.0
+ specifier: 3.1.4
+ version: 3.1.4
typescript:
- specifier: 5.5.2
- version: 5.5.2
+ specifier: 5.5.3
+ version: 5.5.3
packages:
@@ -1302,221 +1266,239 @@ packages:
resolution: {integrity: sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==}
hasBin: true
- '@aws-crypto/crc32@3.0.0':
- resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==}
+ '@aws-crypto/crc32@5.2.0':
+ resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==}
+ engines: {node: '>=16.0.0'}
- '@aws-crypto/crc32c@3.0.0':
- resolution: {integrity: sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==}
+ '@aws-crypto/crc32c@5.2.0':
+ resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==}
- '@aws-crypto/ie11-detection@3.0.0':
- resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==}
+ '@aws-crypto/sha1-browser@5.2.0':
+ resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==}
- '@aws-crypto/sha1-browser@3.0.0':
- resolution: {integrity: sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==}
+ '@aws-crypto/sha256-browser@5.2.0':
+ resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==}
- '@aws-crypto/sha256-browser@3.0.0':
- resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==}
+ '@aws-crypto/sha256-js@5.2.0':
+ resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==}
+ engines: {node: '>=16.0.0'}
- '@aws-crypto/sha256-js@3.0.0':
- resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==}
+ '@aws-crypto/supports-web-crypto@5.2.0':
+ resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==}
- '@aws-crypto/supports-web-crypto@3.0.0':
- resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==}
+ '@aws-crypto/util@5.2.0':
+ resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
- '@aws-crypto/util@3.0.0':
- resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==}
+ '@aws-sdk/client-s3@3.600.0':
+ resolution: {integrity: sha512-iYoKbJTputbf+ubkX6gSK/y/4uJEBRaXZ18jykLdBQ8UJuGrk2gqvV8h7OlGAhToCeysmmMqM0vDWyLt6lP8nw==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/client-s3@3.412.0':
- resolution: {integrity: sha512-sNrlx9sSBmFUCqMgTznwk9Fee3PJat0nZ3RIDR5Crhsld/eexxrqb6TYKsxzFfBfXTL/oPh+/S5driRV2xsB8A==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/client-sso-oidc@3.600.0':
+ resolution: {integrity: sha512-7+I8RWURGfzvChyNQSyj5/tKrqRbzRl7H+BnTOf/4Vsw1nFOi5ROhlhD4X/Y0QCTacxnaoNcIrqnY7uGGvVRzw==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/client-sso@3.410.0':
- resolution: {integrity: sha512-MC9GrgwtlOuSL2WS3DRM3dQ/5y+49KSMMJRH6JiEcU5vE0dX/OtEcX+VfEwpi73x5pSfIjm7xnzjzOFx+sQBIg==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/client-sso@3.598.0':
+ resolution: {integrity: sha512-nOI5lqPYa+YZlrrzwAJywJSw3MKVjvu6Ge2fCqQUNYMfxFB0NAaDFnl0EPjXi+sEbtCuz/uWE77poHbqiZ+7Iw==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/client-sts@3.410.0':
- resolution: {integrity: sha512-e6VMrBJtnTxxUXwDmkADGIvyppmDMFf4+cGGA68tVCUm1cFNlCI6M/67bVSIPN/WVKAAfhEL5O2vVXCM7aatYg==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/client-sts@3.600.0':
+ resolution: {integrity: sha512-KQG97B7LvTtTiGmjlrG1LRAY8wUvCQzrmZVV5bjrJ/1oXAU7DITYwVbSJeX9NWg6hDuSk0VE3MFwIXS2SvfLIA==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/credential-provider-env@3.410.0':
- resolution: {integrity: sha512-c7TB9LbN0PkFOsXI0lcRJnqPNOmc4VBvrHf8jP/BkTDg4YUoKQKOFd4d0SqzODmlZiAyoMQVZTR4ISZo95Zj4Q==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/core@3.598.0':
+ resolution: {integrity: sha512-HaSjt7puO5Cc7cOlrXFCW0rtA0BM9lvzjl56x0A20Pt+0wxXGeTOZZOkXQIepbrFkV2e/HYukuT9e99vXDm59g==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/credential-provider-ini@3.410.0':
- resolution: {integrity: sha512-D8rcr5bRCFD0f42MPQ7K6TWZq5d3pfqrKINL1/bpfkK5BJbvq1BGYmR88UC6CLpTRtZ1LHY2HgYG0fp/2zjjww==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/credential-provider-env@3.598.0':
+ resolution: {integrity: sha512-vi1khgn7yXzLCcgSIzQrrtd2ilUM0dWodxj3PQ6BLfP0O+q1imO3hG1nq7DVyJtq7rFHs6+9N8G4mYvTkxby2w==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/credential-provider-node@3.410.0':
- resolution: {integrity: sha512-0wmVm33T/j1FS7MZ/j+WsPlgSc0YnCXnpbWSov1Mn6R86SHI2b2JhdIPRRE4XbGfyW2QGNUl2CwoZVaqhXeF5g==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/credential-provider-http@3.598.0':
+ resolution: {integrity: sha512-N7cIafi4HVlQvEgvZSo1G4T9qb/JMLGMdBsDCT5XkeJrF0aptQWzTFH0jIdZcLrMYvzPcuEyO3yCBe6cy/ba0g==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/credential-provider-process@3.410.0':
- resolution: {integrity: sha512-BMju1hlDCDNkkSZpKF5SQ8G0WCLRj6/Jvw9QmudLHJuVwYJXEW1r2AsVMg98OZ3hB9G+MAvHruHZIbMiNmUMXQ==}
- engines: {node: '>=14.0.0'}
-
- '@aws-sdk/credential-provider-sso@3.410.0':
- resolution: {integrity: sha512-zEaoY/sY+KYTlQUkp9dvveAHf175b8RIt0DsQkDrRPtrg/RBHR00r5rFvz9+nrwsR8546RaBU7h/zzTaQGhmcA==}
- engines: {node: '>=14.0.0'}
-
- '@aws-sdk/credential-provider-web-identity@3.410.0':
- resolution: {integrity: sha512-cE0l8LmEHdWbDkdPNgrfdYSgp4/cIVXrjUKI1QCATA729CrHZ/OQjB/maOBOrMHO9YTiggko887NkslVvwVB7w==}
- engines: {node: '>=14.0.0'}
-
- '@aws-sdk/lib-storage@3.412.0':
- resolution: {integrity: sha512-uAdVtNuip06rJOs28zVrYXLNeHfKraxvJRTzTA+DW1dXkzh70GTKqDKHWH9IJkW/xMTE6wGSM+fDs8jsMOn/yA==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/credential-provider-ini@3.598.0':
+ resolution: {integrity: sha512-/ppcIVUbRwDIwJDoYfp90X3+AuJo2mvE52Y1t2VSrvUovYn6N4v95/vXj6LS8CNDhz2jvEJYmu+0cTMHdhI6eA==}
+ engines: {node: '>=16.0.0'}
peerDependencies:
- '@aws-sdk/client-s3': ^3.0.0
+ '@aws-sdk/client-sts': ^3.598.0
- '@aws-sdk/middleware-bucket-endpoint@3.410.0':
- resolution: {integrity: sha512-pUGrpFgCKf9fDHu01JJhhw+MUImheS0HFlZwNG37OMubkxUAbCdmYGewGxfTCUvWyZJtx9bVjrSu6gG7w+RARg==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/credential-provider-node@3.600.0':
+ resolution: {integrity: sha512-1pC7MPMYD45J7yFjA90SxpR0yaSvy+yZiq23aXhAPZLYgJBAxHLu0s0mDCk/piWGPh8+UGur5K0bVdx4B1D5hw==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-expect-continue@3.410.0':
- resolution: {integrity: sha512-e5YqGCNmW99GZjEPPujJ02RlEZql19U40oORysBhVF7mKz8BBvF3s8l37tvu37oxebDEkh1u/2cm2+ggOXxLjQ==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/credential-provider-process@3.598.0':
+ resolution: {integrity: sha512-rM707XbLW8huMk722AgjVyxu2tMZee++fNA8TJVNgs1Ma02Wx6bBrfIvlyK0rCcIRb0WdQYP6fe3Xhiu4e8IBA==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-flexible-checksums@3.410.0':
- resolution: {integrity: sha512-IK7KlvEKtrQVBfmAp/MmGd0wbWLuN2GZwwfAmsU0qFb0f5vOVUbKDsu6tudtDKCBG9uXyTEsx3/QGvoK2zDy+g==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/credential-provider-sso@3.598.0':
+ resolution: {integrity: sha512-5InwUmrAuqQdOOgxTccRayMMkSmekdLk6s+az9tmikq0QFAHUCtofI+/fllMXSR9iL6JbGYi1940+EUmS4pHJA==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-host-header@3.410.0':
- resolution: {integrity: sha512-ED/OVcyITln5rrxnajZP+V0PN1nug+gSDHJDqdDo/oLy7eiDr/ZWn3nlWW7WcMplQ1/Jnb+hK0UetBp/25XooA==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/credential-provider-web-identity@3.598.0':
+ resolution: {integrity: sha512-GV5GdiMbz5Tz9JO4NJtRoFXjW0GPEujA0j+5J/B723rTN+REHthJu48HdBKouHGhdzkDWkkh1bu52V02Wprw8w==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ '@aws-sdk/client-sts': ^3.598.0
- '@aws-sdk/middleware-location-constraint@3.410.0':
- resolution: {integrity: sha512-jAftSpOpw/5AdpOJ/cGiXCb+Vv22KXR5QZmxmllUDsnlm18672tpRaI2plmu/1d98CVvqhY61eSklFMrIf2c4w==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/lib-storage@3.600.0':
+ resolution: {integrity: sha512-jjgGMmFykXBAs8YO3ghgnVSjM/uf99jvVQqKJfDjwXUCLPrsZqk14v2WcDCWAXzeAroDvIOVQO1V/RR8fK18Pw==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ '@aws-sdk/client-s3': ^3.600.0
- '@aws-sdk/middleware-logger@3.410.0':
- resolution: {integrity: sha512-YtmKYCVtBfScq3/UFJk+aSZOktKJBNZL9DaSc2aPcy/goCVsYDOkGwtHk0jIkC1JRSNCkVTqL7ya60sSr8zaQQ==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-bucket-endpoint@3.598.0':
+ resolution: {integrity: sha512-PM7BcFfGUSkmkT6+LU9TyJiB4S8yI7dfuKQDwK5ZR3P7MKaK4Uj4yyDiv0oe5xvkF6+O2+rShj+eh8YuWkOZ/Q==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-recursion-detection@3.410.0':
- resolution: {integrity: sha512-KWaes5FLzRqj28vaIEE4Bimpga2E596WdPF2HaH6zsVMJddoRDsc3ZX9ZhLOGrXzIO1RqBd0QxbLrM0S/B2aOQ==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-expect-continue@3.598.0':
+ resolution: {integrity: sha512-ZuHW18kaeHR8TQyhEOYMr8VwiIh0bMvF7J1OTqXHxDteQIavJWA3CbfZ9sgS4XGtrBZDyHJhjZKeCfLhN2rq3w==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-sdk-s3@3.410.0':
- resolution: {integrity: sha512-K2sG2V1ZkezYMCIy3uMt0MwtflcfIwLptwm0iFLaYitiINZQ1tcslk9ggAjyTHg0rslDSI4/zjkhy8VHFOV7HA==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-flexible-checksums@3.598.0':
+ resolution: {integrity: sha512-xukAzds0GQXvMEY9G6qt+CzwVzTx8NyKKh04O2Q+nOch6QQ8Rs+2kTRy3Z4wQmXq2pK9hlOWb5nXA7HWpmz6Ng==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-sdk-sts@3.410.0':
- resolution: {integrity: sha512-YfBpctDocRR4CcROoDueJA7D+aMLBV8nTFfmVNdLLLgyuLZ/AUR11VQSu1lf9gQZKl8IpKE/BLf2fRE/qV1ZuA==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-host-header@3.598.0':
+ resolution: {integrity: sha512-WiaG059YBQwQraNejLIi0gMNkX7dfPZ8hDIhvMr5aVPRbaHH8AYF3iNSsXYCHvA2Cfa1O9haYXsuMF9flXnCmA==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-signing@3.410.0':
- resolution: {integrity: sha512-KBAZ/eoAJUSJv5us2HsKwK2OszG2s9FEyKpEhgnHLcbbKzW873zHBH5GcOGEQu4AWArTy2ndzJu3FF+9/J9hJQ==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-location-constraint@3.598.0':
+ resolution: {integrity: sha512-8oybQxN3F1ISOMULk7JKJz5DuAm5hCUcxMW9noWShbxTJuStNvuHf/WLUzXrf8oSITyYzIHPtf8VPlKR7I3orQ==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-ssec@3.410.0':
- resolution: {integrity: sha512-DNsjVTXoxIh+PuW9o45CFaMiconbuZRm19MC3NA1yNCaCj3ZxD5OdXAutq6UjQdrx8UG4EjUlCJEEvBKmboITw==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-logger@3.598.0':
+ resolution: {integrity: sha512-bxBjf/VYiu3zfu8SYM2S9dQQc3tz5uBAOcPz/Bt8DyyK3GgOpjhschH/2XuUErsoUO1gDJqZSdGOmuHGZQn00Q==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/middleware-user-agent@3.410.0':
- resolution: {integrity: sha512-ZayDtLfvCZUohSxQc/49BfoU/y6bDHLfLdyyUJbJ54Sv8zQcrmdyKvCBFUZwE6tHQgAmv9/ZT18xECMl+xiONA==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-recursion-detection@3.598.0':
+ resolution: {integrity: sha512-vjT9BeFY9FeN0f8hm2l6F53tI0N5bUq6RcDkQXKNabXBnQxKptJRad6oP2X5y3FoVfBLOuDkQgiC2940GIPxtQ==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/signature-v4-multi-region@3.412.0':
- resolution: {integrity: sha512-ijxOeYpNDuk2T940S9HYcZ1C+wTP9vqp1Cw37zw9whVY2mKV3Vr7i+44D4FQ5HhWULgdwhjD7IctbNxPIPzUZQ==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-sdk-s3@3.598.0':
+ resolution: {integrity: sha512-5AGtLAh9wyK6ANPYfaKTqJY1IFJyePIxsEbxa7zS6REheAqyVmgJFaGu3oQ5XlxfGr5Uq59tFTRkyx26G1HkHA==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/token-providers@3.410.0':
- resolution: {integrity: sha512-d5Nc0xydkH/X0LA1HDyhGY5sEv4LuADFk+QpDtT8ogLilcre+b1jpdY8Sih/gd1KoGS1H+d1tz2hSGwUHAbUbw==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-signing@3.598.0':
+ resolution: {integrity: sha512-XKb05DYx/aBPqz6iCapsCbIl8aD8EihTuPCs51p75QsVfbQoVr4TlFfIl5AooMSITzojdAQqxt021YtvxjtxIQ==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/types@3.410.0':
- resolution: {integrity: sha512-D7iaUCszv/v04NDaZUmCmekamy6VD/lKozm/3gS9+dkfU6cC2CsNoUfPV8BlV6dPdw0oWgF91am3I1stdvfVrQ==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-ssec@3.598.0':
+ resolution: {integrity: sha512-f0p2xP8IC1uJ5e/tND1l81QxRtRFywEdnbtKCE0H6RSn4UIt2W3Dohe1qQDbnh27okF0PkNW6BJGdSAz3p7qbA==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/types@3.413.0':
- resolution: {integrity: sha512-j1xib0f/TazIFc5ySIKOlT1ujntRbaoG4LJFeEezz4ji03/wSJMI8Vi4KjzpBp8J1tTu0oRDnsxRIGixsUBeYQ==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/middleware-user-agent@3.598.0':
+ resolution: {integrity: sha512-4tjESlHG5B5MdjUaLK7tQs/miUtHbb6deauQx8ryqSBYOhfHVgb1ZnzvQR0bTrhpqUg0WlybSkDaZAICf9xctg==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/util-arn-parser@3.310.0':
- resolution: {integrity: sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/region-config-resolver@3.598.0':
+ resolution: {integrity: sha512-oYXhmTokSav4ytmWleCr3rs/1nyvZW/S0tdi6X7u+dLNL5Jee+uMxWGzgOrWK6wrQOzucLVjS4E/wA11Kv2GTw==}
+ engines: {node: '>=16.0.0'}
- '@aws-sdk/util-endpoints@3.410.0':
- resolution: {integrity: sha512-iNiqJyC7N3+8zFwnXUqcWSxrZecVZLToo1iTQQdeYL2af1IcOtRgb7n8jpAI/hmXhBSx2+3RI+Y7pxyFo1vu+w==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/signature-v4-multi-region@3.598.0':
+ resolution: {integrity: sha512-1r/EyTrO1gSa1FirnR8V7mabr7gk+l+HkyTI0fcTSr8ucB7gmYyW6WjkY8JCz13VYHFK62usCEDS7yoJoJOzTA==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/token-providers@3.598.0':
+ resolution: {integrity: sha512-TKY1EVdHVBnZqpyxyTHdpZpa1tUpb6nxVeRNn1zWG8QB5MvH4ALLd/jR+gtmWDNQbIG4cVuBOZFVL8hIYicKTA==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ '@aws-sdk/client-sso-oidc': ^3.598.0
+
+ '@aws-sdk/types@3.598.0':
+ resolution: {integrity: sha512-742uRl6z7u0LFmZwDrFP6r1wlZcgVPw+/TilluDJmCAR8BgRw3IR+743kUXKBGd8QZDRW2n6v/PYsi/AWCDDMQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/util-arn-parser@3.568.0':
+ resolution: {integrity: sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/util-endpoints@3.598.0':
+ resolution: {integrity: sha512-Qo9UoiVVZxcOEdiOMZg3xb1mzkTxrhd4qSlg5QQrfWPJVx/QOg+Iy0NtGxPtHtVZNHZxohYwDwV/tfsnDSE2gQ==}
+ engines: {node: '>=16.0.0'}
'@aws-sdk/util-locate-window@3.208.0':
resolution: {integrity: sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==}
engines: {node: '>=14.0.0'}
- '@aws-sdk/util-user-agent-browser@3.410.0':
- resolution: {integrity: sha512-i1G/XGpXGMRT2zEiAhi1xucJsfCWk8nNYjk/LbC0sA+7B9Huri96YAzVib12wkHPsJQvZxZC6CpQDIHWm4lXMA==}
+ '@aws-sdk/util-user-agent-browser@3.598.0':
+ resolution: {integrity: sha512-36Sxo6F+ykElaL1mWzWjlg+1epMpSe8obwhCN1yGE7Js9ywy5U6k6l+A3q3YM9YRbm740sNxncbwLklMvuhTKw==}
- '@aws-sdk/util-user-agent-node@3.410.0':
- resolution: {integrity: sha512-bK70t1jHRl8HrJXd4hEIwc5PBZ7U0w+81AKFnanIVKZwZedd6nLibUXDTK14z/Jp2GFcBqd4zkt2YLGkRt/U4A==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/util-user-agent-node@3.598.0':
+ resolution: {integrity: sha512-oyWGcOlfTdzkC6SVplyr0AGh54IMrDxbhg5RxJ5P+V4BKfcDoDcZV9xenUk9NsOi9MuUjxMumb9UJGkDhM1m0A==}
+ engines: {node: '>=16.0.0'}
peerDependencies:
aws-crt: '>=1.0.0'
peerDependenciesMeta:
aws-crt:
optional: true
- '@aws-sdk/util-utf8-browser@3.259.0':
- resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==}
-
- '@aws-sdk/xml-builder@3.310.0':
- resolution: {integrity: sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw==}
- engines: {node: '>=14.0.0'}
+ '@aws-sdk/xml-builder@3.598.0':
+ resolution: {integrity: sha512-ZIa2RK7CHFTZ4gwK77WRtsZ6vF7xwRXxJ8KQIxK2duhoTVcn0xYxpFLdW9WZZZvdP9GIF3Loqvf8DRdeU5Jc7Q==}
+ engines: {node: '>=16.0.0'}
'@babel/code-frame@7.23.5':
resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
engines: {node: '>=6.9.0'}
+ '@babel/code-frame@7.24.7':
+ resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/compat-data@7.23.5':
resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==}
engines: {node: '>=6.9.0'}
+ '@babel/compat-data@7.24.7':
+ resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/core@7.23.5':
resolution: {integrity: sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==}
engines: {node: '>=6.9.0'}
- '@babel/core@7.24.0':
- resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==}
+ '@babel/core@7.24.7':
+ resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==}
engines: {node: '>=6.9.0'}
'@babel/generator@7.23.5':
resolution: {integrity: sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==}
engines: {node: '>=6.9.0'}
- '@babel/generator@7.23.6':
- resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==}
+ '@babel/generator@7.24.7':
+ resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==}
engines: {node: '>=6.9.0'}
- '@babel/helper-annotate-as-pure@7.22.5':
- resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
+ '@babel/helper-annotate-as-pure@7.24.7':
+ resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==}
engines: {node: '>=6.9.0'}
- '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
- resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
+ '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7':
+ resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==}
engines: {node: '>=6.9.0'}
'@babel/helper-compilation-targets@7.22.15':
resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==}
engines: {node: '>=6.9.0'}
- '@babel/helper-compilation-targets@7.23.6':
- resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
+ '@babel/helper-compilation-targets@7.24.7':
+ resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==}
engines: {node: '>=6.9.0'}
- '@babel/helper-create-class-features-plugin@7.23.5':
- resolution: {integrity: sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A==}
+ '@babel/helper-create-class-features-plugin@7.24.7':
+ resolution: {integrity: sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-create-regexp-features-plugin@7.22.15':
- resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
+ '@babel/helper-create-regexp-features-plugin@7.24.7':
+ resolution: {integrity: sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-define-polyfill-provider@0.4.3':
- resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==}
+ '@babel/helper-define-polyfill-provider@0.6.2':
+ resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
@@ -1524,44 +1506,70 @@ packages:
resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-environment-visitor@7.24.7':
+ resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-function-name@7.23.0':
resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-function-name@7.24.7':
+ resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-hoist-variables@7.22.5':
resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
engines: {node: '>=6.9.0'}
- '@babel/helper-member-expression-to-functions@7.23.0':
- resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
+ '@babel/helper-hoist-variables@7.24.7':
+ resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-member-expression-to-functions@7.24.7':
+ resolution: {integrity: sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==}
engines: {node: '>=6.9.0'}
'@babel/helper-module-imports@7.22.15':
resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-module-imports@7.24.7':
+ resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-module-transforms@7.23.3':
resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-optimise-call-expression@7.22.5':
- resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
+ '@babel/helper-module-transforms@7.24.7':
+ resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-optimise-call-expression@7.24.7':
+ resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==}
engines: {node: '>=6.9.0'}
'@babel/helper-plugin-utils@7.22.5':
resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
engines: {node: '>=6.9.0'}
- '@babel/helper-remap-async-to-generator@7.22.20':
- resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
+ '@babel/helper-plugin-utils@7.24.7':
+ resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-remap-async-to-generator@7.24.7':
+ resolution: {integrity: sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-replace-supers@7.22.20':
- resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==}
+ '@babel/helper-replace-supers@7.24.7':
+ resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -1570,71 +1578,101 @@ packages:
resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
engines: {node: '>=6.9.0'}
- '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
- resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
+ '@babel/helper-simple-access@7.24.7':
+ resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.24.7':
+ resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==}
engines: {node: '>=6.9.0'}
'@babel/helper-split-export-declaration@7.22.6':
resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-split-export-declaration@7.24.7':
+ resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-string-parser@7.23.4':
resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-string-parser@7.24.7':
+ resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-validator-identifier@7.22.20':
resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-validator-identifier@7.24.7':
+ resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-validator-option@7.23.5':
resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
engines: {node: '>=6.9.0'}
- '@babel/helper-wrap-function@7.22.20':
- resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==}
+ '@babel/helper-validator-option@7.24.7':
+ resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-wrap-function@7.24.7':
+ resolution: {integrity: sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==}
engines: {node: '>=6.9.0'}
'@babel/helpers@7.23.5':
resolution: {integrity: sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==}
engines: {node: '>=6.9.0'}
- '@babel/helpers@7.24.0':
- resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==}
+ '@babel/helpers@7.24.7':
+ resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==}
engines: {node: '>=6.9.0'}
'@babel/highlight@7.23.4':
resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
engines: {node: '>=6.9.0'}
+ '@babel/highlight@7.24.7':
+ resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/parser@7.23.9':
resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==}
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/parser@7.24.0':
- resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==}
- engines: {node: '>=6.0.0'}
- hasBin: true
-
'@babel/parser@7.24.5':
resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==}
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3':
- resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==}
+ '@babel/parser@7.24.7':
+ resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7':
+ resolution: {integrity: sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3':
- resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==}
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7':
+ resolution: {integrity: sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7':
+ resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.13.0
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3':
- resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==}
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7':
+ resolution: {integrity: sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -1682,14 +1720,14 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-syntax-import-assertions@7.23.3':
- resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==}
+ '@babel/plugin-syntax-import-assertions@7.24.7':
+ resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-syntax-import-attributes@7.23.3':
- resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==}
+ '@babel/plugin-syntax-import-attributes@7.24.7':
+ resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -1764,92 +1802,92 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/plugin-transform-arrow-functions@7.23.3':
- resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==}
+ '@babel/plugin-transform-arrow-functions@7.24.7':
+ resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-async-generator-functions@7.23.4':
- resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==}
+ '@babel/plugin-transform-async-generator-functions@7.24.7':
+ resolution: {integrity: sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-async-to-generator@7.23.3':
- resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==}
+ '@babel/plugin-transform-async-to-generator@7.24.7':
+ resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-block-scoped-functions@7.23.3':
- resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==}
+ '@babel/plugin-transform-block-scoped-functions@7.24.7':
+ resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-block-scoping@7.23.4':
- resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==}
+ '@babel/plugin-transform-block-scoping@7.24.7':
+ resolution: {integrity: sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-class-properties@7.23.3':
- resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==}
+ '@babel/plugin-transform-class-properties@7.24.7':
+ resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-class-static-block@7.23.4':
- resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==}
+ '@babel/plugin-transform-class-static-block@7.24.7':
+ resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.12.0
- '@babel/plugin-transform-classes@7.23.5':
- resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==}
+ '@babel/plugin-transform-classes@7.24.7':
+ resolution: {integrity: sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-computed-properties@7.23.3':
- resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==}
+ '@babel/plugin-transform-computed-properties@7.24.7':
+ resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-destructuring@7.23.3':
- resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==}
+ '@babel/plugin-transform-destructuring@7.24.7':
+ resolution: {integrity: sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-dotall-regex@7.23.3':
- resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==}
+ '@babel/plugin-transform-dotall-regex@7.24.7':
+ resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-duplicate-keys@7.23.3':
- resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==}
+ '@babel/plugin-transform-duplicate-keys@7.24.7':
+ resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-dynamic-import@7.23.4':
- resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==}
+ '@babel/plugin-transform-dynamic-import@7.24.7':
+ resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-exponentiation-operator@7.23.3':
- resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==}
+ '@babel/plugin-transform-exponentiation-operator@7.24.7':
+ resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-export-namespace-from@7.23.4':
- resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==}
+ '@babel/plugin-transform-export-namespace-from@7.24.7':
+ resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -1860,176 +1898,176 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-for-of@7.23.3':
- resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==}
+ '@babel/plugin-transform-for-of@7.24.7':
+ resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-function-name@7.23.3':
- resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==}
+ '@babel/plugin-transform-function-name@7.24.7':
+ resolution: {integrity: sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-json-strings@7.23.4':
- resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==}
+ '@babel/plugin-transform-json-strings@7.24.7':
+ resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-literals@7.23.3':
- resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==}
+ '@babel/plugin-transform-literals@7.24.7':
+ resolution: {integrity: sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-logical-assignment-operators@7.23.4':
- resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==}
+ '@babel/plugin-transform-logical-assignment-operators@7.24.7':
+ resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-member-expression-literals@7.23.3':
- resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==}
+ '@babel/plugin-transform-member-expression-literals@7.24.7':
+ resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-modules-amd@7.23.3':
- resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==}
+ '@babel/plugin-transform-modules-amd@7.24.7':
+ resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-modules-commonjs@7.23.3':
- resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==}
+ '@babel/plugin-transform-modules-commonjs@7.24.7':
+ resolution: {integrity: sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-modules-systemjs@7.23.3':
- resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==}
+ '@babel/plugin-transform-modules-systemjs@7.24.7':
+ resolution: {integrity: sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-modules-umd@7.23.3':
- resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==}
+ '@babel/plugin-transform-modules-umd@7.24.7':
+ resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-named-capturing-groups-regex@7.22.5':
- resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
+ '@babel/plugin-transform-named-capturing-groups-regex@7.24.7':
+ resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/plugin-transform-new-target@7.23.3':
- resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==}
+ '@babel/plugin-transform-new-target@7.24.7':
+ resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-nullish-coalescing-operator@7.23.4':
- resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==}
+ '@babel/plugin-transform-nullish-coalescing-operator@7.24.7':
+ resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-numeric-separator@7.23.4':
- resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==}
+ '@babel/plugin-transform-numeric-separator@7.24.7':
+ resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-object-rest-spread@7.23.4':
- resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==}
+ '@babel/plugin-transform-object-rest-spread@7.24.7':
+ resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-object-super@7.23.3':
- resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==}
+ '@babel/plugin-transform-object-super@7.24.7':
+ resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-optional-catch-binding@7.23.4':
- resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==}
+ '@babel/plugin-transform-optional-catch-binding@7.24.7':
+ resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-optional-chaining@7.23.4':
- resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==}
+ '@babel/plugin-transform-optional-chaining@7.24.7':
+ resolution: {integrity: sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-parameters@7.23.3':
- resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==}
+ '@babel/plugin-transform-parameters@7.24.7':
+ resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-private-methods@7.23.3':
- resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==}
+ '@babel/plugin-transform-private-methods@7.24.7':
+ resolution: {integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-private-property-in-object@7.23.4':
- resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==}
+ '@babel/plugin-transform-private-property-in-object@7.24.7':
+ resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-property-literals@7.23.3':
- resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==}
+ '@babel/plugin-transform-property-literals@7.24.7':
+ resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-regenerator@7.23.3':
- resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==}
+ '@babel/plugin-transform-regenerator@7.24.7':
+ resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-reserved-words@7.23.3':
- resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==}
+ '@babel/plugin-transform-reserved-words@7.24.7':
+ resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-shorthand-properties@7.23.3':
- resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==}
+ '@babel/plugin-transform-shorthand-properties@7.24.7':
+ resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-spread@7.23.3':
- resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==}
+ '@babel/plugin-transform-spread@7.24.7':
+ resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-sticky-regex@7.23.3':
- resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==}
+ '@babel/plugin-transform-sticky-regex@7.24.7':
+ resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-template-literals@7.23.3':
- resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==}
+ '@babel/plugin-transform-template-literals@7.24.7':
+ resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-typeof-symbol@7.23.3':
- resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==}
+ '@babel/plugin-transform-typeof-symbol@7.24.7':
+ resolution: {integrity: sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -2040,32 +2078,32 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-unicode-escapes@7.23.3':
- resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==}
+ '@babel/plugin-transform-unicode-escapes@7.24.7':
+ resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-unicode-property-regex@7.23.3':
- resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==}
+ '@babel/plugin-transform-unicode-property-regex@7.24.7':
+ resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-unicode-regex@7.23.3':
- resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==}
+ '@babel/plugin-transform-unicode-regex@7.24.7':
+ resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-unicode-sets-regex@7.23.3':
- resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==}
+ '@babel/plugin-transform-unicode-sets-regex@7.24.7':
+ resolution: {integrity: sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/preset-env@7.23.5':
- resolution: {integrity: sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A==}
+ '@babel/preset-env@7.24.7':
+ resolution: {integrity: sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -2108,12 +2146,16 @@ packages:
resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
engines: {node: '>=6.9.0'}
+ '@babel/template@7.24.7':
+ resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==}
+ engines: {node: '>=6.9.0'}
+
'@babel/traverse@7.23.5':
resolution: {integrity: sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==}
engines: {node: '>=6.9.0'}
- '@babel/traverse@7.24.0':
- resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==}
+ '@babel/traverse@7.24.7':
+ resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==}
engines: {node: '>=6.9.0'}
'@babel/types@7.23.5':
@@ -2124,22 +2166,26 @@ packages:
resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
engines: {node: '>=6.9.0'}
+ '@babel/types@7.24.7':
+ resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==}
+ engines: {node: '>=6.9.0'}
+
'@base2/pretty-print-object@1.0.1':
resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==}
'@bcoe/v8-coverage@0.2.3':
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
- '@bull-board/api@5.17.0':
- resolution: {integrity: sha512-qU+AiZIaYa//rkt1x7jDowtYa8u7/dLsDfEWgenZMkgvUszZ1kxJszdCtGapsDTVyPmnXgTRxpOWcR6sAYwSNQ==}
+ '@bull-board/api@5.20.5':
+ resolution: {integrity: sha512-YI95JK5A4/K4KB5VWbQn/CYNB+AO5cZ/BnZ77LxAhsaJ3ssHBN3Au0n3Z4wD7O+78+W3ON9uqGjKnHV6rXBGcQ==}
peerDependencies:
- '@bull-board/ui': 5.17.0
+ '@bull-board/ui': 5.20.5
- '@bull-board/fastify@5.17.0':
- resolution: {integrity: sha512-73YrPc7ERTWSOQRgBP6a7BPscWfcHd8U+Zq0auMdL/KkjPhG9GxapbfnovGZDDahJL/p/4YQb6ULu03zdtOrEA==}
+ '@bull-board/fastify@5.20.5':
+ resolution: {integrity: sha512-tdMR97xbzEzBbMJiJQreJHGdhfOocQn61K/WqM9I038Dk1dBHM5phQJxRJhspvwEJV4jwAayNOZbzuETI7QKwA==}
- '@bull-board/ui@5.17.0':
- resolution: {integrity: sha512-Vj+yWPjrjx3Iqh2N/ZBDhK2d2yJD44dfvIxm+SnXQb4ne312j117TpViInceysxGtbbAOlAW6hq6JvsDoRl7KQ==}
+ '@bull-board/ui@5.20.5':
+ resolution: {integrity: sha512-RV9VlW4qVL1A0Dewpsor4z7ZL9D56OW9LcRYjvXrIU5FSzvTvYKofmrUYoVrNQDs6jGMwJic+dMiW9K8GUU15A==}
'@bundled-es-modules/cookie@2.0.0':
resolution: {integrity: sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==}
@@ -2219,12 +2265,18 @@ packages:
cpu: [ppc64]
os: [aix]
- '@esbuild/aix-ppc64@0.20.2':
- resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
+ '@esbuild/aix-ppc64@0.21.5':
+ resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [aix]
+ '@esbuild/aix-ppc64@0.22.0':
+ resolution: {integrity: sha512-uvQR2crZ/zgzSHDvdygHyNI+ze9zwS8mqz0YtGXotSqvEE0UkYE9s+FZKQNTt1VtT719mfP3vHrUdCpxBNQZhQ==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+
'@esbuild/android-arm64@0.18.20':
resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
engines: {node: '>=12'}
@@ -2237,12 +2289,18 @@ packages:
cpu: [arm64]
os: [android]
- '@esbuild/android-arm64@0.20.2':
- resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
+ '@esbuild/android-arm64@0.21.5':
+ resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
+ '@esbuild/android-arm64@0.22.0':
+ resolution: {integrity: sha512-UKhPb3o2gAB/bfXcl58ZXTn1q2oVu1rEu/bKrCtmm+Nj5MKUbrOwR5WAixE2v+lk0amWuwPvhnPpBRLIGiq7ig==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+
'@esbuild/android-arm@0.18.20':
resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
engines: {node: '>=12'}
@@ -2255,12 +2313,18 @@ packages:
cpu: [arm]
os: [android]
- '@esbuild/android-arm@0.20.2':
- resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
+ '@esbuild/android-arm@0.21.5':
+ resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
+ '@esbuild/android-arm@0.22.0':
+ resolution: {integrity: sha512-PBnyP+r8vJE4ifxsWys9l+Mc2UY/yYZOpX82eoyGISXXb3dRr0M21v+s4fgRKWMFPMSf/iyowqPW/u7ScSUkjQ==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+
'@esbuild/android-x64@0.18.20':
resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
engines: {node: '>=12'}
@@ -2273,12 +2337,18 @@ packages:
cpu: [x64]
os: [android]
- '@esbuild/android-x64@0.20.2':
- resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
+ '@esbuild/android-x64@0.21.5':
+ resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
+ '@esbuild/android-x64@0.22.0':
+ resolution: {integrity: sha512-IjTYtvIrjhR41Ijy2dDPgYjQHWG/x/A4KXYbs1fiU3efpRdoxMChK3oEZV6GPzVEzJqxFgcuBaiX1kwEvWUxSw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+
'@esbuild/darwin-arm64@0.18.20':
resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
engines: {node: '>=12'}
@@ -2291,12 +2361,18 @@ packages:
cpu: [arm64]
os: [darwin]
- '@esbuild/darwin-arm64@0.20.2':
- resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
+ '@esbuild/darwin-arm64@0.21.5':
+ resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
+ '@esbuild/darwin-arm64@0.22.0':
+ resolution: {integrity: sha512-mqt+Go4y9wRvEz81bhKd9RpHsQR1LwU8Xm6jZRUV/xpM7cIQFbFH6wBCLPTNsdELBvfoHeumud7X78jQQJv2TA==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+
'@esbuild/darwin-x64@0.18.20':
resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
engines: {node: '>=12'}
@@ -2309,12 +2385,18 @@ packages:
cpu: [x64]
os: [darwin]
- '@esbuild/darwin-x64@0.20.2':
- resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
+ '@esbuild/darwin-x64@0.21.5':
+ resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
+ '@esbuild/darwin-x64@0.22.0':
+ resolution: {integrity: sha512-vTaTQ9OgYc3VTaWtOE5pSuDT6H3d/qSRFRfSBbnxFfzAvYoB3pqKXA0LEbi/oT8GUOEAutspfRMqPj2ezdFaMw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+
'@esbuild/freebsd-arm64@0.18.20':
resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
engines: {node: '>=12'}
@@ -2327,12 +2409,18 @@ packages:
cpu: [arm64]
os: [freebsd]
- '@esbuild/freebsd-arm64@0.20.2':
- resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
+ '@esbuild/freebsd-arm64@0.21.5':
+ resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
+ '@esbuild/freebsd-arm64@0.22.0':
+ resolution: {integrity: sha512-0e1ZgoobJzaGnR4reD7I9rYZ7ttqdh1KPvJWnquUoDJhL0rYwdneeLailBzd2/4g/U5p4e5TIHEWa68NF2hFpQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+
'@esbuild/freebsd-x64@0.18.20':
resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
engines: {node: '>=12'}
@@ -2345,12 +2433,18 @@ packages:
cpu: [x64]
os: [freebsd]
- '@esbuild/freebsd-x64@0.20.2':
- resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
+ '@esbuild/freebsd-x64@0.21.5':
+ resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
+ '@esbuild/freebsd-x64@0.22.0':
+ resolution: {integrity: sha512-BFgyYwlCwRWyPQJtkzqq2p6pJbiiWgp0P9PNf7a5FQ1itKY4czPuOMAlFVItirSmEpRPCeImuwePNScZS0pL5Q==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+
'@esbuild/linux-arm64@0.18.20':
resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
engines: {node: '>=12'}
@@ -2363,12 +2457,18 @@ packages:
cpu: [arm64]
os: [linux]
- '@esbuild/linux-arm64@0.20.2':
- resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
+ '@esbuild/linux-arm64@0.21.5':
+ resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
+ '@esbuild/linux-arm64@0.22.0':
+ resolution: {integrity: sha512-V/K2rctCUgC0PCXpN7AqT4hoazXKgIYugFGu/myk2+pfe6jTW2guz/TBwq4cZ7ESqusR/IzkcQaBkcjquuBWsw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+
'@esbuild/linux-arm@0.18.20':
resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
engines: {node: '>=12'}
@@ -2381,12 +2481,18 @@ packages:
cpu: [arm]
os: [linux]
- '@esbuild/linux-arm@0.20.2':
- resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
+ '@esbuild/linux-arm@0.21.5':
+ resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
+ '@esbuild/linux-arm@0.22.0':
+ resolution: {integrity: sha512-KEMWiA9aGuPUD4BH5yjlhElLgaRXe+Eri6gKBoDazoPBTo1BXc/e6IW5FcJO9DoL19FBeCxgONyh95hLDNepIg==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+
'@esbuild/linux-ia32@0.18.20':
resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
engines: {node: '>=12'}
@@ -2399,12 +2505,18 @@ packages:
cpu: [ia32]
os: [linux]
- '@esbuild/linux-ia32@0.20.2':
- resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
+ '@esbuild/linux-ia32@0.21.5':
+ resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
+ '@esbuild/linux-ia32@0.22.0':
+ resolution: {integrity: sha512-r2ZZqkOMOrpUhzNwxI7uLAHIDwkfeqmTnrv1cjpL/rjllPWszgqmprd/om9oviKXUBpMqHbXmppvjAYgISb26Q==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+
'@esbuild/linux-loong64@0.18.20':
resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
engines: {node: '>=12'}
@@ -2417,12 +2529,18 @@ packages:
cpu: [loong64]
os: [linux]
- '@esbuild/linux-loong64@0.20.2':
- resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
+ '@esbuild/linux-loong64@0.21.5':
+ resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
+ '@esbuild/linux-loong64@0.22.0':
+ resolution: {integrity: sha512-qaowLrV/YOMAL2RfKQ4C/VaDzAuLDuylM2sd/LH+4OFirMl6CuDpRlCq4u49ZBaVV8pkI/Y+hTdiibvQRhojCA==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+
'@esbuild/linux-mips64el@0.18.20':
resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
engines: {node: '>=12'}
@@ -2435,12 +2553,18 @@ packages:
cpu: [mips64el]
os: [linux]
- '@esbuild/linux-mips64el@0.20.2':
- resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
+ '@esbuild/linux-mips64el@0.21.5':
+ resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
+ '@esbuild/linux-mips64el@0.22.0':
+ resolution: {integrity: sha512-hgrezzjQTRxjkQ5k08J6rtZN5PNnkWx/Rz6Kmj9gnsdCAX1I4Dn4ZPqvFRkXo55Q3pnVQJBwbdtrTO7tMGtyVA==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+
'@esbuild/linux-ppc64@0.18.20':
resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
engines: {node: '>=12'}
@@ -2453,12 +2577,18 @@ packages:
cpu: [ppc64]
os: [linux]
- '@esbuild/linux-ppc64@0.20.2':
- resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
+ '@esbuild/linux-ppc64@0.21.5':
+ resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
+ '@esbuild/linux-ppc64@0.22.0':
+ resolution: {integrity: sha512-ewxg6FLLUio883XgSjfULEmDl3VPv/TYNnRprVAS3QeGFLdCYdx1tIudBcd7n9jIdk82v1Ajov4jx87qW7h9+g==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+
'@esbuild/linux-riscv64@0.18.20':
resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
engines: {node: '>=12'}
@@ -2471,12 +2601,18 @@ packages:
cpu: [riscv64]
os: [linux]
- '@esbuild/linux-riscv64@0.20.2':
- resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
+ '@esbuild/linux-riscv64@0.21.5':
+ resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
+ '@esbuild/linux-riscv64@0.22.0':
+ resolution: {integrity: sha512-Az5XbgSJC2lE8XK8pdcutsf9RgdafWdTpUK/+6uaDdfkviw/B4JCwAfh1qVeRWwOohwdsl4ywZrWBNWxwrPLFg==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+
'@esbuild/linux-s390x@0.18.20':
resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
engines: {node: '>=12'}
@@ -2489,12 +2625,18 @@ packages:
cpu: [s390x]
os: [linux]
- '@esbuild/linux-s390x@0.20.2':
- resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
+ '@esbuild/linux-s390x@0.21.5':
+ resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
+ '@esbuild/linux-s390x@0.22.0':
+ resolution: {integrity: sha512-8j4a2ChT9+V34NNNY9c/gMldutaJFmfMacTPq4KfNKwv2fitBCLYjee7c+Vxaha2nUhPK7cXcZpJtJ3+Y7ZdVQ==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+
'@esbuild/linux-x64@0.18.20':
resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
engines: {node: '>=12'}
@@ -2507,12 +2649,18 @@ packages:
cpu: [x64]
os: [linux]
- '@esbuild/linux-x64@0.20.2':
- resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
+ '@esbuild/linux-x64@0.21.5':
+ resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
+ '@esbuild/linux-x64@0.22.0':
+ resolution: {integrity: sha512-JUQyOnpbAkkRFOk/AhsEemz5TfWN4FJZxVObUlnlNCbe7QBl61ZNfM4cwBXayQA6laMJMUcqLHaYQHAB6YQ95Q==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+
'@esbuild/netbsd-x64@0.18.20':
resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
engines: {node: '>=12'}
@@ -2525,12 +2673,24 @@ packages:
cpu: [x64]
os: [netbsd]
- '@esbuild/netbsd-x64@0.20.2':
- resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
+ '@esbuild/netbsd-x64@0.21.5':
+ resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
+ '@esbuild/netbsd-x64@0.22.0':
+ resolution: {integrity: sha512-11PoCoHXo4HFNbLsXuMB6bpMPWGDiw7xETji6COdJss4SQZLvcgNoeSqWtATRm10Jj1uEHiaIk4N0PiN6x4Fcg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-arm64@0.22.0':
+ resolution: {integrity: sha512-Ezlhu/YyITmXwKSB+Zu/QqD7cxrjrpiw85cc0Rbd3AWr2wsgp+dWbWOE8MqHaLW9NKMZvuL0DhbJbvzR7F6Zvg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
'@esbuild/openbsd-x64@0.18.20':
resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
engines: {node: '>=12'}
@@ -2543,12 +2703,18 @@ packages:
cpu: [x64]
os: [openbsd]
- '@esbuild/openbsd-x64@0.20.2':
- resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
+ '@esbuild/openbsd-x64@0.21.5':
+ resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
+ '@esbuild/openbsd-x64@0.22.0':
+ resolution: {integrity: sha512-ufjdW5tFJGUjlH9j/5cCE9lrwRffyZh+T4vYvoDKoYsC6IXbwaFeV/ENxeNXcxotF0P8CDzoICXVSbJaGBhkrw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+
'@esbuild/sunos-x64@0.18.20':
resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
engines: {node: '>=12'}
@@ -2561,12 +2727,18 @@ packages:
cpu: [x64]
os: [sunos]
- '@esbuild/sunos-x64@0.20.2':
- resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
+ '@esbuild/sunos-x64@0.21.5':
+ resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
+ '@esbuild/sunos-x64@0.22.0':
+ resolution: {integrity: sha512-zY6ly/AoSmKnmNTowDJsK5ehra153/5ZhqxNLfq9NRsTTltetr+yHHcQ4RW7QDqw4JC8A1uC1YmeSfK9NRcK1w==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+
'@esbuild/win32-arm64@0.18.20':
resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
engines: {node: '>=12'}
@@ -2579,12 +2751,18 @@ packages:
cpu: [arm64]
os: [win32]
- '@esbuild/win32-arm64@0.20.2':
- resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
+ '@esbuild/win32-arm64@0.21.5':
+ resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
+ '@esbuild/win32-arm64@0.22.0':
+ resolution: {integrity: sha512-Kml5F7tv/1Maam0pbbCrvkk9vj046dPej30kFzlhXnhuCtYYBP6FGy/cLbc5yUT1lkZznGLf2OvuvmLjscO5rw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+
'@esbuild/win32-ia32@0.18.20':
resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
engines: {node: '>=12'}
@@ -2597,12 +2775,18 @@ packages:
cpu: [ia32]
os: [win32]
- '@esbuild/win32-ia32@0.20.2':
- resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
+ '@esbuild/win32-ia32@0.21.5':
+ resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
+ '@esbuild/win32-ia32@0.22.0':
+ resolution: {integrity: sha512-IOgwn+mYTM3RrcydP4Og5IpXh+ftN8oF+HELTXSmbWBlujuci4Qa3DTeO+LEErceisI7KUSfEIiX+WOUlpELkw==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+
'@esbuild/win32-x64@0.18.20':
resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
engines: {node: '>=12'}
@@ -2615,12 +2799,18 @@ packages:
cpu: [x64]
os: [win32]
- '@esbuild/win32-x64@0.20.2':
- resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
+ '@esbuild/win32-x64@0.21.5':
+ resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
+ '@esbuild/win32-x64@0.22.0':
+ resolution: {integrity: sha512-4bDHJrk2WHBXJPhy1y80X7/5b5iZTZP3LGcKIlAP1J+KqZ4zQAPMLEzftGyjjfcKbA4JDlPt/+2R/F1ZTeRgrw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+
'@eslint-community/eslint-utils@4.4.0':
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -2635,17 +2825,25 @@ packages:
resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
- '@eslint/eslintrc@2.1.4':
- resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@eslint/compat@1.1.0':
+ resolution: {integrity: sha512-s9Wi/p25+KbzxKlDm3VshQdImhWk+cbdblhwGNnyCU5lpSwtWa4v7VQCxSki0FAUrGA3s8nCWgYzAH41mwQVKQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@8.53.0':
- resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@eslint/config-array@0.17.0':
+ resolution: {integrity: sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@8.57.0':
- resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@eslint/eslintrc@3.1.0':
+ resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/js@9.6.0':
+ resolution: {integrity: sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/object-schema@2.1.4':
+ resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@fal-works/esbuild-plugin-global-externals@2.1.2':
resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==}
@@ -2685,8 +2883,8 @@ packages:
'@fastify/http-proxy@9.5.0':
resolution: {integrity: sha512-1iqIdV10d5k9YtfHq9ylX5zt1NiM50fG+rIX40qt00R694sqWso3ukyTFZVk33SDoSiBW8roB7n11RUVUoN+Ag==}
- '@fastify/multipart@8.2.0':
- resolution: {integrity: sha512-OZ8nsyyoS2TV7Yeu3ZdrdDGsKUTAbfjrKC9jSxGgT2qdgek+BxpWX31ZubTrWMNZyU5xwk4ox6AvTjAbYWjrWg==}
+ '@fastify/multipart@8.3.0':
+ resolution: {integrity: sha512-A8h80TTyqUzaMVH0Cr9Qcm6RxSkVqmhK/MVBYHYeRRSUbUYv08WecjWKSlG2aSnD4aGI841pVxAjC+G1GafUeQ==}
'@fastify/reply-from@9.0.1':
resolution: {integrity: sha512-q9vFNUiXZTY1x8omDPe59os2MYq+3y7KgO/kZoXpZlnud+45Nd8Ot/svEvrUATzjkizIggfS4K8LR9zXDyZZKg==}
@@ -2697,8 +2895,8 @@ packages:
'@fastify/static@6.12.0':
resolution: {integrity: sha512-KK1B84E6QD/FcQWxDI2aiUCwHxMJBI1KeCUzm1BwYpPY1b742+jeKruGHP2uOluuM6OkBPI8CIANrXcCRtC2oQ==}
- '@fastify/static@7.0.3':
- resolution: {integrity: sha512-2tmTdF+uFCykasutaO6k4/wOt7eXyi7m3dGuCPo5micXzv0qt6ttb/nWnDYL/BlXjYGfp1JI4a1gyluTIylvQA==}
+ '@fastify/static@7.0.4':
+ resolution: {integrity: sha512-p2uKtaf8BMOZWLs6wu+Ihg7bWNBdjNgCwDza4MJtTqg+5ovKmcbgbR9Xs5/smZ1YISfzKOCNYmZV8LaCj+eJ1Q==}
'@fastify/view@8.2.0':
resolution: {integrity: sha512-hBSiBofCnJNlPHEMZWpO1SL84eqOaqujJ1hR3jntFyZZCkweH5jMs12DKYyGesjVll7SJFRRxPUBB8kmUmneRQ==}
@@ -2716,11 +2914,8 @@ packages:
'@hapi/bourne@3.0.0':
resolution: {integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==}
- '@hapi/hoek@10.0.1':
- resolution: {integrity: sha512-CvlW7jmOhWzuqOqiJQ3rQVLMcREh0eel4IBnxDx2FAcK8g7qoJRQK4L1CPBASoCY6y8e6zuCy3f2g+HWdkzcMw==}
-
- '@hapi/hoek@11.0.2':
- resolution: {integrity: sha512-aKmlCO57XFZ26wso4rJsW4oTUnrgTFw2jh3io7CAtO9w4UltBNwRXvXIVzzyfkaaLRo3nluP/19msA8vDUUuKw==}
+ '@hapi/hoek@11.0.4':
+ resolution: {integrity: sha512-PnsP5d4q7289pS2T2EgGz147BFJ2Jpb4yrEdkpz2IhgEUzos1S7HTl7ezWh1yfYzYlj89KzLdCRkqsP6SIryeQ==}
'@hapi/hoek@9.3.0':
resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
@@ -2734,14 +2929,6 @@ packages:
'@hexagon/base64@1.1.27':
resolution: {integrity: sha512-PdUmzpvcUM3Rh39kvz9RdbPVYhMjBjdV7Suw7ZduP7urRLsZR8l5tzgSWKm7TExwBYDFwTnYrZbnE0rQ3N5NLQ==}
- '@humanwhocodes/config-array@0.11.13':
- resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==}
- engines: {node: '>=10.10.0'}
-
- '@humanwhocodes/config-array@0.11.14':
- resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
- engines: {node: '>=10.10.0'}
-
'@humanwhocodes/module-importer@1.0.1':
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
engines: {node: '>=12.22'}
@@ -2750,20 +2937,18 @@ packages:
resolution: {integrity: sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==}
engines: {node: '>=10.10.0'}
- '@humanwhocodes/object-schema@2.0.1':
- resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==}
+ '@humanwhocodes/retry@0.3.0':
+ resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==}
+ engines: {node: '>=18.18'}
- '@humanwhocodes/object-schema@2.0.2':
- resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
-
- '@img/sharp-darwin-arm64@0.33.3':
- resolution: {integrity: sha512-FaNiGX1MrOuJ3hxuNzWgsT/mg5OHG/Izh59WW2mk1UwYHUwtfbhk5QNKYZgxf0pLOhx9ctGiGa2OykD71vOnSw==}
+ '@img/sharp-darwin-arm64@0.33.4':
+ resolution: {integrity: sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==}
engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [arm64]
os: [darwin]
- '@img/sharp-darwin-x64@0.33.3':
- resolution: {integrity: sha512-2QeSl7QDK9ru//YBT4sQkoq7L0EAJZA3rtV+v9p8xTKl4U1bUqTIaCnoC7Ctx2kCjQgwFXDasOtPTCT8eCTXvw==}
+ '@img/sharp-darwin-x64@0.33.4':
+ resolution: {integrity: sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==}
engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [x64]
os: [darwin]
@@ -2816,55 +3001,55 @@ packages:
cpu: [x64]
os: [linux]
- '@img/sharp-linux-arm64@0.33.3':
- resolution: {integrity: sha512-Zf+sF1jHZJKA6Gor9hoYG2ljr4wo9cY4twaxgFDvlG0Xz9V7sinsPp8pFd1XtlhTzYo0IhDbl3rK7P6MzHpnYA==}
+ '@img/sharp-linux-arm64@0.33.4':
+ resolution: {integrity: sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==}
engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [arm64]
os: [linux]
- '@img/sharp-linux-arm@0.33.3':
- resolution: {integrity: sha512-Q7Ee3fFSC9P7vUSqVEF0zccJsZ8GiiCJYGWDdhEjdlOeS9/jdkyJ6sUSPj+bL8VuOYFSbofrW0t/86ceVhx32w==}
+ '@img/sharp-linux-arm@0.33.4':
+ resolution: {integrity: sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==}
engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [arm]
os: [linux]
- '@img/sharp-linux-s390x@0.33.3':
- resolution: {integrity: sha512-vFk441DKRFepjhTEH20oBlFrHcLjPfI8B0pMIxGm3+yilKyYeHEVvrZhYFdqIseSclIqbQ3SnZMwEMWonY5XFA==}
- engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
+ '@img/sharp-linux-s390x@0.33.4':
+ resolution: {integrity: sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==}
+ engines: {glibc: '>=2.31', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [s390x]
os: [linux]
- '@img/sharp-linux-x64@0.33.3':
- resolution: {integrity: sha512-Q4I++herIJxJi+qmbySd072oDPRkCg/SClLEIDh5IL9h1zjhqjv82H0Seupd+q2m0yOfD+/fJnjSoDFtKiHu2g==}
+ '@img/sharp-linux-x64@0.33.4':
+ resolution: {integrity: sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==}
engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [x64]
os: [linux]
- '@img/sharp-linuxmusl-arm64@0.33.3':
- resolution: {integrity: sha512-qnDccehRDXadhM9PM5hLvcPRYqyFCBN31kq+ErBSZtZlsAc1U4Z85xf/RXv1qolkdu+ibw64fUDaRdktxTNP9A==}
+ '@img/sharp-linuxmusl-arm64@0.33.4':
+ resolution: {integrity: sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==}
engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [arm64]
os: [linux]
- '@img/sharp-linuxmusl-x64@0.33.3':
- resolution: {integrity: sha512-Jhchim8kHWIU/GZ+9poHMWRcefeaxFIs9EBqf9KtcC14Ojk6qua7ghKiPs0sbeLbLj/2IGBtDcxHyjCdYWkk2w==}
+ '@img/sharp-linuxmusl-x64@0.33.4':
+ resolution: {integrity: sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==}
engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [x64]
os: [linux]
- '@img/sharp-wasm32@0.33.3':
- resolution: {integrity: sha512-68zivsdJ0koE96stdUfM+gmyaK/NcoSZK5dV5CAjES0FUXS9lchYt8LAB5rTbM7nlWtxaU/2GON0HVN6/ZYJAQ==}
+ '@img/sharp-wasm32@0.33.4':
+ resolution: {integrity: sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [wasm32]
- '@img/sharp-win32-ia32@0.33.3':
- resolution: {integrity: sha512-CyimAduT2whQD8ER4Ux7exKrtfoaUiVr7HG0zZvO0XTFn2idUWljjxv58GxNTkFb8/J9Ub9AqITGkJD6ZginxQ==}
+ '@img/sharp-win32-ia32@0.33.4':
+ resolution: {integrity: sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [ia32]
os: [win32]
- '@img/sharp-win32-x64@0.33.3':
- resolution: {integrity: sha512-viT4fUIDKnli3IfOephGnolMzhz5VaTvDRkYqtZxOMIoMQ4MrAziO7pT1nVnOt2FAm7qW5aa+CCc13aEY6Le0g==}
+ '@img/sharp-win32-x64@0.33.4':
+ resolution: {integrity: sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
cpu: [x64]
os: [win32]
@@ -2982,8 +3167,8 @@ packages:
resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0':
- resolution: {integrity: sha512-2D6y7fNvFmsLmRt6UCOFJPvFoPMJGT0Uh1Wg0RaigUp7kdQPs6yYn8Dmx6GZkOH/NW0yMTwRz/p0SRMMRo50vA==}
+ '@joshwooding/vite-plugin-react-docgen-typescript@0.3.1':
+ resolution: {integrity: sha512-pdoMZ9QaPnVlSM+SdU/wgg0nyD/8wQ7y90ttO2CMCyrrm7RxveYIJ5eNfjPaoMFqW41LZra7QO9j+xV4Y18Glw==}
peerDependencies:
typescript: '>= 4.3.x'
vite: ^3.0.0 || ^4.0.0 || ^5.0.0
@@ -2995,6 +3180,10 @@ packages:
resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
engines: {node: '>=6.0.0'}
+ '@jridgewell/gen-mapping@0.3.5':
+ resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
+ engines: {node: '>=6.0.0'}
+
'@jridgewell/resolve-uri@3.1.0':
resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
engines: {node: '>=6.0.0'}
@@ -3003,6 +3192,10 @@ packages:
resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
engines: {node: '>=6.0.0'}
+ '@jridgewell/set-array@1.2.1':
+ resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
+ engines: {node: '>=6.0.0'}
+
'@jridgewell/source-map@0.3.5':
resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==}
@@ -3015,6 +3208,9 @@ packages:
'@jridgewell/trace-mapping@0.3.18':
resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==}
+ '@jridgewell/trace-mapping@0.3.25':
+ resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+
'@jsdevtools/ono@7.1.3':
resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==}
@@ -3048,29 +3244,31 @@ packages:
'@types/react': '>=16'
react: '>=16'
- '@microsoft/api-extractor-model@7.28.14':
- resolution: {integrity: sha512-Bery/c8A8SsKPSvA82cTTuy/+OcxZbLRmKhPkk91/AJOQzxZsShcrmHFAGeiEqSIrv1nPZ3tKq9kfMLdCHmsqg==}
+ '@microsoft/api-extractor-model@7.29.2':
+ resolution: {integrity: sha512-hAYajOjQan3uslhKJRwvvHIdLJ+ZByKqdSsJ/dgHFxPtEbdKpzMDO8zuW4K5gkSMYl5D0LbNwxkhxr51P2zsmw==}
- '@microsoft/api-extractor@7.43.1':
- resolution: {integrity: sha512-ohg40SsvFFgzHFAtYq5wKJc8ZDyY46bphjtnSvhSSlXpPTG7GHwyyXkn48UZiUCBwr2WC7TRC1Jfwz7nreuiyQ==}
+ '@microsoft/api-extractor@7.47.0':
+ resolution: {integrity: sha512-LT8yvcWNf76EpDC+8/ArTVSYePvuDQ+YbAUrsTcpg3ptiZ93HIcMCozP/JOxDt+rrsFfFHcpfoselKfPyRI0GQ==}
hasBin: true
- '@microsoft/tsdoc-config@0.16.2':
- resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==}
+ '@microsoft/tsdoc-config@0.17.0':
+ resolution: {integrity: sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==}
- '@microsoft/tsdoc@0.14.2':
- resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==}
+ '@microsoft/tsdoc@0.15.0':
+ resolution: {integrity: sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==}
'@misskey-dev/browser-image-resizer@2024.1.0':
resolution: {integrity: sha512-4EnO0zLW5NDtng3Gaz5MuT761uiuoOuplwX18wBqgj8w56LTU5BjLn/vbHwDIIe0j2gwqDYhMb7bDjmr1/Fomg==}
- '@misskey-dev/eslint-plugin@1.0.0':
- resolution: {integrity: sha512-dh6UbcrNDVg5DD8k8Qh4ab30OPpuEYIlJCqaBV/lkIV8wNN/AfCJ2V7iTP8V8KjryM4t+sf5IqzQLQnT0mWI4A==}
+ '@misskey-dev/eslint-plugin@2.0.2':
+ resolution: {integrity: sha512-bnTqxCSP0CIN0xSpIGib13bz+K8/3e4h8OlQjuCPlhZF7oFwtn339EZM8yJkHg6gdfciV8KOr3gzlLyG3jiVEQ==}
peerDependencies:
- '@typescript-eslint/eslint-plugin': '>= 6'
- '@typescript-eslint/parser': '>= 6'
- eslint: '>= 3'
+ '@eslint/compat': '>= 1'
+ '@typescript-eslint/eslint-plugin': '>= 7'
+ '@typescript-eslint/parser': '>= 7'
+ eslint: '>= 8'
eslint-plugin-import: '>= 2'
+ globals: '>= 15'
'@misskey-dev/sharp-read-bmp@1.2.0':
resolution: {integrity: sha512-er4pRakXzHYfEgOFAFfQagqDouG+wLm+kwNq1I30oSdIHDa0wM3KjFpfIGQ25Fks4GcmOl1s7Zh6xoQu5dNjTw==}
@@ -3116,73 +3314,73 @@ packages:
resolution: {integrity: sha512-0ZcCVQxifZmhwNBoQIrystCb+2sWBY2Zw8lpfJBPCHGCA/HWqehITeCRVIv4VMy8MPlaHo2w2pTHFV2pFfqKPw==}
engines: {node: '>=18'}
- '@mswjs/interceptors@0.26.15':
- resolution: {integrity: sha512-HM47Lu1YFmnYHKMBynFfjCp0U/yRskHj/8QEJW0CBEPOlw8Gkmjfll+S9b8M7V5CNDw2/ciRxjjnWeaCiblSIQ==}
+ '@mswjs/interceptors@0.29.1':
+ resolution: {integrity: sha512-3rDakgJZ77+RiQUuSK69t1F0m8BQKA8Vh5DCS5V0DWvNY67zob2JhhQrhCO0AKLGINTRSFd1tBaHcJTkhefoSw==}
engines: {node: '>=18'}
- '@napi-rs/canvas-android-arm64@0.1.52':
- resolution: {integrity: sha512-x/K471KbASPVh5mfBUxokza66J0FNIlOgMNANWAf5C8HiATb487KecEhSkUQvvTS3WLYC9uSqIPHFgwF+tir3w==}
+ '@napi-rs/canvas-android-arm64@0.1.53':
+ resolution: {integrity: sha512-2YhxfVsZguATlRWE0fZdTx35SE9+r5D7HV5GPNDataZOKmHf+zZ5//dspuuBSbOriQdoicaFrgXKCUqI0pK3WQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [android]
- '@napi-rs/canvas-darwin-arm64@0.1.52':
- resolution: {integrity: sha512-4OgVRD7TW02q5Q7lWLLjT+pYJ9ZHkQUTBOuXbPQ5wB0Wnh3RIq/aMY6thoXDZDzdR5vV3a5TUtbZUJ0aqLq3NA==}
+ '@napi-rs/canvas-darwin-arm64@0.1.53':
+ resolution: {integrity: sha512-ls+CWLMusf4RAGo5BvIIzA6dNcc0elwVp6LKjHfQECHA8KKmvdB58YuE5BQcTlb2rzk0SEKtBC/Th3NI2oNdfg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@napi-rs/canvas-darwin-x64@0.1.52':
- resolution: {integrity: sha512-3fgeGJ3j2X6Mtmn0QYf3iA+A6y1ePnsayakc2emEokzf03ErrPczONw3vjnTQo53JLPMzEnfPGAffdktU/ssPA==}
+ '@napi-rs/canvas-darwin-x64@0.1.53':
+ resolution: {integrity: sha512-ZAgcoCH5+5OKS2P8Lxx+jbkAPKkyLD2x6OvSrHg1U6ppdxmLA+CkJlRl8w45HCXwuyIiP7OeymECRtiNYTwznQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@napi-rs/canvas-linux-arm-gnueabihf@0.1.52':
- resolution: {integrity: sha512-aaDEEK5XwHUrPt0q4SR8l7Va0vtn50KmSs+itxP+o7RNk3Nuch8fINHOXyhMyhwNYgv1tfiJVyHsJhD0E6lXGA==}
+ '@napi-rs/canvas-linux-arm-gnueabihf@0.1.53':
+ resolution: {integrity: sha512-p9km/3C/loDxu3AvA8/vtpIS1BGMd/Ehkl2Iu/v/Gw8N/KUIt3HUvTS7AKApyVE28bxTfq96wJQjtcT8jzDncw==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
- '@napi-rs/canvas-linux-arm64-gnu@0.1.52':
- resolution: {integrity: sha512-tzuwM7Amt5mkrp4csQjYWkFzwFdiCm7RNdJ5usX8syzKSXmozqWzLHjzo/2ozdSQNUy6wyzRrxkG4Rh6g0OpOA==}
+ '@napi-rs/canvas-linux-arm64-gnu@0.1.53':
+ resolution: {integrity: sha512-QKK+sykEiYwjwd+ogyLcpcnH38DNZ8KViBlnfEpoGA2Wa+21/cWQKfMxnbgb/rbvm5tazJinZcihFvH577WQ5g==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@napi-rs/canvas-linux-arm64-musl@0.1.52':
- resolution: {integrity: sha512-HQCtJlDT0dFp3uUZVzZOZ1VLMO7lbLRc548MjMxPpojit2ZdGopFzJ8jDSr4iszHrTO1SM1AxPaCM3pRvCAtjw==}
+ '@napi-rs/canvas-linux-arm64-musl@0.1.53':
+ resolution: {integrity: sha512-2N41U0X8RnrTKzpTtPv1ozlYkJtPsUdbfF3uP/KEd/BsULGd8Y8ghkGMS6CM+821au4ex0dPrWOOdT9wC1rSqQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@napi-rs/canvas-linux-x64-gnu@0.1.52':
- resolution: {integrity: sha512-z5sBEw0PVWPH/MIQL8hOR8C3YYVlu8lqtRUcYajigMfXAhbMiNqDWTjuIWGMz3nIydDjZmn8KTxw/D4a0HFPqQ==}
+ '@napi-rs/canvas-linux-x64-gnu@0.1.53':
+ resolution: {integrity: sha512-7XjuTvDKCODtf/vMwF43VGDrjfgwYKgS91ggdcX3UrJaBYWyWu/+eqNvNj+zdXSe/0x+YOjf5jG4m8xIXdBMQA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@napi-rs/canvas-linux-x64-musl@0.1.52':
- resolution: {integrity: sha512-G1+JdWFhHLyHhULJS51xTEhB7EL0ZiAUQwQaRi4/w75OOYDQ91O+o4miaxDHiV0hZuxBhHtZU6ftV2Zl3RMguw==}
+ '@napi-rs/canvas-linux-x64-musl@0.1.53':
+ resolution: {integrity: sha512-970WEvB8vmj+uxvgdBZ+AGFV7uq9GJhXrqG5PGQ5lWciHX0P0d/OhS2F7TITgFR0LsKDQZ7XQgzMxsYOfwZ0FQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@napi-rs/canvas-win32-x64-msvc@0.1.52':
- resolution: {integrity: sha512-hMI626VsCC/wv29qHF78N7TSG+auatOp08DHln0Zdif5y1NJ14NU/rNUhzlTW8Zc6ssw+AMDJ3KKYYWYYg1aoA==}
+ '@napi-rs/canvas-win32-x64-msvc@0.1.53':
+ resolution: {integrity: sha512-rLFQCSJaWg/sv54Aap9nAhaodi4Vyb4un50EgW+PNkk8icMziU6KLRKirGBdQr9ZdxnshAPeQXD1g2ArStujKA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
- '@napi-rs/canvas@0.1.52':
- resolution: {integrity: sha512-xeW9EghZLDPZuqWJ4l1+eG3ld0i9J7SpV2zlgi34MPt/FE9K2XWGCfnLr0gHGOBkcI3YOVhI13I0HqRAkMPdVw==}
+ '@napi-rs/canvas@0.1.53':
+ resolution: {integrity: sha512-XsEZi97+kKykmAiPpY+IpZoHxJY1srqFZp8jDt1/RySzC0kB0iZYt/VMIFqQKpLCARZjD7SOAz2AULtwYlesCA==}
engines: {node: '>= 10'}
'@ndelangen/get-tarball@3.0.7':
resolution: {integrity: sha512-NqGfTZIZpRFef1GoVaShSSRwDC3vde3ThtTeqFdcYd6ipKqnfEVhjK2hUeHjCQUcptyZr2TONqcloFXM+5QBrQ==}
- '@nestjs/common@10.3.8':
- resolution: {integrity: sha512-P+vPEIvqx2e+fonsYVlFXKvoChyJ8Tq+lfpqdVFqblovHbFr3kZ/nYX0cPs+XuW6bnRT8tz0SSR9XBGU43kJhw==}
+ '@nestjs/common@10.3.10':
+ resolution: {integrity: sha512-H8k0jZtxk1IdtErGDmxFRy0PfcOAUg41Prrqpx76DQusGGJjsaovs1zjXVD1rZWaVYchfT1uczJ6L4Kio10VNg==}
peerDependencies:
class-transformer: '*'
class-validator: '*'
@@ -3194,8 +3392,8 @@ packages:
class-validator:
optional: true
- '@nestjs/core@10.3.8':
- resolution: {integrity: sha512-AxF4tpYLDNn5Wfb3C4bNaaHJ4pREH5FJrSisR2A5zkYpQFORFs0Tc36lOFPMwBTy8Iv2wUwWLUVc5ftBnxEv4w==}
+ '@nestjs/core@10.3.10':
+ resolution: {integrity: sha512-ZbQ4jovQyzHtCGCrzK5NdtW1SYO2fHSsgSY1+/9WdruYCUra+JDkWEXgZ4M3Hv480Dl3OXehAmY1wCOojeMyMQ==}
peerDependencies:
'@nestjs/common': ^10.0.0
'@nestjs/microservices': ^10.0.0
@@ -3211,14 +3409,14 @@ packages:
'@nestjs/websockets':
optional: true
- '@nestjs/platform-express@10.3.8':
- resolution: {integrity: sha512-sifLoxgEJvAgbim1UuW6wyScMfkS9SVQRH+lN33N/9ZvZSjO6NSDLOe+wxqsnZkia+QrjFC0qy0ITRAsggfqbg==}
+ '@nestjs/platform-express@10.3.10':
+ resolution: {integrity: sha512-wK2ow3CZI2KFqWeEpPmoR300OB6BcBLxARV1EiClJLCj4S1mZsoCmS0YWgpk3j1j6mo0SI8vNLi/cC2iZPEPQA==}
peerDependencies:
'@nestjs/common': ^10.0.0
'@nestjs/core': ^10.0.0
- '@nestjs/testing@10.3.8':
- resolution: {integrity: sha512-hpX9das2TdFTKQ4/2ojhjI6YgXtCfXRKui3A4Qaj54VVzc5+mtK502Jj18Vzji98o9MVS6skmYu+S/UvW3U6Fw==}
+ '@nestjs/testing@10.3.10':
+ resolution: {integrity: sha512-i3HAtVQJijxNxJq1k39aelyJlyEIBRONys7IipH/4r8W0J+M1V+y5EKDOyi4j1SdNSb/vmNyWpZ2/ewZjl3kRA==}
peerDependencies:
'@nestjs/common': ^10.0.0
'@nestjs/core': ^10.0.0
@@ -3230,6 +3428,10 @@ packages:
'@nestjs/platform-express':
optional: true
+ '@noble/hashes@1.4.0':
+ resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
+ engines: {node: '>= 16'}
+
'@nodelib/fs.scandir@2.1.5':
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
@@ -3273,19 +3475,19 @@ packages:
'@open-draft/until@2.1.0':
resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==}
- '@opentelemetry/api-logs@0.51.1':
- resolution: {integrity: sha512-E3skn949Pk1z2XtXu/lxf6QAZpawuTM/IUEXcAzpiUkTd73Hmvw26FiN3cJuTmkpM5hZzHwkomVdtrh/n/zzwA==}
+ '@opentelemetry/api-logs@0.52.1':
+ resolution: {integrity: sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==}
engines: {node: '>=14'}
- '@opentelemetry/api@1.8.0':
- resolution: {integrity: sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==}
+ '@opentelemetry/api@1.9.0':
+ resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
engines: {node: '>=8.0.0'}
- '@opentelemetry/context-async-hooks@1.24.1':
- resolution: {integrity: sha512-R5r6DO4kgEOVBxFXhXjwospLQkv+sYxwCfjvoZBe7Zm6KKXAV9kDSJhi/D1BweowdZmO+sdbENLs374gER8hpQ==}
+ '@opentelemetry/context-async-hooks@1.25.1':
+ resolution: {integrity: sha512-UW/ge9zjvAEmRWVapOP0qyCvPulWU6cQxGxDbWEFfGOj1VBBZAuOqTo3X6yWmDTD3Xe15ysCZChHncr2xFMIfQ==}
engines: {node: '>=14'}
peerDependencies:
- '@opentelemetry/api': '>=1.0.0 <1.9.0'
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
'@opentelemetry/core@1.24.1':
resolution: {integrity: sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==}
@@ -3293,86 +3495,98 @@ packages:
peerDependencies:
'@opentelemetry/api': '>=1.0.0 <1.9.0'
- '@opentelemetry/instrumentation-connect@0.36.0':
- resolution: {integrity: sha512-k9++bmJZ9zDEs3u3DnKTn2l7QTiNFg3gPx7G9rW0TPnP+xZoBSBTrEcGYBaqflQlrFG23Q58+X1sM2ayWPv5Fg==}
+ '@opentelemetry/core@1.25.1':
+ resolution: {integrity: sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/instrumentation-connect@0.37.0':
+ resolution: {integrity: sha512-SeQktDIH5rNzjiEiazWiJAIXkmnLOnNV7wwHpahrqE0Ph+Z3heqMfxRtoMtbdJSIYLfcNZYO51AjxZ00IXufdw==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-express@0.39.0':
- resolution: {integrity: sha512-AG8U7z7D0JcBu/7dDcwb47UMEzj9/FMiJV2iQZqrsZnxR3FjB9J9oIH2iszJYci2eUdp2WbdvtpD9RV/zmME5A==}
+ '@opentelemetry/instrumentation-express@0.40.1':
+ resolution: {integrity: sha512-+RKMvVe2zw3kIXRup9c1jFu3T4d0fs5aKy015TpiMyoCKX1UMu3Z0lfgYtuyiSTANvg5hZnDbWmQmqSPj9VTvg==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-fastify@0.36.1':
- resolution: {integrity: sha512-3Nfm43PI0I+3EX+1YbSy6xbDu276R1Dh1tqAk68yd4yirnIh52Kd5B+nJ8CgHA7o3UKakpBjj6vSzi5vNCzJIA==}
+ '@opentelemetry/instrumentation-fastify@0.37.0':
+ resolution: {integrity: sha512-WRjwzNZgupSzbEYvo9s+QuHJRqZJjVdNxSEpGBwWK8RKLlHGwGVAu0gcc2gPamJWUJsGqPGvahAPWM18ZkWj6A==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-graphql@0.40.0':
- resolution: {integrity: sha512-LVRdEHWACWOczv2imD+mhUrLMxsEjPPi32vIZJT57zygR5aUiA4em8X3aiGOCycgbMWkIu8xOSGSxdx3JmzN+w==}
+ '@opentelemetry/instrumentation-graphql@0.41.0':
+ resolution: {integrity: sha512-R/gXeljgIhaRDKquVkKYT5QHPnFouM8ooyePZEP0kqyaVAedtR1V7NfAUJbxfTG5fBQa5wdmLjvu63+tzRXZCA==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-hapi@0.38.0':
- resolution: {integrity: sha512-ZcOqEuwuutTDYIjhDIStix22ECblG/i9pHje23QGs4Q4YS4RMaZ5hKCoQJxW88Z4K7T53rQkdISmoXFKDV8xMg==}
+ '@opentelemetry/instrumentation-hapi@0.39.0':
+ resolution: {integrity: sha512-ik2nA9Yj2s2ay+aNY+tJsKCsEx6Tsc2g/MK0iWBW5tibwrWKTy1pdVt5sB3kd5Gkimqj23UV5+FH2JFcQLeKug==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-http@0.51.1':
- resolution: {integrity: sha512-6b3nZnFFEz/3xZ6w8bVxctPUWIPWiXuPQ725530JgxnN1cvYFd8CJ75PrHZNjynmzSSnqBkN3ef4R9N+RpMh8Q==}
+ '@opentelemetry/instrumentation-http@0.52.1':
+ resolution: {integrity: sha512-dG/aevWhaP+7OLv4BQQSEKMJv8GyeOp3Wxl31NHqE8xo9/fYMfEljiZphUHIfyg4gnZ9swMyWjfOQs5GUQe54Q==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-ioredis@0.40.0':
- resolution: {integrity: sha512-Jv/fH7KhpWe4KBirsiqeUJIYrsdR2iu2l4nWhfOlRvaZ+zYIiLEzTQR6QhBbyRoAbU4OuYJzjWusOmmpGBnwng==}
+ '@opentelemetry/instrumentation-ioredis@0.41.0':
+ resolution: {integrity: sha512-rxiLloU8VyeJGm5j2fZS8ShVdB82n7VNP8wTwfUQqDwRfHCnkzGr+buKoxuhGD91gtwJ91RHkjHA1Eg6RqsUTg==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-koa@0.40.0':
- resolution: {integrity: sha512-dJc3H/bKMcgUYcQpLF+1IbmUKus0e5Fnn/+ru/3voIRHwMADT3rFSUcGLWSczkg68BCgz0vFWGDTvPtcWIFr7A==}
+ '@opentelemetry/instrumentation-koa@0.41.0':
+ resolution: {integrity: sha512-mbPnDt7ELvpM2S0vixYUsde7122lgegLOJQxx8iJQbB8YHal/xnTh9v7IfArSVzIDo+E+080hxZyUZD4boOWkw==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-mongodb@0.43.0':
- resolution: {integrity: sha512-bMKej7Y76QVUD3l55Q9YqizXybHUzF3pujsBFjqbZrRn2WYqtsDtTUlbCK7fvXNPwFInqZ2KhnTqd0gwo8MzaQ==}
+ '@opentelemetry/instrumentation-mongodb@0.45.0':
+ resolution: {integrity: sha512-xnZP9+ayeB1JJyNE9cIiwhOJTzNEsRhXVdLgfzmrs48Chhhk026mQdM5CITfyXSCfN73FGAIB8d91+pflJEfWQ==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-mongoose@0.38.1':
- resolution: {integrity: sha512-zaeiasdnRjXe6VhYCBMdkmAVh1S5MmXC/0spet+yqoaViGnYst/DOxPvhwg3yT4Yag5crZNWsVXnA538UjP6Ow==}
+ '@opentelemetry/instrumentation-mongoose@0.39.0':
+ resolution: {integrity: sha512-J1r66A7zJklPPhMtrFOO7/Ud2p0Pv5u8+r23Cd1JUH6fYPmftNJVsLp2urAt6PHK4jVqpP/YegN8wzjJ2mZNPQ==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-mysql2@0.38.1':
- resolution: {integrity: sha512-qkpHMgWSDTYVB1vlZ9sspf7l2wdS5DDq/rbIepDwX5BA0N0068JTQqh0CgAh34tdFqSCnWXIhcyOXC2TtRb0sg==}
+ '@opentelemetry/instrumentation-mysql2@0.39.0':
+ resolution: {integrity: sha512-Iypuq2z6TCfriAXCIZjRq8GTFCKhQv5SpXbmI+e60rYdXw8NHtMH4NXcGF0eKTuoCsC59IYSTUvDQYDKReaszA==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-mysql@0.38.1':
- resolution: {integrity: sha512-+iBAawUaTfX/HAlvySwozx0C2B6LBfNPXX1W8Z2On1Uva33AGkw2UjL9XgIg1Pj4eLZ9R4EoJ/aFz+Xj4E/7Fw==}
+ '@opentelemetry/instrumentation-mysql@0.39.0':
+ resolution: {integrity: sha512-8snHPh83rhrDf31v9Kq0Nf+ts8hdr7NguuszRqZomZBHgE0+UyXZSkXHAAFZoBPPRMGyM68uaFE5hVtFl+wOcA==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-nestjs-core@0.37.1':
- resolution: {integrity: sha512-ebYQjHZEmGHWEALwwDGhSQVLBaurFnuLIkZD5igPXrt7ohfF4lc5/4al1LO+vKc0NHk8SJWStuRueT86ISA8Vg==}
+ '@opentelemetry/instrumentation-nestjs-core@0.38.0':
+ resolution: {integrity: sha512-M381Df1dM8aqihZz2yK+ugvMFK5vlHG/835dc67Sx2hH4pQEQYDA2PpFPTgc9AYYOydQaj7ClFQunESimjXDgg==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation-pg@0.41.0':
- resolution: {integrity: sha512-BSlhpivzBD77meQNZY9fS4aKgydA8AJBzv2dqvxXFy/Hq64b7HURgw/ztbmwFeYwdF5raZZUifiiNSMLpOJoSA==}
+ '@opentelemetry/instrumentation-pg@0.42.0':
+ resolution: {integrity: sha512-sjgcM8CswYy8zxHgXv4RAZ09DlYhQ+9TdlourUs63Df/ek5RrB1ZbjznqW7PB6c3TyJJmX6AVtPTjAsROovEjA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-redis-4@0.40.0':
+ resolution: {integrity: sha512-0ieQYJb6yl35kXA75LQUPhHtGjtQU9L85KlWa7d4ohBbk/iQKZ3X3CFl5jC5vNMq/GGPB3+w3IxNvALlHtrp7A==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
@@ -3383,8 +3597,8 @@ packages:
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/instrumentation@0.51.1':
- resolution: {integrity: sha512-JIrvhpgqY6437QIqToyozrUG1h5UhwHkaGK/WAX+fkrpyPtc+RO5FkRtUd9BH0MibabHHvqsnBGKfKVijbmp8w==}
+ '@opentelemetry/instrumentation@0.52.1':
+ resolution: {integrity: sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': ^1.3.0
@@ -3399,22 +3613,32 @@ packages:
peerDependencies:
'@opentelemetry/api': '>=1.0.0 <1.9.0'
+ '@opentelemetry/resources@1.25.1':
+ resolution: {integrity: sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
'@opentelemetry/sdk-metrics@1.24.1':
resolution: {integrity: sha512-FrAqCbbGao9iKI+Mgh+OsC9+U2YMoXnlDHe06yH7dvavCKzE3S892dGtX54+WhSFVxHR/TMRVJiK/CV93GR0TQ==}
engines: {node: '>=14'}
peerDependencies:
'@opentelemetry/api': '>=1.3.0 <1.9.0'
- '@opentelemetry/sdk-trace-base@1.24.1':
- resolution: {integrity: sha512-zz+N423IcySgjihl2NfjBf0qw1RWe11XIAWVrTNOSSI6dtSPJiVom2zipFB2AEEtJWpv0Iz6DY6+TjnyTV5pWg==}
+ '@opentelemetry/sdk-trace-base@1.25.1':
+ resolution: {integrity: sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==}
engines: {node: '>=14'}
peerDependencies:
- '@opentelemetry/api': '>=1.0.0 <1.9.0'
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
'@opentelemetry/semantic-conventions@1.24.1':
resolution: {integrity: sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==}
engines: {node: '>=14'}
+ '@opentelemetry/semantic-conventions@1.25.1':
+ resolution: {integrity: sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==}
+ engines: {node: '>=14'}
+
'@opentelemetry/sql-common@0.40.1':
resolution: {integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==}
engines: {node: '>=14'}
@@ -3444,23 +3668,167 @@ packages:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
- '@prisma/instrumentation@5.14.0':
- resolution: {integrity: sha512-DeybWvIZzu/mUsOYP9MVd6AyBj+MP7xIMrcuIn25MX8FiQX39QBnET5KhszTAip/ToctUuDwSJ46QkIoyo3RFA==}
+ '@prisma/instrumentation@5.16.0':
+ resolution: {integrity: sha512-MVzNRW2ikWvVNnMIEgQMcwWxpFD+XF2U2h0Qz7MjutRqJxrhWexWV2aSi2OXRaU8UL5wzWw7pnjdKUzYhWauLg==}
- '@radix-ui/react-compose-refs@1.0.1':
- resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==}
+ '@radix-ui/primitive@1.1.0':
+ resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==}
+
+ '@radix-ui/react-compose-refs@1.1.0':
+ resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==}
peerDependencies:
'@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
optional: true
- '@radix-ui/react-slot@1.0.2':
- resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==}
+ '@radix-ui/react-context@1.1.0':
+ resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==}
peerDependencies:
'@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-dialog@1.1.1':
+ resolution: {integrity: sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-dismissable-layer@1.1.0':
+ resolution: {integrity: sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-focus-guards@1.1.0':
+ resolution: {integrity: sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-focus-scope@1.1.0':
+ resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-id@1.1.0':
+ resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-portal@1.1.1':
+ resolution: {integrity: sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-presence@1.1.0':
+ resolution: {integrity: sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-primitive@2.0.0':
+ resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-slot@1.1.0':
+ resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-callback-ref@1.1.0':
+ resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-controllable-state@1.1.0':
+ resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-escape-keydown@1.1.0':
+ resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-layout-effect@1.1.0':
+ resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
optional: true
@@ -3489,8 +3857,8 @@ packages:
rollup:
optional: true
- '@rollup/plugin-replace@5.0.5':
- resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==}
+ '@rollup/plugin-replace@5.0.7':
+ resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
@@ -3507,88 +3875,88 @@ packages:
rollup:
optional: true
- '@rollup/rollup-android-arm-eabi@4.17.2':
- resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==}
+ '@rollup/rollup-android-arm-eabi@4.18.0':
+ resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==}
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm64@4.17.2':
- resolution: {integrity: sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==}
+ '@rollup/rollup-android-arm64@4.18.0':
+ resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==}
cpu: [arm64]
os: [android]
- '@rollup/rollup-darwin-arm64@4.17.2':
- resolution: {integrity: sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==}
+ '@rollup/rollup-darwin-arm64@4.18.0':
+ resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==}
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.17.2':
- resolution: {integrity: sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==}
+ '@rollup/rollup-darwin-x64@4.18.0':
+ resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==}
cpu: [x64]
os: [darwin]
- '@rollup/rollup-linux-arm-gnueabihf@4.17.2':
- resolution: {integrity: sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==}
+ '@rollup/rollup-linux-arm-gnueabihf@4.18.0':
+ resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-musleabihf@4.17.2':
- resolution: {integrity: sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==}
+ '@rollup/rollup-linux-arm-musleabihf@4.18.0':
+ resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.17.2':
- resolution: {integrity: sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==}
+ '@rollup/rollup-linux-arm64-gnu@4.18.0':
+ resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.17.2':
- resolution: {integrity: sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==}
+ '@rollup/rollup-linux-arm64-musl@4.18.0':
+ resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-powerpc64le-gnu@4.17.2':
- resolution: {integrity: sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==}
+ '@rollup/rollup-linux-powerpc64le-gnu@4.18.0':
+ resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==}
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.17.2':
- resolution: {integrity: sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==}
+ '@rollup/rollup-linux-riscv64-gnu@4.18.0':
+ resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-s390x-gnu@4.17.2':
- resolution: {integrity: sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==}
+ '@rollup/rollup-linux-s390x-gnu@4.18.0':
+ resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==}
cpu: [s390x]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.17.2':
- resolution: {integrity: sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==}
+ '@rollup/rollup-linux-x64-gnu@4.18.0':
+ resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.17.2':
- resolution: {integrity: sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==}
+ '@rollup/rollup-linux-x64-musl@4.18.0':
+ resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-win32-arm64-msvc@4.17.2':
- resolution: {integrity: sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==}
+ '@rollup/rollup-win32-arm64-msvc@4.18.0':
+ resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==}
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.17.2':
- resolution: {integrity: sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==}
+ '@rollup/rollup-win32-ia32-msvc@4.18.0':
+ resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==}
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.17.2':
- resolution: {integrity: sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==}
+ '@rollup/rollup-win32-x64-msvc@4.18.0':
+ resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==}
cpu: [x64]
os: [win32]
- '@rushstack/node-core-library@4.1.0':
- resolution: {integrity: sha512-qz4JFBZJCf1YN5cAXa1dP6Mki/HrsQxc/oYGAGx29dF2cwF2YMxHoly0FBhMw3IEnxo5fMj0boVfoHVBkpkx/w==}
+ '@rushstack/node-core-library@5.4.1':
+ resolution: {integrity: sha512-WNnwdS8r9NZ/2K3u29tNoSRldscFa7SxU0RT+82B6Dy2I4Hl2MeCSKm4EXLXPKeNzLGvJ1cqbUhTLviSF8E6iA==}
peerDependencies:
'@types/node': '*'
peerDependenciesMeta:
@@ -3598,50 +3966,53 @@ packages:
'@rushstack/rig-package@0.5.2':
resolution: {integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==}
- '@rushstack/terminal@0.10.1':
- resolution: {integrity: sha512-C6Vi/m/84IYJTkfzmXr1+W8Wi3MmBjVF/q3za91Gb3VYjKbpALHVxY6FgH625AnDe5Z0Kh4MHKWA3Z7bqgAezA==}
+ '@rushstack/terminal@0.13.0':
+ resolution: {integrity: sha512-Ou44Q2s81BqJu3dpYedAX54am9vn245F0HzqVrfJCMQk5pGgoKKOBOjkbfZC9QKcGNaECh6pwH2s5noJt7X6ew==}
peerDependencies:
'@types/node': '*'
peerDependenciesMeta:
'@types/node':
optional: true
- '@rushstack/ts-command-line@4.19.2':
- resolution: {integrity: sha512-cqmXXmBEBlzo9WtyUrHtF9e6kl0LvBY7aTSVX4jfnBfXWZQWnPq9JTFPlQZ+L/ZwjZ4HrNwQsOVvhe9oOucZkw==}
+ '@rushstack/ts-command-line@4.22.0':
+ resolution: {integrity: sha512-Qj28t6MO3HRgAZ72FDeFsrpdE6wBWxF3VENgvrXh7JF2qIT+CrXiOJIesW80VFZB9QwObSpkB1ilx794fGQg6g==}
- '@sentry/core@8.5.0':
- resolution: {integrity: sha512-SO3ddBzGdha+Oflp+IKwBxj+7ds1q69OAT3VsypTd+WUFQdI9DIhR92Bjf+QQZCIzUNOi79VWOh3aOi3f6hMnw==}
+ '@sec-ant/readable-stream@0.4.1':
+ resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
+
+ '@sentry/core@8.13.0':
+ resolution: {integrity: sha512-N9Qg4ZGxZWp8eb2eUUHVVKgjBLtFIjS805nG92s6yJmkvOpKm6mLtcUaT/iDf3Hta6nG+xRkhbE3r+Z4cbXG8w==}
engines: {node: '>=14.18'}
- '@sentry/node@8.5.0':
- resolution: {integrity: sha512-t9cHAx/wLJYtdVf2XlzKlRJGvwdAp1wjzG0tC4E1Znx74OuUS1cFNo5WrGuOi0/YcWSxiJaxBvtUcsWK86fIgw==}
+ '@sentry/node@8.13.0':
+ resolution: {integrity: sha512-OeZ7K90RhyxfwfreerIi4cszzHrPRRH36STJno2+p3sIGbG5VScOccqXzYEOAqHpByxnti4KQN34BLAT2BFOEA==}
engines: {node: '>=14.18'}
- '@sentry/opentelemetry@8.5.0':
- resolution: {integrity: sha512-AbxFUNjuTKQ9ugZrssmGtPxWkBr4USNoP7GjaaGCNwNzvIVYCa+i8dv7BROJiW2lsxNAremULEbh+nbVmhGxDA==}
+ '@sentry/opentelemetry@8.13.0':
+ resolution: {integrity: sha512-NYn/HNE/SxFXe8pfnxJknhrrRzYRMHNssCoi5M1CeR5G7F2BGxxVmaGsd8j0WyTCpUS4i97G4vhYtDGxHvWN6w==}
engines: {node: '>=14.18'}
peerDependencies:
- '@opentelemetry/api': ^1.8.0
- '@opentelemetry/core': ^1.24.1
- '@opentelemetry/instrumentation': ^0.51.1
- '@opentelemetry/sdk-trace-base': ^1.23.0
- '@opentelemetry/semantic-conventions': ^1.23.0
+ '@opentelemetry/api': ^1.9.0
+ '@opentelemetry/core': ^1.25.1
+ '@opentelemetry/instrumentation': ^0.52.1
+ '@opentelemetry/sdk-trace-base': ^1.25.1
+ '@opentelemetry/semantic-conventions': ^1.25.1
- '@sentry/profiling-node@8.5.0':
- resolution: {integrity: sha512-nEXJqVNfZWYi4PakQXBZCJeH59UlnBv+zaYftDNUUXttCmzRXpL1ujNm5mJrJHlWjV7tgIFw02HW3nh2yyKOkw==}
+ '@sentry/profiling-node@8.13.0':
+ resolution: {integrity: sha512-6qirN71xlMahcm4m25XZLnjQdvs0EaFym/9MdLqcsAa3gAHZtw6h+IDapUzBWRXVOrU1OR5oQdh2tlFthsDtew==}
engines: {node: '>=14.18'}
hasBin: true
- '@sentry/types@8.5.0':
- resolution: {integrity: sha512-eDgkSmKI4+XL0QZm4H3j/n1RgnrbnjXZmjj+LsfccRZQwbPu9bWlc8q7Y7Ty1gOsoUpX+TecNLp2a8CRID4KHA==}
+ '@sentry/types@8.13.0':
+ resolution: {integrity: sha512-r63s/H5gvQnQM9tTGBXz2xErUbxZALh4e2Lg/1aHj4zIvGLBjA2z5qWsh6TEZYbpmgAyGShLDr6+rWeUVf9yBQ==}
engines: {node: '>=14.18'}
- '@sentry/utils@8.5.0':
- resolution: {integrity: sha512-fdrCzo8SAYiw9JBhkJPqYqJkDXZ/wICzN7+zcXIuzKNhE1hdoFjeKcPnpUI3bKZCG6e3hT1PTYQXhVw7GIZV9w==}
+ '@sentry/utils@8.13.0':
+ resolution: {integrity: sha512-PxV0v9VbGWH9zP37P5w2msLUFDr287nYjoY2XVF+RSolyiTs1CQNI5ZMUO3o4MsSac/dpXxjyrZXQd72t/jRYA==}
engines: {node: '>=14.18'}
- '@shikijs/core@1.4.0':
- resolution: {integrity: sha512-CxpKLntAi64h3j+TwWqVIQObPTED0FyXLHTTh3MKXtqiQNn2JGcMQQ362LftDbc9kYbDtrksNMNoVmVXzKFYUQ==}
+ '@shikijs/core@1.10.0':
+ resolution: {integrity: sha512-BZcr6FCmPfP6TXaekvujZcnkFmJHZ/Yglu97r/9VjzVndQA56/F4WjUKtJRQUnK59Wi7p/UTAOekMfCJv7jnYg==}
'@sideway/address@4.1.4':
resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==}
@@ -3670,10 +4041,18 @@ packages:
resolution: {integrity: sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==}
engines: {node: '>=14.16'}
- '@sindresorhus/is@6.1.0':
- resolution: {integrity: sha512-BuvU07zq3tQ/2SIgBsEuxKYDyDjC0n7Zir52bpHy2xnBbW81+po43aLFPLbeV3HRAheFbGud1qgcqSYfhtHMAg==}
+ '@sindresorhus/is@6.3.1':
+ resolution: {integrity: sha512-FX4MfcifwJyFOI2lPoX7PQxCqx8BG1HCho7WdiXwpEQx1Ycij0JxkfYtGK7yqNScrZGSlt6RE6sw8QYoH7eKnQ==}
engines: {node: '>=16'}
+ '@sindresorhus/merge-streams@2.3.0':
+ resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
+ engines: {node: '>=18'}
+
+ '@sindresorhus/merge-streams@4.0.0':
+ resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
+ engines: {node: '>=18'}
+
'@sinonjs/commons@2.0.0':
resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==}
@@ -3692,275 +4071,299 @@ packages:
'@sinonjs/text-encoding@0.7.2':
resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==}
- '@smithy/abort-controller@2.0.14':
- resolution: {integrity: sha512-zXtteuYLWbSXnzI3O6xq3FYvigYZFW8mdytGibfarLL2lxHto9L3ILtGVnVGmFZa7SDh62l39EnU5hesLN87Fw==}
- engines: {node: '>=14.0.0'}
-
'@smithy/abort-controller@2.2.0':
resolution: {integrity: sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==}
engines: {node: '>=14.0.0'}
- '@smithy/chunked-blob-reader-native@2.0.0':
- resolution: {integrity: sha512-HM8V2Rp1y8+1343tkZUKZllFhEQPNmpNdgFAncbTsxkZ18/gqjk23XXv3qGyXWp412f3o43ZZ1UZHVcHrpRnCQ==}
+ '@smithy/abort-controller@3.1.1':
+ resolution: {integrity: sha512-MBJBiidoe+0cTFhyxT8g+9g7CeVccLM0IOKKUMCNQ1CNMJ/eIfoo0RTfVrXOONEI1UCN1W+zkiHSbzUNE9dZtQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/chunked-blob-reader@2.0.0':
- resolution: {integrity: sha512-k+J4GHJsMSAIQPChGBrjEmGS+WbPonCXesoqP9fynIqjn7rdOThdH8FAeCmokP9mxTYKQAKoHCLPzNlm6gh7Wg==}
+ '@smithy/chunked-blob-reader-native@3.0.0':
+ resolution: {integrity: sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg==}
- '@smithy/config-resolver@2.0.9':
- resolution: {integrity: sha512-QBkGPLUqyPmis9Erz8v4q5lo/ErnF7+GD5WZHa6JZiXopUPfaaM+B21n8gzS5xCkIXZmnwzNQhObP9xQPu8oqQ==}
- engines: {node: '>=14.0.0'}
+ '@smithy/chunked-blob-reader@3.0.0':
+ resolution: {integrity: sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==}
- '@smithy/credential-provider-imds@2.0.11':
- resolution: {integrity: sha512-uJJs8dnM5iXkn8a2GaKvlKMhcOJ+oJPYqY9gY3CM/EieCVObIDjxUtR/g8lU/k/A+OauA78GzScAfulmFjPOYA==}
- engines: {node: '>=14.0.0'}
+ '@smithy/config-resolver@3.0.4':
+ resolution: {integrity: sha512-VwiOk7TwXoE7NlNguV/aPq1hFH72tqkHCw8eWXbr2xHspRyyv9DLpLXhq+Ieje+NwoqXrY0xyQjPXdOE6cGcHA==}
+ engines: {node: '>=16.0.0'}
- '@smithy/eventstream-codec@2.0.8':
- resolution: {integrity: sha512-onO4to8ujCKn4m5XagReT9Nc6FlNG5vveuvjp1H7AtaG7njdet1LOl6/jmUOkskF2C/w+9jNw3r9Ak+ghOvN0A==}
+ '@smithy/core@2.2.4':
+ resolution: {integrity: sha512-qdY3LpMOUyLM/gfjjMQZui+UTNS7kBRDWlvyIhVOql5dn2J3isk9qUTBtQ1CbDH8MTugHis1zu3h4rH+Qmmh4g==}
+ engines: {node: '>=16.0.0'}
- '@smithy/eventstream-serde-browser@2.0.8':
- resolution: {integrity: sha512-/RGlkKUnC0sd+xKBKH/2APSBRmVMZTeLOKZMhrZmrO+ONoU+DwyMr/RLJ6WnmBKN+2ebjffM4pcIJTKLNNDD8g==}
- engines: {node: '>=14.0.0'}
+ '@smithy/credential-provider-imds@3.1.3':
+ resolution: {integrity: sha512-U1Yrv6hx/mRK6k8AncuI6jLUx9rn0VVSd9NPEX6pyYFBfkSkChOc/n4zUb8alHUVg83TbI4OdZVo1X0Zfj3ijA==}
+ engines: {node: '>=16.0.0'}
- '@smithy/eventstream-serde-config-resolver@2.0.8':
- resolution: {integrity: sha512-EyAEj258eMUv9zcMvBbqrInh2eHRYuiwQAjXDMxZFCyP+JePzQB6O++3wFwjQeRKMFFgZipNgnEXfReII4+NAw==}
- engines: {node: '>=14.0.0'}
+ '@smithy/eventstream-codec@3.1.2':
+ resolution: {integrity: sha512-0mBcu49JWt4MXhrhRAlxASNy0IjDRFU+aWNDRal9OtUJvJNiwDuyKMUONSOjLjSCeGwZaE0wOErdqULer8r7yw==}
- '@smithy/eventstream-serde-node@2.0.8':
- resolution: {integrity: sha512-FMBatSUSKwh6aguKVJokXfJaV8nqsuCkCZHb9MP9zah0ZF+ohbTLeeed7DQGeTVBueVIVWEzIsShPxtxBv7MMQ==}
- engines: {node: '>=14.0.0'}
+ '@smithy/eventstream-serde-browser@3.0.4':
+ resolution: {integrity: sha512-Eo4anLZX6ltGJTZ5yJMc80gZPYYwBn44g0h7oFq6et+TYr5dUsTpIcDbz2evsOKIZhZ7zBoFWHtBXQ4QQeb5xA==}
+ engines: {node: '>=16.0.0'}
- '@smithy/eventstream-serde-universal@2.0.8':
- resolution: {integrity: sha512-6InMXH8BUKoEDa6CAuxR4Gn8Gf2vBfVtjA9A6zDKZClYHT+ANUJS+2EtOBc5wECJJGk4KLn5ajQyrt9MBv5lcw==}
- engines: {node: '>=14.0.0'}
+ '@smithy/eventstream-serde-config-resolver@3.0.3':
+ resolution: {integrity: sha512-NVTYjOuYpGfrN/VbRQgn31x73KDLfCXCsFdad8DiIc3IcdxL+dYA9zEQPyOP7Fy2QL8CPy2WE4WCUD+ZsLNfaQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/fetch-http-handler@2.1.4':
- resolution: {integrity: sha512-SL24M9W5ERByoXaVicRx+bj9GJVujDnPn+QO7GY7adhY0mPGa6DSF58pVKsgIh4r5Tx/k3SWCPlH4BxxSxA/fQ==}
+ '@smithy/eventstream-serde-node@3.0.4':
+ resolution: {integrity: sha512-mjlG0OzGAYuUpdUpflfb9zyLrBGgmQmrobNT8b42ZTsGv/J03+t24uhhtVEKG/b2jFtPIHF74Bq+VUtbzEKOKg==}
+ engines: {node: '>=16.0.0'}
- '@smithy/hash-blob-browser@2.0.8':
- resolution: {integrity: sha512-IgvRlBMfg/qLg321a59T1yTdEEbaizLrEVsU3DHj65DAO4lFRMF5f+l7vuV+je6m1G9wSD5GQXLturX8qlGb4g==}
+ '@smithy/eventstream-serde-universal@3.0.4':
+ resolution: {integrity: sha512-Od9dv8zh3PgOD7Vj4T3HSuox16n0VG8jJIM2gvKASL6aCtcS8CfHZDWe1Ik3ZXW6xBouU+45Q5wgoliWDZiJ0A==}
+ engines: {node: '>=16.0.0'}
- '@smithy/hash-node@2.0.8':
- resolution: {integrity: sha512-yZL/nmxZzjZV5/QX5JWSgXlt0HxuMTwFO89CS++jOMMPiCMZngf6VYmtNdccs8IIIAMmfQeTzwu07XgUE/Zd3Q==}
- engines: {node: '>=14.0.0'}
+ '@smithy/fetch-http-handler@3.2.0':
+ resolution: {integrity: sha512-vFvDxMrc6sO5Atec8PaISckMcAwsCrRhYxwUylg97bRT2KZoumOF7qk5+6EVUtuM1IG9AJV5aqXnHln9ZdXHpg==}
- '@smithy/hash-stream-node@2.0.8':
- resolution: {integrity: sha512-82zC6I9ZJycbEZH8TVyXyBx9c2ZIPQDgBvM0x5AFPUl/i1AxwKKX+lwYRnzgkF//cYhIIoJaCfJ9mjSMPRGvCQ==}
- engines: {node: '>=14.0.0'}
+ '@smithy/hash-blob-browser@3.1.2':
+ resolution: {integrity: sha512-hAbfqN2UbISltakCC2TP0kx4LqXBttEv2MqSPE98gVuDFMf05lU+TpC41QtqGP3Ff5A3GwZMPfKnEy0VmEUpmg==}
- '@smithy/invalid-dependency@2.0.8':
- resolution: {integrity: sha512-88VOS7W3KzUz/bNRc+Sl/F/CDIasFspEE4G39YZRHIh9YmsXF7GUyVaAKURfMNulTie62ayk6BHC9O0nOBAVgQ==}
+ '@smithy/hash-node@3.0.3':
+ resolution: {integrity: sha512-2ctBXpPMG+B3BtWSGNnKELJ7SH9e4TNefJS0cd2eSkOOROeBnnVBnAy9LtJ8tY4vUEoe55N4CNPxzbWvR39iBw==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/hash-stream-node@3.1.2':
+ resolution: {integrity: sha512-PBgDMeEdDzi6JxKwbfBtwQG9eT9cVwsf0dZzLXoJF4sHKHs5HEo/3lJWpn6jibfJwT34I1EBXpBnZE8AxAft6g==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/invalid-dependency@3.0.3':
+ resolution: {integrity: sha512-ID1eL/zpDULmHJbflb864k72/SNOZCADRc9i7Exq3RUNJw6raWUSlFEQ+3PX3EYs++bTxZB2dE9mEHTQLv61tw==}
'@smithy/is-array-buffer@2.0.0':
resolution: {integrity: sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==}
engines: {node: '>=14.0.0'}
- '@smithy/md5-js@2.0.8':
- resolution: {integrity: sha512-1VVECXEiuJvjXv+mudiaUFKYwgDLOWz5MTTy8RzbrPiU3GiOb3/o5/urdkYpqmgoMfxdvxxOw/Adjv2dV2q2Yg==}
+ '@smithy/is-array-buffer@3.0.0':
+ resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/middleware-content-length@2.0.10':
- resolution: {integrity: sha512-EGSbysyA4jH0p3xI6G0jdXoj9Iz9GUnAta6aEaHtXm3wVWtenRf80y2TeVvNkVSr5jwKOdSCjKIRI2l1A/oZLA==}
- engines: {node: '>=14.0.0'}
+ '@smithy/md5-js@3.0.3':
+ resolution: {integrity: sha512-O/SAkGVwpWmelpj/8yDtsaVe6sINHLB1q8YE/+ZQbDxIw3SRLbTZuRaI10K12sVoENdnHqzPp5i3/H+BcZ3m3Q==}
- '@smithy/middleware-endpoint@2.0.8':
- resolution: {integrity: sha512-yOpogfG2d2V0cbJdAJ6GLAWkNOc9pVsL5hZUfXcxJu408N3CUCsXzIAFF6+70ZKSE+lCfG3GFErcSXv/UfUbjw==}
- engines: {node: '>=14.0.0'}
+ '@smithy/middleware-content-length@3.0.3':
+ resolution: {integrity: sha512-Dbz2bzexReYIQDWMr+gZhpwBetNXzbhnEMhYKA6urqmojO14CsXjnsoPYO8UL/xxcawn8ZsuVU61ElkLSltIUQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/middleware-retry@2.0.11':
- resolution: {integrity: sha512-pknfokumZ+wvBERSuKAI2vVr+aK3ZgPiWRg6+0ZG4kKJogBRpPmDGWw+Jht0izS9ZaEbIobNzueIb4wD33JJVg==}
- engines: {node: '>=14.0.0'}
+ '@smithy/middleware-endpoint@3.0.4':
+ resolution: {integrity: sha512-whUJMEPwl3ANIbXjBXZVdJNgfV2ZU8ayln7xUM47rXL2txuenI7jQ/VFFwCzy5lCmXScjp6zYtptW5Evud8e9g==}
+ engines: {node: '>=16.0.0'}
- '@smithy/middleware-serde@2.0.8':
- resolution: {integrity: sha512-Is0sm+LiNlgsc0QpstDzifugzL9ehno1wXp109GgBgpnKTK3j+KphiparBDI4hWTtH9/7OUsxuspNqai2yyhcg==}
- engines: {node: '>=14.0.0'}
+ '@smithy/middleware-retry@3.0.7':
+ resolution: {integrity: sha512-f5q7Y09G+2h5ivkSx5CHvlAT4qRR3jBFEsfXyQ9nFNiWQlr8c48blnu5cmbTQ+p1xmIO14UXzKoF8d7Tm0Gsjw==}
+ engines: {node: '>=16.0.0'}
- '@smithy/middleware-stack@2.0.1':
- resolution: {integrity: sha512-UexsfY6/oQZRjTQL56s9AKtMcR60tBNibSgNYX1I2WXaUaXg97W9JCkFyth85TzBWKDBTyhLfenrukS/kyu54A==}
- engines: {node: '>=14.0.0'}
+ '@smithy/middleware-serde@3.0.3':
+ resolution: {integrity: sha512-puUbyJQBcg9eSErFXjKNiGILJGtiqmuuNKEYNYfUD57fUl4i9+mfmThtQhvFXU0hCVG0iEJhvQUipUf+/SsFdA==}
+ engines: {node: '>=16.0.0'}
- '@smithy/node-config-provider@2.0.11':
- resolution: {integrity: sha512-CaR1dciSSGKttjhcefpytYjsfI/Yd5mqL8am4wfmyFCDxSiPsvnEWHl8UjM/RbcAjX0klt+CeIKPSHEc0wGvJA==}
- engines: {node: '>=14.0.0'}
+ '@smithy/middleware-stack@3.0.3':
+ resolution: {integrity: sha512-r4klY9nFudB0r9UdSMaGSyjyQK5adUyPnQN/ZM6M75phTxOdnc/AhpvGD1fQUvgmqjQEBGCwpnPbDm8pH5PapA==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/node-config-provider@3.1.3':
+ resolution: {integrity: sha512-rxdpAZczzholz6CYZxtqDu/aKTxATD5DAUDVj7HoEulq+pDSQVWzbg0btZDlxeFfa6bb2b5tUvgdX5+k8jUqcg==}
+ engines: {node: '>=16.0.0'}
'@smithy/node-http-handler@2.5.0':
resolution: {integrity: sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==}
engines: {node: '>=14.0.0'}
- '@smithy/property-provider@2.0.9':
- resolution: {integrity: sha512-25pPZ8f8DeRwYI5wbPRZaoMoR+3vrw8DwbA0TjP+GsdiB2KxScndr4HQehiJ5+WJ0giOTWhLz0bd+7Djv1qpUQ==}
- engines: {node: '>=14.0.0'}
+ '@smithy/node-http-handler@3.1.1':
+ resolution: {integrity: sha512-L71NLyPeP450r2J/mfu1jMc//Z1YnqJt2eSNw7uhiItaONnBLDA68J5jgxq8+MBDsYnFwNAIc7dBG1ImiWBiwg==}
+ engines: {node: '>=16.0.0'}
- '@smithy/protocol-http@3.0.10':
- resolution: {integrity: sha512-6+tjNk7rXW7YTeGo9qwxXj/2BFpJTe37kTj3EnZCoX/nH+NP/WLA7O83fz8XhkGqsaAhLUPo/bB12vvd47nsmg==}
- engines: {node: '>=14.0.0'}
+ '@smithy/property-provider@3.1.3':
+ resolution: {integrity: sha512-zahyOVR9Q4PEoguJ/NrFP4O7SMAfYO1HLhB18M+q+Z4KFd4V2obiMnlVoUFzFLSPeVt1POyNWneHHrZaTMoc/g==}
+ engines: {node: '>=16.0.0'}
'@smithy/protocol-http@3.3.0':
resolution: {integrity: sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==}
engines: {node: '>=14.0.0'}
- '@smithy/querystring-builder@2.0.14':
- resolution: {integrity: sha512-lQ4pm9vTv9nIhl5jt6uVMPludr6syE2FyJmHsIJJuOD7QPIJnrf9HhUGf1iHh9KJ4CUv21tpOU3X6s0rB6uJ0g==}
- engines: {node: '>=14.0.0'}
+ '@smithy/protocol-http@4.0.3':
+ resolution: {integrity: sha512-x5jmrCWwQlx+Zv4jAtc33ijJ+vqqYN+c/ZkrnpvEe/uDas7AT7A/4Rc2CdfxgWv4WFGmEqODIrrUToPN6DDkGw==}
+ engines: {node: '>=16.0.0'}
'@smithy/querystring-builder@2.2.0':
resolution: {integrity: sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==}
engines: {node: '>=14.0.0'}
- '@smithy/querystring-parser@2.0.8':
- resolution: {integrity: sha512-ArbanNuR7O/MmTd90ZqhDqGOPPDYmxx3huHxD+R3cuCnazcK/1tGQA+SnnR5307T7ZRb5WTpB6qBggERuibVSA==}
- engines: {node: '>=14.0.0'}
+ '@smithy/querystring-builder@3.0.3':
+ resolution: {integrity: sha512-vyWckeUeesFKzCDaRwWLUA1Xym9McaA6XpFfAK5qI9DKJ4M33ooQGqvM4J+LalH4u/Dq9nFiC8U6Qn1qi0+9zw==}
+ engines: {node: '>=16.0.0'}
- '@smithy/service-error-classification@2.0.1':
- resolution: {integrity: sha512-QHa9+t+v4s0cMuDCcbjIJN67mNZ42/+fc3jKe8P6ZMPXZl5ksKk6a8vhZ/m494GZng5eFTc3OePv+NF9cG83yg==}
- engines: {node: '>=14.0.0'}
+ '@smithy/querystring-parser@3.0.3':
+ resolution: {integrity: sha512-zahM1lQv2YjmznnfQsWbYojFe55l0SLG/988brlLv1i8z3dubloLF+75ATRsqPBboUXsW6I9CPGE5rQgLfY0vQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/shared-ini-file-loader@2.0.10':
- resolution: {integrity: sha512-jWASteSezRKohJ7GdA7pHDvmr7Q7tw3b5mu3xLHIkZy/ICftJ+O7aqNaF8wklhI7UNFoQ7flFRM3Rd0KA+1BbQ==}
- engines: {node: '>=14.0.0'}
+ '@smithy/service-error-classification@3.0.3':
+ resolution: {integrity: sha512-Jn39sSl8cim/VlkLsUhRFq/dKDnRUFlfRkvhOJaUbLBXUsLRLNf9WaxDv/z9BjuQ3A6k/qE8af1lsqcwm7+DaQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/signature-v4@2.0.5':
- resolution: {integrity: sha512-ABIzXmUDXK4n2c9cXjQLELgH2RdtABpYKT+U131e2I6RbCypFZmxIHmIBufJzU2kdMCQ3+thBGDWorAITFW04A==}
- engines: {node: '>=14.0.0'}
+ '@smithy/shared-ini-file-loader@3.1.3':
+ resolution: {integrity: sha512-Z8Y3+08vgoDgl4HENqNnnzSISAaGrF2RoKupoC47u2wiMp+Z8P/8mDh1CL8+8ujfi2U5naNvopSBmP/BUj8b5w==}
+ engines: {node: '>=16.0.0'}
- '@smithy/smithy-client@2.1.5':
- resolution: {integrity: sha512-7S865uKzsxApM8W8Q6zkij7tcUFgaG8PuADMFdMt1yL/ku3d0+s6Zwrg3N7iXCPM08Gu/mf0BIfTXIu/9i450Q==}
- engines: {node: '>=14.0.0'}
+ '@smithy/signature-v4@3.1.2':
+ resolution: {integrity: sha512-3BcPylEsYtD0esM4Hoyml/+s7WP2LFhcM3J2AGdcL2vx9O60TtfpDOL72gjb4lU8NeRPeKAwR77YNyyGvMbuEA==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/smithy-client@3.1.5':
+ resolution: {integrity: sha512-x9bL9Mx2CT2P1OiUlHM+ZNpbVU6TgT32f9CmTRzqIHA7M4vYrROCWEoC3o4xHNJASoGd4Opos3cXYPgh+/m4Ww==}
+ engines: {node: '>=16.0.0'}
'@smithy/types@2.12.0':
resolution: {integrity: sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==}
engines: {node: '>=14.0.0'}
- '@smithy/types@2.6.0':
- resolution: {integrity: sha512-PgqxJq2IcdMF9iAasxcqZqqoOXBHufEfmbEUdN1pmJrJltT42b0Sc8UiYSWWzKkciIp9/mZDpzYi4qYG1qqg6g==}
- engines: {node: '>=14.0.0'}
+ '@smithy/types@3.3.0':
+ resolution: {integrity: sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA==}
+ engines: {node: '>=16.0.0'}
- '@smithy/url-parser@2.0.8':
- resolution: {integrity: sha512-wQw7j004ScCrBRJ+oNPXlLE9mtofxyadSZ9D8ov/rHkyurS7z1HTNuyaGRj6OvKsEk0SVQsuY0C9+EfM75XTkw==}
+ '@smithy/url-parser@3.0.3':
+ resolution: {integrity: sha512-pw3VtZtX2rg+s6HMs6/+u9+hu6oY6U7IohGhVNnjbgKy86wcIsSZwgHrFR+t67Uyxvp4Xz3p3kGXXIpTNisq8A==}
- '@smithy/util-base64@2.0.0':
- resolution: {integrity: sha512-Zb1E4xx+m5Lud8bbeYi5FkcMJMnn+1WUnJF3qD7rAdXpaL7UjkFQLdmW5fHadoKbdHpwH9vSR8EyTJFHJs++tA==}
- engines: {node: '>=14.0.0'}
+ '@smithy/util-base64@3.0.0':
+ resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/util-body-length-browser@2.0.0':
- resolution: {integrity: sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==}
+ '@smithy/util-body-length-browser@3.0.0':
+ resolution: {integrity: sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==}
- '@smithy/util-body-length-node@2.1.0':
- resolution: {integrity: sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==}
- engines: {node: '>=14.0.0'}
+ '@smithy/util-body-length-node@3.0.0':
+ resolution: {integrity: sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==}
+ engines: {node: '>=16.0.0'}
'@smithy/util-buffer-from@2.0.0':
resolution: {integrity: sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==}
engines: {node: '>=14.0.0'}
- '@smithy/util-config-provider@2.0.0':
- resolution: {integrity: sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg==}
- engines: {node: '>=14.0.0'}
+ '@smithy/util-buffer-from@3.0.0':
+ resolution: {integrity: sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==}
+ engines: {node: '>=16.0.0'}
- '@smithy/util-defaults-mode-browser@2.0.9':
- resolution: {integrity: sha512-JONLJVQWT8165XoSV36ERn3SVlZLJJ4D6IeGsCSePv65Uxa93pzSLE0UMSR9Jwm4zix7rst9AS8W5QIypZWP8Q==}
+ '@smithy/util-config-provider@3.0.0':
+ resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/util-defaults-mode-browser@3.0.7':
+ resolution: {integrity: sha512-Q2txLyvQyGfmjsaDbVV7Sg8psefpFcrnlGapDzXGFRPFKRBeEg6OvFK8FljqjeHSaCZ6/UuzQExUPqBR/2qlDA==}
engines: {node: '>= 10.0.0'}
- '@smithy/util-defaults-mode-node@2.0.11':
- resolution: {integrity: sha512-tmqjNsfj+bgZN6jXBe6efZnukzILA7BUytHkzqikuRLNtR+0VVchQHvawD0w6vManh76rO81ydhioe7i4oBzuA==}
+ '@smithy/util-defaults-mode-node@3.0.7':
+ resolution: {integrity: sha512-F4Qcj1fG6MGi2BSWCslfsMSwllws/WzYONBGtLybyY+halAcXdWhcew+mej8M5SKd5hqPYp4f7b+ABQEaeytgg==}
engines: {node: '>= 10.0.0'}
- '@smithy/util-hex-encoding@2.0.0':
- resolution: {integrity: sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==}
- engines: {node: '>=14.0.0'}
+ '@smithy/util-endpoints@2.0.4':
+ resolution: {integrity: sha512-ZAtNf+vXAsgzgRutDDiklU09ZzZiiV/nATyqde4Um4priTmasDH+eLpp3tspL0hS2dEootyFMhu1Y6Y+tzpWBQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/util-middleware@2.0.1':
- resolution: {integrity: sha512-LnsBMi0Mg3gfz/TpNGLv2Jjcz2ra1OX5HR/4IaCepIYmtPQzqMWDdhX/XTW1LS8OZ0xbQuyQPcHkQ+2XkhWOVQ==}
- engines: {node: '>=14.0.0'}
+ '@smithy/util-hex-encoding@3.0.0':
+ resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==}
+ engines: {node: '>=16.0.0'}
- '@smithy/util-retry@2.0.1':
- resolution: {integrity: sha512-naj4X0IafJ9yJnVJ58QgSMkCNLjyQOnyrnKh/T0f+0UOUxJiT8vuFn/hS7B/pNqbo2STY7PyJ4J4f+5YqxwNtA==}
- engines: {node: '>= 14.0.0'}
+ '@smithy/util-middleware@3.0.3':
+ resolution: {integrity: sha512-l+StyYYK/eO3DlVPbU+4Bi06Jjal+PFLSMmlWM1BEwyLxZ3aKkf1ROnoIakfaA7mC6uw3ny7JBkau4Yc+5zfWw==}
+ engines: {node: '>=16.0.0'}
- '@smithy/util-stream@2.0.11':
- resolution: {integrity: sha512-2MeWfqSpZKdmEJ+tH8CJQSgzLWhH5cmdE24X7JB0hiamXrOmswWGGuPvyj/9sQCTclo57pNxLR2p7KrP8Ahiyg==}
- engines: {node: '>=14.0.0'}
+ '@smithy/util-retry@3.0.3':
+ resolution: {integrity: sha512-AFw+hjpbtVApzpNDhbjNG5NA3kyoMs7vx0gsgmlJF4s+yz1Zlepde7J58zpIRIsdjc+emhpAITxA88qLkPF26w==}
+ engines: {node: '>=16.0.0'}
- '@smithy/util-uri-escape@2.0.0':
- resolution: {integrity: sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw==}
- engines: {node: '>=14.0.0'}
+ '@smithy/util-stream@3.0.5':
+ resolution: {integrity: sha512-xC3L5PKMAT/Bh8fmHNXP9sdQ4+4aKVUU3EEJ2CF/lLk7R+wtMJM+v/1B4en7jO++Wa5spGzFDBCl0QxgbUc5Ug==}
+ engines: {node: '>=16.0.0'}
'@smithy/util-uri-escape@2.2.0':
resolution: {integrity: sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==}
engines: {node: '>=14.0.0'}
+ '@smithy/util-uri-escape@3.0.0':
+ resolution: {integrity: sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==}
+ engines: {node: '>=16.0.0'}
+
'@smithy/util-utf8@2.0.0':
resolution: {integrity: sha512-rctU1VkziY84n5OXe3bPNpKR001ZCME2JCaBBFgtiM2hfKbHFudc/BkMuPab8hRbLd0j3vbnBTTZ1igBf0wgiQ==}
engines: {node: '>=14.0.0'}
- '@smithy/util-waiter@2.0.8':
- resolution: {integrity: sha512-t9yaoofNhdEhNlyDeV5al/JJEFJ62HIQBGktgCUE63MvKn6imnbkh1qISsYMyMYVLwhWCpZ3Xa3R1LA+SnWcng==}
- engines: {node: '>=14.0.0'}
+ '@smithy/util-utf8@3.0.0':
+ resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/util-waiter@3.1.2':
+ resolution: {integrity: sha512-4pP0EV3iTsexDx+8PPGAKCQpd/6hsQBaQhqWzU4hqKPHN5epPsxKbvUTIiYIHTxaKt6/kEaqPBpu/ufvfbrRzw==}
+ engines: {node: '>=16.0.0'}
'@sqltools/formatter@1.2.5':
resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==}
- '@storybook/addon-actions@8.0.9':
- resolution: {integrity: sha512-+I3VTvlKdj8puHeS2tyaOVv9syDiNLneVZbTfqN+UDOK2i42NwvZr8PVwjTzMlEj9eePJdCZgiipz55xwts5bw==}
+ '@storybook/addon-actions@8.1.11':
+ resolution: {integrity: sha512-jqYXgBgOVInStOCk//AA+dGkrfN8R7rDXA4lyu82zM59kvICtG9iqgmkSRDn0Z3zUkM+lIHZGoz0aLVQ8pxsgw==}
- '@storybook/addon-backgrounds@8.0.9':
- resolution: {integrity: sha512-pCDecACrVyxPaJKEWS0sHsRb8xw+IPCSxDM1TkjaAQ6zZ468A/dcUnqW+LVK8bSXgQwWzn23wqnqPFSy5yptuQ==}
+ '@storybook/addon-backgrounds@8.1.11':
+ resolution: {integrity: sha512-naGf1ovmsU2pSWb270yRO1IidnO+0YCZ5Tcb8I4rPhZ0vsdXNURYKS1LPSk1OZkvaUXdeB4Im9HhHfUBJOW9oQ==}
- '@storybook/addon-controls@8.0.9':
- resolution: {integrity: sha512-wWdmd62UP/sfPm8M7aJjEA+kEXTUIR/QsYi9PoYBhBZcXiikZ4kNan7oD7GfsnzGGKHrBVfwQhO+TqaENGYytA==}
+ '@storybook/addon-controls@8.1.11':
+ resolution: {integrity: sha512-q/Vt4meNVlFlBWIMCJhx6r+bqiiYocCta2RoUK5nyIZUiLzHncKHX6JnCU36EmJzRyah9zkwjfCb2G1r9cjnoQ==}
- '@storybook/addon-docs@8.0.9':
- resolution: {integrity: sha512-x7hX7UuzJtClu6XwU3SfpyFhuckVcgqgD6BU6Ihxl0zs+i4xp6iKVXYSnHFMRM1sgoeT8TjPxab35Ke8w8BVRw==}
+ '@storybook/addon-docs@8.1.11':
+ resolution: {integrity: sha512-69dv+CE4R5wFU7xnJmhuyEbLN2PEVDV3N/BbgJqeucIYPmm6zDV83Q66teCHKYtRln3BFUqPH5mxsjiHobxfJQ==}
- '@storybook/addon-essentials@8.0.9':
- resolution: {integrity: sha512-mwAgdfrOsTuTDcagvM7veBh+iayZIWmKOazzkhrIWbhYcrXOsweigD2UOVeHgAiAzJK49znr4FXTCKcE1hOWcw==}
+ '@storybook/addon-essentials@8.1.11':
+ resolution: {integrity: sha512-uRTpcIZQnflML8H+2onicUNIIssKfuviW8Lyrs/KFwSZ1rMcYzhwzCNbGlIbAv04tgHe5NqEyNhb+DVQcZQBzg==}
- '@storybook/addon-highlight@8.0.9':
- resolution: {integrity: sha512-vaRHGDbx7dpNpQECAHk5wczlZO3ntstprGlqnZt0o7ylz6xB5+pTQwTuIFty0hwKv+3TPcskzzifATUyEOEmyg==}
+ '@storybook/addon-highlight@8.1.11':
+ resolution: {integrity: sha512-Iu8FCAd4ETsB6QF4xDE/OLLZY3HOFopuLM5KE0f58jnccF5zAVGr1Rj/54p6TeK0PEou0tLRPFuZs+LPlEzrSw==}
- '@storybook/addon-interactions@8.0.9':
- resolution: {integrity: sha512-AMIdNcyM6DDAWvMitBJMqp1iPZND8AXB4QT4VZHGMKG2ngHNKktriEKpTfcRkfKPGTJs9T+71dWfm6/R4tticw==}
+ '@storybook/addon-interactions@8.1.11':
+ resolution: {integrity: sha512-nkc01z61mYM1kxf0ncBQLlFnnwW4RAVPfRSxK9BdbFN3AAvFiHCwVZdn71mi+C3L8oTqYR6o32e0RlXk+AjhHA==}
- '@storybook/addon-links@8.0.9':
- resolution: {integrity: sha512-FVt+AdW3JFSqbJzkKiqKsMRWqHXqEvCBqFs7lNfk3OW0w0jfv1iREtrxE0dVdJoUFQC9V/2Im/EpJ7UB3C2bNQ==}
+ '@storybook/addon-links@8.1.11':
+ resolution: {integrity: sha512-HlV2RQSrZyi+55W1B1a9eWNuJdNpWx0g3j7s2arNlNmbd6/kfWAp84axBstI1tL0nW4svut7bWlCsMSOIden+A==}
peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
peerDependenciesMeta:
react:
optional: true
- '@storybook/addon-mdx-gfm@8.0.9':
- resolution: {integrity: sha512-AoEx+OGKANtVZgKyWKrQhGpMpDuc2S7PnOlNLUiDYzmj8ABAGPmEJmqeb/VHVgqLQSjhOW1fMsQ4fYsecvMxTQ==}
+ '@storybook/addon-mdx-gfm@8.1.11':
+ resolution: {integrity: sha512-0/4Xaisvmoi26iK1ezTOB9dN2b0JbgWKzO2PO6att2Jh7lplLCf1QeoE8Y4SgCh0brage+mA8mKI8NrT7d18pg==}
- '@storybook/addon-measure@8.0.9':
- resolution: {integrity: sha512-91svOOGEXmGG4USglwXLE3wtlUVgtbKJVxTKX7xRI+AC5JEEaKByVzP17/X8Qn/8HilUL7AfSQ0kCoqtPSJ5cA==}
+ '@storybook/addon-measure@8.1.11':
+ resolution: {integrity: sha512-LkQD3SiLWaWt53aLB3EnmhD9Im8EOO+HKSUE+XGnIJRUcHHRqHfvDkN9KX7T1DCWbfRE5WzMHF5o23b3UiAANw==}
- '@storybook/addon-outline@8.0.9':
- resolution: {integrity: sha512-fQ+jm356TgUnz81IxsC99/aOesbLw3N5OQRJpo/A6kqbLMzlq3ybVzuXYCKC3f0ArgQRNh4NoMeJBMRFMtaWRw==}
+ '@storybook/addon-outline@8.1.11':
+ resolution: {integrity: sha512-vco3RLVjkcS25dNtj1lxmjq4fC0Nq08KNLMS5cbNPVJWNTuSUi/2EthSTQQCdpfMV/p6u+D5uF20A9Pl0xJFXw==}
- '@storybook/addon-storysource@8.0.9':
- resolution: {integrity: sha512-5m3K2Rs4fQtKtqwrq4CDS1jK2wzWOlnxhE2ArX5XTWytb1am65CEPxfYTEQkvZH9oPGwX3cXytPCziynqysFMQ==}
+ '@storybook/addon-storysource@8.1.11':
+ resolution: {integrity: sha512-b2K3+ZzfANDTTeN1jnqNgAQ5ZIhnhIAv89gC/36cOhSK5NLyKmyVKLGQmR3fVqX3URpnz9xccst2JNXopvtccw==}
- '@storybook/addon-toolbars@8.0.9':
- resolution: {integrity: sha512-nNSBnnBOhQ+EJwkrIkK4ZBYPcozNmEH770CZ/6NK85SUJ6WEBZapE6ru33jIUokFGEvlOlNCeai0GUc++cQP8w==}
+ '@storybook/addon-toolbars@8.1.11':
+ resolution: {integrity: sha512-reIKB0+JTiP+GNzynlDcRf4xmv9+j/DQ94qiXl2ZG5+ufKilH8DiRZpVA/i0x+4+TxdGdOJr1/pOf8tAmhNEoQ==}
- '@storybook/addon-viewport@8.0.9':
- resolution: {integrity: sha512-Ao4+D56cO7biaw+iTlMU1FBec1idX0cmdosDeCFZin06MSawcPkeBlRBeruaSQYdLes8TBMdZPFgfuqI5yIk6g==}
+ '@storybook/addon-viewport@8.1.11':
+ resolution: {integrity: sha512-qk4IcGnAgiAUQxt8l5PIQ293Za+w6wxlJQIpxr7+QM8OVkADPzXY0MmQfYWU9EQplrxAC2MSx3/C1gZeq+MDOQ==}
- '@storybook/blocks@8.0.9':
- resolution: {integrity: sha512-F2zSrfSwzTFN7qW3zB80tG+EXtmfmCDC6Ird0F7tolszb6tOqJcAcBOwQbE2O0wI63sLu21qxzXgaKBMkiWvJg==}
+ '@storybook/blocks@8.1.11':
+ resolution: {integrity: sha512-eMed7PpL/hAVM6tBS7h70bEAyzbiSU9I/kye4jZ7DkCbAsrX6OKmC7pcHSDn712WTcf3vVqxy5jOKUmOXpc0eg==}
peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
peerDependenciesMeta:
react:
optional: true
react-dom:
optional: true
- '@storybook/builder-manager@8.0.9':
- resolution: {integrity: sha512-/PxDwZIfMc/PSRZcasb6SIdGr3azIlenzx7dBF7Imt8i4jLHiAf1t00GvghlfJsvsrn4DNp95rbRbXTDyTj7tQ==}
+ '@storybook/builder-manager@8.1.11':
+ resolution: {integrity: sha512-U7bmed4Ayg+OlJ8HPmLeGxLTHzDY7rxmxM4aAs4YL01fufYfBcjkIP9kFhJm+GJOvGm+YJEUAPe5mbM1P/bn0Q==}
- '@storybook/builder-vite@8.0.9':
- resolution: {integrity: sha512-7hEQFZIIz7VvxdySDpPE96iMvZxQvRZcRdhaNGeE+8Y2pyc3DgYE4WY3sjr+LUoB0a6TYLpAIKqbXwtLz0R+PQ==}
+ '@storybook/builder-vite@8.1.11':
+ resolution: {integrity: sha512-hG4eoNMCPgjZ2Ai+zSmk69zjsyEihe75XbJXtYfGRqjMWtz2+SAUFO54fLc2BD5svcUiTeN+ukWcTrwApyPsKg==}
peerDependencies:
'@preact/preset-vite': '*'
typescript: '>= 4.3.x'
@@ -3974,48 +4377,53 @@ packages:
vite-plugin-glimmerx:
optional: true
- '@storybook/channels@8.0.9':
- resolution: {integrity: sha512-7Lcfyy5CsLWWGhMPO9WG4jZ/Alzp0AjepFhEreYHRPtQrfttp6qMAjE/g1aHgun0qHCYWxwqIG4NLR/hqDNrXQ==}
+ '@storybook/channels@8.1.11':
+ resolution: {integrity: sha512-fu5FTqo6duOqtJFa6gFzKbiSLJoia+8Tibn3xFfB6BeifWrH81hc+AZq0lTmHo5qax2G5t8ZN8JooHjMw6k2RA==}
- '@storybook/cli@8.0.9':
- resolution: {integrity: sha512-lilYTKn8F5YOePijqfRYFa5v2mHVIJxPCIgTn+OXAmAFbcizZ6P8P6niU4J/NXulgx68Ln1M7hYhFtTP25hVTw==}
+ '@storybook/cli@8.1.11':
+ resolution: {integrity: sha512-4U48w9C7mVEKrykcPcfHwJkRyCqJ28XipbElACbjIIkQEqaHaOVtP3GeKIrgkoOXe/HK3O4zKWRP2SqlVS0r4A==}
hasBin: true
- '@storybook/client-logger@8.0.9':
- resolution: {integrity: sha512-LzV/RHkbf07sRc1Jc0ff36RlapKf9Ul7/+9VMvVbI3hshH1CpmrZK4t/tsIdpX/EVOdJ1Gg5cES06PnleOAIPA==}
+ '@storybook/client-logger@8.1.11':
+ resolution: {integrity: sha512-DVMh2usz3yYmlqCLCiCKy5fT8/UR9aTh+gSqwyNFkGZrIM4otC5A8eMXajXifzotQLT5SaOEnM3WzHwmpvMIEA==}
- '@storybook/codemod@8.0.9':
- resolution: {integrity: sha512-VBeGpSZSQpL6iyLLqceJSNGhdCqcNwv+xC/aWdDFOkmuE1YfbmNNwpa9QYv4ZFJ2QjUsm4iTWG60qK+9NXeSKA==}
+ '@storybook/codemod@8.1.11':
+ resolution: {integrity: sha512-/LCozjH1IQ1TOs9UQV59BE0X6UZ9q+C0NEUz7qmJZPrwAii3FkW4l7D/fwxblpMExaoxv0oE8NQfUz49U/5Ymg==}
- '@storybook/components@8.0.9':
- resolution: {integrity: sha512-JcwBGADzIJs0PSzqykrrD2KHzNG9wtexUOKuidt+FSv9szpUhe3qBAXIHpdfBRl7mOJ9TRZ5rt+mukEnfncdzA==}
+ '@storybook/components@8.1.11':
+ resolution: {integrity: sha512-iXKsNu7VmrLBtjMfPj7S4yJ6T13GU6joKcVcrcw8wfrQJGlPFp4YaURPBUEDxvCt1XWi5JkaqJBvb48kIrROEQ==}
peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
- '@storybook/core-common@8.0.9':
- resolution: {integrity: sha512-Jmue+sfHFb4GTYBzyWYw1MygoJiQSfISIrKmNIzAmZ+oR9EOr+jpu/i/bH+uetZ2Hqg1AGhj1VB7OtJp9HQyWw==}
+ '@storybook/core-common@8.1.11':
+ resolution: {integrity: sha512-Ix0nplD4I4DrV2t9B+62jaw1baKES9UbR/Jz9LVKFF9nsua3ON0aVe73dOjMxFWBngpzBYWe+zYBTZ7aQtDH4Q==}
+ peerDependencies:
+ prettier: ^2 || ^3
+ peerDependenciesMeta:
+ prettier:
+ optional: true
- '@storybook/core-events@8.0.9':
- resolution: {integrity: sha512-DxSUx7wG9Qe3OFUBnv3OrYq48J8UWNo2DUR5/JecJCtp3n++L4fAEW3J0IF5FfxpQDMQSp1yTNjZ2PaWCMd2ag==}
+ '@storybook/core-events@8.1.11':
+ resolution: {integrity: sha512-vXaNe2KEW9BGlLrg0lzmf5cJ0xt+suPjWmEODH5JqBbrdZ67X6ApA2nb6WcxDQhykesWCuFN5gp1l+JuDOBi7A==}
- '@storybook/core-server@8.0.9':
- resolution: {integrity: sha512-BIe1T5YUBl0GYxEjRoTQsvXD2pyuzL8rPTUD41zlzSQM0R8U6Iant9SzRms4u0+rKUm2mGxxKuODlUo5ewqaGA==}
+ '@storybook/core-server@8.1.11':
+ resolution: {integrity: sha512-L6dzQTmR0np/kagNONvvlm6lSvF1FNc9js3vxsEEPnEypLbhx8bDZaHmuhmBpYUzKyUMpRVQTE/WgjHLuBBuxA==}
- '@storybook/csf-plugin@8.0.9':
- resolution: {integrity: sha512-pXaNCNi++kxKsqSWwvx215fPx8cNqvepLVxQ7B69qXLHj80DHn0Q3DFBO3sLXNiQMJ2JK4OYcTxMfuOiyzszKw==}
+ '@storybook/csf-plugin@8.1.11':
+ resolution: {integrity: sha512-hkA8gjFtSN/tabG0cuvmEqanMXtxPr3qTkp4UNSt1R6jBEgFHRG2y/KYLl367kDwOSFTT987ZgRfJJruU66Fvw==}
- '@storybook/csf-tools@8.0.9':
- resolution: {integrity: sha512-PiNMhL97giLytTdQwuhsZ92buVk4gy9H/8DtrDhUc45/1OmF95gogm6T2Yap729SIFwgpOcuq/U3aVo6d6swVQ==}
+ '@storybook/csf-tools@8.1.11':
+ resolution: {integrity: sha512-6qMWAg/dBwCVIHzANM9lSHoirwqSS+wWmv+NwAs0t9S94M75IttHYxD3IyzwaSYCC5llp0EQFvtXXAuSfFbibg==}
- '@storybook/csf@0.1.6':
- resolution: {integrity: sha512-JjWnBptVhBYJ14yq+cHs66BXjykRUWQ5TlD1RhPxMOtavynYyV/Q+QR98/N+XB+mcPtFMm5I2DvNkpj0/Dk8Mw==}
+ '@storybook/csf@0.1.9':
+ resolution: {integrity: sha512-JlZ6v/iFn+iKohKGpYXnMeNeTiiAMeFoDhYnPLIC8GnyyIWqEI9wJYrOK9i9rxlJ8NZAH/ojGC/u/xVC41qSgQ==}
- '@storybook/docs-mdx@3.0.0':
- resolution: {integrity: sha512-NmiGXl2HU33zpwTv1XORe9XG9H+dRUC1Jl11u92L4xr062pZtrShLmD4VKIsOQujxhhOrbxpwhNOt+6TdhyIdQ==}
+ '@storybook/docs-mdx@3.1.0-next.0':
+ resolution: {integrity: sha512-t4syFIeSyufieNovZbLruPt2DmRKpbwL4fERCZ1MifWDRIORCKLc4NCEHy+IqvIqd71/SJV2k4B51nF7vlJfmQ==}
- '@storybook/docs-tools@8.0.9':
- resolution: {integrity: sha512-OzogAeOmeHea/MxSPKRBWtOQVNSpoq+OOpimO9YRA5h5GBRJ2TUOGT44Gny6QT4ll5AvQA8fIiq9KezKcLekAg==}
+ '@storybook/docs-tools@8.1.11':
+ resolution: {integrity: sha512-mEXtR9rS7Y+OdKtT/QG6JBGYR1L41mcDhIqhnk7RmYl9qJstVAegrCKWR53sPKFdTVOHU7dmu6k+BD+TqHpyyw==}
'@storybook/global@5.0.0':
resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==}
@@ -4027,83 +4435,83 @@ packages:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
- '@storybook/instrumenter@8.0.9':
- resolution: {integrity: sha512-Gw74dgpTU/2p7FG0s7DuVdqCbJ2MEcSuRJjDo7HcXRYcvWp7I6Ly+C0v7N5VaoS+kbBVerAhLKIHZgG/LZf1og==}
+ '@storybook/instrumenter@8.1.11':
+ resolution: {integrity: sha512-r/U9hcqnodNMHuzRt1g56mWrVsDazR85Djz64M3KOwBhrTj5d46DF4/EE80w/5zR5JOrT7p8WmjJRowiVteOCQ==}
- '@storybook/manager-api@8.0.9':
- resolution: {integrity: sha512-99b3yKArDSvfabXL7QE3nA95e4DdW/5H/ZCcr6/E2qCQJayZ6G1v/WWamKXbiaTpkndulFmcb/+ZmnDXcweIIQ==}
+ '@storybook/manager-api@8.1.11':
+ resolution: {integrity: sha512-QSgwKfAw01K9YvvZj30iGBMgQ4YaCT3vojmttuqdH5ukyXkiO7pENLJj4Y+alwUeSi0g+SJeadCI3PXySBHOGg==}
- '@storybook/manager@8.0.9':
- resolution: {integrity: sha512-+NnRo+5JQFGNqveKrLtC0b+Z08Tae4m44iq292bPeZMpr9OkFsIkU0PBPsHTHPkrqC/zZXRNsCsTEgvu3p2OIA==}
+ '@storybook/manager@8.1.11':
+ resolution: {integrity: sha512-e02y9dmxowo7cTKYm9am7UO6NOHoHy6Xi7xZf/UA932qLwFZUtk5pnwIEFaZWI3OQsRUCGhP+FL5zizU7uVZeg==}
- '@storybook/node-logger@8.0.9':
- resolution: {integrity: sha512-5ajMdZFrYrjGLJOVDq7dlEQNFsgeLHymt4dCK9MulL/ciXykmXUZXE3Bye0wFy+I2qqDVvrvR8uzCvSFvm5MAQ==}
+ '@storybook/node-logger@8.1.11':
+ resolution: {integrity: sha512-wdzFo7B2naGhS52L3n1qBkt5BfvQjs8uax6B741yKRpiGgeAN8nz8+qelkD25MbSukxvbPgDot7WJvsMU/iCzg==}
- '@storybook/preview-api@8.0.9':
- resolution: {integrity: sha512-zHfX34bkAMzzmE7vbDzaqFwSW6ExiBD0HiO1L/IsHF55f0f7xV7IH8uJyFRrDTvAoW3ReSxZDMvvPpeydFPKGA==}
+ '@storybook/preview-api@8.1.11':
+ resolution: {integrity: sha512-8ZChmFV56GKppCJ0hnBd/kNTfGn2gWVq1242kuet13pbJtBpvOhyq4W01e/Yo14tAPXvgz8dSnMvWLbJx4QfhQ==}
- '@storybook/preview@8.0.9':
- resolution: {integrity: sha512-tFsR8xc8AYBZZrZw8enklFbSQt7ZAV+rv20BoxwDhd3q7fjXyK7O4moGPqUwBZ7rukTG13nPoISxr+VXAk/HYA==}
+ '@storybook/preview@8.1.11':
+ resolution: {integrity: sha512-K/9NZmjnL0D1BROkTNWNoPqgL2UaocALRSqCARmkBLgU2Rn/FuZgEclHkWlYo6pUrmLNK+bZ+XzpNMu12iTbpg==}
- '@storybook/react-dom-shim@8.0.9':
- resolution: {integrity: sha512-8011KlRuG3obr5pZZ7bcEyYYNWF3tR596YadoMd267NPoHKvwAbKL1L/DNgb6kiYjZDUf9QfaKSCWW31k0kcRQ==}
+ '@storybook/react-dom-shim@8.1.11':
+ resolution: {integrity: sha512-KVDSuipqkFjpGfldoRM5xR/N1/RNmbr+sVXqMmelr0zV2jGnexEZnoa7wRHk7IuXuivLWe8BxMxzvQWqjIa4GA==}
peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
- '@storybook/react-vite@8.0.9':
- resolution: {integrity: sha512-FT5KeulUH6grfzOJOxJCxpv9+81UVDrT9UPcgiFhQT9rKtsgmltezThwbHknByZNw3WWnf+ieidMLEis9hd73A==}
+ '@storybook/react-vite@8.1.11':
+ resolution: {integrity: sha512-QqkE6QKsIDthXtps9+YSBQ39O4VvU7Uu3y6WSA3IPgKTtGnmIvhwXtapjf7WQ2cNb5KY1JksFxHXbDe0i5IL4g==}
engines: {node: '>=18.0.0'}
peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
vite: ^4.0.0 || ^5.0.0
- '@storybook/react@8.0.9':
- resolution: {integrity: sha512-NeQ6suZG3HKikwe3Tx9cAIaRx7uP8FKCmlVvIiBg4LTTI5orCt94PPakvuZukZcbkqvcCnEBkebAzwUpn8PiJw==}
+ '@storybook/react@8.1.11':
+ resolution: {integrity: sha512-t+EYXOkgwg3ropLGS9y8gGvX5/Okffu/6JYL3YWksrBGAZSqVV4NkxCnVJZepS717SyhR0tN741gv/SxxFPJMg==}
engines: {node: '>=18.0.0'}
peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
typescript: '>= 4.2.x'
peerDependenciesMeta:
typescript:
optional: true
- '@storybook/router@8.0.9':
- resolution: {integrity: sha512-aAOWxbM9J4mt+cp4o88T2PB29mgBBTOzU37/pUsTHYnKnR9XI4npXEXdN8Gv+ryqM0kj0AbBpz/llFlnR2MNNA==}
+ '@storybook/router@8.1.11':
+ resolution: {integrity: sha512-nU5lsBvy0L8wBYOkjagh29ztZicDATpZNYrHuavlhQ2jznmmHdJvXKYk+VrMAbthjQ6ZBqfeeMNPR1UlnqR5Rw==}
- '@storybook/source-loader@8.0.9':
- resolution: {integrity: sha512-FDnpxIGE5nIYT15pvYe6rz95TSBrdLcDll7lOHNyZisWt19MI3wZU3YkVsFNRBuFrebo+FjVU3wHyoV81ur1Qw==}
+ '@storybook/source-loader@8.1.11':
+ resolution: {integrity: sha512-4cfJ7aPjtniIdDGiFjdFpO47byHOl4RKYCJEHf9t+j0xHmlXe4B9aAinxuFfv3GKAXfLvSbbwGO0cDZQRj+brw==}
- '@storybook/telemetry@8.0.9':
- resolution: {integrity: sha512-AGGfcup06t+wxhBIkHd0iybieOh9PDVZQJ9oPct5JGB39+ni9wvs0WOD+MYlHbsjp8id7+aGkh6mYuYOvfck+Q==}
+ '@storybook/telemetry@8.1.11':
+ resolution: {integrity: sha512-Jqvm7HcZismKzPuebhyLECO6KjGiSk4ycbca1WUM/TUvifxCXqgoUPlHHQEEfaRdHS63/MSqtMNjLsQRLC/vNQ==}
- '@storybook/test@8.0.9':
- resolution: {integrity: sha512-bRd5tBJnPzR6UKbDXONWnFWtdkNOY99HMLDUWe5fTRo50GwkrpFBVqPflhdkruEeof0kAbBUbnoN2CIYgtnAFw==}
+ '@storybook/test@8.1.11':
+ resolution: {integrity: sha512-k+V3HemF2/I8fkRxRqM8uH8ULrpBSAAdBOtWSHWLvHguVcb2YA4g4kKo6tXBB9256QfyDW4ZiaAj0/9TMxmJPQ==}
- '@storybook/theming@8.0.9':
- resolution: {integrity: sha512-jgfDuYoiNMMirQiASN3Eg0hGDXsEtpdAcMxyShqYGwu9elxgD9yUnYC2nSckYsM74a3ZQ3JaViZ9ZFSe2FHmeQ==}
+ '@storybook/theming@8.1.11':
+ resolution: {integrity: sha512-Chn/opjO6Rl1isNobutYqAH2PjKNkj09YBw/8noomk6gElSa3JbUTyaG/+JCHA6OG/9kUsqoKDb5cZmAKNq/jA==}
peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
peerDependenciesMeta:
react:
optional: true
react-dom:
optional: true
- '@storybook/types@8.0.9':
- resolution: {integrity: sha512-ew0EXzk9k4B557P1qIWYrnvUcgaE0WWA5qQS0AU8l+fRTp5nvl9O3SP/zNIB0SN1qDFO7dXr3idTNTyIikTcEQ==}
+ '@storybook/types@8.1.11':
+ resolution: {integrity: sha512-k9N5iRuY2+t7lVRL6xeu6diNsxO3YI3lS4Juv3RZ2K4QsE/b3yG5ElfJB8DjHDSHwRH4ORyrU71KkOCUVfvtnw==}
- '@storybook/vue3-vite@8.0.9':
- resolution: {integrity: sha512-IkzYsEyCo5HIvLWbJeGrBu/VIN4u+LvdIAz7vcFqVVXBtTUhy+9/8caLx8fdnM0FWgKcBRQs8HnjBB2V0lOFcg==}
+ '@storybook/vue3-vite@8.1.11':
+ resolution: {integrity: sha512-q0bqh8XEEunaTmp4YiDqM2+YZLwEIevTb5PnNe7G7f2qOiSCE1ncBDnBK717UlCd+iYr34NTztgV2/jIhz1i5w==}
engines: {node: '>=18.0.0'}
peerDependencies:
vite: ^4.0.0 || ^5.0.0
- '@storybook/vue3@8.0.9':
- resolution: {integrity: sha512-EqVdS62YbOCAE0wJrQKW0sHpM90be8N8Mvmj+HzB0QYhJNtFqP9ehwbcTfwEKtaVGudisHgGBOzNoSKDlxFaag==}
+ '@storybook/vue3@8.1.11':
+ resolution: {integrity: sha512-xJtvfLiCOY3UqwDMd0hZdsadPm1q8dwjfM1UN2Q2ssRWNfXzww1oi+Msj902wz9zFZMYVZypfTfgrdRgWmfEjA==}
engines: {node: '>=18.0.0'}
peerDependencies:
vue: ^3.0.0
@@ -4131,8 +4539,8 @@ packages:
cpu: [arm64]
os: [darwin]
- '@swc/core-darwin-arm64@1.4.17':
- resolution: {integrity: sha512-HVl+W4LezoqHBAYg2JCqR+s9ife9yPfgWSj37iIawLWzOmuuJ7jVdIB7Ee2B75bEisSEKyxRlTl6Y1Oq3owBgw==}
+ '@swc/core-darwin-arm64@1.6.6':
+ resolution: {integrity: sha512-5DA8NUGECcbcK1YLKJwNDKqdtTYDVnkfDU1WvQSXq/rU+bjYCLtn5gCe8/yzL7ISXA6rwqPU1RDejhbNt4ARLQ==}
engines: {node: '>=10'}
cpu: [arm64]
os: [darwin]
@@ -4143,8 +4551,8 @@ packages:
cpu: [x64]
os: [darwin]
- '@swc/core-darwin-x64@1.4.17':
- resolution: {integrity: sha512-WYRO9Fdzq4S/he8zjW5I95G1zcvyd9yyD3Tgi4/ic84P5XDlSMpBDpBLbr/dCPjmSg7aUXxNQqKqGkl6dQxYlA==}
+ '@swc/core-darwin-x64@1.6.6':
+ resolution: {integrity: sha512-2nbh/RHpweNRsJiYDFk1KcX7UtaKgzzTNUjwtvK5cp0wWrpbXmPvdlWOx3yzwoiSASDFx78242JHHXCIOlEdsw==}
engines: {node: '>=10'}
cpu: [x64]
os: [darwin]
@@ -4161,8 +4569,8 @@ packages:
cpu: [arm]
os: [linux]
- '@swc/core-linux-arm-gnueabihf@1.4.17':
- resolution: {integrity: sha512-cgbvpWOvtMH0XFjvwppUCR+Y+nf6QPaGu6AQ5hqCP+5Lv2zO5PG0RfasC4zBIjF53xgwEaaWmGP5/361P30X8Q==}
+ '@swc/core-linux-arm-gnueabihf@1.6.6':
+ resolution: {integrity: sha512-YgytuyUfR7b0z0SRHKV+ylr83HmgnROgeT7xryEkth6JGpAEHooCspQ4RrWTU8+WKJ7aXiZlGXPgybQ4TiS+TA==}
engines: {node: '>=10'}
cpu: [arm]
os: [linux]
@@ -4173,8 +4581,8 @@ packages:
cpu: [arm64]
os: [linux]
- '@swc/core-linux-arm64-gnu@1.4.17':
- resolution: {integrity: sha512-l7zHgaIY24cF9dyQ/FOWbmZDsEj2a9gRFbmgx2u19e3FzOPuOnaopFj0fRYXXKCmtdx+anD750iBIYnTR+pq/Q==}
+ '@swc/core-linux-arm64-gnu@1.6.6':
+ resolution: {integrity: sha512-yGwx9fddzEE0iURqRVwKBQ4IwRHE6hNhl15WliHpi/PcYhzmYkUIpcbRXjr0dssubXAVPVnx6+jZVDSbutvnfg==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
@@ -4185,8 +4593,8 @@ packages:
cpu: [arm64]
os: [linux]
- '@swc/core-linux-arm64-musl@1.4.17':
- resolution: {integrity: sha512-qhH4gr9gAlVk8MBtzXbzTP3BJyqbAfUOATGkyUtohh85fPXQYuzVlbExix3FZXTwFHNidGHY8C+ocscI7uDaYw==}
+ '@swc/core-linux-arm64-musl@1.6.6':
+ resolution: {integrity: sha512-a6fMbqzSAsS5KCxFJyg1mD5kwN3ZFO8qQLyJ75R/htZP/eCt05jrhmOI7h2n+1HjiG332jLnZ9S8lkVE5O8Nqw==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
@@ -4197,8 +4605,8 @@ packages:
cpu: [x64]
os: [linux]
- '@swc/core-linux-x64-gnu@1.4.17':
- resolution: {integrity: sha512-vRDFATL1oN5oZMImkwbgSHEkp8xG1ofEASBypze01W1Tqto8t+yo6gsp69wzCZBlxldsvPpvFZW55Jq0Rn+UnA==}
+ '@swc/core-linux-x64-gnu@1.6.6':
+ resolution: {integrity: sha512-hRGsUKNzzZle28YF0dYIpN0bt9PceR9LaVBq7x8+l9TAaDLFbgksSxcnU/ubTtsy+WsYSYGn+A83w3xWC0O8CQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
@@ -4209,8 +4617,8 @@ packages:
cpu: [x64]
os: [linux]
- '@swc/core-linux-x64-musl@1.4.17':
- resolution: {integrity: sha512-zQNPXAXn3nmPqv54JVEN8k2JMEcMTQ6veVuU0p5O+A7KscJq+AGle/7ZQXzpXSfUCXlLMX4wvd+rwfGhh3J4cw==}
+ '@swc/core-linux-x64-musl@1.6.6':
+ resolution: {integrity: sha512-NokIUtFxJDVv3LzGeEtYMTV3j2dnGKLac59luTeq36DQLZdJQawQIdTbzzWl2jE7lxxTZme+dhsVOH9LxE3ceg==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
@@ -4221,8 +4629,8 @@ packages:
cpu: [arm64]
os: [win32]
- '@swc/core-win32-arm64-msvc@1.4.17':
- resolution: {integrity: sha512-z86n7EhOwyzxwm+DLE5NoLkxCTme2lq7QZlDjbQyfCxOt6isWz8rkW5QowTX8w9Rdmk34ncrjSLvnHOeLY17+w==}
+ '@swc/core-win32-arm64-msvc@1.6.6':
+ resolution: {integrity: sha512-lzYdI4qb4k1dFG26yv+9Jaq/bUMAhgs/2JsrLncGjLof86+uj74wKYCQnbzKAsq2hDtS5DqnHnl+//J+miZfGA==}
engines: {node: '>=10'}
cpu: [arm64]
os: [win32]
@@ -4233,8 +4641,8 @@ packages:
cpu: [ia32]
os: [win32]
- '@swc/core-win32-ia32-msvc@1.4.17':
- resolution: {integrity: sha512-JBwuSTJIgiJJX6wtr4wmXbfvOswHFj223AumUrK544QV69k60FJ9q2adPW9Csk+a8wm1hLxq4HKa2K334UHJ/g==}
+ '@swc/core-win32-ia32-msvc@1.6.6':
+ resolution: {integrity: sha512-bvl7FMaXIJQ76WZU0ER4+RyfKIMGb6S2MgRkBhJOOp0i7VFx4WLOnrmMzaeoPJaJSkityVKAftfNh7NBzTIydQ==}
engines: {node: '>=10'}
cpu: [ia32]
os: [win32]
@@ -4245,17 +4653,17 @@ packages:
cpu: [x64]
os: [win32]
- '@swc/core-win32-x64-msvc@1.4.17':
- resolution: {integrity: sha512-jFkOnGQamtVDBm3MF5Kq1lgW8vx4Rm1UvJWRUfg+0gx7Uc3Jp3QMFeMNw/rDNQYRDYPG3yunCC+2463ycd5+dg==}
+ '@swc/core-win32-x64-msvc@1.6.6':
+ resolution: {integrity: sha512-WAP0JoCTfgeYKgOeYJoJV4ZS0sQUmU3OwvXa2dYYtMLF7zsNqOiW4niU7QlThBHgUv/qNZm2p6ITEgh3w1cltw==}
engines: {node: '>=10'}
cpu: [x64]
os: [win32]
- '@swc/core@1.4.17':
- resolution: {integrity: sha512-tq+mdWvodMBNBBZbwFIMTVGYHe9N7zvEaycVVjfvAx20k1XozHbHhRv+9pEVFJjwRxLdXmtvFZd3QZHRAOpoNQ==}
+ '@swc/core@1.6.6':
+ resolution: {integrity: sha512-sHfmIUPUXNrQTwFMVCY5V5Ena2GTOeaWjS2GFUpjLhAgVfP90OP67DWow7+cYrfFtqBdILHuWnjkTcd0+uPKlg==}
engines: {node: '>=10'}
peerDependencies:
- '@swc/helpers': ^0.5.0
+ '@swc/helpers': '*'
peerDependenciesMeta:
'@swc/helpers':
optional: true
@@ -4269,8 +4677,8 @@ packages:
peerDependencies:
'@swc/core': '*'
- '@swc/types@0.1.5':
- resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==}
+ '@swc/types@0.1.9':
+ resolution: {integrity: sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg==}
'@swc/wasm@1.2.130':
resolution: {integrity: sha512-rNcJsBxS70+pv8YUWwf5fRlWX6JoY/HJc25HD/F8m6Kv7XhJdqPPMhyX6TKkUBPAG7TWlZYoxa+rHAjPy4Cj3Q==}
@@ -4332,16 +4740,16 @@ packages:
resolution: {integrity: sha512-EmCsnzdvawyk4b+4JKaLLuicHcJQRZtL1zSy9AWJLiiHTbDDseYgLxfaCEfLk8v2bUe7SBXwl3n3B7OjgvH11Q==}
hasBin: true
- '@testing-library/dom@9.3.3':
- resolution: {integrity: sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==}
- engines: {node: '>=14'}
+ '@testing-library/dom@10.1.0':
+ resolution: {integrity: sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==}
+ engines: {node: '>=18'}
'@testing-library/dom@9.3.4':
resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
engines: {node: '>=14'}
- '@testing-library/jest-dom@6.4.2':
- resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==}
+ '@testing-library/jest-dom@6.4.5':
+ resolution: {integrity: sha512-AguB9yvTXmCnySBP1lWjfNNUwpbElsaQ567lt2VdGqAdHtpieLgjmcVyv1q7PMIvLbgpDdkWV5Ydv3FEejyp2A==}
engines: {node: '>=14', npm: '>=6', yarn: '>=1'}
peerDependencies:
'@jest/globals': '>= 28'
@@ -4367,8 +4775,8 @@ packages:
peerDependencies:
'@testing-library/dom': '>=7.21.4'
- '@testing-library/vue@8.0.3':
- resolution: {integrity: sha512-wSsbNlZ69ZFQgVlHMtc/ZC/g9BHO7MhyDrd4nHyfEubtMr3kToN/w4/BsSBknGIF8w9UmPbsgbIuq/CbdBHzCA==}
+ '@testing-library/vue@8.1.0':
+ resolution: {integrity: sha512-ls4RiHO1ta4mxqqajWRh8158uFObVrrtAPoxk7cIp4HrnQUj/ScKzqz53HxYpG3X6Zb7H2v+0eTGLSoy8HQ2nA==}
engines: {node: '>=14'}
peerDependencies:
'@vue/compiler-sfc': '>= 3'
@@ -4384,8 +4792,8 @@ packages:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
- '@tsd/typescript@5.3.3':
- resolution: {integrity: sha512-CQlfzol0ldaU+ftWuG52vH29uRoKboLinLy84wS8TQOu+m+tWoaUfk4svL4ij2V8M5284KymJBlHUusKj6k34w==}
+ '@tsd/typescript@5.4.5':
+ resolution: {integrity: sha512-saiCxzHRhUrRxQV2JhH580aQUZiKQUXI38FcAcikcfOomAil4G4lxT0RfrrKywoAYP/rqAdYXYmNRLppcd+hQQ==}
engines: {node: '>=14.17'}
'@twemoji/parser@15.0.0':
@@ -4430,12 +4838,6 @@ packages:
'@types/cacheable-request@6.0.3':
resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==}
- '@types/chai-subset@1.3.5':
- resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==}
-
- '@types/chai@4.3.11':
- resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==}
-
'@types/color-convert@2.0.3':
resolution: {integrity: sha512-2Q6wzrNiuEvYxVQqhh7sXM2mhIhvZR/Paq4FdsQkOMgWsCIkKvSGj8Le1/XalulrmgOzPMqNa0ix+ePY4hTrfg==}
@@ -4466,6 +4868,9 @@ packages:
'@types/detect-port@1.3.2':
resolution: {integrity: sha512-xxgAGA2SAU4111QefXPSp5eGbDm/hW6zhvYl9IeEPZEry9F4d66QAHm5qpUXjb6IsevZV/7emAEx5MhP6O192g==}
+ '@types/diff@5.2.1':
+ resolution: {integrity: sha512-uxpcuwWJGhe2AR1g8hD9F5OYGCqjqWnBUQFD8gMZsDbv8oPHzxJF6iMO6n8Tk0AdzlxoaaoQhOYlIg/PukVU8g==}
+
'@types/disposable-email-domains@1.0.2':
resolution: {integrity: sha512-SDKwyYTjk3y5aZBxxc38yRecpJPjsqn57STz1bNxYYlv4k11bBe7QB8w4llXDTmQXKT1mFvgGmJv+8Zdu3YmJw==}
@@ -4529,8 +4934,8 @@ packages:
'@types/http-errors@2.0.4':
resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
- '@types/http-link-header@1.0.5':
- resolution: {integrity: sha512-AxhIKR8UbyoqCTNp9rRepkktHuUOw3DjfOfDCaO9kwI8AYzjhxyrvZq4+mRw/2daD3hYDknrtSeV6SsPwmc71w==}
+ '@types/http-link-header@1.0.7':
+ resolution: {integrity: sha512-snm5oLckop0K3cTDAiBnZDy6ncx9DJ3mCRDvs42C884MbVYPP74Tiq2hFsSDRTyjK6RyDYDIulPiW23ge+g5Lw==}
'@types/istanbul-lib-coverage@2.0.4':
resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
@@ -4547,8 +4952,8 @@ packages:
'@types/js-yaml@4.0.9':
resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
- '@types/jsdom@21.1.6':
- resolution: {integrity: sha512-/7kkMsC+/kMs7gAYmmBR9P0vGTnOoLhQhyhQJSlXGI5bzTHp6xdo0TtKWQAsz6pmSAeVqKSbqeyP6hytqr9FDw==}
+ '@types/jsdom@21.1.7':
+ resolution: {integrity: sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==}
'@types/json-schema@7.0.12':
resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==}
@@ -4559,8 +4964,8 @@ packages:
'@types/json5@0.0.29':
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
- '@types/jsonld@1.5.13':
- resolution: {integrity: sha512-n7fUU6W4kSYK8VQlf/LsE9kddBHPKhODoVOjsZswmve+2qLwBy6naWxs/EiuSZN9NU0N06Ra01FR+j87C62T0A==}
+ '@types/jsonld@1.5.14':
+ resolution: {integrity: sha512-z4IRf5oRgjPTkazDDv94sjzI5iK3DrDEW7Y5Gk4VO4+ANymgtHtNaXWi93+BmiAoG3PB9QTv5DgSpKWGYVvysA==}
'@types/jsrsasign@10.5.14':
resolution: {integrity: sha512-lppSlfK6etu+cuKs40K4rg8As79PH6hzIB+v55zSqImbSH3SE6Fm8MBHCiI91cWlAP3Z4igtJK1VL3fSN09blQ==}
@@ -4595,8 +5000,8 @@ packages:
'@types/mdx@2.0.3':
resolution: {integrity: sha512-IgHxcT3RC8LzFLhKwP3gbMPeaK7BM9eBH46OdapPA7yvuIUJ8H6zHZV53J8hGZcTSnt95jANt+rTBNUUc22ACQ==}
- '@types/micromatch@4.0.7':
- resolution: {integrity: sha512-C/FMQ8HJAZhTsDpl4wDKZdMeeW5USjgzOczUwTGbRc1ZopPgOhIEnxY2ZgUrsuyy4DwK1JVOJZKFakv3TbCKiA==}
+ '@types/micromatch@4.0.9':
+ resolution: {integrity: sha512-7V+8ncr22h4UoYRLnLXSpTxjQrNUXtWHGeMPRJt1nULXI57G9bIcpyrHlmrQ7QK24EyyuXvYcSSWAM8GA9nqCg==}
'@types/mime-types@2.1.4':
resolution: {integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==}
@@ -4628,8 +5033,8 @@ packages:
'@types/node@20.11.5':
resolution: {integrity: sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==}
- '@types/node@20.12.7':
- resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==}
+ '@types/node@20.14.9':
+ resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==}
'@types/node@20.9.1':
resolution: {integrity: sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==}
@@ -4646,8 +5051,8 @@ packages:
'@types/oauth2orize@1.11.5':
resolution: {integrity: sha512-C6hrRoh9hCnqis39OpeUZSwgw+TIzcV0CsxwJMGfQjTx4I1r+CLmuEPzoDJr5NRTfc7OMwHNLkQwrGFLKrJjMQ==}
- '@types/oauth@0.9.4':
- resolution: {integrity: sha512-qk9orhti499fq5XxKCCEbd0OzdPZuancneyse3KtR+vgMiHRbh+mn8M4G6t64ob/Fg+GZGpa565MF/2dKWY32A==}
+ '@types/oauth@0.9.5':
+ resolution: {integrity: sha512-+oQ3C2Zx6ambINOcdIARF5Z3Tu3x//HipE889/fqo3sgpQZbe9c6ExdQFtN6qlhpR7p83lTZfPJt0tCAW29dog==}
'@types/offscreencanvas@2019.3.0':
resolution: {integrity: sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q==}
@@ -4658,8 +5063,8 @@ packages:
'@types/pg-pool@2.0.4':
resolution: {integrity: sha512-qZAvkv1K3QbmHHFYSNRYPkRjOWRLBYrL4B9c+wG0GSVGBw0NtJwPcgx/DSddeDJvRGMHCEQ4VMEVfuJ/0gZ3XQ==}
- '@types/pg@8.11.5':
- resolution: {integrity: sha512-2xMjVviMxneZHDHX5p5S6tsRRs7TpDHeeK7kTTMe/kAC/mRRNjWHjZg0rkiY+e17jXSZV3zJYDxXV8Cy72/Vuw==}
+ '@types/pg@8.11.6':
+ resolution: {integrity: sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==}
'@types/pg@8.6.1':
resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==}
@@ -4766,6 +5171,9 @@ packages:
'@types/unist@3.0.2':
resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
'@types/uuid@9.0.8':
resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
@@ -4815,8 +5223,8 @@ packages:
typescript:
optional: true
- '@typescript-eslint/eslint-plugin@7.7.1':
- resolution: {integrity: sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==}
+ '@typescript-eslint/eslint-plugin@7.15.0':
+ resolution: {integrity: sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
'@typescript-eslint/parser': ^7.0.0
@@ -4846,8 +5254,8 @@ packages:
typescript:
optional: true
- '@typescript-eslint/parser@7.7.1':
- resolution: {integrity: sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==}
+ '@typescript-eslint/parser@7.15.0':
+ resolution: {integrity: sha512-k9fYuQNnypLFcqORNClRykkGOMOj+pV6V91R4GO/l1FDGwpqmSwoOQrOHo3cGaH63e+D3ZiCAOsuS/D2c99j/A==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
@@ -4864,8 +5272,8 @@ packages:
resolution: {integrity: sha512-6TmN4OJiohHfoOdGZ3huuLhpiUgOGTpgXNUPJgeZOZR3DnIpdSgtt83RS35OYNNXxM4TScVlpVKC9jyQSETR1A==}
engines: {node: ^16.0.0 || >=18.0.0}
- '@typescript-eslint/scope-manager@7.7.1':
- resolution: {integrity: sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==}
+ '@typescript-eslint/scope-manager@7.15.0':
+ resolution: {integrity: sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==}
engines: {node: ^18.18.0 || >=20.0.0}
'@typescript-eslint/type-utils@6.11.0':
@@ -4888,8 +5296,8 @@ packages:
typescript:
optional: true
- '@typescript-eslint/type-utils@7.7.1':
- resolution: {integrity: sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==}
+ '@typescript-eslint/type-utils@7.15.0':
+ resolution: {integrity: sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
@@ -4906,8 +5314,8 @@ packages:
resolution: {integrity: sha512-qTWjWieJ1tRJkxgZYXx6WUYtWlBc48YRxgY2JN1aGeVpkhmnopq+SUC8UEVGNXIvWH7XyuTjwALfG6bFEgCkQA==}
engines: {node: ^16.0.0 || >=18.0.0}
- '@typescript-eslint/types@7.7.1':
- resolution: {integrity: sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==}
+ '@typescript-eslint/types@7.15.0':
+ resolution: {integrity: sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==}
engines: {node: ^18.18.0 || >=20.0.0}
'@typescript-eslint/typescript-estree@6.11.0':
@@ -4928,8 +5336,8 @@ packages:
typescript:
optional: true
- '@typescript-eslint/typescript-estree@7.7.1':
- resolution: {integrity: sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==}
+ '@typescript-eslint/typescript-estree@7.15.0':
+ resolution: {integrity: sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
typescript: '*'
@@ -4949,8 +5357,8 @@ packages:
peerDependencies:
eslint: ^8.56.0
- '@typescript-eslint/utils@7.7.1':
- resolution: {integrity: sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==}
+ '@typescript-eslint/utils@7.15.0':
+ resolution: {integrity: sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
@@ -4963,87 +5371,78 @@ packages:
resolution: {integrity: sha512-FhUqNWluiGNzlvnDZiXad4mZRhtghdoKW6e98GoEOYSu5cND+E39rG5KwJMUzeENwm1ztYBRqof8wMLP+wNPIA==}
engines: {node: ^16.0.0 || >=18.0.0}
- '@typescript-eslint/visitor-keys@7.7.1':
- resolution: {integrity: sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==}
+ '@typescript-eslint/visitor-keys@7.15.0':
+ resolution: {integrity: sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==}
engines: {node: ^18.18.0 || >=20.0.0}
'@ungap/structured-clone@1.2.0':
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
- '@vitejs/plugin-vue@5.0.4':
- resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==}
+ '@vitejs/plugin-vue@5.0.5':
+ resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==}
engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies:
vite: ^5.0.0
vue: ^3.2.25
- '@vitest/coverage-v8@0.34.6':
- resolution: {integrity: sha512-fivy/OK2d/EsJFoEoxHFEnNGTg+MmdZBAVK9Ka4qhXR2K3J0DS08vcGVwzDtXSuUMabLv4KtPcpSKkcMXFDViw==}
+ '@vitest/coverage-v8@1.6.0':
+ resolution: {integrity: sha512-KvapcbMY/8GYIG0rlwwOKCVNRc0OL20rrhFkg/CHNzncV03TE2XWvO5w9uZYoxNiMEBacAJt3unSOiZ7svePew==}
peerDependencies:
- vitest: '>=0.32.0 <1'
+ vitest: 1.6.0
- '@vitest/expect@0.34.6':
- resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==}
+ '@vitest/expect@1.6.0':
+ resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==}
- '@vitest/expect@1.3.1':
- resolution: {integrity: sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==}
+ '@vitest/runner@1.6.0':
+ resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==}
- '@vitest/runner@0.34.6':
- resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==}
-
- '@vitest/snapshot@0.34.6':
- resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==}
-
- '@vitest/spy@0.34.6':
- resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==}
-
- '@vitest/spy@1.3.1':
- resolution: {integrity: sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==}
+ '@vitest/snapshot@1.6.0':
+ resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==}
'@vitest/spy@1.6.0':
resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==}
- '@vitest/utils@0.34.6':
- resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==}
-
- '@vitest/utils@1.3.1':
- resolution: {integrity: sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==}
-
'@vitest/utils@1.6.0':
resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==}
'@volar/language-core@2.2.0':
resolution: {integrity: sha512-a8WG9+4OdeNDW4ywABZIM6S6UN7em8uIlM/BZ2pWQUYrVmX+m8sj/X+QadvO+Li/t/LjAqbWJQtVgxdpEWLALQ==}
+ '@volar/language-core@2.4.0-alpha.11':
+ resolution: {integrity: sha512-DtftH0DtpksK1y+de/kLnu8CHcFQ7huKXi7cyxH9R0PbOOTSGXd31kijBeKNzyoXRp8dqGpu/7WhOlCWXQR62w==}
+
'@volar/source-map@2.2.0':
resolution: {integrity: sha512-HQlPRlHOVqCCHK8wI76ZldHkEwKsjp7E6idUc36Ekni+KJDNrqgSqPvyHQixybXPHNU7CI9Uxd9/IkxO7LuNBw==}
+ '@volar/source-map@2.4.0-alpha.11':
+ resolution: {integrity: sha512-yyjmv8KUkTcxXzwme9qUMl6Szdji9JUQa8eadE4ib/spFXXZGq6QOX8cgSu5UQ0ooyBJFO1zdVH5otBJyZE3Ew==}
+
'@volar/typescript@2.2.0':
resolution: {integrity: sha512-wC6l4zLiiCLxF+FGaHCbWlQYf4vMsnRxYhcI6WgvaNppOD6r1g+Ef1RKRJUApALWU46Yy/JDU/TbdV6w/X6Liw==}
- '@vue/compiler-core@3.4.21':
- resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==}
+ '@volar/typescript@2.4.0-alpha.11':
+ resolution: {integrity: sha512-N/v+wSddhtsNtfv2w0Bxj2QQWURN5budGzpyBTrlcXxz2dnvB0eAMqrEQbBi6rCOVHlRaXbh+wyTRdAcB/FHrg==}
- '@vue/compiler-core@3.4.25':
- resolution: {integrity: sha512-Y2pLLopaElgWnMNolgG8w3C5nNUVev80L7hdQ5iIKPtMJvhVpG0zhnBG/g3UajJmZdvW0fktyZTotEHD1Srhbg==}
+ '@vue/compiler-core@3.4.29':
+ resolution: {integrity: sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==}
- '@vue/compiler-core@3.4.26':
- resolution: {integrity: sha512-N9Vil6Hvw7NaiyFUFBPXrAyETIGlQ8KcFMkyk6hW1Cl6NvoqvP+Y8p1Eqvx+UdqsnrnI9+HMUEJegzia3mhXmQ==}
+ '@vue/compiler-core@3.4.31':
+ resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==}
- '@vue/compiler-dom@3.4.21':
- resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==}
+ '@vue/compiler-dom@3.4.29':
+ resolution: {integrity: sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==}
- '@vue/compiler-dom@3.4.25':
- resolution: {integrity: sha512-Ugz5DusW57+HjllAugLci19NsDK+VyjGvmbB2TXaTcSlQxwL++2PETHx/+Qv6qFwNLzSt7HKepPe4DcTE3pBWg==}
+ '@vue/compiler-dom@3.4.31':
+ resolution: {integrity: sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==}
- '@vue/compiler-dom@3.4.26':
- resolution: {integrity: sha512-4CWbR5vR9fMg23YqFOhr6t6WB1Fjt62d6xdFPyj8pxrYub7d+OgZaObMsoxaF9yBUHPMiPFK303v61PwAuGvZA==}
+ '@vue/compiler-sfc@3.4.31':
+ resolution: {integrity: sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==}
- '@vue/compiler-sfc@3.4.26':
- resolution: {integrity: sha512-It1dp+FAOCgluYSVYlDn5DtZBxk1NCiJJfu2mlQqa/b+k8GL6NG/3/zRbJnHdhV2VhxFghaDq5L4K+1dakW6cw==}
+ '@vue/compiler-ssr@3.4.29':
+ resolution: {integrity: sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==}
- '@vue/compiler-ssr@3.4.26':
- resolution: {integrity: sha512-FNwLfk7LlEPRY/g+nw2VqiDKcnDTVdCfBREekF8X74cPLiWHUX6oldktf/Vx28yh4STNy7t+/yuLoMBBF7YDiQ==}
+ '@vue/compiler-ssr@3.4.31':
+ resolution: {integrity: sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==}
'@vue/devtools-api@6.6.1':
resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==}
@@ -5056,28 +5455,38 @@ packages:
typescript:
optional: true
- '@vue/reactivity@3.4.26':
- resolution: {integrity: sha512-E/ynEAu/pw0yotJeLdvZEsp5Olmxt+9/WqzvKff0gE67tw73gmbx6tRkiagE/eH0UCubzSlGRebCbidB1CpqZQ==}
-
- '@vue/runtime-core@3.4.26':
- resolution: {integrity: sha512-AFJDLpZvhT4ujUgZSIL9pdNcO23qVFh7zWCsNdGQBw8ecLNxOOnPcK9wTTIYCmBJnuPHpukOwo62a2PPivihqw==}
-
- '@vue/runtime-dom@3.4.26':
- resolution: {integrity: sha512-UftYA2hUXR2UOZD/Fc3IndZuCOOJgFxJsWOxDkhfVcwLbsfh2CdXE2tG4jWxBZuDAs9J9PzRTUFt1PgydEtItw==}
-
- '@vue/server-renderer@3.4.26':
- resolution: {integrity: sha512-xoGAqSjYDPGAeRWxeoYwqJFD/gw7mpgzOvSxEmjWaFO2rE6qpbD1PC172YRpvKhrihkyHJkNDADFXTfCyVGhKw==}
+ '@vue/language-core@2.0.24':
+ resolution: {integrity: sha512-997YD6Lq/66LXr3ZOLNxDCmyn13z9NP8LU1UZn9hGCDWhzlbXAIP0hOgL3w3x4RKEaWTaaRtsHP9DzHvmduruQ==}
peerDependencies:
- vue: 3.4.26
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
- '@vue/shared@3.4.21':
- resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==}
+ '@vue/reactivity@3.4.31':
+ resolution: {integrity: sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q==}
- '@vue/shared@3.4.25':
- resolution: {integrity: sha512-k0yappJ77g2+KNrIaF0FFnzwLvUBLUYr8VOwz+/6vLsmItFp51AcxLL7Ey3iPd7BIRyWPOcqUjMnm7OkahXllA==}
+ '@vue/runtime-core@3.4.31':
+ resolution: {integrity: sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw==}
- '@vue/shared@3.4.26':
- resolution: {integrity: sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==}
+ '@vue/runtime-dom@3.4.31':
+ resolution: {integrity: sha512-2Auws3mB7+lHhTFCg8E9ZWopA6Q6L455EcU7bzcQ4x6Dn4cCPuqj6S2oBZgN2a8vJRS/LSYYxwFFq2Hlx3Fsaw==}
+
+ '@vue/server-renderer@3.4.29':
+ resolution: {integrity: sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==}
+ peerDependencies:
+ vue: 3.4.29
+
+ '@vue/server-renderer@3.4.31':
+ resolution: {integrity: sha512-D5BLbdvrlR9PE3by9GaUp1gQXlCNadIZytMIb8H2h3FMWJd4oUfkUTEH2wAr3qxoRz25uxbTcbqd3WKlm9EHQA==}
+ peerDependencies:
+ vue: 3.4.31
+
+ '@vue/shared@3.4.29':
+ resolution: {integrity: sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==}
+
+ '@vue/shared@3.4.31':
+ resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==}
'@vue/test-utils@2.4.1':
resolution: {integrity: sha512-VO8nragneNzUZUah6kOjiFmD/gwRjUauG9DROh6oaOeFwX1cZRUNHhdeogE8635cISigXFTtGLUQWx5KCb0xeg==}
@@ -5151,8 +5560,8 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
- acorn@8.11.3:
- resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
+ acorn@8.12.0:
+ resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==}
engines: {node: '>=0.4.0'}
hasBin: true
@@ -5205,12 +5614,26 @@ packages:
ajv:
optional: true
+ ajv-formats@3.0.1:
+ resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==}
+ peerDependencies:
+ ajv: ^8.0.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ ajv@8.12.0:
+ resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
+
ajv@8.13.0:
resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==}
+ ajv@8.16.0:
+ resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==}
+
ansi-colors@4.1.3:
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
engines: {node: '>=6'}
@@ -5290,9 +5713,16 @@ packages:
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ aria-hidden@1.2.4:
+ resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==}
+ engines: {node: '>=10'}
+
aria-query@5.1.3:
resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
+ aria-query@5.3.0:
+ resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
+
array-buffer-byte-length@1.0.0:
resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
@@ -5368,6 +5798,9 @@ packages:
async-mutex@0.5.0:
resolution: {integrity: sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==}
+ async@0.2.10:
+ resolution: {integrity: sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==}
+
async@3.2.4:
resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==}
@@ -5389,8 +5822,8 @@ packages:
avvio@8.3.0:
resolution: {integrity: sha512-VBVH0jubFr9LdFASy/vNtm5giTrnbVquWBhT0fyizuNK2rQ7e7ONU2plZQWUNqtE1EmxFEb+kbSkFRkstiaS9Q==}
- aws-sdk-client-mock@3.0.1:
- resolution: {integrity: sha512-9VAzJLl8mz99KP9HjOm/93d8vznRRUTpJooPBOunRdUAnVYopCe9xmMuu7eVemu8fQ+w6rP7o5bBK1kAFkB2KQ==}
+ aws-sdk-client-mock@4.0.1:
+ resolution: {integrity: sha512-yD2mmgy73Xce097G5hIpr1k7j50qzvJ49/+6osGZiCyk4m6cwhb+2x7kKFY1gEMwTzaS8+m8fXv9SB29SkRYyQ==}
aws-sign2@0.7.0:
resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==}
@@ -5426,18 +5859,18 @@ packages:
resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- babel-plugin-polyfill-corejs2@0.4.6:
- resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==}
+ babel-plugin-polyfill-corejs2@0.4.11:
+ resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- babel-plugin-polyfill-corejs3@0.8.6:
- resolution: {integrity: sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==}
+ babel-plugin-polyfill-corejs3@0.10.4:
+ resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- babel-plugin-polyfill-regenerator@0.5.3:
- resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==}
+ babel-plugin-polyfill-regenerator@0.6.2:
+ resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
@@ -5510,10 +5943,6 @@ packages:
bn.js@4.12.0:
resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==}
- body-parser@1.20.1:
- resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==}
- engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
-
body-parser@1.20.2:
resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
@@ -5538,6 +5967,10 @@ packages:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
+ braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
+
broadcast-channel@7.0.0:
resolution: {integrity: sha512-a2tW0Ia1pajcPBOGUF2jXlDnvE9d5/dg6BG9h60OmRUcZVr/veUrU8vEQFwwQIhwG3KVzYwSk3v2nRRGFgQDXQ==}
@@ -5586,8 +6019,8 @@ packages:
resolution: {integrity: sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==}
engines: {node: '>=6.14.2'}
- bullmq@5.7.8:
- resolution: {integrity: sha512-F/Haeu6AVHkFrfeaU/kLOjhfrH6x3CaKAZlQQ+76fa8l3kfI9oaUHeFMW+1mYVz0NtYPF7PNTWFq4ylAHYcCgA==}
+ bullmq@5.8.3:
+ resolution: {integrity: sha512-RJgQu/vgSZqjOYrZ7F1UJsSAzveNx7FFpR3Tp/1TxOMXXN9TtZMSly5MT+vjzOhQX//3+YWNRbMWpC1mkqBc9w==}
buraha@0.0.1:
resolution: {integrity: sha512-G563A0mTbzknm2jDaNxfZuNKIdeArs8T+XQN6t+KbmgnOoevXSXhKDkyf8Md/36Jrx99ikwbCag37VGe3myExQ==}
@@ -5624,6 +6057,10 @@ packages:
resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
engines: {node: '>=14.16'}
+ cacheable-request@12.0.1:
+ resolution: {integrity: sha512-Yo9wGIQUaAfIbk+qY0X4cDQgCosecfBe3V9NSyeY4qPC2SAkbCS4Xj79VP8WOzitpJUZKc/wsRCYF5ariDIwkg==}
+ engines: {node: '>=18'}
+
cacheable-request@7.0.2:
resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==}
engines: {node: '>=8'}
@@ -5713,8 +6150,8 @@ packages:
character-parser@2.2.0:
resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==}
- chart.js@4.4.2:
- resolution: {integrity: sha512-6GD7iKwFpP5kbSD4MeRRRlTnQvxfQREy36uEtm1hzHzcOqwWx0YEHuspuoNlslu+nciLIB7fjjsHkUv/FzFcOg==}
+ chart.js@4.4.3:
+ resolution: {integrity: sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==}
engines: {pnpm: '>=8'}
chartjs-adapter-date-fns@3.0.0:
@@ -5763,8 +6200,8 @@ packages:
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
engines: {node: '>=10'}
- chromatic@11.3.0:
- resolution: {integrity: sha512-q1ZtJDJrjLGnz60ivpC16gmd7KFzcaA4eTb7gcytCqbaKqlHhCFr1xQmcUDsm14CK7JsqdkFU6S+JQdOd2ZNJg==}
+ chromatic@11.5.4:
+ resolution: {integrity: sha512-+J+CopeUSyGUIQJsU6X7CfvSmeVBs0j6LZ9AgF4+XTjI4pFmUiUXsTc00rH9x9W1jCppOaqDXv2kqJJXGDK3mA==}
hasBin: true
peerDependencies:
'@chromatic-com/cypress': ^0.*.* || ^1.0.0
@@ -5799,10 +6236,6 @@ packages:
engines: {node: '>=8.0.0', npm: '>=5.0.0'}
hasBin: true
- cli-spinners@2.7.0:
- resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==}
- engines: {node: '>=6'}
-
cli-spinners@2.9.2:
resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
engines: {node: '>=6'}
@@ -5982,8 +6415,8 @@ packages:
resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
engines: {node: '>= 0.6'}
- core-js-compat@3.33.3:
- resolution: {integrity: sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow==}
+ core-js-compat@3.37.1:
+ resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==}
core-js@3.29.1:
resolution: {integrity: sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==}
@@ -6037,9 +6470,9 @@ packages:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
- crypto-random-string@2.0.0:
- resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
- engines: {node: '>=8'}
+ crypto-random-string@4.0.0:
+ resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
+ engines: {node: '>=12'}
css-declaration-sorter@7.2.0:
resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==}
@@ -6102,13 +6535,8 @@ packages:
cwise-compiler@1.1.3:
resolution: {integrity: sha512-WXlK/m+Di8DMMcCjcWr4i+XzcQra9eCdXIJrgh4TUgh0pIS/yJduLxS9JgefsHJ/YVLdgPtXm9r62W92MvanEQ==}
- cypress@13.7.3:
- resolution: {integrity: sha512-uoecY6FTCAuIEqLUYkTrxamDBjMHTYak/1O7jtgwboHiTnS1NaMOoR08KcTrbRZFCBvYOiS4tEkQRmsV+xcrag==}
- engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0}
- hasBin: true
-
- cypress@13.8.1:
- resolution: {integrity: sha512-Uk6ovhRbTg6FmXjeZW/TkbRM07KPtvM5gah1BIMp4Y2s+i/NMxgaLw0+PbYTOdw1+egE0FP3mWRiGcRkjjmhzA==}
+ cypress@13.13.0:
+ resolution: {integrity: sha512-ou/MQUDq4tcDJI2FsPaod2FZpex4kpIK43JJlcBgWrX8WX7R/05ZxGTuxedOuZBfxjZxja+fbijZGyxiLP6CFA==}
engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0}
hasBin: true
@@ -6162,6 +6590,15 @@ packages:
supports-color:
optional: true
+ debug@4.3.5:
+ resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
decamelize-keys@1.1.1:
resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
engines: {node: '>=0.10.0'}
@@ -6235,10 +6672,6 @@ packages:
defu@6.1.4:
resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
- del@6.1.1:
- resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
- engines: {node: '>=10'}
-
delayed-stream@1.0.0:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
@@ -6278,6 +6711,9 @@ packages:
resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
engines: {node: '>=8'}
+ detect-node-es@1.1.0:
+ resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
+
detect-package-manager@2.0.1:
resolution: {integrity: sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==}
engines: {node: '>=12'}
@@ -6300,6 +6736,10 @@ packages:
resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==}
engines: {node: '>=0.3.1'}
+ diff@5.2.0:
+ resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
+ engines: {node: '>=0.3.1'}
+
dijkstrajs@1.0.2:
resolution: {integrity: sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==}
@@ -6371,8 +6811,8 @@ packages:
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
- ejs@3.1.9:
- resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
+ ejs@3.1.10:
+ resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
engines: {node: '>=0.10.0'}
hasBin: true
@@ -6438,8 +6878,8 @@ packages:
es-get-iterator@1.1.3:
resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
- es-module-lexer@0.9.3:
- resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}
+ es-module-lexer@1.5.4:
+ resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==}
es-set-tostringtag@2.0.1:
resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
@@ -6476,11 +6916,16 @@ packages:
engines: {node: '>=12'}
hasBin: true
- esbuild@0.20.2:
- resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
+ esbuild@0.21.5:
+ resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
engines: {node: '>=12'}
hasBin: true
+ esbuild@0.22.0:
+ resolution: {integrity: sha512-zNYA6bFZsVnsU481FnGAQjLDW0Pl/8BGG7EvAp15RzUvGC+ME7hf1q7LvIfStEQBz/iEHuBJCYcOwPmNCf1Tlw==}
+ engines: {node: '>=18'}
+ hasBin: true
+
escalade@3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
engines: {node: '>=6'}
@@ -6550,8 +6995,8 @@ packages:
'@typescript-eslint/parser':
optional: true
- eslint-plugin-vue@9.25.0:
- resolution: {integrity: sha512-tDWlx14bVe6Bs+Nnh3IGrD+hb11kf2nukfm6jLsmJIhmiRQ1SUaksvwY9U5MvPB0pcrg0QK0xapQkfITs3RKOA==}
+ eslint-plugin-vue@9.26.0:
+ resolution: {integrity: sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
@@ -6563,19 +7008,26 @@ packages:
resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ eslint-scope@8.0.1:
+ resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- eslint@8.53.0:
- resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ eslint-visitor-keys@4.0.0:
+ resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint@9.6.0:
+ resolution: {integrity: sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
- eslint@8.57.0:
- resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- hasBin: true
+ espree@10.1.0:
+ resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
espree@9.6.1:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
@@ -6590,6 +7042,10 @@ packages:
resolution: {integrity: sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng==}
engines: {node: '>=0.10'}
+ esquery@1.5.0:
+ resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
+ engines: {node: '>=0.10'}
+
esrecurse@4.3.0:
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
engines: {node: '>=4.0'}
@@ -6652,6 +7108,10 @@ packages:
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
engines: {node: '>=16.17'}
+ execa@9.2.0:
+ resolution: {integrity: sha512-vpOyYg7UAVKLAWWtRS2gAdgkT7oJbCn0me3gmUmxZih4kd3MF/oo8kNTBTIbkO3yuuF5uB4ZCZfn8BOolITYhg==}
+ engines: {node: ^18.19.0 || >=20.5.0}
+
executable@4.1.1:
resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==}
engines: {node: '>=4'}
@@ -6667,10 +7127,6 @@ packages:
exponential-backoff@3.1.1:
resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
- express@4.18.2:
- resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==}
- engines: {node: '>= 0.10.0'}
-
express@4.19.2:
resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
engines: {node: '>= 0.10.0'}
@@ -6744,11 +7200,8 @@ packages:
resolution: {integrity: sha512-F4o8ZIMVx4YoxGfwrZys6wyjl40gF3Yv6AWWRy62ozFAyZBSS831/uyyCAqKYw3tR73g180ryG98yih6To1PUQ==}
engines: {node: '>= 10'}
- fastify@4.26.2:
- resolution: {integrity: sha512-90pjTuPGrfVKtdpLeLzND5nyC4woXZN5VadiNQCicj/iJU4viNHKhsAnb7jmv1vu2IzkLXyBiCzdWuzeXgQ5Ug==}
-
- fastq@1.15.0:
- resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
+ fastify@4.28.1:
+ resolution: {integrity: sha512-kFWUtpNr4i7t5vY2EJPCN2KgMVpuqfU4NjnJNCgiNB900oiDeYqaNDRcAfeBbOF5hGixixxcKnOU4KN9z6QncQ==}
fastq@1.17.1:
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
@@ -6774,9 +7227,13 @@ packages:
resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
engines: {node: '>=8'}
- file-entry-cache@6.0.1:
- resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
- engines: {node: ^10.12.0 || >=12.0.0}
+ figures@6.1.0:
+ resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==}
+ engines: {node: '>=18'}
+
+ file-entry-cache@8.0.0:
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
file-system-cache@2.3.0:
resolution: {integrity: sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==}
@@ -6804,6 +7261,10 @@ packages:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
+ fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+
finalhandler@1.2.0:
resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
engines: {node: '>= 0.8'}
@@ -6843,20 +7304,20 @@ packages:
resolution: {integrity: sha512-MdYSsbdCaIRjzo5edthZtWmEZVMfr1qrtYZUHIdO3swCE+CoZA8S5l0s4jDsYlTa9ZiXv0pTgpzE7s4N8NeUOA==}
engines: {node: '>=18'}
- flat-cache@3.0.4:
- resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
- engines: {node: ^10.12.0 || >=12.0.0}
+ flat-cache@4.0.1:
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
- flatted@3.2.7:
- resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
+ flatted@3.3.1:
+ resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
flow-parser@0.202.0:
resolution: {integrity: sha512-ZiXxSIXK3zPmY3zrzCofFonM2T+/3Jz5QZKJyPVtUERQEJUnYkXBQ+0H3FzyqiyJs+VXqb/UNU6/K6sziVYdxw==}
engines: {node: '>=0.4.0'}
- fluent-ffmpeg@2.1.2:
- resolution: {integrity: sha512-IZTB4kq5GK0DPp7sGQ0q/BWurGHffRtQQwVkiqDgeO6wYJLLV5ZhgNOQ65loZxxuPMKZKZcICCUnaGtlxBiR0Q==}
- engines: {node: '>=0.8.0'}
+ fluent-ffmpeg@2.1.3:
+ resolution: {integrity: sha512-Be3narBNt2s6bsaqP6Jzq91heDgOEaDCJAXcE3qcma/EJBSy5FB4cvO31XBInuAuKBx8Kptf8dkhjK0IOru39Q==}
+ engines: {node: '>=18'}
follow-redirects@1.15.2:
resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
@@ -6978,6 +7439,10 @@ packages:
get-intrinsic@1.2.1:
resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==}
+ get-nonce@1.0.1:
+ resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
+ engines: {node: '>=6'}
+
get-npm-tarball-url@2.0.3:
resolution: {integrity: sha512-R/PW6RqyaBQNWYaSyfrh54/qtcnOp22FHCCiRhSSZj0FP3KQWCsxxt0DzIdVTbwTqe9CtQfvl/FPD4UIPt4pqw==}
engines: {node: '>=12.17'}
@@ -7005,6 +7470,10 @@ packages:
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
engines: {node: '>=16'}
+ get-stream@9.0.1:
+ resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==}
+ engines: {node: '>=18'}
+
get-symbol-description@1.0.0:
resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
engines: {node: '>= 0.4'}
@@ -7056,12 +7525,19 @@ packages:
engines: {node: '>=16 || 14 >=14.17'}
hasBin: true
+ glob@10.4.2:
+ resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==}
+ engines: {node: '>=16 || 14 >=14.18'}
+ hasBin: true
+
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ deprecated: Glob versions prior to v9 are no longer supported
glob@8.1.0:
resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
engines: {node: '>=12'}
+ deprecated: Glob versions prior to v9 are no longer supported
global-dirs@3.0.1:
resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
@@ -7071,14 +7547,18 @@ packages:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: '>=4'}
- globals@13.19.0:
- resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==}
- engines: {node: '>=8'}
-
globals@13.24.0:
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
engines: {node: '>=8'}
+ globals@14.0.0:
+ resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+ engines: {node: '>=18'}
+
+ globals@15.7.0:
+ resolution: {integrity: sha512-ivatRXWwKC6ImcdKO7dOwXuXR5XFrdwo45qFwD7D0qOkEPzzJdLXC3BHceBdyrPOD3p1suPaWi4Y4NMm2D++AQ==}
+ engines: {node: '>=18'}
+
globalthis@1.0.3:
resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
engines: {node: '>= 0.4'}
@@ -7087,6 +7567,10 @@ packages:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
engines: {node: '>=10'}
+ globby@14.0.1:
+ resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==}
+ engines: {node: '>=18'}
+
google-protobuf@3.21.2:
resolution: {integrity: sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==}
@@ -7101,8 +7585,8 @@ packages:
resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
engines: {node: '>=14.16'}
- got@14.2.1:
- resolution: {integrity: sha512-KOaPMremmsvx6l9BLC04LYE6ZFW4x7e4HkTe3LwBmtuYYQwpeS4XKqzhubTIkaQ1Nr+eXxeori0zuwupXMovBQ==}
+ got@14.4.1:
+ resolution: {integrity: sha512-IvDJbJBUeexX74xNQuMIVgCRRuNOm5wuK+OC3Dc2pnSoh1AOmgc7JVj7WC+cJ4u0aPcO9KZ2frTXcqK4W/5qTQ==}
engines: {node: '>=20'}
graceful-fs@4.2.11:
@@ -7260,6 +7744,10 @@ packages:
resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==}
engines: {node: '>= 14'}
+ http-proxy-agent@7.0.2:
+ resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
+ engines: {node: '>= 14'}
+
http-signature@1.2.0:
resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==}
engines: {node: '>=0.8', npm: '>=1.3.7'}
@@ -7292,6 +7780,10 @@ packages:
resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==}
engines: {node: '>= 14'}
+ https-proxy-agent@7.0.4:
+ resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==}
+ engines: {node: '>= 14'}
+
human-signals@1.1.1:
resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==}
engines: {node: '>=8.12.0'}
@@ -7308,6 +7800,10 @@ packages:
resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
engines: {node: '>=16.17.0'}
+ human-signals@7.0.0:
+ resolution: {integrity: sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==}
+ engines: {node: '>=18.18.0'}
+
iconv-lite@0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
engines: {node: '>=0.10.0'}
@@ -7347,8 +7843,8 @@ packages:
import-in-the-middle@1.4.2:
resolution: {integrity: sha512-9WOz1Yh/cvO/p69sxRmhyQwrIGGSp7EIdcb+fFNVi7CzQGQB8U1/1XrKVSbEd/GNOAeM0peJtmi7+qphe7NvAw==}
- import-in-the-middle@1.7.4:
- resolution: {integrity: sha512-Lk+qzWmiQuRPPulGQeK5qq0v32k2bHnWrRPFgqyvhw7Kkov5L6MOLOIU3pcWeujc9W4q54Cp3Q2WV16eQkc7Bg==}
+ import-in-the-middle@1.8.1:
+ resolution: {integrity: sha512-yhRwoHtiLGvmSozNOALgjRPFI6uYsds60EoMqqnXyyv+JOIW/BrrLejuTGBt+bq0T5tLzOHrN0T7xYTm4Qt/ng==}
import-lazy@4.0.0:
resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
@@ -7398,6 +7894,9 @@ packages:
intersection-observer@0.12.2:
resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==}
+ invariant@2.2.4:
+ resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
+
ioredis@5.4.1:
resolution: {integrity: sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==}
engines: {node: '>=12.22.0'}
@@ -7405,13 +7904,13 @@ packages:
iota-array@1.0.0:
resolution: {integrity: sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA==}
- ip-address@7.1.0:
- resolution: {integrity: sha512-V9pWC/VJf2lsXqP7IWJ+pe3P1/HCYGBMZrrnT62niLGjAfCbeiwXMUxaeHvnVlz19O27pvXP4azs+Pj/A0x+SQ==}
- engines: {node: '>= 10'}
+ ip-address@9.0.5:
+ resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
+ engines: {node: '>= 12'}
- ip-cidr@3.1.0:
- resolution: {integrity: sha512-HUCn4snshEX1P8cja/IyU3qk8FVDW8T5zZcegDFbu4w7NojmAhk5NcOgj3M8+0fmumo1afJTPDtJlzsxLdOjtg==}
- engines: {node: '>=10.0.0'}
+ ip-cidr@4.0.1:
+ resolution: {integrity: sha512-V5Nce94SVJ7NtyT/UKUeTM7sY3V7TEk48hURhtBgTiGduOa5t6p9Hd+zBOGvr4Gu7iWPxFVYNl017p0akQA84w==}
+ engines: {node: '>=16.14.0'}
ip-regex@4.3.0:
resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==}
@@ -7553,10 +8052,6 @@ packages:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
- is-path-cwd@2.2.0:
- resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
- engines: {node: '>=6'}
-
is-path-inside@3.0.3:
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
engines: {node: '>=8'}
@@ -7605,12 +8100,16 @@ packages:
resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ is-stream@4.0.1:
+ resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==}
+ engines: {node: '>=18'}
+
is-string@1.0.7:
resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
engines: {node: '>= 0.4'}
- is-svg@5.0.0:
- resolution: {integrity: sha512-sRl7J0oX9yUNamSdc8cwgzh9KBLnQXNzGmW0RVHwg/jEYjGNYHC6UvnYD8+hAeut9WwxRvhG9biK7g/wDGxcMw==}
+ is-svg@5.0.1:
+ resolution: {integrity: sha512-mLYxDsfisQWdS4+gSblAwhATDoNMS/tx8G7BKA+aBIf7F0m1iUwMvuKAo6mW4WMleQAEE50I1Zqef9yMMfHk3w==}
engines: {node: '>=14.16'}
is-symbol@1.0.4:
@@ -7628,6 +8127,10 @@ packages:
resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
engines: {node: '>=10'}
+ is-unicode-supported@2.0.0:
+ resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==}
+ engines: {node: '>=18'}
+
is-weakmap@2.0.1:
resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
@@ -7684,6 +8187,10 @@ packages:
resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
engines: {node: '>=10'}
+ istanbul-lib-source-maps@5.0.4:
+ resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==}
+ engines: {node: '>=10'}
+
istanbul-reports@3.1.6:
resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==}
engines: {node: '>=8'}
@@ -7696,6 +8203,10 @@ packages:
resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
engines: {node: '>=14'}
+ jackspeak@3.4.0:
+ resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==}
+ engines: {node: '>=14'}
+
jake@10.8.5:
resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==}
engines: {node: '>=10'}
@@ -7856,6 +8367,9 @@ packages:
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+ js-tokens@9.0.0:
+ resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==}
+
js-yaml@3.14.1:
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
hasBin: true
@@ -7883,8 +8397,8 @@ packages:
'@babel/preset-env':
optional: true
- jsdom@24.0.0:
- resolution: {integrity: sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==}
+ jsdom@24.1.0:
+ resolution: {integrity: sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==}
engines: {node: '>=18'}
peerDependencies:
canvas: ^2.11.2
@@ -7966,9 +8480,6 @@ packages:
jsrsasign@11.1.0:
resolution: {integrity: sha512-Ov74K9GihaK9/9WncTe1mPmvrO7Py665TUfUKvraXBpu+xcTWitrtuOwcjf4KMU9maPaYn0OuaWy0HOzy/GBXg==}
- jssha@3.3.1:
- resolution: {integrity: sha512-VCMZj12FCFMQYcFLPRm/0lOBbLi8uM2BhXPTqw3U4YAfs4AZfiApOoBLoN8cQE60Z50m1MYMTQVCfgF/KaCVhQ==}
-
jstransformer@1.0.0:
resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==}
@@ -8045,8 +8556,8 @@ packages:
enquirer:
optional: true
- local-pkg@0.4.3:
- resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
+ local-pkg@0.5.0:
+ resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
engines: {node: '>=14'}
locate-path@3.0.0:
@@ -8073,9 +8584,6 @@ packages:
lodash.isarguments@3.1.0:
resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==}
- lodash.isequal@4.5.0:
- resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
-
lodash.memoize@4.1.2:
resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
@@ -8157,9 +8665,8 @@ packages:
magic-string@0.30.10:
resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==}
- magic-string@0.30.7:
- resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==}
- engines: {node: '>=12'}
+ magicast@0.3.4:
+ resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==}
mailcheck@1.1.1:
resolution: {integrity: sha512-3WjL8+ZDouZwKlyJBMp/4LeziLFXgleOdsYu87piGcMLqhBzCsy2QFdbtAwv757TFC/rtqd738fgJw1tFQCSgA==}
@@ -8252,8 +8759,8 @@ packages:
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
engines: {node: '>= 0.6'}
- meilisearch@0.38.0:
- resolution: {integrity: sha512-bHaq8nYxSKw9/Qslq1Zes5g9tHgFkxy/I9o8942wv2PqlNOT0CzptIkh/x98N52GikoSZOXSQkgt6oMjtf5uZw==}
+ meilisearch@0.41.0:
+ resolution: {integrity: sha512-5KcGLxEXD7E+uNO7R68rCbGSHgCqeM3Q3RFFLSsN7ZrIgr8HPDXVAIlP4LHggAZfk0FkSzo8VSXifHCwa2k80g==}
memoizerific@1.11.3:
resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==}
@@ -8367,8 +8874,8 @@ packages:
micromark@4.0.0:
resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
- micromatch@4.0.5:
- resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ micromatch@4.0.7:
+ resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==}
engines: {node: '>=8.6'}
mime-db@1.52.0:
@@ -8480,6 +8987,10 @@ packages:
resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
engines: {node: '>=16 || 14 >=14.17'}
+ minipass@7.1.2:
+ resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
minizlib@1.3.3:
resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==}
@@ -8541,13 +9052,13 @@ packages:
msgpackr@1.10.1:
resolution: {integrity: sha512-r5VRLv9qouXuLiIBrLpl2d5ZvPt8svdQTl5/vMvE4nzDMyEX4sgW5yWhuBBj5UmgwOTWj8CIdSXn5sAfsHAWIQ==}
- msw-storybook-addon@2.0.1:
- resolution: {integrity: sha512-pZ3JDQ9HkGQ3XDMIHvMcDSI4Vbp/LHmwHwiZu+pHLzimtI1vhAo1swjFEDAEJuBcozljYvREEC4sS7rQHPNtWg==}
+ msw-storybook-addon@2.0.2:
+ resolution: {integrity: sha512-sdw++X+AoUbaG2ku493ViVqCA/LfqnybXsKXyPUrF3ZS/x8BqGBnkBLmT/0SHCC5zIO3Vfm5zlclAxnhqOOikQ==}
peerDependencies:
msw: ^2.0.0
- msw@2.2.14:
- resolution: {integrity: sha512-64i8rNCa1xzDK8ZYsTrVMli05D687jty8+Th+PU5VTbJ2/4P7fkQFVyDQ6ZFT5FrNR8z2BHhbY47fKNvfHrumA==}
+ msw@2.3.1:
+ resolution: {integrity: sha512-ocgvBCLn/5l3jpl1lssIb3cniuACJLoOfZu01e3n5dbJrpA5PeeWn28jCLgQDNt6d7QT8tF2fYRzm9JoEHtiig==}
engines: {node: '>=18'}
hasBin: true
peerDependencies:
@@ -8701,8 +9212,8 @@ packages:
node-releases@2.0.14:
resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
- nodemailer@6.9.13:
- resolution: {integrity: sha512-7o38Yogx6krdoBf3jCAqnIN4oSQFx+fMa0I7dK1D+me9kBxx12D+/33wSb+fhOCtIxvYJ+4x4IMEhmhCKfAiOA==}
+ nodemailer@6.9.14:
+ resolution: {integrity: sha512-Dobp/ebDKBvz91sbtRKhcznLThrKxKt97GI2FAlAyy+fk19j73Uz3sBXolVtmcXjaorivqsbbbjDY+Jkt4/bQA==}
engines: {node: '>=6.0.0'}
nodemon@3.0.2:
@@ -8710,8 +9221,8 @@ packages:
engines: {node: '>=10'}
hasBin: true
- nodemon@3.1.0:
- resolution: {integrity: sha512-xqlktYlDMCepBJd43ZQhjWwMw2obW/JRvkrLxq5RCNcuDDX1DbcPT+qT1IlIIdf+DhnWs90JpTMe+Y5KxOchvA==}
+ nodemon@3.1.4:
+ resolution: {integrity: sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==}
engines: {node: '>=10'}
hasBin: true
@@ -8757,6 +9268,10 @@ packages:
resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==}
engines: {node: '>=14.16'}
+ normalize-url@8.0.1:
+ resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==}
+ engines: {node: '>=14.16'}
+
npm-run-path@2.0.2:
resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==}
engines: {node: '>=4'}
@@ -8769,6 +9284,10 @@ packages:
resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ npm-run-path@5.3.0:
+ resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
npmlog@5.0.1:
resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
@@ -8780,8 +9299,8 @@ packages:
nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
- nwsapi@2.2.9:
- resolution: {integrity: sha512-2f3F0SEEer8bBu0dsNCFF50N0cTThV1nWFYcEYFZttdW0lDAoybv9cQoK7X7/68Z89S7FoRrVjP1LPX4XRf9vg==}
+ nwsapi@2.2.10:
+ resolution: {integrity: sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==}
oauth-sign@0.9.0:
resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==}
@@ -8894,8 +9413,8 @@ packages:
ospath@1.2.2:
resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==}
- otpauth@9.2.3:
- resolution: {integrity: sha512-oAG55Ch4MBL5Jdg+RXfKiRCZ2lCwa/UIQKsmSfYbGGLSI4dErY1HPZv0JGPPESIYGyDO3s9iJqM4HU/1IppMoQ==}
+ otpauth@9.3.1:
+ resolution: {integrity: sha512-E6d2tMxPofHNk4sRFp+kqW7vQ+WJGO9VLI2N/W00DnI+ThskU12Qa10kyNSGklrzhN5c+wRUsN4GijVgCU2N9w==}
outvariant@1.4.2:
resolution: {integrity: sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==}
@@ -8924,9 +9443,9 @@ packages:
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines: {node: '>=10'}
- p-limit@4.0.0:
- resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ p-limit@5.0.0:
+ resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==}
+ engines: {node: '>=18'}
p-locate@3.0.0:
resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
@@ -8956,6 +9475,9 @@ packages:
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
engines: {node: '>=6'}
+ package-json-from-dist@1.0.0:
+ resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==}
+
pako@0.2.9:
resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==}
@@ -8970,6 +9492,10 @@ packages:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
+ parse-ms@4.0.0:
+ resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==}
+ engines: {node: '>=18'}
+
parse-srcset@1.0.2:
resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
@@ -9030,6 +9556,10 @@ packages:
resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==}
engines: {node: '>=16 || 14 >=14.17'}
+ path-scurry@1.11.1:
+ resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
+ engines: {node: '>=16 || 14 >=14.18'}
+
path-to-regexp@0.1.7:
resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
@@ -9046,6 +9576,10 @@ packages:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
+ path-type@5.0.0:
+ resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==}
+ engines: {node: '>=12'}
+
pathe@1.1.2:
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
@@ -9087,9 +9621,6 @@ packages:
peerDependencies:
pg: '>=8.0'
- pg-protocol@1.6.0:
- resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==}
-
pg-protocol@1.6.1:
resolution: {integrity: sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==}
@@ -9101,8 +9632,8 @@ packages:
resolution: {integrity: sha512-hRCSDuLII9/LE3smys1hRHcu5QGcLs9ggT7I/TCs0IE+2Eesxi9+9RWAAwZ0yaGjxoWICF/YHLOEjydGujoJ+g==}
engines: {node: '>=10'}
- pg@8.11.5:
- resolution: {integrity: sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==}
+ pg@8.12.0:
+ resolution: {integrity: sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ==}
engines: {node: '>= 8.0.0'}
peerDependencies:
pg-native: '>=3.0.1'
@@ -9113,8 +9644,8 @@ packages:
pgpass@1.0.5:
resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==}
- photoswipe@5.4.3:
- resolution: {integrity: sha512-9UC6oJBK4oXFZ5HcdlcvGkfEHsVrmE4csUdCQhEjHYb3PvPLO3PG7UhnPuOgjxwmhq5s17Un5NUdum01LgBDng==}
+ photoswipe@5.4.4:
+ resolution: {integrity: sha512-WNFHoKrkZNnvFFhbHL93WDkW3ifwVOXSW3w1UuZZelSmgXpIGiZSNlZJq37rR8YejqME2rHs9EhH9ZvlvFH2NA==}
engines: {node: '>= 0.12.0'}
picocolors@1.0.0:
@@ -9136,14 +9667,14 @@ packages:
resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
engines: {node: '>=6'}
- pino-abstract-transport@1.1.0:
- resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==}
+ pino-abstract-transport@1.2.0:
+ resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==}
- pino-std-serializers@6.1.0:
- resolution: {integrity: sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g==}
+ pino-std-serializers@7.0.0:
+ resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==}
- pino@8.17.0:
- resolution: {integrity: sha512-ey+Mku+PVPhvxglLXMg1l1zQMwSHuNrKC3MD40EDZbkckJmmuY7DYZLIOwwjZ8ix/Nvhe9dZt5H99cgkot9bAw==}
+ pino@9.2.0:
+ resolution: {integrity: sha512-g3/hpwfujK5a4oVbaefoJxezLzsDgLcNJeITvC6yrfwYeT9la+edCK42j5QpEQSQCZgTKapXvnQIdgZwvRaZug==}
hasBin: true
pirates@4.0.5:
@@ -9411,8 +9942,8 @@ packages:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
- prettier@3.2.5:
- resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
+ prettier@3.3.2:
+ resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==}
engines: {node: '>=14'}
hasBin: true
@@ -9432,6 +9963,10 @@ packages:
resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==}
engines: {node: '>= 0.8'}
+ pretty-ms@9.0.0:
+ resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==}
+ engines: {node: '>=18'}
+
private-ip@2.3.3:
resolution: {integrity: sha512-5zyFfekIVUOTVbL92hc8LJOtE/gyGHeREHkJ2yTyByP8Q2YZVoBqLg3EfYLeF0oVvGqtaEX2t2Qovja0/gStXw==}
@@ -9517,12 +10052,15 @@ packages:
pug-attrs@3.0.0:
resolution: {integrity: sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==}
- pug-code-gen@3.0.2:
- resolution: {integrity: sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==}
+ pug-code-gen@3.0.3:
+ resolution: {integrity: sha512-cYQg0JW0w32Ux+XTeZnBEeuWrAY7/HNE6TWnhiHGnnRYlCgyAUPoyh9KzCMa9WhcJlJ1AtQqpEYHc+vbCzA+Aw==}
pug-error@2.0.0:
resolution: {integrity: sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==}
+ pug-error@2.1.0:
+ resolution: {integrity: sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==}
+
pug-filters@4.0.0:
resolution: {integrity: sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==}
@@ -9547,8 +10085,8 @@ packages:
pug-walk@2.0.0:
resolution: {integrity: sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==}
- pug@3.0.2:
- resolution: {integrity: sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==}
+ pug@3.0.3:
+ resolution: {integrity: sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g==}
pump@2.0.1:
resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==}
@@ -9631,10 +10169,6 @@ packages:
ratelimiter@3.4.1:
resolution: {integrity: sha512-5FJbRW/Jkkdk29ksedAfWFkQkhbUrMx3QJGwMKAypeIiQf4yrLW+gtPKZiaWt4zPrtw1uGufOjGO7UGM6VllsQ==}
- raw-body@2.5.1:
- resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==}
- engines: {node: '>= 0.8'}
-
raw-body@2.5.2:
resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
engines: {node: '>= 0.8'}
@@ -9643,8 +10177,8 @@ packages:
resolution: {integrity: sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA==}
engines: {node: '>=12'}
- re2@1.21.2:
- resolution: {integrity: sha512-f8jqI0vCbwDhzY66Fgx1V2RoNDdmAupKkqRqR/AEF+2/MZNRbtEOjax6oHSht95MU40vx6+2ITsJr/9esukckg==}
+ re2@1.21.3:
+ resolution: {integrity: sha512-GI+KoGkHT4kxTaX+9p0FgNB1XUnCndO9slG5qqeEoZ7kbf6Dk6ohQVpmwKVeSp7LPLn+g6Q3BaCopz4oHuBDuQ==}
react-colorful@5.6.1:
resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==}
@@ -9684,6 +10218,36 @@ packages:
react-is@18.2.0:
resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
+ react-remove-scroll-bar@2.3.6:
+ resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-remove-scroll@2.5.7:
+ resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-style-singleton@2.2.1:
+ resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
react@18.3.1:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
@@ -9725,10 +10289,6 @@ packages:
resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
engines: {node: '>= 12.13.0'}
- recast@0.23.4:
- resolution: {integrity: sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw==}
- engines: {node: '>= 4'}
-
recast@0.23.6:
resolution: {integrity: sha512-9FHoNjX1yjuesMwuthAmPKabxYQdOgihFYmT5ebXfYGBcnqXZf3WOVz+5foEZ8Y83P4ZY6yQD5GMmtV+pgCCAQ==}
engines: {node: '>= 4'}
@@ -9852,9 +10412,6 @@ packages:
resolution: {integrity: sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg==}
engines: {node: '>=10'}
- resolve@1.19.0:
- resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==}
-
resolve@1.22.8:
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
hasBin: true
@@ -9887,6 +10444,7 @@ packages:
rimraf@2.6.3:
resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==}
+ deprecated: Rimraf versions prior to v4 are no longer supported
hasBin: true
rimraf@2.7.1:
@@ -9897,14 +10455,17 @@ packages:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
hasBin: true
- rollup@4.17.2:
- resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==}
+ rollup@4.18.0:
+ resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
rrweb-cssom@0.6.0:
resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==}
+ rrweb-cssom@0.7.1:
+ resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==}
+
rss-parser@3.13.0:
resolution: {integrity: sha512-7jWUBV5yGN3rqMMj7CZufl/291QAhvrrGpDNE4k/02ZchL0npisiYYqULF71jCEKoIiHvK/Q2e6IkDwPziT7+w==}
@@ -9940,8 +10501,8 @@ packages:
sanitize-html@2.13.0:
resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==}
- sass@1.76.0:
- resolution: {integrity: sha512-nc3LeqvF2FNW5xGF1zxZifdW3ffIz5aBb7I7tSvOoNu7z1RQ6pFt9MBuiPtjgaI62YWrM/txjWlOCFiGtf2xpw==}
+ sass@1.77.6:
+ resolution: {integrity: sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==}
engines: {node: '>=14.0.0'}
hasBin: true
@@ -10015,8 +10576,8 @@ packages:
resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
engines: {node: '>=8'}
- sharp@0.33.3:
- resolution: {integrity: sha512-vHUeXJU1UvlO/BNwTpT0x/r53WkLUVxrmb5JTgW92fdFCFk0ispLMAeu/jPO2vjkXM1fYUi3K7/qcLF47pwM1A==}
+ sharp@0.33.4:
+ resolution: {integrity: sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==}
engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0}
shebang-command@1.2.0:
@@ -10035,8 +10596,8 @@ packages:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
- shiki@1.4.0:
- resolution: {integrity: sha512-5WIn0OL8PWm7JhnTwRWXniy6eEDY234mRrERVlFa646V2ErQqwIFd2UML7e0Pq9eqSKLoMa3Ke+xbsF+DAuy+Q==}
+ shiki@1.10.0:
+ resolution: {integrity: sha512-YD2sXQ+TMD/F9BimV9Jn0wj35pqOvywvOG/3PB6hGHyGKlM7TJ9tyJ02jOb2kF8F0HfJwKNYrh3sW7jEcuRlXA==}
shimmer@1.2.1:
resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==}
@@ -10054,8 +10615,8 @@ packages:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
- simple-oauth2@5.0.0:
- resolution: {integrity: sha512-8291lo/z5ZdpmiOFzOs1kF3cxn22bMj5FFH+DNUppLJrpoIlM1QnFiE7KpshHu3J3i21TVcx4yW+gXYjdCKDLQ==}
+ simple-oauth2@5.0.1:
+ resolution: {integrity: sha512-JcmGdzvbHKU3GegF3BK6zNi46DqFTxPMjwYddu2bgYqZuy7Gtm8U8wdedkVE4lI4LEqXocmPBLAvC4BIiiBc5w==}
simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
@@ -10155,6 +10716,10 @@ packages:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines: {node: '>=8'}
+ slash@5.1.0:
+ resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
+ engines: {node: '>=14.16'}
+
slice-ansi@3.0.0:
resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==}
engines: {node: '>=8'}
@@ -10175,8 +10740,8 @@ packages:
resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==}
engines: {node: '>= 10.13.0', npm: '>= 3.0.0'}
- sonic-boom@3.7.0:
- resolution: {integrity: sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==}
+ sonic-boom@4.0.1:
+ resolution: {integrity: sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==}
sort-keys-length@1.0.1:
resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==}
@@ -10236,8 +10801,8 @@ packages:
sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
- sprintf-js@1.1.2:
- resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==}
+ sprintf-js@1.1.3:
+ resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
sshpk@1.17.0:
resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==}
@@ -10258,8 +10823,8 @@ packages:
standard-as-callback@2.1.0:
resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==}
- start-server-and-test@2.0.3:
- resolution: {integrity: sha512-QsVObjfjFZKJE6CS6bSKNwWZCKBG6975/jKRPPGFfFh+yOQglSeGXiNWjzgQNXdphcBI9nXbyso9tPfX4YAUhg==}
+ start-server-and-test@2.0.4:
+ resolution: {integrity: sha512-CKNeBTcP0hVqIlNismHMudb9q3lLdAjcVPO13/7gfI66fcJpeIb/o4NzQd1JK/CD+lfWVqr10ZH9Y14+OwlJuw==}
engines: {node: '>=16'}
hasBin: true
@@ -10296,8 +10861,8 @@ packages:
react-dom:
optional: true
- storybook@8.0.9:
- resolution: {integrity: sha512-/Mvij0Br5bUwJpCvqAUZMEDIWmdRxEyllvVj8Ukw5lIWJePxfpSsz4px5jg9+R6B9tO8sQSqjg4HJvQ/pZk8Tg==}
+ storybook@8.1.11:
+ resolution: {integrity: sha512-3KjIhF8lczXhKKHyHbOqV30dvuRYJSxc0d1as/C8kybuwE7cLaydhWGma7VBv5bTSPv0rDzucx7KcO+achArPg==}
hasBin: true
stream-browserify@3.0.0:
@@ -10395,6 +10960,10 @@ packages:
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
engines: {node: '>=12'}
+ strip-final-newline@4.0.0:
+ resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==}
+ engines: {node: '>=18'}
+
strip-indent@3.0.0:
resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
engines: {node: '>=8'}
@@ -10407,8 +10976,8 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- strip-literal@1.3.0:
- resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==}
+ strip-literal@2.1.0:
+ resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==}
strip-outer@2.0.0:
resolution: {integrity: sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==}
@@ -10459,8 +11028,8 @@ packages:
symbol-tree@3.2.4:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
- systeminformation@5.22.7:
- resolution: {integrity: sha512-AWxlP05KeHbpGdgvZkcudJpsmChc2Y5Eo/GvxG/iUA/Aws5LZKHAMSeAo+V+nD+nxWZaxrwpWcnx4SH3oxNL3A==}
+ systeminformation@5.22.11:
+ resolution: {integrity: sha512-aLws5yi4KCHTb0BVvbodQY5bY8eW4asMRDTxTW46hqw9lGjACX6TlLdJrkdoHYRB0qs+MekqEq1zG7WDnWE8Ug==}
engines: {node: '>=8.0.0'}
os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android]
hasBin: true
@@ -10490,20 +11059,20 @@ packages:
telejson@7.2.0:
resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==}
- temp-dir@2.0.0:
- resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==}
- engines: {node: '>=8'}
+ temp-dir@3.0.0:
+ resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==}
+ engines: {node: '>=14.16'}
temp@0.8.4:
resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==}
engines: {node: '>=6.0.0'}
- tempy@1.0.1:
- resolution: {integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==}
- engines: {node: '>=10'}
+ tempy@3.1.0:
+ resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==}
+ engines: {node: '>=14.16'}
- terser@5.30.3:
- resolution: {integrity: sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==}
+ terser@5.31.1:
+ resolution: {integrity: sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==}
engines: {node: '>=10'}
hasBin: true
@@ -10524,14 +11093,14 @@ packages:
thenify@3.3.1:
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
- thread-stream@2.3.0:
- resolution: {integrity: sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==}
+ thread-stream@3.1.0:
+ resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==}
- three@0.164.1:
- resolution: {integrity: sha512-iC/hUBbl1vzFny7f5GtqzVXYjMJKaTPxiCxXfrvVdBi1Sf+jhd1CAkitiFwC7mIBFCo3MrDLJG97yisoaWig0w==}
+ three@0.165.0:
+ resolution: {integrity: sha512-cc96IlVYGydeceu0e5xq70H8/yoVT/tXBxV/W8A/U6uOq7DXc4/s1Mkmnu6SqoYGhSRWWYFOhVwvq6V0VtbplA==}
- throttle-debounce@5.0.0:
- resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==}
+ throttle-debounce@5.0.2:
+ resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==}
engines: {node: '>=12.22'}
throttleit@1.0.0:
@@ -10546,9 +11115,6 @@ packages:
through@2.3.8:
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
- tiny-invariant@1.3.1:
- resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==}
-
tiny-invariant@1.3.3:
resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
@@ -10562,8 +11128,8 @@ packages:
tinycolor2@1.6.0:
resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
- tinypool@0.7.0:
- resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==}
+ tinypool@0.8.4:
+ resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==}
engines: {node: '>=14.0.0'}
tinyspy@2.2.0:
@@ -10588,10 +11154,6 @@ packages:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
- toad-cache@3.3.0:
- resolution: {integrity: sha512-3oDzcogWGHZdkwrHyvJVpPjA7oNzY6ENOV3PsWJY9XYPZ6INo94Yd47s5may1U+nleBPwDhrRiTPMIvKaa3MQg==}
- engines: {node: '>=12'}
-
toad-cache@3.7.0:
resolution: {integrity: sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==}
engines: {node: '>=12'}
@@ -10618,8 +11180,8 @@ packages:
resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==}
engines: {node: '>=0.8'}
- tough-cookie@4.1.3:
- resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
+ tough-cookie@4.1.4:
+ resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==}
engines: {node: '>=6'}
tr46@0.0.3:
@@ -10666,8 +11228,8 @@ packages:
ts-map@1.0.3:
resolution: {integrity: sha512-vDWbsl26LIcPGmDpoVzjEP6+hvHZkBkLW7JpvwbCv/5IYPJlsbzCVXY3wsCeAxAUeTclNOUZxnLdGh3VBD/J6w==}
- tsc-alias@1.8.8:
- resolution: {integrity: sha512-OYUOd2wl0H858NvABWr/BoSKNERw3N9GTi3rHPK8Iv4O1UyUXIrTTOAZNHsjlVpXFOhpJBVARI1s+rzwLivN3Q==}
+ tsc-alias@1.8.10:
+ resolution: {integrity: sha512-Ibv4KAWfFkFdKJxnWfVtdOmB0Zi1RJVxcbPGiCDsFpCQSsmpWyuzHG3rQyI5YkobWwxFPEyQfu1hdo4qLG2zPw==}
hasBin: true
tsconfig-paths@3.15.0:
@@ -10677,8 +11239,8 @@ packages:
resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==}
engines: {node: '>=6'}
- tsd@0.30.7:
- resolution: {integrity: sha512-oTiJ28D6B/KXoU3ww/Eji+xqHJojiuPVMwA12g4KYX1O72N93Nb6P3P3h2OAhhf92Xl8NIhb/xFmBZd5zw/xUw==}
+ tsd@0.31.1:
+ resolution: {integrity: sha512-sSL84A0SFwx2xGMWrxlGaarKFSQszWjJS2vgNDDLwatytzg2aq6ShlwHsBYxRNmjzXISODwMva5ZOdAg/4AoOA==}
engines: {node: '>=14.16'}
hasBin: true
@@ -10688,6 +11250,9 @@ packages:
tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+ tslib@2.6.3:
+ resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
+
tsx@4.4.0:
resolution: {integrity: sha512-4fwcEjRUxW20ciSaMB8zkpGwCPxuRGnadDuj/pBk5S9uT29zvWz15PK36GrKJo45mSJomDxVejZ73c6lr3811Q==}
engines: {node: '>=18.0.0'}
@@ -10707,10 +11272,6 @@ packages:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
- type-fest@0.16.0:
- resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==}
- engines: {node: '>=10'}
-
type-fest@0.18.1:
resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
engines: {node: '>=10'}
@@ -10731,10 +11292,18 @@ packages:
resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
engines: {node: '>=8'}
+ type-fest@1.4.0:
+ resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
+ engines: {node: '>=10'}
+
type-fest@2.19.0:
resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
engines: {node: '>=12.20'}
+ type-fest@4.20.1:
+ resolution: {integrity: sha512-R6wDsVsoS9xYOpy8vgeBlqpdOyzJ12HNfQhC/aAKWM3YoCV9TtunJzh/QpkMgeDhkoynDcw5f1y+qF9yc/HHyg==}
+ engines: {node: '>=16'}
+
type-fest@4.9.0:
resolution: {integrity: sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==}
engines: {node: '>=16'}
@@ -10829,8 +11398,8 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
- typescript@5.5.2:
- resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==}
+ typescript@5.5.3:
+ resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==}
engines: {node: '>=14.17'}
hasBin: true
@@ -10882,6 +11451,10 @@ packages:
resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
engines: {node: '>=4'}
+ unicorn-magic@0.1.0:
+ resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
+ engines: {node: '>=18'}
+
unified@11.0.4:
resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==}
@@ -10896,9 +11469,9 @@ packages:
resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- unique-string@2.0.0:
- resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
- engines: {node: '>=8'}
+ unique-string@3.0.0:
+ resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==}
+ engines: {node: '>=12'}
unist-util-is@6.0.0:
resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
@@ -10950,6 +11523,26 @@ packages:
url-parse@1.5.10:
resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
+ use-callback-ref@1.3.2:
+ resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ use-sidecar@1.1.2:
+ resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
utf-8-validate@6.0.3:
resolution: {integrity: sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA==}
engines: {node: '>=6.14.2'}
@@ -10964,6 +11557,10 @@ packages:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
engines: {node: '>= 0.4.0'}
+ uuid@10.0.0:
+ resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==}
+ hasBin: true
+
uuid@3.4.0:
resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==}
deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
@@ -10977,8 +11574,8 @@ packages:
resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
hasBin: true
- v-code-diff@1.11.0:
- resolution: {integrity: sha512-lBlO+FXw3I3qFKbnlorXZ4sb5cFnrdxlc6lj3Y1CWrbn2LC7PoVbGlwH0W+nvAVX1rdJhhc15rKIQdHyMkXe/w==}
+ v-code-diff@1.12.0:
+ resolution: {integrity: sha512-vvdCBG02mIIiW6Gx6jF119hzxELt+6TlJIwchglR1JYzboHePNxIkVBjR/aoAOVlsGa+5Vtb77cd/N84nrXWPA==}
peerDependencies:
'@vue/composition-api': ^1.4.9
vue: ^2.6.0 || >=3.0.0
@@ -10993,10 +11590,6 @@ packages:
validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
- validator@13.9.0:
- resolution: {integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==}
- engines: {node: '>= 0.10'}
-
vary@1.1.2:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
@@ -11011,16 +11604,16 @@ packages:
vfile@6.0.1:
resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
- vite-node@0.34.6:
- resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==}
- engines: {node: '>=v14.18.0'}
+ vite-node@1.6.0:
+ resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==}
+ engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
vite-plugin-turbosnap@1.0.3:
resolution: {integrity: sha512-p4D8CFVhZS412SyQX125qxyzOgIFouwOcvjZWk6bQbNPR1wtaEzFT6jZxAjf1dejlGqa6fqHcuCvQea6EWUkUA==}
- vite@5.2.11:
- resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==}
+ vite@5.3.2:
+ resolution: {integrity: sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@@ -11053,22 +11646,22 @@ packages:
peerDependencies:
vitest: '>=0.16.0'
- vitest@0.34.6:
- resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==}
- engines: {node: '>=v14.18.0'}
+ vitest@1.6.0:
+ resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==}
+ engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
- '@vitest/browser': '*'
- '@vitest/ui': '*'
+ '@types/node': ^18.0.0 || >=20.0.0
+ '@vitest/browser': 1.6.0
+ '@vitest/ui': 1.6.0
happy-dom: '*'
jsdom: '*'
- playwright: '*'
- safaridriver: '*'
- webdriverio: '*'
peerDependenciesMeta:
'@edge-runtime/vm':
optional: true
+ '@types/node':
+ optional: true
'@vitest/browser':
optional: true
'@vitest/ui':
@@ -11077,12 +11670,6 @@ packages:
optional: true
jsdom:
optional: true
- playwright:
- optional: true
- safaridriver:
- optional: true
- webdriverio:
- optional: true
void-elements@3.1.0:
resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
@@ -11109,6 +11696,9 @@ packages:
resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==}
hasBin: true
+ vscode-uri@3.0.8:
+ resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
+
vue-component-meta@2.0.16:
resolution: {integrity: sha512-IyIMClUMYcKxAL34GqdPbR4V45MUeHXqQiZlHxeYMV5Qcqp4M+CEmtGpF//XBSS138heDkYkceHAtJQjLUB1Lw==}
peerDependencies:
@@ -11123,8 +11713,8 @@ packages:
vue-component-type-helpers@2.0.16:
resolution: {integrity: sha512-qisL/iAfdO++7w+SsfYQJVPj6QKvxp4i1MMxvsNO41z/8zu3KuAw9LkhKUfP/kcOWGDxESp+pQObWppXusejCA==}
- vue-component-type-helpers@2.0.21:
- resolution: {integrity: sha512-3NaicyZ7N4B6cft4bfb7dOnPbE9CjLcx+6wZWAg5zwszfO4qXRh+U52dN5r5ZZfc6iMaxKCEcoH9CmxxoFZHLg==}
+ vue-component-type-helpers@2.0.24:
+ resolution: {integrity: sha512-Jr5N8QVYEcbQuMN1LRgvg61758G8HTnzUlQsAFOxx6Y6X8kmhJ7C+jOvWsQruYxi3uHhhS6BghyRlyiwO99DBg==}
vue-demi@0.14.7:
resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==}
@@ -11142,8 +11732,8 @@ packages:
peerDependencies:
vue: '>=2'
- vue-eslint-parser@9.4.2:
- resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==}
+ vue-eslint-parser@9.4.3:
+ resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
@@ -11162,14 +11752,14 @@ packages:
vue-template-compiler@2.7.14:
resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==}
- vue-tsc@2.0.16:
- resolution: {integrity: sha512-/gHAWJa216PeEhfxtAToIbxdWgw01wuQzo48ZUqMYVEyNqDp+OYV9xMO5HaPS2P3Ls0+EsjguMZLY4cGobX4Ew==}
+ vue-tsc@2.0.24:
+ resolution: {integrity: sha512-1qi4P8L7yS78A7OJ7CDDxUIZPD6nVxoQEgX3DkRZNi1HI1qOfzOJwQlNpmwkogSVD6S/XcanbW9sktzpSxz6rA==}
hasBin: true
peerDependencies:
- typescript: '*'
+ typescript: '>=5.0.0'
- vue@3.4.26:
- resolution: {integrity: sha512-bUIq/p+VB+0xrJubaemrfhk1/FiW9iX+pDV+62I/XJ6EkspAO9/DXEjbDFoe8pIfOZBqfk45i9BMc41ptP/uRg==}
+ vue@3.4.31:
+ resolution: {integrity: sha512-njqRrOy7W3YLAlVqSKpBebtZpDVg21FPoaq1I7f/+qqBThK9ChAIjkRWgeP6Eat+8C+iia4P3OYqpATP21BCoQ==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
@@ -11310,8 +11900,8 @@ packages:
resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
- ws@8.17.0:
- resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==}
+ ws@8.17.1:
+ resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==}
engines: {node: '>=10.0.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -11403,10 +11993,9 @@ packages:
resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
engines: {node: '>=12.20'}
- z-schema@5.0.5:
- resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==}
- engines: {node: '>=8.0.0'}
- hasBin: true
+ yoctocolors@2.0.2:
+ resolution: {integrity: sha512-Ct97huExsu7cWeEjmrXlofevF8CvzUglJ4iGUet5B8xn1oumtAZBpHU4GzYuoE6PVqcZ5hghtBrSlhwHuR1Jmw==}
+ engines: {node: '>=18'}
zip-stream@6.0.1:
resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==}
@@ -11442,458 +12031,510 @@ snapshots:
dependencies:
default-browser-id: 3.0.0
- '@aws-crypto/crc32@3.0.0':
+ '@aws-crypto/crc32@5.2.0':
dependencies:
- '@aws-crypto/util': 3.0.0
- '@aws-sdk/types': 3.413.0
- tslib: 1.14.1
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.598.0
+ tslib: 2.6.2
- '@aws-crypto/crc32c@3.0.0':
+ '@aws-crypto/crc32c@5.2.0':
dependencies:
- '@aws-crypto/util': 3.0.0
- '@aws-sdk/types': 3.413.0
- tslib: 1.14.1
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.598.0
+ tslib: 2.6.2
- '@aws-crypto/ie11-detection@3.0.0':
+ '@aws-crypto/sha1-browser@5.2.0':
dependencies:
- tslib: 1.14.1
-
- '@aws-crypto/sha1-browser@3.0.0':
- dependencies:
- '@aws-crypto/ie11-detection': 3.0.0
- '@aws-crypto/supports-web-crypto': 3.0.0
- '@aws-crypto/util': 3.0.0
- '@aws-sdk/types': 3.413.0
+ '@aws-crypto/supports-web-crypto': 5.2.0
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.598.0
'@aws-sdk/util-locate-window': 3.208.0
- '@aws-sdk/util-utf8-browser': 3.259.0
- tslib: 1.14.1
-
- '@aws-crypto/sha256-browser@3.0.0':
- dependencies:
- '@aws-crypto/ie11-detection': 3.0.0
- '@aws-crypto/sha256-js': 3.0.0
- '@aws-crypto/supports-web-crypto': 3.0.0
- '@aws-crypto/util': 3.0.0
- '@aws-sdk/types': 3.413.0
- '@aws-sdk/util-locate-window': 3.208.0
- '@aws-sdk/util-utf8-browser': 3.259.0
- tslib: 1.14.1
-
- '@aws-crypto/sha256-js@3.0.0':
- dependencies:
- '@aws-crypto/util': 3.0.0
- '@aws-sdk/types': 3.413.0
- tslib: 1.14.1
-
- '@aws-crypto/supports-web-crypto@3.0.0':
- dependencies:
- tslib: 1.14.1
-
- '@aws-crypto/util@3.0.0':
- dependencies:
- '@aws-sdk/types': 3.413.0
- '@aws-sdk/util-utf8-browser': 3.259.0
- tslib: 1.14.1
-
- '@aws-sdk/client-s3@3.412.0':
- dependencies:
- '@aws-crypto/sha1-browser': 3.0.0
- '@aws-crypto/sha256-browser': 3.0.0
- '@aws-crypto/sha256-js': 3.0.0
- '@aws-sdk/client-sts': 3.410.0
- '@aws-sdk/credential-provider-node': 3.410.0
- '@aws-sdk/middleware-bucket-endpoint': 3.410.0
- '@aws-sdk/middleware-expect-continue': 3.410.0
- '@aws-sdk/middleware-flexible-checksums': 3.410.0
- '@aws-sdk/middleware-host-header': 3.410.0
- '@aws-sdk/middleware-location-constraint': 3.410.0
- '@aws-sdk/middleware-logger': 3.410.0
- '@aws-sdk/middleware-recursion-detection': 3.410.0
- '@aws-sdk/middleware-sdk-s3': 3.410.0
- '@aws-sdk/middleware-signing': 3.410.0
- '@aws-sdk/middleware-ssec': 3.410.0
- '@aws-sdk/middleware-user-agent': 3.410.0
- '@aws-sdk/signature-v4-multi-region': 3.412.0
- '@aws-sdk/types': 3.410.0
- '@aws-sdk/util-endpoints': 3.410.0
- '@aws-sdk/util-user-agent-browser': 3.410.0
- '@aws-sdk/util-user-agent-node': 3.410.0
- '@aws-sdk/xml-builder': 3.310.0
- '@smithy/config-resolver': 2.0.9
- '@smithy/eventstream-serde-browser': 2.0.8
- '@smithy/eventstream-serde-config-resolver': 2.0.8
- '@smithy/eventstream-serde-node': 2.0.8
- '@smithy/fetch-http-handler': 2.1.4
- '@smithy/hash-blob-browser': 2.0.8
- '@smithy/hash-node': 2.0.8
- '@smithy/hash-stream-node': 2.0.8
- '@smithy/invalid-dependency': 2.0.8
- '@smithy/md5-js': 2.0.8
- '@smithy/middleware-content-length': 2.0.10
- '@smithy/middleware-endpoint': 2.0.8
- '@smithy/middleware-retry': 2.0.11
- '@smithy/middleware-serde': 2.0.8
- '@smithy/middleware-stack': 2.0.1
- '@smithy/node-config-provider': 2.0.11
- '@smithy/node-http-handler': 2.5.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/smithy-client': 2.1.5
- '@smithy/types': 2.6.0
- '@smithy/url-parser': 2.0.8
- '@smithy/util-base64': 2.0.0
- '@smithy/util-body-length-browser': 2.0.0
- '@smithy/util-body-length-node': 2.1.0
- '@smithy/util-defaults-mode-browser': 2.0.9
- '@smithy/util-defaults-mode-node': 2.0.11
- '@smithy/util-retry': 2.0.1
- '@smithy/util-stream': 2.0.11
'@smithy/util-utf8': 2.0.0
- '@smithy/util-waiter': 2.0.8
+ tslib: 2.6.2
+
+ '@aws-crypto/sha256-browser@5.2.0':
+ dependencies:
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-crypto/supports-web-crypto': 5.2.0
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.598.0
+ '@aws-sdk/util-locate-window': 3.208.0
+ '@smithy/util-utf8': 2.0.0
+ tslib: 2.6.2
+
+ '@aws-crypto/sha256-js@5.2.0':
+ dependencies:
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.598.0
+ tslib: 2.6.2
+
+ '@aws-crypto/supports-web-crypto@5.2.0':
+ dependencies:
+ tslib: 2.6.2
+
+ '@aws-crypto/util@5.2.0':
+ dependencies:
+ '@aws-sdk/types': 3.598.0
+ '@smithy/util-utf8': 2.0.0
+ tslib: 2.6.2
+
+ '@aws-sdk/client-s3@3.600.0':
+ dependencies:
+ '@aws-crypto/sha1-browser': 5.2.0
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/client-sso-oidc': 3.600.0(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/client-sts': 3.600.0
+ '@aws-sdk/core': 3.598.0
+ '@aws-sdk/credential-provider-node': 3.600.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/middleware-bucket-endpoint': 3.598.0
+ '@aws-sdk/middleware-expect-continue': 3.598.0
+ '@aws-sdk/middleware-flexible-checksums': 3.598.0
+ '@aws-sdk/middleware-host-header': 3.598.0
+ '@aws-sdk/middleware-location-constraint': 3.598.0
+ '@aws-sdk/middleware-logger': 3.598.0
+ '@aws-sdk/middleware-recursion-detection': 3.598.0
+ '@aws-sdk/middleware-sdk-s3': 3.598.0
+ '@aws-sdk/middleware-signing': 3.598.0
+ '@aws-sdk/middleware-ssec': 3.598.0
+ '@aws-sdk/middleware-user-agent': 3.598.0
+ '@aws-sdk/region-config-resolver': 3.598.0
+ '@aws-sdk/signature-v4-multi-region': 3.598.0
+ '@aws-sdk/types': 3.598.0
+ '@aws-sdk/util-endpoints': 3.598.0
+ '@aws-sdk/util-user-agent-browser': 3.598.0
+ '@aws-sdk/util-user-agent-node': 3.598.0
+ '@aws-sdk/xml-builder': 3.598.0
+ '@smithy/config-resolver': 3.0.4
+ '@smithy/core': 2.2.4
+ '@smithy/eventstream-serde-browser': 3.0.4
+ '@smithy/eventstream-serde-config-resolver': 3.0.3
+ '@smithy/eventstream-serde-node': 3.0.4
+ '@smithy/fetch-http-handler': 3.2.0
+ '@smithy/hash-blob-browser': 3.1.2
+ '@smithy/hash-node': 3.0.3
+ '@smithy/hash-stream-node': 3.1.2
+ '@smithy/invalid-dependency': 3.0.3
+ '@smithy/md5-js': 3.0.3
+ '@smithy/middleware-content-length': 3.0.3
+ '@smithy/middleware-endpoint': 3.0.4
+ '@smithy/middleware-retry': 3.0.7
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/middleware-stack': 3.0.3
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/node-http-handler': 3.1.1
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
+ '@smithy/util-base64': 3.0.0
+ '@smithy/util-body-length-browser': 3.0.0
+ '@smithy/util-body-length-node': 3.0.0
+ '@smithy/util-defaults-mode-browser': 3.0.7
+ '@smithy/util-defaults-mode-node': 3.0.7
+ '@smithy/util-endpoints': 2.0.4
+ '@smithy/util-retry': 3.0.3
+ '@smithy/util-stream': 3.0.5
+ '@smithy/util-utf8': 3.0.0
+ '@smithy/util-waiter': 3.1.2
+ tslib: 2.6.2
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/client-sso-oidc@3.600.0(@aws-sdk/client-sts@3.600.0)':
+ dependencies:
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/client-sts': 3.600.0
+ '@aws-sdk/core': 3.598.0
+ '@aws-sdk/credential-provider-node': 3.600.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/middleware-host-header': 3.598.0
+ '@aws-sdk/middleware-logger': 3.598.0
+ '@aws-sdk/middleware-recursion-detection': 3.598.0
+ '@aws-sdk/middleware-user-agent': 3.598.0
+ '@aws-sdk/region-config-resolver': 3.598.0
+ '@aws-sdk/types': 3.598.0
+ '@aws-sdk/util-endpoints': 3.598.0
+ '@aws-sdk/util-user-agent-browser': 3.598.0
+ '@aws-sdk/util-user-agent-node': 3.598.0
+ '@smithy/config-resolver': 3.0.4
+ '@smithy/core': 2.2.4
+ '@smithy/fetch-http-handler': 3.2.0
+ '@smithy/hash-node': 3.0.3
+ '@smithy/invalid-dependency': 3.0.3
+ '@smithy/middleware-content-length': 3.0.3
+ '@smithy/middleware-endpoint': 3.0.4
+ '@smithy/middleware-retry': 3.0.7
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/middleware-stack': 3.0.3
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/node-http-handler': 3.1.1
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
+ '@smithy/util-base64': 3.0.0
+ '@smithy/util-body-length-browser': 3.0.0
+ '@smithy/util-body-length-node': 3.0.0
+ '@smithy/util-defaults-mode-browser': 3.0.7
+ '@smithy/util-defaults-mode-node': 3.0.7
+ '@smithy/util-endpoints': 2.0.4
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-retry': 3.0.3
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.2
+ transitivePeerDependencies:
+ - '@aws-sdk/client-sts'
+ - aws-crt
+
+ '@aws-sdk/client-sso@3.598.0':
+ dependencies:
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/core': 3.598.0
+ '@aws-sdk/middleware-host-header': 3.598.0
+ '@aws-sdk/middleware-logger': 3.598.0
+ '@aws-sdk/middleware-recursion-detection': 3.598.0
+ '@aws-sdk/middleware-user-agent': 3.598.0
+ '@aws-sdk/region-config-resolver': 3.598.0
+ '@aws-sdk/types': 3.598.0
+ '@aws-sdk/util-endpoints': 3.598.0
+ '@aws-sdk/util-user-agent-browser': 3.598.0
+ '@aws-sdk/util-user-agent-node': 3.598.0
+ '@smithy/config-resolver': 3.0.4
+ '@smithy/core': 2.2.4
+ '@smithy/fetch-http-handler': 3.2.0
+ '@smithy/hash-node': 3.0.3
+ '@smithy/invalid-dependency': 3.0.3
+ '@smithy/middleware-content-length': 3.0.3
+ '@smithy/middleware-endpoint': 3.0.4
+ '@smithy/middleware-retry': 3.0.7
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/middleware-stack': 3.0.3
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/node-http-handler': 3.1.1
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
+ '@smithy/util-base64': 3.0.0
+ '@smithy/util-body-length-browser': 3.0.0
+ '@smithy/util-body-length-node': 3.0.0
+ '@smithy/util-defaults-mode-browser': 3.0.7
+ '@smithy/util-defaults-mode-node': 3.0.7
+ '@smithy/util-endpoints': 2.0.4
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-retry': 3.0.3
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.2
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/client-sts@3.600.0':
+ dependencies:
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/client-sso-oidc': 3.600.0(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/core': 3.598.0
+ '@aws-sdk/credential-provider-node': 3.600.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/middleware-host-header': 3.598.0
+ '@aws-sdk/middleware-logger': 3.598.0
+ '@aws-sdk/middleware-recursion-detection': 3.598.0
+ '@aws-sdk/middleware-user-agent': 3.598.0
+ '@aws-sdk/region-config-resolver': 3.598.0
+ '@aws-sdk/types': 3.598.0
+ '@aws-sdk/util-endpoints': 3.598.0
+ '@aws-sdk/util-user-agent-browser': 3.598.0
+ '@aws-sdk/util-user-agent-node': 3.598.0
+ '@smithy/config-resolver': 3.0.4
+ '@smithy/core': 2.2.4
+ '@smithy/fetch-http-handler': 3.2.0
+ '@smithy/hash-node': 3.0.3
+ '@smithy/invalid-dependency': 3.0.3
+ '@smithy/middleware-content-length': 3.0.3
+ '@smithy/middleware-endpoint': 3.0.4
+ '@smithy/middleware-retry': 3.0.7
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/middleware-stack': 3.0.3
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/node-http-handler': 3.1.1
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
+ '@smithy/util-base64': 3.0.0
+ '@smithy/util-body-length-browser': 3.0.0
+ '@smithy/util-body-length-node': 3.0.0
+ '@smithy/util-defaults-mode-browser': 3.0.7
+ '@smithy/util-defaults-mode-node': 3.0.7
+ '@smithy/util-endpoints': 2.0.4
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-retry': 3.0.3
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.2
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/core@3.598.0':
+ dependencies:
+ '@smithy/core': 2.2.4
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/signature-v4': 3.1.2
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
fast-xml-parser: 4.2.5
tslib: 2.6.2
- transitivePeerDependencies:
- - aws-crt
- '@aws-sdk/client-sso@3.410.0':
+ '@aws-sdk/credential-provider-env@3.598.0':
dependencies:
- '@aws-crypto/sha256-browser': 3.0.0
- '@aws-crypto/sha256-js': 3.0.0
- '@aws-sdk/middleware-host-header': 3.410.0
- '@aws-sdk/middleware-logger': 3.410.0
- '@aws-sdk/middleware-recursion-detection': 3.410.0
- '@aws-sdk/middleware-user-agent': 3.410.0
- '@aws-sdk/types': 3.410.0
- '@aws-sdk/util-endpoints': 3.410.0
- '@aws-sdk/util-user-agent-browser': 3.410.0
- '@aws-sdk/util-user-agent-node': 3.410.0
- '@smithy/config-resolver': 2.0.9
- '@smithy/fetch-http-handler': 2.1.4
- '@smithy/hash-node': 2.0.8
- '@smithy/invalid-dependency': 2.0.8
- '@smithy/middleware-content-length': 2.0.10
- '@smithy/middleware-endpoint': 2.0.8
- '@smithy/middleware-retry': 2.0.11
- '@smithy/middleware-serde': 2.0.8
- '@smithy/middleware-stack': 2.0.1
- '@smithy/node-config-provider': 2.0.11
- '@smithy/node-http-handler': 2.5.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/smithy-client': 2.1.5
- '@smithy/types': 2.6.0
- '@smithy/url-parser': 2.0.8
- '@smithy/util-base64': 2.0.0
- '@smithy/util-body-length-browser': 2.0.0
- '@smithy/util-body-length-node': 2.1.0
- '@smithy/util-defaults-mode-browser': 2.0.9
- '@smithy/util-defaults-mode-node': 2.0.11
- '@smithy/util-retry': 2.0.1
- '@smithy/util-utf8': 2.0.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/types': 3.3.0
+ tslib: 2.6.2
+
+ '@aws-sdk/credential-provider-http@3.598.0':
+ dependencies:
+ '@aws-sdk/types': 3.598.0
+ '@smithy/fetch-http-handler': 3.2.0
+ '@smithy/node-http-handler': 3.1.1
+ '@smithy/property-provider': 3.1.3
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ '@smithy/util-stream': 3.0.5
+ tslib: 2.6.2
+
+ '@aws-sdk/credential-provider-ini@3.598.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0)':
+ dependencies:
+ '@aws-sdk/client-sts': 3.600.0
+ '@aws-sdk/credential-provider-env': 3.598.0
+ '@aws-sdk/credential-provider-http': 3.598.0
+ '@aws-sdk/credential-provider-process': 3.598.0
+ '@aws-sdk/credential-provider-sso': 3.598.0(@aws-sdk/client-sso-oidc@3.600.0)
+ '@aws-sdk/credential-provider-web-identity': 3.598.0(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/types': 3.598.0
+ '@smithy/credential-provider-imds': 3.1.3
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
transitivePeerDependencies:
+ - '@aws-sdk/client-sso-oidc'
- aws-crt
- '@aws-sdk/client-sts@3.410.0':
+ '@aws-sdk/credential-provider-node@3.600.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0)':
dependencies:
- '@aws-crypto/sha256-browser': 3.0.0
- '@aws-crypto/sha256-js': 3.0.0
- '@aws-sdk/credential-provider-node': 3.410.0
- '@aws-sdk/middleware-host-header': 3.410.0
- '@aws-sdk/middleware-logger': 3.410.0
- '@aws-sdk/middleware-recursion-detection': 3.410.0
- '@aws-sdk/middleware-sdk-sts': 3.410.0
- '@aws-sdk/middleware-signing': 3.410.0
- '@aws-sdk/middleware-user-agent': 3.410.0
- '@aws-sdk/types': 3.410.0
- '@aws-sdk/util-endpoints': 3.410.0
- '@aws-sdk/util-user-agent-browser': 3.410.0
- '@aws-sdk/util-user-agent-node': 3.410.0
- '@smithy/config-resolver': 2.0.9
- '@smithy/fetch-http-handler': 2.1.4
- '@smithy/hash-node': 2.0.8
- '@smithy/invalid-dependency': 2.0.8
- '@smithy/middleware-content-length': 2.0.10
- '@smithy/middleware-endpoint': 2.0.8
- '@smithy/middleware-retry': 2.0.11
- '@smithy/middleware-serde': 2.0.8
- '@smithy/middleware-stack': 2.0.1
- '@smithy/node-config-provider': 2.0.11
- '@smithy/node-http-handler': 2.5.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/smithy-client': 2.1.5
- '@smithy/types': 2.6.0
- '@smithy/url-parser': 2.0.8
- '@smithy/util-base64': 2.0.0
- '@smithy/util-body-length-browser': 2.0.0
- '@smithy/util-body-length-node': 2.1.0
- '@smithy/util-defaults-mode-browser': 2.0.9
- '@smithy/util-defaults-mode-node': 2.0.11
- '@smithy/util-retry': 2.0.1
- '@smithy/util-utf8': 2.0.0
- fast-xml-parser: 4.2.5
+ '@aws-sdk/credential-provider-env': 3.598.0
+ '@aws-sdk/credential-provider-http': 3.598.0
+ '@aws-sdk/credential-provider-ini': 3.598.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/credential-provider-process': 3.598.0
+ '@aws-sdk/credential-provider-sso': 3.598.0(@aws-sdk/client-sso-oidc@3.600.0)
+ '@aws-sdk/credential-provider-web-identity': 3.598.0(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/types': 3.598.0
+ '@smithy/credential-provider-imds': 3.1.3
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
transitivePeerDependencies:
+ - '@aws-sdk/client-sso-oidc'
+ - '@aws-sdk/client-sts'
- aws-crt
- '@aws-sdk/credential-provider-env@3.410.0':
+ '@aws-sdk/credential-provider-process@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/property-provider': 2.0.9
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/credential-provider-ini@3.410.0':
+ '@aws-sdk/credential-provider-sso@3.598.0(@aws-sdk/client-sso-oidc@3.600.0)':
dependencies:
- '@aws-sdk/credential-provider-env': 3.410.0
- '@aws-sdk/credential-provider-process': 3.410.0
- '@aws-sdk/credential-provider-sso': 3.410.0
- '@aws-sdk/credential-provider-web-identity': 3.410.0
- '@aws-sdk/types': 3.410.0
- '@smithy/credential-provider-imds': 2.0.11
- '@smithy/property-provider': 2.0.9
- '@smithy/shared-ini-file-loader': 2.0.10
- '@smithy/types': 2.6.0
+ '@aws-sdk/client-sso': 3.598.0
+ '@aws-sdk/token-providers': 3.598.0(@aws-sdk/client-sso-oidc@3.600.0)
+ '@aws-sdk/types': 3.598.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
transitivePeerDependencies:
+ - '@aws-sdk/client-sso-oidc'
- aws-crt
- '@aws-sdk/credential-provider-node@3.410.0':
+ '@aws-sdk/credential-provider-web-identity@3.598.0(@aws-sdk/client-sts@3.600.0)':
dependencies:
- '@aws-sdk/credential-provider-env': 3.410.0
- '@aws-sdk/credential-provider-ini': 3.410.0
- '@aws-sdk/credential-provider-process': 3.410.0
- '@aws-sdk/credential-provider-sso': 3.410.0
- '@aws-sdk/credential-provider-web-identity': 3.410.0
- '@aws-sdk/types': 3.410.0
- '@smithy/credential-provider-imds': 2.0.11
- '@smithy/property-provider': 2.0.9
- '@smithy/shared-ini-file-loader': 2.0.10
- '@smithy/types': 2.6.0
- tslib: 2.6.2
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/credential-provider-process@3.410.0':
- dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/property-provider': 2.0.9
- '@smithy/shared-ini-file-loader': 2.0.10
- '@smithy/types': 2.6.0
+ '@aws-sdk/client-sts': 3.600.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/credential-provider-sso@3.410.0':
+ '@aws-sdk/lib-storage@3.600.0(@aws-sdk/client-s3@3.600.0)':
dependencies:
- '@aws-sdk/client-sso': 3.410.0
- '@aws-sdk/token-providers': 3.410.0
- '@aws-sdk/types': 3.410.0
- '@smithy/property-provider': 2.0.9
- '@smithy/shared-ini-file-loader': 2.0.10
- '@smithy/types': 2.6.0
- tslib: 2.6.2
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/credential-provider-web-identity@3.410.0':
- dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/property-provider': 2.0.9
- '@smithy/types': 2.6.0
- tslib: 2.6.2
-
- '@aws-sdk/lib-storage@3.412.0(@aws-sdk/client-s3@3.412.0)':
- dependencies:
- '@aws-sdk/client-s3': 3.412.0
- '@smithy/abort-controller': 2.0.14
- '@smithy/middleware-endpoint': 2.0.8
- '@smithy/smithy-client': 2.1.5
+ '@aws-sdk/client-s3': 3.600.0
+ '@smithy/abort-controller': 3.1.1
+ '@smithy/middleware-endpoint': 3.0.4
+ '@smithy/smithy-client': 3.1.5
buffer: 5.6.0
events: 3.3.0
stream-browserify: 3.0.0
tslib: 2.6.2
- '@aws-sdk/middleware-bucket-endpoint@3.410.0':
+ '@aws-sdk/middleware-bucket-endpoint@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@aws-sdk/util-arn-parser': 3.310.0
- '@smithy/node-config-provider': 2.0.11
- '@smithy/protocol-http': 3.0.10
- '@smithy/types': 2.6.0
- '@smithy/util-config-provider': 2.0.0
+ '@aws-sdk/types': 3.598.0
+ '@aws-sdk/util-arn-parser': 3.568.0
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/types': 3.3.0
+ '@smithy/util-config-provider': 3.0.0
tslib: 2.6.2
- '@aws-sdk/middleware-expect-continue@3.410.0':
+ '@aws-sdk/middleware-expect-continue@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/middleware-flexible-checksums@3.410.0':
+ '@aws-sdk/middleware-flexible-checksums@3.598.0':
dependencies:
- '@aws-crypto/crc32': 3.0.0
- '@aws-crypto/crc32c': 3.0.0
- '@aws-sdk/types': 3.410.0
- '@smithy/is-array-buffer': 2.0.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/types': 2.6.0
- '@smithy/util-utf8': 2.0.0
+ '@aws-crypto/crc32': 5.2.0
+ '@aws-crypto/crc32c': 5.2.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/is-array-buffer': 3.0.0
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/types': 3.3.0
+ '@smithy/util-utf8': 3.0.0
tslib: 2.6.2
- '@aws-sdk/middleware-host-header@3.410.0':
+ '@aws-sdk/middleware-host-header@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/middleware-location-constraint@3.410.0':
+ '@aws-sdk/middleware-location-constraint@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/middleware-logger@3.410.0':
+ '@aws-sdk/middleware-logger@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/middleware-recursion-detection@3.410.0':
+ '@aws-sdk/middleware-recursion-detection@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/middleware-sdk-s3@3.410.0':
+ '@aws-sdk/middleware-sdk-s3@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@aws-sdk/util-arn-parser': 3.310.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@aws-sdk/util-arn-parser': 3.568.0
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/signature-v4': 3.1.2
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ '@smithy/util-config-provider': 3.0.0
tslib: 2.6.2
- '@aws-sdk/middleware-sdk-sts@3.410.0':
+ '@aws-sdk/middleware-signing@3.598.0':
dependencies:
- '@aws-sdk/middleware-signing': 3.410.0
- '@aws-sdk/types': 3.410.0
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/signature-v4': 3.1.2
+ '@smithy/types': 3.3.0
+ '@smithy/util-middleware': 3.0.3
tslib: 2.6.2
- '@aws-sdk/middleware-signing@3.410.0':
+ '@aws-sdk/middleware-ssec@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/property-provider': 2.0.9
- '@smithy/protocol-http': 3.0.10
- '@smithy/signature-v4': 2.0.5
- '@smithy/types': 2.6.0
- '@smithy/util-middleware': 2.0.1
+ '@aws-sdk/types': 3.598.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/middleware-ssec@3.410.0':
+ '@aws-sdk/middleware-user-agent@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@aws-sdk/util-endpoints': 3.598.0
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/middleware-user-agent@3.410.0':
+ '@aws-sdk/region-config-resolver@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@aws-sdk/util-endpoints': 3.410.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/types': 3.3.0
+ '@smithy/util-config-provider': 3.0.0
+ '@smithy/util-middleware': 3.0.3
tslib: 2.6.2
- '@aws-sdk/signature-v4-multi-region@3.412.0':
+ '@aws-sdk/signature-v4-multi-region@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/protocol-http': 3.0.10
- '@smithy/signature-v4': 2.0.5
- '@smithy/types': 2.6.0
+ '@aws-sdk/middleware-sdk-s3': 3.598.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/signature-v4': 3.1.2
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/token-providers@3.410.0':
+ '@aws-sdk/token-providers@3.598.0(@aws-sdk/client-sso-oidc@3.600.0)':
dependencies:
- '@aws-crypto/sha256-browser': 3.0.0
- '@aws-crypto/sha256-js': 3.0.0
- '@aws-sdk/middleware-host-header': 3.410.0
- '@aws-sdk/middleware-logger': 3.410.0
- '@aws-sdk/middleware-recursion-detection': 3.410.0
- '@aws-sdk/middleware-user-agent': 3.410.0
- '@aws-sdk/types': 3.410.0
- '@aws-sdk/util-endpoints': 3.410.0
- '@aws-sdk/util-user-agent-browser': 3.410.0
- '@aws-sdk/util-user-agent-node': 3.410.0
- '@smithy/config-resolver': 2.0.9
- '@smithy/fetch-http-handler': 2.1.4
- '@smithy/hash-node': 2.0.8
- '@smithy/invalid-dependency': 2.0.8
- '@smithy/middleware-content-length': 2.0.10
- '@smithy/middleware-endpoint': 2.0.8
- '@smithy/middleware-retry': 2.0.11
- '@smithy/middleware-serde': 2.0.8
- '@smithy/middleware-stack': 2.0.1
- '@smithy/node-config-provider': 2.0.11
- '@smithy/node-http-handler': 2.5.0
- '@smithy/property-provider': 2.0.9
- '@smithy/protocol-http': 3.0.10
- '@smithy/shared-ini-file-loader': 2.0.10
- '@smithy/smithy-client': 2.1.5
- '@smithy/types': 2.6.0
- '@smithy/url-parser': 2.0.8
- '@smithy/util-base64': 2.0.0
- '@smithy/util-body-length-browser': 2.0.0
- '@smithy/util-body-length-node': 2.1.0
- '@smithy/util-defaults-mode-browser': 2.0.9
- '@smithy/util-defaults-mode-node': 2.0.11
- '@smithy/util-retry': 2.0.1
- '@smithy/util-utf8': 2.0.0
- tslib: 2.6.2
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/types@3.410.0':
- dependencies:
- '@smithy/types': 2.6.0
+ '@aws-sdk/client-sso-oidc': 3.600.0(@aws-sdk/client-sts@3.600.0)
+ '@aws-sdk/types': 3.598.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/types@3.413.0':
+ '@aws-sdk/types@3.598.0':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/util-arn-parser@3.310.0':
+ '@aws-sdk/util-arn-parser@3.568.0':
dependencies:
tslib: 2.6.2
- '@aws-sdk/util-endpoints@3.410.0':
+ '@aws-sdk/util-endpoints@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-endpoints': 2.0.4
tslib: 2.6.2
'@aws-sdk/util-locate-window@3.208.0':
dependencies:
tslib: 2.6.2
- '@aws-sdk/util-user-agent-browser@3.410.0':
+ '@aws-sdk/util-user-agent-browser@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/types': 3.3.0
bowser: 2.11.0
tslib: 2.6.2
- '@aws-sdk/util-user-agent-node@3.410.0':
+ '@aws-sdk/util-user-agent-node@3.598.0':
dependencies:
- '@aws-sdk/types': 3.410.0
- '@smithy/node-config-provider': 2.0.11
- '@smithy/types': 2.6.0
+ '@aws-sdk/types': 3.598.0
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@aws-sdk/util-utf8-browser@3.259.0':
- dependencies:
- tslib: 2.6.2
-
- '@aws-sdk/xml-builder@3.310.0':
+ '@aws-sdk/xml-builder@3.598.0':
dependencies:
+ '@smithy/types': 3.3.0
tslib: 2.6.2
'@babel/code-frame@7.23.5':
@@ -11901,8 +12542,15 @@ snapshots:
'@babel/highlight': 7.23.4
chalk: 2.4.2
+ '@babel/code-frame@7.24.7':
+ dependencies:
+ '@babel/highlight': 7.24.7
+ picocolors: 1.0.0
+
'@babel/compat-data@7.23.5': {}
+ '@babel/compat-data@7.24.7': {}
+
'@babel/core@7.23.5':
dependencies:
'@ampproject/remapping': 2.2.1
@@ -11916,27 +12564,27 @@ snapshots:
'@babel/traverse': 7.23.5
'@babel/types': 7.23.5
convert-source-map: 2.0.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/core@7.24.0':
+ '@babel/core@7.24.7':
dependencies:
'@ampproject/remapping': 2.2.1
- '@babel/code-frame': 7.23.5
- '@babel/generator': 7.23.6
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0)
- '@babel/helpers': 7.24.0
- '@babel/parser': 7.24.0
- '@babel/template': 7.24.0
- '@babel/traverse': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/code-frame': 7.24.7
+ '@babel/generator': 7.24.7
+ '@babel/helper-compilation-targets': 7.24.7
+ '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7)
+ '@babel/helpers': 7.24.7
+ '@babel/parser': 7.24.7
+ '@babel/template': 7.24.7
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
convert-source-map: 2.0.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@@ -11950,20 +12598,23 @@ snapshots:
'@jridgewell/trace-mapping': 0.3.18
jsesc: 2.5.2
- '@babel/generator@7.23.6':
+ '@babel/generator@7.24.7':
dependencies:
- '@babel/types': 7.24.0
- '@jridgewell/gen-mapping': 0.3.2
- '@jridgewell/trace-mapping': 0.3.18
+ '@babel/types': 7.24.7
+ '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/trace-mapping': 0.3.25
jsesc: 2.5.2
- '@babel/helper-annotate-as-pure@7.22.5':
+ '@babel/helper-annotate-as-pure@7.24.7':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.7
- '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
+ '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
'@babel/helper-compilation-targets@7.22.15':
dependencies:
@@ -11973,40 +12624,42 @@ snapshots:
lru-cache: 5.1.1
semver: 6.3.1
- '@babel/helper-compilation-targets@7.23.6':
+ '@babel/helper-compilation-targets@7.24.7':
dependencies:
- '@babel/compat-data': 7.23.5
- '@babel/helper-validator-option': 7.23.5
+ '@babel/compat-data': 7.24.7
+ '@babel/helper-validator-option': 7.24.7
browserslist: 4.23.0
lru-cache: 5.1.1
semver: 6.3.1
- '@babel/helper-create-class-features-plugin@7.23.5(@babel/core@7.24.0)':
+ '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-function-name': 7.23.0
- '@babel/helper-member-expression-to-functions': 7.23.0
- '@babel/helper-optimise-call-expression': 7.22.5
- '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0)
- '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/core': 7.24.7
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-function-name': 7.24.7
+ '@babel/helper-member-expression-to-functions': 7.24.7
+ '@babel/helper-optimise-call-expression': 7.24.7
+ '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
+ '@babel/helper-split-export-declaration': 7.24.7
semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
- '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.0)':
+ '@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-annotate-as-pure': 7.24.7
regexpu-core: 5.3.2
semver: 6.3.1
- '@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.24.0)':
+ '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-plugin-utils': 7.22.5
- debug: 4.3.4(supports-color@8.1.1)
+ '@babel/core': 7.24.7
+ '@babel/helper-compilation-targets': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ debug: 4.3.5(supports-color@8.1.1)
lodash.debounce: 4.0.8
resolve: 1.22.8
transitivePeerDependencies:
@@ -12014,23 +12667,46 @@ snapshots:
'@babel/helper-environment-visitor@7.22.20': {}
+ '@babel/helper-environment-visitor@7.24.7':
+ dependencies:
+ '@babel/types': 7.24.7
+
'@babel/helper-function-name@7.23.0':
dependencies:
- '@babel/template': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/template': 7.24.7
+ '@babel/types': 7.24.7
+
+ '@babel/helper-function-name@7.24.7':
+ dependencies:
+ '@babel/template': 7.24.7
+ '@babel/types': 7.24.7
'@babel/helper-hoist-variables@7.22.5':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.7
- '@babel/helper-member-expression-to-functions@7.23.0':
+ '@babel/helper-hoist-variables@7.24.7':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.7
+
+ '@babel/helper-member-expression-to-functions@7.24.7':
+ dependencies:
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
'@babel/helper-module-imports@7.22.15':
dependencies:
'@babel/types': 7.23.5
+ '@babel/helper-module-imports@7.24.7':
+ dependencies:
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-module-transforms@7.23.3(@babel/core@7.23.5)':
dependencies:
'@babel/core': 7.23.5
@@ -12040,58 +12716,89 @@ snapshots:
'@babel/helper-split-export-declaration': 7.22.6
'@babel/helper-validator-identifier': 7.22.20
- '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0)':
+ '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-module-imports': 7.22.15
- '@babel/helper-simple-access': 7.22.5
- '@babel/helper-split-export-declaration': 7.22.6
- '@babel/helper-validator-identifier': 7.22.20
+ '@babel/core': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-module-imports': 7.24.7
+ '@babel/helper-simple-access': 7.24.7
+ '@babel/helper-split-export-declaration': 7.24.7
+ '@babel/helper-validator-identifier': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/helper-optimise-call-expression@7.22.5':
+ '@babel/helper-optimise-call-expression@7.24.7':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.7
'@babel/helper-plugin-utils@7.22.5': {}
- '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.0)':
- dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-wrap-function': 7.22.20
+ '@babel/helper-plugin-utils@7.24.7': {}
- '@babel/helper-replace-supers@7.22.20(@babel/core@7.24.0)':
+ '@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-member-expression-to-functions': 7.23.0
- '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-wrap-function': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.7)':
+ dependencies:
+ '@babel/core': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-member-expression-to-functions': 7.24.7
+ '@babel/helper-optimise-call-expression': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
'@babel/helper-simple-access@7.22.5':
dependencies:
'@babel/types': 7.23.5
- '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
+ '@babel/helper-simple-access@7.24.7':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.24.7':
+ dependencies:
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
'@babel/helper-split-export-declaration@7.22.6':
dependencies:
'@babel/types': 7.23.5
+ '@babel/helper-split-export-declaration@7.24.7':
+ dependencies:
+ '@babel/types': 7.24.7
+
'@babel/helper-string-parser@7.23.4': {}
+ '@babel/helper-string-parser@7.24.7': {}
+
'@babel/helper-validator-identifier@7.22.20': {}
+ '@babel/helper-validator-identifier@7.24.7': {}
+
'@babel/helper-validator-option@7.23.5': {}
- '@babel/helper-wrap-function@7.22.20':
+ '@babel/helper-validator-option@7.24.7': {}
+
+ '@babel/helper-wrap-function@7.24.7':
dependencies:
- '@babel/helper-function-name': 7.23.0
- '@babel/template': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/helper-function-name': 7.24.7
+ '@babel/template': 7.24.7
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
'@babel/helpers@7.23.5':
dependencies:
@@ -12101,13 +12808,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/helpers@7.24.0':
+ '@babel/helpers@7.24.7':
dependencies:
- '@babel/template': 7.24.0
- '@babel/traverse': 7.24.0
- '@babel/types': 7.24.0
- transitivePeerDependencies:
- - supports-color
+ '@babel/template': 7.24.7
+ '@babel/types': 7.24.7
'@babel/highlight@7.23.4':
dependencies:
@@ -12115,48 +12819,63 @@ snapshots:
chalk: 2.4.2
js-tokens: 4.0.0
+ '@babel/highlight@7.24.7':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.24.7
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+ picocolors: 1.0.0
+
'@babel/parser@7.23.9':
dependencies:
'@babel/types': 7.23.5
- '@babel/parser@7.24.0':
- dependencies:
- '@babel/types': 7.24.0
-
'@babel/parser@7.24.5':
dependencies:
'@babel/types': 7.24.0
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.24.0)':
+ '@babel/parser@7.24.7':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/types': 7.24.7
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0)':
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
+ '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.7)':
+ dependencies:
+ '@babel/core': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7)':
+ dependencies:
+ '@babel/core': 7.24.7
'@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.5)':
dependencies:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.5)':
@@ -12169,49 +12888,49 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.5)':
dependencies:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.5)':
@@ -12219,9 +12938,9 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.5)':
@@ -12229,9 +12948,9 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.5)':
@@ -12239,9 +12958,9 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.5)':
@@ -12249,9 +12968,9 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.5)':
@@ -12259,9 +12978,9 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.5)':
@@ -12269,9 +12988,9 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.5)':
@@ -12279,9 +12998,9 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.5)':
@@ -12289,24 +13008,24 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.5)':
dependencies:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.5)':
@@ -12314,435 +13033,471 @@ snapshots:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.0)':
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0)
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-module-imports': 7.22.15
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-module-imports': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-classes@7.23.5(@babel/core@7.24.0)':
+ '@babel/plugin-transform-classes@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-function-name': 7.23.0
- '@babel/helper-optimise-call-expression': 7.22.5
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0)
- '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/core': 7.24.7
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-compilation-targets': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-function-name': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-split-export-declaration': 7.24.7
globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/template': 7.24.0
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/template': 7.24.7
- '@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-destructuring@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.7)
- '@babel/plugin-transform-for-of@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-function-name@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-function-name': 7.23.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-compilation-targets': 7.24.7
+ '@babel/helper-function-name': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-transform-literals@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7)
- '@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-simple-access': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-simple-access': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-hoist-variables': 7.22.5
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-validator-identifier': 7.22.20
+ '@babel/core': 7.24.7
+ '@babel/helper-hoist-variables': 7.24.7
+ '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-validator-identifier': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.0)':
+ '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-new-target@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7)
- '@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/compat-data': 7.23.5
- '@babel/core': 7.24.0
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0)
- '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-compilation-targets': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7)
- '@babel/plugin-transform-object-super@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-optional-chaining@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-parameters@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.24.0)':
+ '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
regenerator-transform: 0.15.2
- '@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-spread@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-typeof-symbol@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-typescript@7.23.5(@babel/core@7.24.0)':
+ '@babel/plugin-transform-typescript@7.23.5(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.24.0)':
+ '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0)
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/core': 7.24.7
+ '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
+ '@babel/helper-plugin-utils': 7.24.7
- '@babel/preset-env@7.23.5(@babel/core@7.24.0)':
+ '@babel/preset-env@7.24.7(@babel/core@7.24.7)':
dependencies:
- '@babel/compat-data': 7.23.5
- '@babel/core': 7.24.0
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-validator-option': 7.23.5
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0)
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.0)
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0)
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0)
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0)
- '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.0)
- '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.24.0)
- '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.0)
- '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.24.0)
- '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.0)
- babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.24.0)
- babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.24.0)
- babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.24.0)
- core-js-compat: 3.33.3
+ '@babel/compat-data': 7.24.7
+ '@babel/core': 7.24.7
+ '@babel/helper-compilation-targets': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-validator-option': 7.24.7
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.7)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.7)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.7)
+ '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-classes': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-destructuring': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-modules-systemjs': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-typeof-symbol': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.24.7)
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.7)
+ babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.7)
+ babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.7)
+ babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.7)
+ core-js-compat: 3.37.1
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/preset-flow@7.23.3(@babel/core@7.24.0)':
+ '@babel/preset-flow@7.23.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-validator-option': 7.23.5
- '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-validator-option': 7.24.7
+ '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.7)
- '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.0)':
+ '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/types': 7.24.0
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/types': 7.24.7
esutils: 2.0.3
- '@babel/preset-typescript@7.23.3(@babel/core@7.24.0)':
+ '@babel/preset-typescript@7.23.3(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-plugin-utils': 7.22.5
- '@babel/helper-validator-option': 7.23.5
- '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-typescript': 7.23.5(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.24.7
+ '@babel/helper-validator-option': 7.24.7
+ '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.7)
+ '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-typescript': 7.23.5(@babel/core@7.24.7)
+ transitivePeerDependencies:
+ - supports-color
- '@babel/register@7.22.15(@babel/core@7.24.0)':
+ '@babel/register@7.22.15(@babel/core@7.24.7)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
clone-deep: 4.0.1
find-cache-dir: 2.1.0
make-dir: 2.1.0
@@ -12763,9 +13518,15 @@ snapshots:
'@babel/template@7.24.0':
dependencies:
- '@babel/code-frame': 7.23.5
- '@babel/parser': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/code-frame': 7.24.7
+ '@babel/parser': 7.24.7
+ '@babel/types': 7.24.7
+
+ '@babel/template@7.24.7':
+ dependencies:
+ '@babel/code-frame': 7.24.7
+ '@babel/parser': 7.24.7
+ '@babel/types': 7.24.7
'@babel/traverse@7.23.5':
dependencies:
@@ -12777,22 +13538,22 @@ snapshots:
'@babel/helper-split-export-declaration': 7.22.6
'@babel/parser': 7.23.9
'@babel/types': 7.23.5
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
- '@babel/traverse@7.24.0':
+ '@babel/traverse@7.24.7':
dependencies:
- '@babel/code-frame': 7.23.5
- '@babel/generator': 7.23.6
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-function-name': 7.23.0
- '@babel/helper-hoist-variables': 7.22.5
- '@babel/helper-split-export-declaration': 7.22.6
- '@babel/parser': 7.24.0
- '@babel/types': 7.24.0
- debug: 4.3.4(supports-color@8.1.1)
+ '@babel/code-frame': 7.24.7
+ '@babel/generator': 7.24.7
+ '@babel/helper-environment-visitor': 7.24.7
+ '@babel/helper-function-name': 7.24.7
+ '@babel/helper-hoist-variables': 7.24.7
+ '@babel/helper-split-export-declaration': 7.24.7
+ '@babel/parser': 7.24.7
+ '@babel/types': 7.24.7
+ debug: 4.3.5(supports-color@8.1.1)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
@@ -12809,26 +13570,32 @@ snapshots:
'@babel/helper-validator-identifier': 7.22.20
to-fast-properties: 2.0.0
+ '@babel/types@7.24.7':
+ dependencies:
+ '@babel/helper-string-parser': 7.24.7
+ '@babel/helper-validator-identifier': 7.24.7
+ to-fast-properties: 2.0.0
+
'@base2/pretty-print-object@1.0.1': {}
'@bcoe/v8-coverage@0.2.3': {}
- '@bull-board/api@5.17.0(@bull-board/ui@5.17.0)':
+ '@bull-board/api@5.20.5(@bull-board/ui@5.20.5)':
dependencies:
- '@bull-board/ui': 5.17.0
+ '@bull-board/ui': 5.20.5
redis-info: 3.1.0
- '@bull-board/fastify@5.17.0':
+ '@bull-board/fastify@5.20.5':
dependencies:
- '@bull-board/api': 5.17.0(@bull-board/ui@5.17.0)
- '@bull-board/ui': 5.17.0
+ '@bull-board/api': 5.20.5(@bull-board/ui@5.20.5)
+ '@bull-board/ui': 5.20.5
'@fastify/static': 6.12.0
'@fastify/view': 8.2.0
- ejs: 3.1.9
+ ejs: 3.1.10
- '@bull-board/ui@5.17.0':
+ '@bull-board/ui@5.20.5':
dependencies:
- '@bull-board/api': 5.17.0(@bull-board/ui@5.17.0)
+ '@bull-board/api': 5.20.5(@bull-board/ui@5.20.5)
'@bundled-es-modules/cookie@2.0.0':
dependencies:
@@ -12926,7 +13693,7 @@ snapshots:
performance-now: 2.1.0
qs: 6.10.4
safe-buffer: 5.2.1
- tough-cookie: 4.1.3
+ tough-cookie: 4.1.4
tunnel-agent: 0.6.0
uuid: 8.3.2
@@ -12966,7 +13733,10 @@ snapshots:
'@esbuild/aix-ppc64@0.19.11':
optional: true
- '@esbuild/aix-ppc64@0.20.2':
+ '@esbuild/aix-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/aix-ppc64@0.22.0':
optional: true
'@esbuild/android-arm64@0.18.20':
@@ -12975,7 +13745,10 @@ snapshots:
'@esbuild/android-arm64@0.19.11':
optional: true
- '@esbuild/android-arm64@0.20.2':
+ '@esbuild/android-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm64@0.22.0':
optional: true
'@esbuild/android-arm@0.18.20':
@@ -12984,7 +13757,10 @@ snapshots:
'@esbuild/android-arm@0.19.11':
optional: true
- '@esbuild/android-arm@0.20.2':
+ '@esbuild/android-arm@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm@0.22.0':
optional: true
'@esbuild/android-x64@0.18.20':
@@ -12993,7 +13769,10 @@ snapshots:
'@esbuild/android-x64@0.19.11':
optional: true
- '@esbuild/android-x64@0.20.2':
+ '@esbuild/android-x64@0.21.5':
+ optional: true
+
+ '@esbuild/android-x64@0.22.0':
optional: true
'@esbuild/darwin-arm64@0.18.20':
@@ -13002,7 +13781,10 @@ snapshots:
'@esbuild/darwin-arm64@0.19.11':
optional: true
- '@esbuild/darwin-arm64@0.20.2':
+ '@esbuild/darwin-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.22.0':
optional: true
'@esbuild/darwin-x64@0.18.20':
@@ -13011,7 +13793,10 @@ snapshots:
'@esbuild/darwin-x64@0.19.11':
optional: true
- '@esbuild/darwin-x64@0.20.2':
+ '@esbuild/darwin-x64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-x64@0.22.0':
optional: true
'@esbuild/freebsd-arm64@0.18.20':
@@ -13020,7 +13805,10 @@ snapshots:
'@esbuild/freebsd-arm64@0.19.11':
optional: true
- '@esbuild/freebsd-arm64@0.20.2':
+ '@esbuild/freebsd-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.22.0':
optional: true
'@esbuild/freebsd-x64@0.18.20':
@@ -13029,7 +13817,10 @@ snapshots:
'@esbuild/freebsd-x64@0.19.11':
optional: true
- '@esbuild/freebsd-x64@0.20.2':
+ '@esbuild/freebsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.22.0':
optional: true
'@esbuild/linux-arm64@0.18.20':
@@ -13038,7 +13829,10 @@ snapshots:
'@esbuild/linux-arm64@0.19.11':
optional: true
- '@esbuild/linux-arm64@0.20.2':
+ '@esbuild/linux-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm64@0.22.0':
optional: true
'@esbuild/linux-arm@0.18.20':
@@ -13047,7 +13841,10 @@ snapshots:
'@esbuild/linux-arm@0.19.11':
optional: true
- '@esbuild/linux-arm@0.20.2':
+ '@esbuild/linux-arm@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm@0.22.0':
optional: true
'@esbuild/linux-ia32@0.18.20':
@@ -13056,7 +13853,10 @@ snapshots:
'@esbuild/linux-ia32@0.19.11':
optional: true
- '@esbuild/linux-ia32@0.20.2':
+ '@esbuild/linux-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ia32@0.22.0':
optional: true
'@esbuild/linux-loong64@0.18.20':
@@ -13065,7 +13865,10 @@ snapshots:
'@esbuild/linux-loong64@0.19.11':
optional: true
- '@esbuild/linux-loong64@0.20.2':
+ '@esbuild/linux-loong64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-loong64@0.22.0':
optional: true
'@esbuild/linux-mips64el@0.18.20':
@@ -13074,7 +13877,10 @@ snapshots:
'@esbuild/linux-mips64el@0.19.11':
optional: true
- '@esbuild/linux-mips64el@0.20.2':
+ '@esbuild/linux-mips64el@0.21.5':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.22.0':
optional: true
'@esbuild/linux-ppc64@0.18.20':
@@ -13083,7 +13889,10 @@ snapshots:
'@esbuild/linux-ppc64@0.19.11':
optional: true
- '@esbuild/linux-ppc64@0.20.2':
+ '@esbuild/linux-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.22.0':
optional: true
'@esbuild/linux-riscv64@0.18.20':
@@ -13092,7 +13901,10 @@ snapshots:
'@esbuild/linux-riscv64@0.19.11':
optional: true
- '@esbuild/linux-riscv64@0.20.2':
+ '@esbuild/linux-riscv64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.22.0':
optional: true
'@esbuild/linux-s390x@0.18.20':
@@ -13101,7 +13913,10 @@ snapshots:
'@esbuild/linux-s390x@0.19.11':
optional: true
- '@esbuild/linux-s390x@0.20.2':
+ '@esbuild/linux-s390x@0.21.5':
+ optional: true
+
+ '@esbuild/linux-s390x@0.22.0':
optional: true
'@esbuild/linux-x64@0.18.20':
@@ -13110,7 +13925,10 @@ snapshots:
'@esbuild/linux-x64@0.19.11':
optional: true
- '@esbuild/linux-x64@0.20.2':
+ '@esbuild/linux-x64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-x64@0.22.0':
optional: true
'@esbuild/netbsd-x64@0.18.20':
@@ -13119,7 +13937,13 @@ snapshots:
'@esbuild/netbsd-x64@0.19.11':
optional: true
- '@esbuild/netbsd-x64@0.20.2':
+ '@esbuild/netbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.22.0':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.22.0':
optional: true
'@esbuild/openbsd-x64@0.18.20':
@@ -13128,7 +13952,10 @@ snapshots:
'@esbuild/openbsd-x64@0.19.11':
optional: true
- '@esbuild/openbsd-x64@0.20.2':
+ '@esbuild/openbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.22.0':
optional: true
'@esbuild/sunos-x64@0.18.20':
@@ -13137,7 +13964,10 @@ snapshots:
'@esbuild/sunos-x64@0.19.11':
optional: true
- '@esbuild/sunos-x64@0.20.2':
+ '@esbuild/sunos-x64@0.21.5':
+ optional: true
+
+ '@esbuild/sunos-x64@0.22.0':
optional: true
'@esbuild/win32-arm64@0.18.20':
@@ -13146,7 +13976,10 @@ snapshots:
'@esbuild/win32-arm64@0.19.11':
optional: true
- '@esbuild/win32-arm64@0.20.2':
+ '@esbuild/win32-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/win32-arm64@0.22.0':
optional: true
'@esbuild/win32-ia32@0.18.20':
@@ -13155,7 +13988,10 @@ snapshots:
'@esbuild/win32-ia32@0.19.11':
optional: true
- '@esbuild/win32-ia32@0.20.2':
+ '@esbuild/win32-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/win32-ia32@0.22.0':
optional: true
'@esbuild/win32-x64@0.18.20':
@@ -13164,30 +14000,38 @@ snapshots:
'@esbuild/win32-x64@0.19.11':
optional: true
- '@esbuild/win32-x64@0.20.2':
+ '@esbuild/win32-x64@0.21.5':
optional: true
- '@eslint-community/eslint-utils@4.4.0(eslint@8.53.0)':
- dependencies:
- eslint: 8.53.0
- eslint-visitor-keys: 3.4.3
+ '@esbuild/win32-x64@0.22.0':
+ optional: true
- '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)':
+ '@eslint-community/eslint-utils@4.4.0(eslint@9.6.0)':
dependencies:
- eslint: 8.57.0
+ eslint: 9.6.0
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.10.0': {}
'@eslint-community/regexpp@4.6.2': {}
- '@eslint/eslintrc@2.1.4':
+ '@eslint/compat@1.1.0': {}
+
+ '@eslint/config-array@0.17.0':
+ dependencies:
+ '@eslint/object-schema': 2.1.4
+ debug: 4.3.5(supports-color@8.1.1)
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/eslintrc@3.1.0':
dependencies:
ajv: 6.12.6
- debug: 4.3.4(supports-color@8.1.1)
- espree: 9.6.1
- globals: 13.19.0
- ignore: 5.2.4
+ debug: 4.3.5(supports-color@8.1.1)
+ espree: 10.1.0
+ globals: 14.0.0
+ ignore: 5.3.1
import-fresh: 3.3.0
js-yaml: 4.1.0
minimatch: 3.1.2
@@ -13195,9 +14039,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@eslint/js@8.53.0': {}
+ '@eslint/js@9.6.0': {}
- '@eslint/js@8.57.0': {}
+ '@eslint/object-schema@2.1.4': {}
'@fal-works/esbuild-plugin-global-externals@2.1.2': {}
@@ -13210,8 +14054,8 @@ snapshots:
'@fastify/ajv-compiler@3.5.0':
dependencies:
- ajv: 8.13.0
- ajv-formats: 2.1.1(ajv@8.13.0)
+ ajv: 8.16.0
+ ajv-formats: 2.1.1(ajv@8.16.0)
fast-uri: 2.2.0
'@fastify/busboy@2.1.0': {}
@@ -13246,12 +14090,12 @@ snapshots:
'@fastify/reply-from': 9.0.1
fast-querystring: 1.1.2
fastify-plugin: 4.5.0
- ws: 8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
+ ws: 8.17.1(bufferutil@4.0.7)(utf-8-validate@6.0.3)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
- '@fastify/multipart@8.2.0':
+ '@fastify/multipart@8.3.0':
dependencies:
'@fastify/busboy': 2.1.0
'@fastify/deepmerge': 1.3.0
@@ -13287,14 +14131,14 @@ snapshots:
glob: 8.1.0
p-limit: 3.1.0
- '@fastify/static@7.0.3':
+ '@fastify/static@7.0.4':
dependencies:
'@fastify/accept-negotiator': 1.0.0
'@fastify/send': 2.0.1
content-disposition: 0.5.4
fastify-plugin: 4.5.0
fastq: 1.17.1
- glob: 10.3.12
+ glob: 10.4.2
'@fastify/view@8.2.0':
dependencies:
@@ -13310,13 +14154,11 @@ snapshots:
'@hapi/boom@10.0.1':
dependencies:
- '@hapi/hoek': 11.0.2
+ '@hapi/hoek': 11.0.4
'@hapi/bourne@3.0.0': {}
- '@hapi/hoek@10.0.1': {}
-
- '@hapi/hoek@11.0.2': {}
+ '@hapi/hoek@11.0.4': {}
'@hapi/hoek@9.3.0': {}
@@ -13328,40 +14170,22 @@ snapshots:
dependencies:
'@hapi/boom': 10.0.1
'@hapi/bourne': 3.0.0
- '@hapi/hoek': 11.0.2
+ '@hapi/hoek': 11.0.4
'@hexagon/base64@1.1.27': {}
- '@humanwhocodes/config-array@0.11.13':
- dependencies:
- '@humanwhocodes/object-schema': 2.0.1
- debug: 4.3.4(supports-color@8.1.1)
- minimatch: 3.1.2
- transitivePeerDependencies:
- - supports-color
-
- '@humanwhocodes/config-array@0.11.14':
- dependencies:
- '@humanwhocodes/object-schema': 2.0.2
- debug: 4.3.4(supports-color@8.1.1)
- minimatch: 3.1.2
- transitivePeerDependencies:
- - supports-color
-
'@humanwhocodes/module-importer@1.0.1': {}
'@humanwhocodes/momoa@2.0.4': {}
- '@humanwhocodes/object-schema@2.0.1': {}
+ '@humanwhocodes/retry@0.3.0': {}
- '@humanwhocodes/object-schema@2.0.2': {}
-
- '@img/sharp-darwin-arm64@0.33.3':
+ '@img/sharp-darwin-arm64@0.33.4':
optionalDependencies:
'@img/sharp-libvips-darwin-arm64': 1.0.2
optional: true
- '@img/sharp-darwin-x64@0.33.3':
+ '@img/sharp-darwin-x64@0.33.4':
optionalDependencies:
'@img/sharp-libvips-darwin-x64': 1.0.2
optional: true
@@ -13390,45 +14214,45 @@ snapshots:
'@img/sharp-libvips-linuxmusl-x64@1.0.2':
optional: true
- '@img/sharp-linux-arm64@0.33.3':
+ '@img/sharp-linux-arm64@0.33.4':
optionalDependencies:
'@img/sharp-libvips-linux-arm64': 1.0.2
optional: true
- '@img/sharp-linux-arm@0.33.3':
+ '@img/sharp-linux-arm@0.33.4':
optionalDependencies:
'@img/sharp-libvips-linux-arm': 1.0.2
optional: true
- '@img/sharp-linux-s390x@0.33.3':
+ '@img/sharp-linux-s390x@0.33.4':
optionalDependencies:
'@img/sharp-libvips-linux-s390x': 1.0.2
optional: true
- '@img/sharp-linux-x64@0.33.3':
+ '@img/sharp-linux-x64@0.33.4':
optionalDependencies:
'@img/sharp-libvips-linux-x64': 1.0.2
optional: true
- '@img/sharp-linuxmusl-arm64@0.33.3':
+ '@img/sharp-linuxmusl-arm64@0.33.4':
optionalDependencies:
'@img/sharp-libvips-linuxmusl-arm64': 1.0.2
optional: true
- '@img/sharp-linuxmusl-x64@0.33.3':
+ '@img/sharp-linuxmusl-x64@0.33.4':
optionalDependencies:
'@img/sharp-libvips-linuxmusl-x64': 1.0.2
optional: true
- '@img/sharp-wasm32@0.33.3':
+ '@img/sharp-wasm32@0.33.4':
dependencies:
'@emnapi/runtime': 1.1.1
optional: true
- '@img/sharp-win32-ia32@0.33.3':
+ '@img/sharp-win32-ia32@0.33.4':
optional: true
- '@img/sharp-win32-x64@0.33.3':
+ '@img/sharp-win32-x64@0.33.4':
optional: true
'@inquirer/confirm@3.1.6':
@@ -13441,7 +14265,7 @@ snapshots:
'@inquirer/figures': 1.0.1
'@inquirer/type': 1.3.1
'@types/mute-stream': 0.0.4
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/wrap-ansi': 3.0.0
ansi-escapes: 4.3.2
chalk: 4.1.2
@@ -13464,7 +14288,7 @@ snapshots:
'@intlify/message-compiler@9.13.1':
dependencies:
'@intlify/shared': 9.13.1
- source-map-js: 1.0.2
+ source-map-js: 1.2.0
'@intlify/shared@9.13.1': {}
@@ -13492,7 +14316,7 @@ snapshots:
'@jest/console@29.7.0':
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
chalk: 4.1.2
jest-message-util: 29.7.0
jest-util: 29.7.0
@@ -13505,14 +14329,14 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
ansi-escapes: 4.3.2
chalk: 4.1.2
ci-info: 3.7.1
exit: 0.1.2
graceful-fs: 4.2.11
jest-changed-files: 29.7.0
- jest-config: 29.7.0(@types/node@20.12.7)
+ jest-config: 29.7.0(@types/node@20.14.9)
jest-haste-map: 29.7.0
jest-message-util: 29.7.0
jest-regex-util: 29.6.3
@@ -13524,7 +14348,7 @@ snapshots:
jest-util: 29.7.0
jest-validate: 29.7.0
jest-watcher: 29.7.0
- micromatch: 4.0.5
+ micromatch: 4.0.7
pretty-format: 29.7.0
slash: 3.0.0
strip-ansi: 6.0.1
@@ -13541,7 +14365,7 @@ snapshots:
dependencies:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
jest-mock: 29.7.0
'@jest/expect-utils@29.7.0':
@@ -13559,7 +14383,7 @@ snapshots:
dependencies:
'@jest/types': 29.6.3
'@sinonjs/fake-timers': 10.3.0
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
jest-message-util: 29.7.0
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -13581,7 +14405,7 @@ snapshots:
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
'@jridgewell/trace-mapping': 0.3.18
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
chalk: 4.1.2
collect-v8-coverage: 1.0.1
exit: 0.1.2
@@ -13639,7 +14463,7 @@ snapshots:
jest-haste-map: 29.7.0
jest-regex-util: 29.6.3
jest-util: 29.7.0
- micromatch: 4.0.5
+ micromatch: 4.0.7
pirates: 4.0.5
slash: 3.0.0
write-file-atomic: 4.0.2
@@ -13651,19 +14475,19 @@ snapshots:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.4
'@types/istanbul-reports': 3.0.1
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/yargs': 17.0.19
chalk: 4.1.2
- '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.5.2)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))':
+ '@joshwooding/vite-plugin-react-docgen-typescript@0.3.1(typescript@5.5.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))':
dependencies:
glob: 7.2.3
glob-promise: 4.2.2(glob@7.2.3)
magic-string: 0.27.0
- react-docgen-typescript: 2.2.2(typescript@5.5.2)
- vite: 5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
+ react-docgen-typescript: 2.2.2(typescript@5.5.3)
+ vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.5.3
'@jridgewell/gen-mapping@0.3.2':
dependencies:
@@ -13671,14 +14495,22 @@ snapshots:
'@jridgewell/sourcemap-codec': 1.4.15
'@jridgewell/trace-mapping': 0.3.18
+ '@jridgewell/gen-mapping@0.3.5':
+ dependencies:
+ '@jridgewell/set-array': 1.2.1
+ '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/trace-mapping': 0.3.25
+
'@jridgewell/resolve-uri@3.1.0': {}
'@jridgewell/set-array@1.1.2': {}
+ '@jridgewell/set-array@1.2.1': {}
+
'@jridgewell/source-map@0.3.5':
dependencies:
- '@jridgewell/gen-mapping': 0.3.2
- '@jridgewell/trace-mapping': 0.3.18
+ '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/trace-mapping': 0.3.25
'@jridgewell/sourcemap-codec@1.4.14': {}
@@ -13689,6 +14521,11 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.0
'@jridgewell/sourcemap-codec': 1.4.14
+ '@jridgewell/trace-mapping@0.3.25':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.0
+ '@jridgewell/sourcemap-codec': 1.4.15
+
'@jsdevtools/ono@7.1.3': {}
'@kurkle/color@0.3.2': {}
@@ -13727,23 +14564,23 @@ snapshots:
'@types/react': 18.0.28
react: 18.3.1
- '@microsoft/api-extractor-model@7.28.14(@types/node@20.12.7)':
+ '@microsoft/api-extractor-model@7.29.2(@types/node@20.14.9)':
dependencies:
- '@microsoft/tsdoc': 0.14.2
- '@microsoft/tsdoc-config': 0.16.2
- '@rushstack/node-core-library': 4.1.0(@types/node@20.12.7)
+ '@microsoft/tsdoc': 0.15.0
+ '@microsoft/tsdoc-config': 0.17.0
+ '@rushstack/node-core-library': 5.4.1(@types/node@20.14.9)
transitivePeerDependencies:
- '@types/node'
- '@microsoft/api-extractor@7.43.1(@types/node@20.12.7)':
+ '@microsoft/api-extractor@7.47.0(@types/node@20.14.9)':
dependencies:
- '@microsoft/api-extractor-model': 7.28.14(@types/node@20.12.7)
- '@microsoft/tsdoc': 0.14.2
- '@microsoft/tsdoc-config': 0.16.2
- '@rushstack/node-core-library': 4.1.0(@types/node@20.12.7)
+ '@microsoft/api-extractor-model': 7.29.2(@types/node@20.14.9)
+ '@microsoft/tsdoc': 0.15.0
+ '@microsoft/tsdoc-config': 0.17.0
+ '@rushstack/node-core-library': 5.4.1(@types/node@20.14.9)
'@rushstack/rig-package': 0.5.2
- '@rushstack/terminal': 0.10.1(@types/node@20.12.7)
- '@rushstack/ts-command-line': 4.19.2(@types/node@20.12.7)
+ '@rushstack/terminal': 0.13.0(@types/node@20.14.9)
+ '@rushstack/ts-command-line': 4.22.0(@types/node@20.14.9)
lodash: 4.17.21
minimatch: 3.0.8
resolve: 1.22.8
@@ -13753,43 +14590,31 @@ snapshots:
transitivePeerDependencies:
- '@types/node'
- '@microsoft/tsdoc-config@0.16.2':
+ '@microsoft/tsdoc-config@0.17.0':
dependencies:
- '@microsoft/tsdoc': 0.14.2
- ajv: 6.12.6
+ '@microsoft/tsdoc': 0.15.0
+ ajv: 8.12.0
jju: 1.4.0
- resolve: 1.19.0
+ resolve: 1.22.8
- '@microsoft/tsdoc@0.14.2': {}
+ '@microsoft/tsdoc@0.15.0': {}
'@misskey-dev/browser-image-resizer@2024.1.0': {}
- '@misskey-dev/eslint-plugin@1.0.0(@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0)(typescript@5.3.3))(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0))(eslint@8.53.0)':
+ '@misskey-dev/eslint-plugin@2.0.2(@eslint/compat@1.1.0)(@typescript-eslint/eslint-plugin@7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3))(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0))(eslint@9.6.0)(globals@15.7.0)':
dependencies:
- '@typescript-eslint/eslint-plugin': 6.11.0(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0)(typescript@5.3.3)
- '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
- eslint: 8.53.0
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0)
-
- '@misskey-dev/eslint-plugin@1.0.0(@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3))(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0))(eslint@8.57.0)':
- dependencies:
- '@typescript-eslint/eslint-plugin': 7.1.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3)
- '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3)
- eslint: 8.57.0
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)
-
- '@misskey-dev/eslint-plugin@1.0.0(@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2))(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0))(eslint@8.57.0)':
- dependencies:
- '@typescript-eslint/eslint-plugin': 7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)
- '@typescript-eslint/parser': 7.7.1(eslint@8.57.0)(typescript@5.5.2)
- eslint: 8.57.0
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)
+ '@eslint/compat': 1.1.0
+ '@typescript-eslint/eslint-plugin': 7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)
+ '@typescript-eslint/parser': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
+ eslint: 9.6.0
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)
+ globals: 15.7.0
'@misskey-dev/sharp-read-bmp@1.2.0':
dependencies:
decode-bmp: 0.2.1
decode-ico: 0.4.1
- sharp: 0.33.3
+ sharp: 0.33.4
'@misskey-dev/summaly@5.1.0':
dependencies:
@@ -13833,7 +14658,7 @@ snapshots:
'@mswjs/cookies@1.1.0': {}
- '@mswjs/interceptors@0.26.15':
+ '@mswjs/interceptors@0.29.1':
dependencies:
'@open-draft/deferred-promise': 2.2.0
'@open-draft/logger': 0.3.0
@@ -13842,44 +14667,44 @@ snapshots:
outvariant: 1.4.2
strict-event-emitter: 0.5.1
- '@napi-rs/canvas-android-arm64@0.1.52':
+ '@napi-rs/canvas-android-arm64@0.1.53':
optional: true
- '@napi-rs/canvas-darwin-arm64@0.1.52':
+ '@napi-rs/canvas-darwin-arm64@0.1.53':
optional: true
- '@napi-rs/canvas-darwin-x64@0.1.52':
+ '@napi-rs/canvas-darwin-x64@0.1.53':
optional: true
- '@napi-rs/canvas-linux-arm-gnueabihf@0.1.52':
+ '@napi-rs/canvas-linux-arm-gnueabihf@0.1.53':
optional: true
- '@napi-rs/canvas-linux-arm64-gnu@0.1.52':
+ '@napi-rs/canvas-linux-arm64-gnu@0.1.53':
optional: true
- '@napi-rs/canvas-linux-arm64-musl@0.1.52':
+ '@napi-rs/canvas-linux-arm64-musl@0.1.53':
optional: true
- '@napi-rs/canvas-linux-x64-gnu@0.1.52':
+ '@napi-rs/canvas-linux-x64-gnu@0.1.53':
optional: true
- '@napi-rs/canvas-linux-x64-musl@0.1.52':
+ '@napi-rs/canvas-linux-x64-musl@0.1.53':
optional: true
- '@napi-rs/canvas-win32-x64-msvc@0.1.52':
+ '@napi-rs/canvas-win32-x64-msvc@0.1.53':
optional: true
- '@napi-rs/canvas@0.1.52':
+ '@napi-rs/canvas@0.1.53':
optionalDependencies:
- '@napi-rs/canvas-android-arm64': 0.1.52
- '@napi-rs/canvas-darwin-arm64': 0.1.52
- '@napi-rs/canvas-darwin-x64': 0.1.52
- '@napi-rs/canvas-linux-arm-gnueabihf': 0.1.52
- '@napi-rs/canvas-linux-arm64-gnu': 0.1.52
- '@napi-rs/canvas-linux-arm64-musl': 0.1.52
- '@napi-rs/canvas-linux-x64-gnu': 0.1.52
- '@napi-rs/canvas-linux-x64-musl': 0.1.52
- '@napi-rs/canvas-win32-x64-msvc': 0.1.52
+ '@napi-rs/canvas-android-arm64': 0.1.53
+ '@napi-rs/canvas-darwin-arm64': 0.1.53
+ '@napi-rs/canvas-darwin-x64': 0.1.53
+ '@napi-rs/canvas-linux-arm-gnueabihf': 0.1.53
+ '@napi-rs/canvas-linux-arm64-gnu': 0.1.53
+ '@napi-rs/canvas-linux-arm64-musl': 0.1.53
+ '@napi-rs/canvas-linux-x64-gnu': 0.1.53
+ '@napi-rs/canvas-linux-x64-musl': 0.1.53
+ '@napi-rs/canvas-win32-x64-msvc': 0.1.53
'@ndelangen/get-tarball@3.0.7':
dependencies:
@@ -13887,49 +14712,51 @@ snapshots:
pump: 3.0.0
tar-fs: 2.1.1
- '@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1)':
+ '@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1)':
dependencies:
iterare: 1.2.1
reflect-metadata: 0.2.2
rxjs: 7.8.1
- tslib: 2.6.2
+ tslib: 2.6.3
uid: 2.0.2
- '@nestjs/core@10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)':
+ '@nestjs/core@10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)':
dependencies:
- '@nestjs/common': 10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1)
+ '@nestjs/common': 10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1)
'@nuxtjs/opencollective': 0.3.2(encoding@0.1.13)
fast-safe-stringify: 2.1.1
iterare: 1.2.1
path-to-regexp: 3.2.0
reflect-metadata: 0.2.2
rxjs: 7.8.1
- tslib: 2.6.2
+ tslib: 2.6.3
uid: 2.0.2
optionalDependencies:
- '@nestjs/platform-express': 10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8)
+ '@nestjs/platform-express': 10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10)
transitivePeerDependencies:
- encoding
- '@nestjs/platform-express@10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8)':
+ '@nestjs/platform-express@10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10)':
dependencies:
- '@nestjs/common': 10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1)
- '@nestjs/core': 10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)
+ '@nestjs/common': 10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1)
+ '@nestjs/core': 10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)
body-parser: 1.20.2
cors: 2.8.5
express: 4.19.2
multer: 1.4.4-lts.1
- tslib: 2.6.2
+ tslib: 2.6.3
transitivePeerDependencies:
- supports-color
- '@nestjs/testing@10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8))':
+ '@nestjs/testing@10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10))':
dependencies:
- '@nestjs/common': 10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1)
- '@nestjs/core': 10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.8)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)
- tslib: 2.6.2
+ '@nestjs/common': 10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1)
+ '@nestjs/core': 10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)
+ tslib: 2.6.3
optionalDependencies:
- '@nestjs/platform-express': 10.3.8(@nestjs/common@10.3.8(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.8)
+ '@nestjs/platform-express': 10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10)
+
+ '@noble/hashes@1.4.0': {}
'@nodelib/fs.scandir@2.1.5':
dependencies:
@@ -13941,7 +14768,7 @@ snapshots:
'@nodelib/fs.walk@1.2.8':
dependencies:
'@nodelib/fs.scandir': 2.1.5
- fastq: 1.15.0
+ fastq: 1.17.1
'@npmcli/agent@2.2.0':
dependencies:
@@ -13990,153 +14817,167 @@ snapshots:
'@open-draft/until@2.1.0': {}
- '@opentelemetry/api-logs@0.51.1':
+ '@opentelemetry/api-logs@0.52.1':
dependencies:
- '@opentelemetry/api': 1.8.0
+ '@opentelemetry/api': 1.9.0
- '@opentelemetry/api@1.8.0': {}
+ '@opentelemetry/api@1.9.0': {}
- '@opentelemetry/context-async-hooks@1.24.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/context-async-hooks@1.25.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
+ '@opentelemetry/api': 1.9.0
- '@opentelemetry/core@1.24.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/core@1.24.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
+ '@opentelemetry/api': 1.9.0
'@opentelemetry/semantic-conventions': 1.24.1
- '@opentelemetry/instrumentation-connect@0.36.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/semantic-conventions': 1.25.1
+
+ '@opentelemetry/instrumentation-connect@0.37.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
'@types/connect': 3.4.36
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-express@0.39.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-express@0.40.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-fastify@0.36.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-fastify@0.37.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-graphql@0.40.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-graphql@0.41.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-hapi@0.38.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-hapi@0.39.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-http@0.51.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-http@0.52.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
semver: 7.6.0
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-ioredis@0.40.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-ioredis@0.41.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
'@opentelemetry/redis-common': 0.36.2
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/semantic-conventions': 1.25.1
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-koa@0.40.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-koa@0.41.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
'@types/koa': 2.14.0
'@types/koa__router': 12.0.3
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-mongodb@0.43.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-mongodb@0.45.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/sdk-metrics': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 1.24.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-mongoose@0.38.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-mongoose@0.39.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-mysql2@0.38.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-mysql2@0.39.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
- '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.8.0)
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
+ '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0)
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-mysql@0.38.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-mysql@0.39.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
'@types/mysql': 2.15.22
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-nestjs-core@0.37.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-nestjs-core@0.38.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation-pg@0.41.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-pg@0.42.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
- '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.8.0)
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
+ '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0)
'@types/pg': 8.6.1
'@types/pg-pool': 2.0.4
transitivePeerDependencies:
- supports-color
- '@opentelemetry/instrumentation@0.43.0(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation-redis-4@0.40.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/redis-common': 0.36.2
+ '@opentelemetry/semantic-conventions': 1.25.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation@0.43.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
'@types/shimmer': 1.0.5
import-in-the-middle: 1.4.2
require-in-the-middle: 7.3.0
@@ -14146,12 +14987,12 @@ snapshots:
- supports-color
optional: true
- '@opentelemetry/instrumentation@0.51.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/instrumentation@0.52.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/api-logs': 0.51.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.52.1
'@types/shimmer': 1.0.5
- import-in-the-middle: 1.7.4
+ import-in-the-middle: 1.8.1
require-in-the-middle: 7.3.0
semver: 7.6.0
shimmer: 1.2.1
@@ -14160,32 +15001,40 @@ snapshots:
'@opentelemetry/redis-common@0.36.2': {}
- '@opentelemetry/resources@1.24.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/resources@1.24.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.24.1
- '@opentelemetry/sdk-metrics@1.24.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0)
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
+
+ '@opentelemetry/sdk-metrics@1.24.1(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.9.0)
lodash.merge: 4.6.2
- '@opentelemetry/sdk-trace-base@1.24.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
'@opentelemetry/semantic-conventions@1.24.1': {}
- '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.8.0)':
+ '@opentelemetry/semantic-conventions@1.25.1': {}
+
+ '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.0)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
'@peculiar/asn1-android@2.3.10':
dependencies:
@@ -14230,35 +15079,149 @@ snapshots:
'@pkgjs/parseargs@0.11.0':
optional: true
- '@prisma/instrumentation@5.14.0':
+ '@prisma/instrumentation@5.16.0':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0)
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0)
transitivePeerDependencies:
- supports-color
- '@radix-ui/react-compose-refs@1.0.1(@types/react@18.0.28)(react@18.3.1)':
+ '@radix-ui/primitive@1.1.0': {}
+
+ '@radix-ui/react-compose-refs@1.1.0(@types/react@18.0.28)(react@18.3.1)':
dependencies:
- '@babel/runtime': 7.23.4
react: 18.3.1
optionalDependencies:
'@types/react': 18.0.28
- '@radix-ui/react-slot@1.0.2(@types/react@18.0.28)(react@18.3.1)':
+ '@radix-ui/react-context@1.1.0(@types/react@18.0.28)(react@18.3.1)':
dependencies:
- '@babel/runtime': 7.23.4
- '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.0.28)(react@18.3.1)
react: 18.3.1
optionalDependencies:
'@types/react': 18.0.28
- '@readme/better-ajv-errors@1.6.0(ajv@8.13.0)':
+ '@radix-ui/react-dialog@1.1.1(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.1(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ aria-hidden: 1.2.4
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-remove-scroll: 2.5.7(@types/react@18.0.28)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-dismissable-layer@1.1.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-focus-guards@1.1.0(@types/react@18.0.28)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-focus-scope@1.1.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-id@1.1.0(@types/react@18.0.28)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-portal@1.1.1(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-presence@1.1.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-primitive@2.0.0(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-slot@1.1.0(@types/react@18.0.28)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.0.28)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.0.28)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.0.28)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.0.28)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ '@readme/better-ajv-errors@1.6.0(ajv@8.16.0)':
dependencies:
'@babel/code-frame': 7.23.5
'@babel/runtime': 7.23.4
'@humanwhocodes/momoa': 2.0.4
- ajv: 8.13.0
+ ajv: 8.16.0
chalk: 4.1.2
json-to-ast: 2.1.0
jsonpointer: 5.0.1
@@ -14276,181 +15239,186 @@ snapshots:
'@apidevtools/openapi-schemas': 2.1.0
'@apidevtools/swagger-methods': 3.0.2
'@jsdevtools/ono': 7.1.3
- '@readme/better-ajv-errors': 1.6.0(ajv@8.13.0)
+ '@readme/better-ajv-errors': 1.6.0(ajv@8.16.0)
'@readme/json-schema-ref-parser': 1.2.0
- ajv: 8.13.0
- ajv-draft-04: 1.0.0(ajv@8.13.0)
+ ajv: 8.16.0
+ ajv-draft-04: 1.0.0(ajv@8.16.0)
call-me-maybe: 1.0.2
openapi-types: 12.1.3
- '@rollup/plugin-json@6.1.0(rollup@4.17.2)':
+ '@rollup/plugin-json@6.1.0(rollup@4.18.0)':
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.17.2)
+ '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
optionalDependencies:
- rollup: 4.17.2
+ rollup: 4.18.0
- '@rollup/plugin-replace@5.0.5(rollup@4.17.2)':
+ '@rollup/plugin-replace@5.0.7(rollup@4.18.0)':
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.17.2)
- magic-string: 0.30.7
+ '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
+ magic-string: 0.30.10
optionalDependencies:
- rollup: 4.17.2
+ rollup: 4.18.0
- '@rollup/pluginutils@5.1.0(rollup@4.17.2)':
+ '@rollup/pluginutils@5.1.0(rollup@4.18.0)':
dependencies:
'@types/estree': 1.0.5
estree-walker: 2.0.2
picomatch: 2.3.1
optionalDependencies:
- rollup: 4.17.2
+ rollup: 4.18.0
- '@rollup/rollup-android-arm-eabi@4.17.2':
+ '@rollup/rollup-android-arm-eabi@4.18.0':
optional: true
- '@rollup/rollup-android-arm64@4.17.2':
+ '@rollup/rollup-android-arm64@4.18.0':
optional: true
- '@rollup/rollup-darwin-arm64@4.17.2':
+ '@rollup/rollup-darwin-arm64@4.18.0':
optional: true
- '@rollup/rollup-darwin-x64@4.17.2':
+ '@rollup/rollup-darwin-x64@4.18.0':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.17.2':
+ '@rollup/rollup-linux-arm-gnueabihf@4.18.0':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.17.2':
+ '@rollup/rollup-linux-arm-musleabihf@4.18.0':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.17.2':
+ '@rollup/rollup-linux-arm64-gnu@4.18.0':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.17.2':
+ '@rollup/rollup-linux-arm64-musl@4.18.0':
optional: true
- '@rollup/rollup-linux-powerpc64le-gnu@4.17.2':
+ '@rollup/rollup-linux-powerpc64le-gnu@4.18.0':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.17.2':
+ '@rollup/rollup-linux-riscv64-gnu@4.18.0':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.17.2':
+ '@rollup/rollup-linux-s390x-gnu@4.18.0':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.17.2':
+ '@rollup/rollup-linux-x64-gnu@4.18.0':
optional: true
- '@rollup/rollup-linux-x64-musl@4.17.2':
+ '@rollup/rollup-linux-x64-musl@4.18.0':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.17.2':
+ '@rollup/rollup-win32-arm64-msvc@4.18.0':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.17.2':
+ '@rollup/rollup-win32-ia32-msvc@4.18.0':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.17.2':
+ '@rollup/rollup-win32-x64-msvc@4.18.0':
optional: true
- '@rushstack/node-core-library@4.1.0(@types/node@20.12.7)':
+ '@rushstack/node-core-library@5.4.1(@types/node@20.14.9)':
dependencies:
+ ajv: 8.13.0
+ ajv-draft-04: 1.0.0(ajv@8.13.0)
+ ajv-formats: 3.0.1(ajv@8.13.0)
fs-extra: 7.0.1
import-lazy: 4.0.0
jju: 1.4.0
resolve: 1.22.8
semver: 7.5.4
- z-schema: 5.0.5
optionalDependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@rushstack/rig-package@0.5.2':
dependencies:
resolve: 1.22.8
strip-json-comments: 3.1.1
- '@rushstack/terminal@0.10.1(@types/node@20.12.7)':
+ '@rushstack/terminal@0.13.0(@types/node@20.14.9)':
dependencies:
- '@rushstack/node-core-library': 4.1.0(@types/node@20.12.7)
+ '@rushstack/node-core-library': 5.4.1(@types/node@20.14.9)
supports-color: 8.1.1
optionalDependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
- '@rushstack/ts-command-line@4.19.2(@types/node@20.12.7)':
+ '@rushstack/ts-command-line@4.22.0(@types/node@20.14.9)':
dependencies:
- '@rushstack/terminal': 0.10.1(@types/node@20.12.7)
+ '@rushstack/terminal': 0.13.0(@types/node@20.14.9)
'@types/argparse': 1.0.38
argparse: 1.0.10
string-argv: 0.3.1
transitivePeerDependencies:
- '@types/node'
- '@sentry/core@8.5.0':
- dependencies:
- '@sentry/types': 8.5.0
- '@sentry/utils': 8.5.0
+ '@sec-ant/readable-stream@0.4.1': {}
- '@sentry/node@8.5.0':
+ '@sentry/core@8.13.0':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/context-async-hooks': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-connect': 0.36.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-express': 0.39.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-fastify': 0.36.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-graphql': 0.40.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-hapi': 0.38.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-http': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-ioredis': 0.40.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-koa': 0.40.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-mongodb': 0.43.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-mongoose': 0.38.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-mysql': 0.38.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-mysql2': 0.38.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-nestjs-core': 0.37.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation-pg': 0.41.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
- '@prisma/instrumentation': 5.14.0
- '@sentry/core': 8.5.0
- '@sentry/opentelemetry': 8.5.0(@opentelemetry/api@1.8.0)(@opentelemetry/core@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/instrumentation@0.51.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-base@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/semantic-conventions@1.24.1)
- '@sentry/types': 8.5.0
- '@sentry/utils': 8.5.0
+ '@sentry/types': 8.13.0
+ '@sentry/utils': 8.13.0
+
+ '@sentry/node@8.13.0':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/context-async-hooks': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-connect': 0.37.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-express': 0.40.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-fastify': 0.37.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-graphql': 0.41.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-hapi': 0.39.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-http': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-ioredis': 0.41.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-koa': 0.41.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-mongodb': 0.45.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-mongoose': 0.39.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-mysql': 0.39.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-mysql2': 0.39.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-nestjs-core': 0.38.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-pg': 0.42.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-redis-4': 0.40.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
+ '@prisma/instrumentation': 5.16.0
+ '@sentry/core': 8.13.0
+ '@sentry/opentelemetry': 8.13.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.52.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.25.1)
+ '@sentry/types': 8.13.0
+ '@sentry/utils': 8.13.0
optionalDependencies:
opentelemetry-instrumentation-fetch-node: 1.2.0
transitivePeerDependencies:
- supports-color
- '@sentry/opentelemetry@8.5.0(@opentelemetry/api@1.8.0)(@opentelemetry/core@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/instrumentation@0.51.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-base@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/semantic-conventions@1.24.1)':
+ '@sentry/opentelemetry@8.13.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.52.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.25.1)':
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
- '@sentry/core': 8.5.0
- '@sentry/types': 8.5.0
- '@sentry/utils': 8.5.0
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
+ '@sentry/core': 8.13.0
+ '@sentry/types': 8.13.0
+ '@sentry/utils': 8.13.0
- '@sentry/profiling-node@8.5.0':
+ '@sentry/profiling-node@8.13.0':
dependencies:
- '@sentry/core': 8.5.0
- '@sentry/node': 8.5.0
- '@sentry/types': 8.5.0
- '@sentry/utils': 8.5.0
+ '@sentry/core': 8.13.0
+ '@sentry/node': 8.13.0
+ '@sentry/types': 8.13.0
+ '@sentry/utils': 8.13.0
detect-libc: 2.0.3
node-abi: 3.62.0
transitivePeerDependencies:
- supports-color
- '@sentry/types@8.5.0': {}
+ '@sentry/types@8.13.0': {}
- '@sentry/utils@8.5.0':
+ '@sentry/utils@8.13.0':
dependencies:
- '@sentry/types': 8.5.0
+ '@sentry/types': 8.13.0
- '@shikijs/core@1.4.0': {}
+ '@shikijs/core@1.10.0': {}
'@sideway/address@4.1.4':
dependencies:
@@ -14482,7 +15450,11 @@ snapshots:
'@sindresorhus/is@5.3.0': {}
- '@sindresorhus/is@6.1.0': {}
+ '@sindresorhus/is@6.3.1': {}
+
+ '@sindresorhus/merge-streams@2.3.0': {}
+
+ '@sindresorhus/merge-streams@4.0.0': {}
'@sinonjs/commons@2.0.0':
dependencies:
@@ -14508,154 +15480,172 @@ snapshots:
'@sinonjs/text-encoding@0.7.2': {}
- '@smithy/abort-controller@2.0.14':
- dependencies:
- '@smithy/types': 2.6.0
- tslib: 2.6.2
-
'@smithy/abort-controller@2.2.0':
dependencies:
'@smithy/types': 2.12.0
tslib: 2.6.2
- '@smithy/chunked-blob-reader-native@2.0.0':
+ '@smithy/abort-controller@3.1.1':
dependencies:
- '@smithy/util-base64': 2.0.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/chunked-blob-reader@2.0.0':
+ '@smithy/chunked-blob-reader-native@3.0.0':
+ dependencies:
+ '@smithy/util-base64': 3.0.0
+ tslib: 2.6.2
+
+ '@smithy/chunked-blob-reader@3.0.0':
dependencies:
tslib: 2.6.2
- '@smithy/config-resolver@2.0.9':
+ '@smithy/config-resolver@3.0.4':
dependencies:
- '@smithy/node-config-provider': 2.0.11
- '@smithy/types': 2.6.0
- '@smithy/util-config-provider': 2.0.0
- '@smithy/util-middleware': 2.0.1
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/types': 3.3.0
+ '@smithy/util-config-provider': 3.0.0
+ '@smithy/util-middleware': 3.0.3
tslib: 2.6.2
- '@smithy/credential-provider-imds@2.0.11':
+ '@smithy/core@2.2.4':
dependencies:
- '@smithy/node-config-provider': 2.0.11
- '@smithy/property-provider': 2.0.9
- '@smithy/types': 2.6.0
- '@smithy/url-parser': 2.0.8
+ '@smithy/middleware-endpoint': 3.0.4
+ '@smithy/middleware-retry': 3.0.7
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ '@smithy/util-middleware': 3.0.3
tslib: 2.6.2
- '@smithy/eventstream-codec@2.0.8':
+ '@smithy/credential-provider-imds@3.1.3':
dependencies:
- '@aws-crypto/crc32': 3.0.0
- '@smithy/types': 2.6.0
- '@smithy/util-hex-encoding': 2.0.0
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/property-provider': 3.1.3
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
tslib: 2.6.2
- '@smithy/eventstream-serde-browser@2.0.8':
+ '@smithy/eventstream-codec@3.1.2':
dependencies:
- '@smithy/eventstream-serde-universal': 2.0.8
- '@smithy/types': 2.6.0
+ '@aws-crypto/crc32': 5.2.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-hex-encoding': 3.0.0
tslib: 2.6.2
- '@smithy/eventstream-serde-config-resolver@2.0.8':
+ '@smithy/eventstream-serde-browser@3.0.4':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/eventstream-serde-universal': 3.0.4
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/eventstream-serde-node@2.0.8':
+ '@smithy/eventstream-serde-config-resolver@3.0.3':
dependencies:
- '@smithy/eventstream-serde-universal': 2.0.8
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/eventstream-serde-universal@2.0.8':
+ '@smithy/eventstream-serde-node@3.0.4':
dependencies:
- '@smithy/eventstream-codec': 2.0.8
- '@smithy/types': 2.6.0
+ '@smithy/eventstream-serde-universal': 3.0.4
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/fetch-http-handler@2.1.4':
+ '@smithy/eventstream-serde-universal@3.0.4':
dependencies:
- '@smithy/protocol-http': 3.0.10
- '@smithy/querystring-builder': 2.0.14
- '@smithy/types': 2.6.0
- '@smithy/util-base64': 2.0.0
+ '@smithy/eventstream-codec': 3.1.2
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/hash-blob-browser@2.0.8':
+ '@smithy/fetch-http-handler@3.2.0':
dependencies:
- '@smithy/chunked-blob-reader': 2.0.0
- '@smithy/chunked-blob-reader-native': 2.0.0
- '@smithy/types': 2.6.0
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/querystring-builder': 3.0.3
+ '@smithy/types': 3.3.0
+ '@smithy/util-base64': 3.0.0
tslib: 2.6.2
- '@smithy/hash-node@2.0.8':
+ '@smithy/hash-blob-browser@3.1.2':
dependencies:
- '@smithy/types': 2.6.0
- '@smithy/util-buffer-from': 2.0.0
- '@smithy/util-utf8': 2.0.0
+ '@smithy/chunked-blob-reader': 3.0.0
+ '@smithy/chunked-blob-reader-native': 3.0.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/hash-stream-node@2.0.8':
+ '@smithy/hash-node@3.0.3':
dependencies:
- '@smithy/types': 2.6.0
- '@smithy/util-utf8': 2.0.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-buffer-from': 3.0.0
+ '@smithy/util-utf8': 3.0.0
tslib: 2.6.2
- '@smithy/invalid-dependency@2.0.8':
+ '@smithy/hash-stream-node@3.1.2':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.2
+
+ '@smithy/invalid-dependency@3.0.3':
+ dependencies:
+ '@smithy/types': 3.3.0
tslib: 2.6.2
'@smithy/is-array-buffer@2.0.0':
dependencies:
tslib: 2.6.2
- '@smithy/md5-js@2.0.8':
+ '@smithy/is-array-buffer@3.0.0':
dependencies:
- '@smithy/types': 2.6.0
- '@smithy/util-utf8': 2.0.0
tslib: 2.6.2
- '@smithy/middleware-content-length@2.0.10':
+ '@smithy/md5-js@3.0.3':
dependencies:
- '@smithy/protocol-http': 3.0.10
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-utf8': 3.0.0
tslib: 2.6.2
- '@smithy/middleware-endpoint@2.0.8':
+ '@smithy/middleware-content-length@3.0.3':
dependencies:
- '@smithy/middleware-serde': 2.0.8
- '@smithy/types': 2.6.0
- '@smithy/url-parser': 2.0.8
- '@smithy/util-middleware': 2.0.1
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/middleware-retry@2.0.11':
+ '@smithy/middleware-endpoint@3.0.4':
dependencies:
- '@smithy/node-config-provider': 2.0.11
- '@smithy/protocol-http': 3.0.10
- '@smithy/service-error-classification': 2.0.1
- '@smithy/types': 2.6.0
- '@smithy/util-middleware': 2.0.1
- '@smithy/util-retry': 2.0.1
- tslib: 2.6.2
- uuid: 8.3.2
-
- '@smithy/middleware-serde@2.0.8':
- dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.3
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
+ '@smithy/util-middleware': 3.0.3
tslib: 2.6.2
- '@smithy/middleware-stack@2.0.1':
+ '@smithy/middleware-retry@3.0.7':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/service-error-classification': 3.0.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-retry': 3.0.3
+ tslib: 2.6.2
+ uuid: 9.0.1
+
+ '@smithy/middleware-serde@3.0.3':
+ dependencies:
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/node-config-provider@2.0.11':
+ '@smithy/middleware-stack@3.0.3':
dependencies:
- '@smithy/property-provider': 2.0.9
- '@smithy/shared-ini-file-loader': 2.0.10
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
+ tslib: 2.6.2
+
+ '@smithy/node-config-provider@3.1.3':
+ dependencies:
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
'@smithy/node-http-handler@2.5.0':
@@ -14666,14 +15656,17 @@ snapshots:
'@smithy/types': 2.12.0
tslib: 2.6.2
- '@smithy/property-provider@2.0.9':
+ '@smithy/node-http-handler@3.1.1':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/abort-controller': 3.1.1
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/querystring-builder': 3.0.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/protocol-http@3.0.10':
+ '@smithy/property-provider@3.1.3':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
'@smithy/protocol-http@3.3.0':
@@ -14681,10 +15674,9 @@ snapshots:
'@smithy/types': 2.12.0
tslib: 2.6.2
- '@smithy/querystring-builder@2.0.14':
+ '@smithy/protocol-http@4.0.3':
dependencies:
- '@smithy/types': 2.6.0
- '@smithy/util-uri-escape': 2.0.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
'@smithy/querystring-builder@2.2.0':
@@ -14693,62 +15685,70 @@ snapshots:
'@smithy/util-uri-escape': 2.2.0
tslib: 2.6.2
- '@smithy/querystring-parser@2.0.8':
+ '@smithy/querystring-builder@3.0.3':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-uri-escape': 3.0.0
tslib: 2.6.2
- '@smithy/service-error-classification@2.0.1':
+ '@smithy/querystring-parser@3.0.3':
dependencies:
- '@smithy/types': 2.6.0
-
- '@smithy/shared-ini-file-loader@2.0.10':
- dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/signature-v4@2.0.5':
+ '@smithy/service-error-classification@3.0.3':
dependencies:
- '@smithy/eventstream-codec': 2.0.8
- '@smithy/is-array-buffer': 2.0.0
- '@smithy/types': 2.6.0
- '@smithy/util-hex-encoding': 2.0.0
- '@smithy/util-middleware': 2.0.1
- '@smithy/util-uri-escape': 2.0.0
- '@smithy/util-utf8': 2.0.0
+ '@smithy/types': 3.3.0
+
+ '@smithy/shared-ini-file-loader@3.1.3':
+ dependencies:
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/smithy-client@2.1.5':
+ '@smithy/signature-v4@3.1.2':
dependencies:
- '@smithy/middleware-stack': 2.0.1
- '@smithy/types': 2.6.0
- '@smithy/util-stream': 2.0.11
+ '@smithy/is-array-buffer': 3.0.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-hex-encoding': 3.0.0
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-uri-escape': 3.0.0
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.2
+
+ '@smithy/smithy-client@3.1.5':
+ dependencies:
+ '@smithy/middleware-endpoint': 3.0.4
+ '@smithy/middleware-stack': 3.0.3
+ '@smithy/protocol-http': 4.0.3
+ '@smithy/types': 3.3.0
+ '@smithy/util-stream': 3.0.5
tslib: 2.6.2
'@smithy/types@2.12.0':
dependencies:
tslib: 2.6.2
- '@smithy/types@2.6.0':
+ '@smithy/types@3.3.0':
dependencies:
tslib: 2.6.2
- '@smithy/url-parser@2.0.8':
+ '@smithy/url-parser@3.0.3':
dependencies:
- '@smithy/querystring-parser': 2.0.8
- '@smithy/types': 2.6.0
+ '@smithy/querystring-parser': 3.0.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/util-base64@2.0.0':
+ '@smithy/util-base64@3.0.0':
dependencies:
- '@smithy/util-buffer-from': 2.0.0
+ '@smithy/util-buffer-from': 3.0.0
+ '@smithy/util-utf8': 3.0.0
tslib: 2.6.2
- '@smithy/util-body-length-browser@2.0.0':
+ '@smithy/util-body-length-browser@3.0.0':
dependencies:
tslib: 2.6.2
- '@smithy/util-body-length-node@2.1.0':
+ '@smithy/util-body-length-node@3.0.0':
dependencies:
tslib: 2.6.2
@@ -14757,117 +15757,136 @@ snapshots:
'@smithy/is-array-buffer': 2.0.0
tslib: 2.6.2
- '@smithy/util-config-provider@2.0.0':
+ '@smithy/util-buffer-from@3.0.0':
+ dependencies:
+ '@smithy/is-array-buffer': 3.0.0
+ tslib: 2.6.2
+
+ '@smithy/util-config-provider@3.0.0':
dependencies:
tslib: 2.6.2
- '@smithy/util-defaults-mode-browser@2.0.9':
+ '@smithy/util-defaults-mode-browser@3.0.7':
dependencies:
- '@smithy/property-provider': 2.0.9
- '@smithy/smithy-client': 2.1.5
- '@smithy/types': 2.6.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
bowser: 2.11.0
tslib: 2.6.2
- '@smithy/util-defaults-mode-node@2.0.11':
+ '@smithy/util-defaults-mode-node@3.0.7':
dependencies:
- '@smithy/config-resolver': 2.0.9
- '@smithy/credential-provider-imds': 2.0.11
- '@smithy/node-config-provider': 2.0.11
- '@smithy/property-provider': 2.0.9
- '@smithy/smithy-client': 2.1.5
- '@smithy/types': 2.6.0
+ '@smithy/config-resolver': 3.0.4
+ '@smithy/credential-provider-imds': 3.1.3
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/property-provider': 3.1.3
+ '@smithy/smithy-client': 3.1.5
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/util-hex-encoding@2.0.0':
+ '@smithy/util-endpoints@2.0.4':
+ dependencies:
+ '@smithy/node-config-provider': 3.1.3
+ '@smithy/types': 3.3.0
+ tslib: 2.6.2
+
+ '@smithy/util-hex-encoding@3.0.0':
dependencies:
tslib: 2.6.2
- '@smithy/util-middleware@2.0.1':
+ '@smithy/util-middleware@3.0.3':
dependencies:
- '@smithy/types': 2.6.0
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/util-retry@2.0.1':
+ '@smithy/util-retry@3.0.3':
dependencies:
- '@smithy/service-error-classification': 2.0.1
- '@smithy/types': 2.6.0
+ '@smithy/service-error-classification': 3.0.3
+ '@smithy/types': 3.3.0
tslib: 2.6.2
- '@smithy/util-stream@2.0.11':
- dependencies:
- '@smithy/fetch-http-handler': 2.1.4
- '@smithy/node-http-handler': 2.5.0
- '@smithy/types': 2.6.0
- '@smithy/util-base64': 2.0.0
- '@smithy/util-buffer-from': 2.0.0
- '@smithy/util-hex-encoding': 2.0.0
- '@smithy/util-utf8': 2.0.0
- tslib: 2.6.2
-
- '@smithy/util-uri-escape@2.0.0':
+ '@smithy/util-stream@3.0.5':
dependencies:
+ '@smithy/fetch-http-handler': 3.2.0
+ '@smithy/node-http-handler': 3.1.1
+ '@smithy/types': 3.3.0
+ '@smithy/util-base64': 3.0.0
+ '@smithy/util-buffer-from': 3.0.0
+ '@smithy/util-hex-encoding': 3.0.0
+ '@smithy/util-utf8': 3.0.0
tslib: 2.6.2
'@smithy/util-uri-escape@2.2.0':
dependencies:
tslib: 2.6.2
+ '@smithy/util-uri-escape@3.0.0':
+ dependencies:
+ tslib: 2.6.2
+
'@smithy/util-utf8@2.0.0':
dependencies:
'@smithy/util-buffer-from': 2.0.0
tslib: 2.6.2
- '@smithy/util-waiter@2.0.8':
+ '@smithy/util-utf8@3.0.0':
dependencies:
- '@smithy/abort-controller': 2.0.14
- '@smithy/types': 2.6.0
+ '@smithy/util-buffer-from': 3.0.0
+ tslib: 2.6.2
+
+ '@smithy/util-waiter@3.1.2':
+ dependencies:
+ '@smithy/abort-controller': 3.1.1
+ '@smithy/types': 3.3.0
tslib: 2.6.2
'@sqltools/formatter@1.2.5': {}
- '@storybook/addon-actions@8.0.9':
+ '@storybook/addon-actions@8.1.11':
dependencies:
- '@storybook/core-events': 8.0.9
+ '@storybook/core-events': 8.1.11
'@storybook/global': 5.0.0
'@types/uuid': 9.0.8
dequal: 2.0.3
polished: 4.2.2
uuid: 9.0.1
- '@storybook/addon-backgrounds@8.0.9':
+ '@storybook/addon-backgrounds@8.1.11':
dependencies:
'@storybook/global': 5.0.0
memoizerific: 1.11.3
ts-dedent: 2.2.0
- '@storybook/addon-controls@8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@storybook/addon-controls@8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@storybook/blocks': 8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/blocks': 8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ dequal: 2.0.3
lodash: 4.17.21
ts-dedent: 2.2.0
transitivePeerDependencies:
- '@types/react'
+ - '@types/react-dom'
- encoding
+ - prettier
- react
- react-dom
- supports-color
- '@storybook/addon-docs@8.0.9(encoding@0.1.13)':
+ '@storybook/addon-docs@8.1.11(encoding@0.1.13)(prettier@3.3.2)':
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
'@mdx-js/react': 3.0.1(@types/react@18.0.28)(react@18.3.1)
- '@storybook/blocks': 8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/client-logger': 8.0.9
- '@storybook/components': 8.0.9(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/csf-plugin': 8.0.9
- '@storybook/csf-tools': 8.0.9
+ '@storybook/blocks': 8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/client-logger': 8.1.11
+ '@storybook/components': 8.1.11(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/csf-plugin': 8.1.11
+ '@storybook/csf-tools': 8.1.11
'@storybook/global': 5.0.0
- '@storybook/node-logger': 8.0.9
- '@storybook/preview-api': 8.0.9
- '@storybook/react-dom-shim': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/theming': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/types': 8.0.9
+ '@storybook/node-logger': 8.1.11
+ '@storybook/preview-api': 8.1.11
+ '@storybook/react-dom-shim': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/theming': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/types': 8.1.11
'@types/react': 18.0.28
fs-extra: 11.1.1
react: 18.3.1
@@ -14876,42 +15895,46 @@ snapshots:
rehype-slug: 6.0.0
ts-dedent: 2.2.0
transitivePeerDependencies:
+ - '@types/react-dom'
- encoding
+ - prettier
- supports-color
- '@storybook/addon-essentials@8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@storybook/addon-essentials@8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@storybook/addon-actions': 8.0.9
- '@storybook/addon-backgrounds': 8.0.9
- '@storybook/addon-controls': 8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/addon-docs': 8.0.9(encoding@0.1.13)
- '@storybook/addon-highlight': 8.0.9
- '@storybook/addon-measure': 8.0.9
- '@storybook/addon-outline': 8.0.9
- '@storybook/addon-toolbars': 8.0.9
- '@storybook/addon-viewport': 8.0.9
- '@storybook/core-common': 8.0.9(encoding@0.1.13)
- '@storybook/manager-api': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/node-logger': 8.0.9
- '@storybook/preview-api': 8.0.9
+ '@storybook/addon-actions': 8.1.11
+ '@storybook/addon-backgrounds': 8.1.11
+ '@storybook/addon-controls': 8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/addon-docs': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/addon-highlight': 8.1.11
+ '@storybook/addon-measure': 8.1.11
+ '@storybook/addon-outline': 8.1.11
+ '@storybook/addon-toolbars': 8.1.11
+ '@storybook/addon-viewport': 8.1.11
+ '@storybook/core-common': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/manager-api': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/node-logger': 8.1.11
+ '@storybook/preview-api': 8.1.11
ts-dedent: 2.2.0
transitivePeerDependencies:
- '@types/react'
+ - '@types/react-dom'
- encoding
+ - prettier
- react
- react-dom
- supports-color
- '@storybook/addon-highlight@8.0.9':
+ '@storybook/addon-highlight@8.1.11':
dependencies:
'@storybook/global': 5.0.0
- '@storybook/addon-interactions@8.0.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.12.7))(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))':
+ '@storybook/addon-interactions@8.1.11(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.9))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))':
dependencies:
'@storybook/global': 5.0.0
- '@storybook/instrumenter': 8.0.9
- '@storybook/test': 8.0.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.12.7))(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))
- '@storybook/types': 8.0.9
+ '@storybook/instrumenter': 8.1.11
+ '@storybook/test': 8.1.11(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.9))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))
+ '@storybook/types': 8.1.11
polished: 4.2.2
ts-dedent: 2.2.0
transitivePeerDependencies:
@@ -14921,58 +15944,58 @@ snapshots:
- jest
- vitest
- '@storybook/addon-links@8.0.9(react@18.3.1)':
+ '@storybook/addon-links@8.1.11(react@18.3.1)':
dependencies:
- '@storybook/csf': 0.1.6
+ '@storybook/csf': 0.1.9
'@storybook/global': 5.0.0
ts-dedent: 2.2.0
optionalDependencies:
react: 18.3.1
- '@storybook/addon-mdx-gfm@8.0.9':
+ '@storybook/addon-mdx-gfm@8.1.11':
dependencies:
- '@storybook/node-logger': 8.0.9
+ '@storybook/node-logger': 8.1.11
remark-gfm: 4.0.0
ts-dedent: 2.2.0
transitivePeerDependencies:
- supports-color
- '@storybook/addon-measure@8.0.9':
+ '@storybook/addon-measure@8.1.11':
dependencies:
'@storybook/global': 5.0.0
- tiny-invariant: 1.3.1
+ tiny-invariant: 1.3.3
- '@storybook/addon-outline@8.0.9':
+ '@storybook/addon-outline@8.1.11':
dependencies:
'@storybook/global': 5.0.0
ts-dedent: 2.2.0
- '@storybook/addon-storysource@8.0.9':
+ '@storybook/addon-storysource@8.1.11':
dependencies:
- '@storybook/source-loader': 8.0.9
+ '@storybook/source-loader': 8.1.11
estraverse: 5.3.0
- tiny-invariant: 1.3.1
+ tiny-invariant: 1.3.3
- '@storybook/addon-toolbars@8.0.9': {}
+ '@storybook/addon-toolbars@8.1.11': {}
- '@storybook/addon-viewport@8.0.9':
+ '@storybook/addon-viewport@8.1.11':
dependencies:
memoizerific: 1.11.3
- '@storybook/blocks@8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@storybook/blocks@8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@storybook/channels': 8.0.9
- '@storybook/client-logger': 8.0.9
- '@storybook/components': 8.0.9(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/core-events': 8.0.9
- '@storybook/csf': 0.1.6
- '@storybook/docs-tools': 8.0.9(encoding@0.1.13)
+ '@storybook/channels': 8.1.11
+ '@storybook/client-logger': 8.1.11
+ '@storybook/components': 8.1.11(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/core-events': 8.1.11
+ '@storybook/csf': 0.1.9
+ '@storybook/docs-tools': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
'@storybook/global': 5.0.0
'@storybook/icons': 1.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/manager-api': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/preview-api': 8.0.9
- '@storybook/theming': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/types': 8.0.9
+ '@storybook/manager-api': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/preview-api': 8.1.11
+ '@storybook/theming': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/types': 8.1.11
'@types/lodash': 4.14.191
color-convert: 2.0.1
dequal: 2.0.3
@@ -14990,20 +16013,22 @@ snapshots:
react-dom: 18.3.1(react@18.3.1)
transitivePeerDependencies:
- '@types/react'
+ - '@types/react-dom'
- encoding
+ - prettier
- supports-color
- '@storybook/builder-manager@8.0.9(encoding@0.1.13)':
+ '@storybook/builder-manager@8.1.11(encoding@0.1.13)(prettier@3.3.2)':
dependencies:
'@fal-works/esbuild-plugin-global-externals': 2.1.2
- '@storybook/core-common': 8.0.9(encoding@0.1.13)
- '@storybook/manager': 8.0.9
- '@storybook/node-logger': 8.0.9
+ '@storybook/core-common': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/manager': 8.1.11
+ '@storybook/node-logger': 8.1.11
'@types/ejs': 3.1.2
- '@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15(esbuild@0.20.2)
+ '@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15(esbuild@0.19.11)
browser-assert: 1.2.1
- ejs: 3.1.9
- esbuild: 0.20.2
+ ejs: 3.1.10
+ esbuild: 0.19.11
esbuild-plugin-alias: 0.2.1
express: 4.19.2
fs-extra: 11.1.1
@@ -15011,55 +16036,57 @@ snapshots:
util: 0.12.5
transitivePeerDependencies:
- encoding
+ - prettier
- supports-color
- '@storybook/builder-vite@8.0.9(encoding@0.1.13)(typescript@5.5.2)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))':
+ '@storybook/builder-vite@8.1.11(encoding@0.1.13)(prettier@3.3.2)(typescript@5.5.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))':
dependencies:
- '@storybook/channels': 8.0.9
- '@storybook/client-logger': 8.0.9
- '@storybook/core-common': 8.0.9(encoding@0.1.13)
- '@storybook/core-events': 8.0.9
- '@storybook/csf-plugin': 8.0.9
- '@storybook/node-logger': 8.0.9
- '@storybook/preview': 8.0.9
- '@storybook/preview-api': 8.0.9
- '@storybook/types': 8.0.9
+ '@storybook/channels': 8.1.11
+ '@storybook/client-logger': 8.1.11
+ '@storybook/core-common': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/core-events': 8.1.11
+ '@storybook/csf-plugin': 8.1.11
+ '@storybook/node-logger': 8.1.11
+ '@storybook/preview': 8.1.11
+ '@storybook/preview-api': 8.1.11
+ '@storybook/types': 8.1.11
'@types/find-cache-dir': 3.2.1
browser-assert: 1.2.1
- es-module-lexer: 0.9.3
- express: 4.18.2
+ es-module-lexer: 1.5.4
+ express: 4.19.2
find-cache-dir: 3.3.2
fs-extra: 11.1.1
- magic-string: 0.30.7
+ magic-string: 0.30.10
ts-dedent: 2.2.0
- vite: 5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
+ vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.5.3
transitivePeerDependencies:
- encoding
+ - prettier
- supports-color
- '@storybook/channels@8.0.9':
+ '@storybook/channels@8.1.11':
dependencies:
- '@storybook/client-logger': 8.0.9
- '@storybook/core-events': 8.0.9
+ '@storybook/client-logger': 8.1.11
+ '@storybook/core-events': 8.1.11
'@storybook/global': 5.0.0
telejson: 7.2.0
- tiny-invariant: 1.3.1
+ tiny-invariant: 1.3.3
- '@storybook/cli@8.0.9(@babel/preset-env@7.23.5(@babel/core@7.24.0))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)':
+ '@storybook/cli@8.1.11(@babel/preset-env@7.24.7(@babel/core@7.24.7))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)':
dependencies:
- '@babel/core': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/core': 7.24.7
+ '@babel/types': 7.24.7
'@ndelangen/get-tarball': 3.0.7
- '@storybook/codemod': 8.0.9
- '@storybook/core-common': 8.0.9(encoding@0.1.13)
- '@storybook/core-events': 8.0.9
- '@storybook/core-server': 8.0.9(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)
- '@storybook/csf-tools': 8.0.9
- '@storybook/node-logger': 8.0.9
- '@storybook/telemetry': 8.0.9(encoding@0.1.13)
- '@storybook/types': 8.0.9
+ '@storybook/codemod': 8.1.11
+ '@storybook/core-common': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/core-events': 8.1.11
+ '@storybook/core-server': 8.1.11(bufferutil@4.0.7)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)
+ '@storybook/csf-tools': 8.1.11
+ '@storybook/node-logger': 8.1.11
+ '@storybook/telemetry': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/types': 8.1.11
'@types/semver': 7.5.8
'@yarnpkg/fslib': 2.10.3
'@yarnpkg/libzip': 2.3.0
@@ -15073,17 +16100,17 @@ snapshots:
fs-extra: 11.1.1
get-npm-tarball-url: 2.0.3
giget: 1.1.2
- globby: 11.1.0
- jscodeshift: 0.15.1(@babel/preset-env@7.23.5(@babel/core@7.24.0))
+ globby: 14.0.1
+ jscodeshift: 0.15.1(@babel/preset-env@7.24.7(@babel/core@7.24.7))
leven: 3.1.0
ora: 5.4.1
- prettier: 3.2.5
+ prettier: 3.3.2
prompts: 2.4.2
read-pkg-up: 7.0.1
semver: 7.6.0
strip-json-comments: 3.1.1
- tempy: 1.0.1
- tiny-invariant: 1.3.1
+ tempy: 3.1.0
+ tiny-invariant: 1.3.3
ts-dedent: 2.2.0
transitivePeerDependencies:
- '@babel/preset-env'
@@ -15094,104 +16121,112 @@ snapshots:
- supports-color
- utf-8-validate
- '@storybook/client-logger@8.0.9':
+ '@storybook/client-logger@8.1.11':
dependencies:
'@storybook/global': 5.0.0
- '@storybook/codemod@8.0.9':
+ '@storybook/codemod@8.1.11':
dependencies:
- '@babel/core': 7.24.0
- '@babel/preset-env': 7.23.5(@babel/core@7.24.0)
- '@babel/types': 7.24.0
- '@storybook/csf': 0.1.6
- '@storybook/csf-tools': 8.0.9
- '@storybook/node-logger': 8.0.9
- '@storybook/types': 8.0.9
+ '@babel/core': 7.24.7
+ '@babel/preset-env': 7.24.7(@babel/core@7.24.7)
+ '@babel/types': 7.24.7
+ '@storybook/csf': 0.1.9
+ '@storybook/csf-tools': 8.1.11
+ '@storybook/node-logger': 8.1.11
+ '@storybook/types': 8.1.11
'@types/cross-spawn': 6.0.2
cross-spawn: 7.0.3
- globby: 11.1.0
- jscodeshift: 0.15.1(@babel/preset-env@7.23.5(@babel/core@7.24.0))
+ globby: 14.0.1
+ jscodeshift: 0.15.1(@babel/preset-env@7.24.7(@babel/core@7.24.7))
lodash: 4.17.21
- prettier: 3.2.5
+ prettier: 3.3.2
recast: 0.23.6
- tiny-invariant: 1.3.1
+ tiny-invariant: 1.3.3
transitivePeerDependencies:
- supports-color
- '@storybook/components@8.0.9(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@storybook/components@8.1.11(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@radix-ui/react-slot': 1.0.2(@types/react@18.0.28)(react@18.3.1)
- '@storybook/client-logger': 8.0.9
- '@storybook/csf': 0.1.6
+ '@radix-ui/react-dialog': 1.1.1(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.0.28)(react@18.3.1)
+ '@storybook/client-logger': 8.1.11
+ '@storybook/csf': 0.1.9
'@storybook/global': 5.0.0
'@storybook/icons': 1.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/theming': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/types': 8.0.9
+ '@storybook/theming': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/types': 8.1.11
memoizerific: 1.11.3
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
util-deprecate: 1.0.2
transitivePeerDependencies:
- '@types/react'
+ - '@types/react-dom'
- '@storybook/core-common@8.0.9(encoding@0.1.13)':
+ '@storybook/core-common@8.1.11(encoding@0.1.13)(prettier@3.3.2)':
dependencies:
- '@storybook/core-events': 8.0.9
- '@storybook/csf-tools': 8.0.9
- '@storybook/node-logger': 8.0.9
- '@storybook/types': 8.0.9
+ '@storybook/core-events': 8.1.11
+ '@storybook/csf-tools': 8.1.11
+ '@storybook/node-logger': 8.1.11
+ '@storybook/types': 8.1.11
'@yarnpkg/fslib': 2.10.3
'@yarnpkg/libzip': 2.3.0
chalk: 4.1.2
cross-spawn: 7.0.3
- esbuild: 0.20.2
- esbuild-register: 3.5.0(esbuild@0.20.2)
+ esbuild: 0.19.11
+ esbuild-register: 3.5.0(esbuild@0.19.11)
execa: 5.1.1
file-system-cache: 2.3.0
find-cache-dir: 3.3.2
find-up: 5.0.0
fs-extra: 11.1.1
- glob: 10.3.12
+ glob: 10.4.2
handlebars: 4.7.7
lazy-universal-dotenv: 4.0.0
node-fetch: 2.7.0(encoding@0.1.13)
picomatch: 2.3.1
pkg-dir: 5.0.0
+ prettier-fallback: prettier@3.3.2
pretty-hrtime: 1.0.3
resolve-from: 5.0.0
semver: 7.6.0
- tempy: 1.0.1
- tiny-invariant: 1.3.1
+ tempy: 3.1.0
+ tiny-invariant: 1.3.3
ts-dedent: 2.2.0
util: 0.12.5
+ optionalDependencies:
+ prettier: 3.3.2
transitivePeerDependencies:
- encoding
- supports-color
- '@storybook/core-events@8.0.9':
+ '@storybook/core-events@8.1.11':
dependencies:
+ '@storybook/csf': 0.1.9
ts-dedent: 2.2.0
- '@storybook/core-server@8.0.9(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)':
+ '@storybook/core-server@8.1.11(bufferutil@4.0.7)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)':
dependencies:
'@aw-web-design/x-default-browser': 1.4.126
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
+ '@babel/parser': 7.24.7
'@discoveryjs/json-ext': 0.5.7
- '@storybook/builder-manager': 8.0.9(encoding@0.1.13)
- '@storybook/channels': 8.0.9
- '@storybook/core-common': 8.0.9(encoding@0.1.13)
- '@storybook/core-events': 8.0.9
- '@storybook/csf': 0.1.6
- '@storybook/csf-tools': 8.0.9
- '@storybook/docs-mdx': 3.0.0
+ '@storybook/builder-manager': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/channels': 8.1.11
+ '@storybook/core-common': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/core-events': 8.1.11
+ '@storybook/csf': 0.1.9
+ '@storybook/csf-tools': 8.1.11
+ '@storybook/docs-mdx': 3.1.0-next.0
'@storybook/global': 5.0.0
- '@storybook/manager': 8.0.9
- '@storybook/manager-api': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/node-logger': 8.0.9
- '@storybook/preview-api': 8.0.9
- '@storybook/telemetry': 8.0.9(encoding@0.1.13)
- '@storybook/types': 8.0.9
+ '@storybook/manager': 8.1.11
+ '@storybook/manager-api': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/node-logger': 8.1.11
+ '@storybook/preview-api': 8.1.11
+ '@storybook/telemetry': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/types': 8.1.11
'@types/detect-port': 1.3.2
+ '@types/diff': 5.2.1
'@types/node': 18.17.15
'@types/pretty-hrtime': 1.0.1
'@types/semver': 7.5.8
@@ -15200,10 +16235,10 @@ snapshots:
cli-table3: 0.6.3
compression: 1.7.4
detect-port: 1.5.1
- express: 4.18.2
+ diff: 5.2.0
+ express: 4.19.2
fs-extra: 11.1.1
- globby: 11.1.0
- ip: 2.0.1
+ globby: 14.0.1
lodash: 4.17.21
open: 8.4.2
pretty-hrtime: 1.0.3
@@ -15211,59 +16246,61 @@ snapshots:
read-pkg-up: 7.0.1
semver: 7.6.0
telejson: 7.2.0
- tiny-invariant: 1.3.1
+ tiny-invariant: 1.3.3
ts-dedent: 2.2.0
util: 0.12.5
util-deprecate: 1.0.2
watchpack: 2.4.0
- ws: 8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
+ ws: 8.17.1(bufferutil@4.0.7)(utf-8-validate@6.0.3)
transitivePeerDependencies:
- bufferutil
- encoding
+ - prettier
- react
- react-dom
- supports-color
- utf-8-validate
- '@storybook/csf-plugin@8.0.9':
+ '@storybook/csf-plugin@8.1.11':
dependencies:
- '@storybook/csf-tools': 8.0.9
+ '@storybook/csf-tools': 8.1.11
unplugin: 1.4.0
transitivePeerDependencies:
- supports-color
- '@storybook/csf-tools@8.0.9':
+ '@storybook/csf-tools@8.1.11':
dependencies:
- '@babel/generator': 7.23.6
- '@babel/parser': 7.24.0
- '@babel/traverse': 7.24.0
- '@babel/types': 7.24.0
- '@storybook/csf': 0.1.6
- '@storybook/types': 8.0.9
+ '@babel/generator': 7.24.7
+ '@babel/parser': 7.24.7
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
+ '@storybook/csf': 0.1.9
+ '@storybook/types': 8.1.11
fs-extra: 11.1.1
recast: 0.23.6
ts-dedent: 2.2.0
transitivePeerDependencies:
- supports-color
- '@storybook/csf@0.1.6':
+ '@storybook/csf@0.1.9':
dependencies:
type-fest: 2.19.0
- '@storybook/docs-mdx@3.0.0': {}
+ '@storybook/docs-mdx@3.1.0-next.0': {}
- '@storybook/docs-tools@8.0.9(encoding@0.1.13)':
+ '@storybook/docs-tools@8.1.11(encoding@0.1.13)(prettier@3.3.2)':
dependencies:
- '@storybook/core-common': 8.0.9(encoding@0.1.13)
- '@storybook/core-events': 8.0.9
- '@storybook/preview-api': 8.0.9
- '@storybook/types': 8.0.9
+ '@storybook/core-common': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/core-events': 8.1.11
+ '@storybook/preview-api': 8.1.11
+ '@storybook/types': 8.1.11
'@types/doctrine': 0.0.3
assert: 2.1.0
doctrine: 3.0.0
lodash: 4.17.21
transitivePeerDependencies:
- encoding
+ - prettier
- supports-color
'@storybook/global@5.0.0': {}
@@ -15273,27 +16310,27 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@storybook/instrumenter@8.0.9':
+ '@storybook/instrumenter@8.1.11':
dependencies:
- '@storybook/channels': 8.0.9
- '@storybook/client-logger': 8.0.9
- '@storybook/core-events': 8.0.9
+ '@storybook/channels': 8.1.11
+ '@storybook/client-logger': 8.1.11
+ '@storybook/core-events': 8.1.11
'@storybook/global': 5.0.0
- '@storybook/preview-api': 8.0.9
+ '@storybook/preview-api': 8.1.11
'@vitest/utils': 1.6.0
util: 0.12.5
- '@storybook/manager-api@8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@storybook/manager-api@8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@storybook/channels': 8.0.9
- '@storybook/client-logger': 8.0.9
- '@storybook/core-events': 8.0.9
- '@storybook/csf': 0.1.6
+ '@storybook/channels': 8.1.11
+ '@storybook/client-logger': 8.1.11
+ '@storybook/core-events': 8.1.11
+ '@storybook/csf': 0.1.9
'@storybook/global': 5.0.0
'@storybook/icons': 1.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/router': 8.0.9
- '@storybook/theming': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/types': 8.0.9
+ '@storybook/router': 8.1.11
+ '@storybook/theming': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/types': 8.1.11
dequal: 2.0.3
lodash: 4.17.21
memoizerific: 1.11.3
@@ -15304,65 +16341,67 @@ snapshots:
- react
- react-dom
- '@storybook/manager@8.0.9': {}
+ '@storybook/manager@8.1.11': {}
- '@storybook/node-logger@8.0.9': {}
+ '@storybook/node-logger@8.1.11': {}
- '@storybook/preview-api@8.0.9':
+ '@storybook/preview-api@8.1.11':
dependencies:
- '@storybook/channels': 8.0.9
- '@storybook/client-logger': 8.0.9
- '@storybook/core-events': 8.0.9
- '@storybook/csf': 0.1.6
+ '@storybook/channels': 8.1.11
+ '@storybook/client-logger': 8.1.11
+ '@storybook/core-events': 8.1.11
+ '@storybook/csf': 0.1.9
'@storybook/global': 5.0.0
- '@storybook/types': 8.0.9
+ '@storybook/types': 8.1.11
'@types/qs': 6.9.7
dequal: 2.0.3
lodash: 4.17.21
memoizerific: 1.11.3
qs: 6.11.1
- tiny-invariant: 1.3.1
+ tiny-invariant: 1.3.3
ts-dedent: 2.2.0
util-deprecate: 1.0.2
- '@storybook/preview@8.0.9': {}
+ '@storybook/preview@8.1.11': {}
- '@storybook/react-dom-shim@8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@storybook/react-dom-shim@8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@storybook/react-vite@8.0.9(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.17.2)(typescript@5.5.2)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))':
+ '@storybook/react-vite@8.1.11(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.18.0)(typescript@5.5.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))':
dependencies:
- '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.5.2)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))
- '@rollup/pluginutils': 5.1.0(rollup@4.17.2)
- '@storybook/builder-vite': 8.0.9(encoding@0.1.13)(typescript@5.5.2)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))
- '@storybook/node-logger': 8.0.9
- '@storybook/react': 8.0.9(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2)
+ '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.1(typescript@5.5.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))
+ '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
+ '@storybook/builder-vite': 8.1.11(encoding@0.1.13)(prettier@3.3.2)(typescript@5.5.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))
+ '@storybook/node-logger': 8.1.11
+ '@storybook/react': 8.1.11(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.3)
+ '@storybook/types': 8.1.11
find-up: 5.0.0
- magic-string: 0.30.7
+ magic-string: 0.30.10
react: 18.3.1
react-docgen: 7.0.1
react-dom: 18.3.1(react@18.3.1)
resolve: 1.22.8
tsconfig-paths: 4.2.0
- vite: 5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
+ vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
transitivePeerDependencies:
- '@preact/preset-vite'
- encoding
+ - prettier
- rollup
- supports-color
- typescript
- vite-plugin-glimmerx
- '@storybook/react@8.0.9(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2)':
+ '@storybook/react@8.1.11(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.3)':
dependencies:
- '@storybook/client-logger': 8.0.9
- '@storybook/docs-tools': 8.0.9(encoding@0.1.13)
+ '@storybook/client-logger': 8.1.11
+ '@storybook/docs-tools': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
'@storybook/global': 5.0.0
- '@storybook/preview-api': 8.0.9
- '@storybook/react-dom-shim': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/types': 8.0.9
+ '@storybook/preview-api': 8.1.11
+ '@storybook/react-dom-shim': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/types': 8.1.11
'@types/escodegen': 0.0.6
'@types/estree': 0.0.51
'@types/node': 18.17.15
@@ -15381,30 +16420,31 @@ snapshots:
type-fest: 2.19.0
util-deprecate: 1.0.2
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.5.3
transitivePeerDependencies:
- encoding
+ - prettier
- supports-color
- '@storybook/router@8.0.9':
+ '@storybook/router@8.1.11':
dependencies:
- '@storybook/client-logger': 8.0.9
+ '@storybook/client-logger': 8.1.11
memoizerific: 1.11.3
qs: 6.11.1
- '@storybook/source-loader@8.0.9':
+ '@storybook/source-loader@8.1.11':
dependencies:
- '@storybook/csf': 0.1.6
- '@storybook/types': 8.0.9
+ '@storybook/csf': 0.1.9
+ '@storybook/types': 8.1.11
estraverse: 5.3.0
lodash: 4.17.21
- prettier: 3.2.5
+ prettier: 3.3.2
- '@storybook/telemetry@8.0.9(encoding@0.1.13)':
+ '@storybook/telemetry@8.1.11(encoding@0.1.13)(prettier@3.3.2)':
dependencies:
- '@storybook/client-logger': 8.0.9
- '@storybook/core-common': 8.0.9(encoding@0.1.13)
- '@storybook/csf-tools': 8.0.9
+ '@storybook/client-logger': 8.1.11
+ '@storybook/core-common': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
+ '@storybook/csf-tools': 8.1.11
chalk: 4.1.2
detect-package-manager: 2.0.1
fetch-retry: 5.0.4
@@ -15412,18 +16452,19 @@ snapshots:
read-pkg-up: 7.0.1
transitivePeerDependencies:
- encoding
+ - prettier
- supports-color
- '@storybook/test@8.0.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.12.7))(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))':
+ '@storybook/test@8.1.11(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.9))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))':
dependencies:
- '@storybook/client-logger': 8.0.9
- '@storybook/core-events': 8.0.9
- '@storybook/instrumenter': 8.0.9
- '@storybook/preview-api': 8.0.9
- '@testing-library/dom': 9.3.4
- '@testing-library/jest-dom': 6.4.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.12.7))(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))
- '@testing-library/user-event': 14.5.2(@testing-library/dom@9.3.4)
- '@vitest/expect': 1.3.1
+ '@storybook/client-logger': 8.1.11
+ '@storybook/core-events': 8.1.11
+ '@storybook/instrumenter': 8.1.11
+ '@storybook/preview-api': 8.1.11
+ '@testing-library/dom': 10.1.0
+ '@testing-library/jest-dom': 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.9))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))
+ '@testing-library/user-event': 14.5.2(@testing-library/dom@10.1.0)
+ '@vitest/expect': 1.6.0
'@vitest/spy': 1.6.0
util: 0.12.5
transitivePeerDependencies:
@@ -15433,37 +16474,39 @@ snapshots:
- jest
- vitest
- '@storybook/theming@8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@storybook/theming@8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1)
- '@storybook/client-logger': 8.0.9
+ '@storybook/client-logger': 8.1.11
'@storybook/global': 5.0.0
memoizerific: 1.11.3
optionalDependencies:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@storybook/types@8.0.9':
+ '@storybook/types@8.1.11':
dependencies:
- '@storybook/channels': 8.0.9
+ '@storybook/channels': 8.1.11
'@types/express': 4.17.17
file-system-cache: 2.3.0
- '@storybook/vue3-vite@8.0.9(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))(vue@3.4.26(typescript@5.5.2))':
+ '@storybook/vue3-vite@8.1.11(bufferutil@4.0.7)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))(vue@3.4.31(typescript@5.5.3))':
dependencies:
- '@storybook/builder-vite': 8.0.9(encoding@0.1.13)(typescript@5.5.2)(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))
- '@storybook/core-server': 8.0.9(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)
- '@storybook/vue3': 8.0.9(encoding@0.1.13)(vue@3.4.26(typescript@5.5.2))
+ '@storybook/builder-vite': 8.1.11(encoding@0.1.13)(prettier@3.3.2)(typescript@5.5.3)(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))
+ '@storybook/core-server': 8.1.11(bufferutil@4.0.7)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)
+ '@storybook/types': 8.1.11
+ '@storybook/vue3': 8.1.11(encoding@0.1.13)(prettier@3.3.2)(vue@3.4.31(typescript@5.5.3))
find-package-json: 1.2.0
- magic-string: 0.30.7
- typescript: 5.5.2
- vite: 5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
- vue-component-meta: 2.0.16(typescript@5.5.2)
- vue-docgen-api: 4.75.1(vue@3.4.26(typescript@5.5.2))
+ magic-string: 0.30.10
+ typescript: 5.5.3
+ vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
+ vue-component-meta: 2.0.16(typescript@5.5.3)
+ vue-docgen-api: 4.75.1(vue@3.4.31(typescript@5.5.3))
transitivePeerDependencies:
- '@preact/preset-vite'
- bufferutil
- encoding
+ - prettier
- react
- react-dom
- supports-color
@@ -15471,26 +16514,27 @@ snapshots:
- vite-plugin-glimmerx
- vue
- '@storybook/vue3@8.0.9(encoding@0.1.13)(vue@3.4.26(typescript@5.5.2))':
+ '@storybook/vue3@8.1.11(encoding@0.1.13)(prettier@3.3.2)(vue@3.4.31(typescript@5.5.3))':
dependencies:
- '@storybook/docs-tools': 8.0.9(encoding@0.1.13)
+ '@storybook/docs-tools': 8.1.11(encoding@0.1.13)(prettier@3.3.2)
'@storybook/global': 5.0.0
- '@storybook/preview-api': 8.0.9
- '@storybook/types': 8.0.9
- '@vue/compiler-core': 3.4.21
+ '@storybook/preview-api': 8.1.11
+ '@storybook/types': 8.1.11
+ '@vue/compiler-core': 3.4.29
lodash: 4.17.21
ts-dedent: 2.2.0
type-fest: 2.19.0
- vue: 3.4.26(typescript@5.5.2)
- vue-component-type-helpers: 2.0.21
+ vue: 3.4.31(typescript@5.5.3)
+ vue-component-type-helpers: 2.0.24
transitivePeerDependencies:
- encoding
+ - prettier
- supports-color
- '@swc/cli@0.3.12(@swc/core@1.4.17)(chokidar@3.5.3)':
+ '@swc/cli@0.3.12(@swc/core@1.6.6)(chokidar@3.5.3)':
dependencies:
'@mole-inc/bin-wrapper': 8.0.1
- '@swc/core': 1.4.17
+ '@swc/core': 1.6.6
'@swc/counter': 0.1.3
commander: 8.3.0
fast-glob: 3.3.2
@@ -15510,13 +16554,13 @@ snapshots:
'@swc/core-darwin-arm64@1.3.56':
optional: true
- '@swc/core-darwin-arm64@1.4.17':
+ '@swc/core-darwin-arm64@1.6.6':
optional: true
'@swc/core-darwin-x64@1.3.56':
optional: true
- '@swc/core-darwin-x64@1.4.17':
+ '@swc/core-darwin-x64@1.6.6':
optional: true
'@swc/core-freebsd-x64@1.3.11':
@@ -15527,77 +16571,79 @@ snapshots:
'@swc/core-linux-arm-gnueabihf@1.3.56':
optional: true
- '@swc/core-linux-arm-gnueabihf@1.4.17':
+ '@swc/core-linux-arm-gnueabihf@1.6.6':
optional: true
'@swc/core-linux-arm64-gnu@1.3.56':
optional: true
- '@swc/core-linux-arm64-gnu@1.4.17':
+ '@swc/core-linux-arm64-gnu@1.6.6':
optional: true
'@swc/core-linux-arm64-musl@1.3.56':
optional: true
- '@swc/core-linux-arm64-musl@1.4.17':
+ '@swc/core-linux-arm64-musl@1.6.6':
optional: true
'@swc/core-linux-x64-gnu@1.3.56':
optional: true
- '@swc/core-linux-x64-gnu@1.4.17':
+ '@swc/core-linux-x64-gnu@1.6.6':
optional: true
'@swc/core-linux-x64-musl@1.3.56':
optional: true
- '@swc/core-linux-x64-musl@1.4.17':
+ '@swc/core-linux-x64-musl@1.6.6':
optional: true
'@swc/core-win32-arm64-msvc@1.3.56':
optional: true
- '@swc/core-win32-arm64-msvc@1.4.17':
+ '@swc/core-win32-arm64-msvc@1.6.6':
optional: true
'@swc/core-win32-ia32-msvc@1.3.56':
optional: true
- '@swc/core-win32-ia32-msvc@1.4.17':
+ '@swc/core-win32-ia32-msvc@1.6.6':
optional: true
'@swc/core-win32-x64-msvc@1.3.56':
optional: true
- '@swc/core-win32-x64-msvc@1.4.17':
+ '@swc/core-win32-x64-msvc@1.6.6':
optional: true
- '@swc/core@1.4.17':
+ '@swc/core@1.6.6':
dependencies:
'@swc/counter': 0.1.3
- '@swc/types': 0.1.5
+ '@swc/types': 0.1.9
optionalDependencies:
- '@swc/core-darwin-arm64': 1.4.17
- '@swc/core-darwin-x64': 1.4.17
- '@swc/core-linux-arm-gnueabihf': 1.4.17
- '@swc/core-linux-arm64-gnu': 1.4.17
- '@swc/core-linux-arm64-musl': 1.4.17
- '@swc/core-linux-x64-gnu': 1.4.17
- '@swc/core-linux-x64-musl': 1.4.17
- '@swc/core-win32-arm64-msvc': 1.4.17
- '@swc/core-win32-ia32-msvc': 1.4.17
- '@swc/core-win32-x64-msvc': 1.4.17
+ '@swc/core-darwin-arm64': 1.6.6
+ '@swc/core-darwin-x64': 1.6.6
+ '@swc/core-linux-arm-gnueabihf': 1.6.6
+ '@swc/core-linux-arm64-gnu': 1.6.6
+ '@swc/core-linux-arm64-musl': 1.6.6
+ '@swc/core-linux-x64-gnu': 1.6.6
+ '@swc/core-linux-x64-musl': 1.6.6
+ '@swc/core-win32-arm64-msvc': 1.6.6
+ '@swc/core-win32-ia32-msvc': 1.6.6
+ '@swc/core-win32-x64-msvc': 1.6.6
'@swc/counter@0.1.3': {}
- '@swc/jest@0.2.36(@swc/core@1.4.17)':
+ '@swc/jest@0.2.36(@swc/core@1.6.6)':
dependencies:
'@jest/create-cache-key-function': 29.7.0
- '@swc/core': 1.4.17
+ '@swc/core': 1.6.6
'@swc/counter': 0.1.3
jsonc-parser: 3.2.0
- '@swc/types@0.1.5': {}
+ '@swc/types@0.1.9':
+ dependencies:
+ '@swc/counter': 0.1.3
'@swc/wasm@1.2.130':
optional: true
@@ -15701,12 +16747,12 @@ snapshots:
- encoding
- seedrandom
- '@testing-library/dom@9.3.3':
+ '@testing-library/dom@10.1.0':
dependencies:
- '@babel/code-frame': 7.23.5
+ '@babel/code-frame': 7.24.7
'@babel/runtime': 7.23.4
'@types/aria-query': 5.0.1
- aria-query: 5.1.3
+ aria-query: 5.3.0
chalk: 4.1.2
dom-accessibility-api: 0.5.16
lz-string: 1.5.0
@@ -15723,7 +16769,7 @@ snapshots:
lz-string: 1.5.0
pretty-format: 27.5.1
- '@testing-library/jest-dom@6.4.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.12.7))(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))':
+ '@testing-library/jest-dom@6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.9))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))':
dependencies:
'@adobe/css-tools': 4.3.3
'@babel/runtime': 7.23.4
@@ -15736,21 +16782,21 @@ snapshots:
optionalDependencies:
'@jest/globals': 29.7.0
'@types/jest': 29.5.12
- jest: 29.7.0(@types/node@20.12.7)
- vitest: 0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3)
+ jest: 29.7.0(@types/node@20.14.9)
+ vitest: 1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1)
- '@testing-library/user-event@14.5.2(@testing-library/dom@9.3.4)':
+ '@testing-library/user-event@14.5.2(@testing-library/dom@10.1.0)':
dependencies:
- '@testing-library/dom': 9.3.4
+ '@testing-library/dom': 10.1.0
- '@testing-library/vue@8.0.3(@vue/compiler-sfc@3.4.26)(@vue/server-renderer@3.4.26(vue@3.4.26(typescript@5.5.2)))(vue@3.4.26(typescript@5.5.2))':
+ '@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.31)(@vue/server-renderer@3.4.29(vue@3.4.31(typescript@5.5.3)))(vue@3.4.31(typescript@5.5.3))':
dependencies:
'@babel/runtime': 7.23.4
- '@testing-library/dom': 9.3.3
- '@vue/test-utils': 2.4.1(@vue/server-renderer@3.4.26(vue@3.4.26(typescript@5.5.2)))(vue@3.4.26(typescript@5.5.2))
- vue: 3.4.26(typescript@5.5.2)
+ '@testing-library/dom': 9.3.4
+ '@vue/test-utils': 2.4.1(@vue/server-renderer@3.4.29(vue@3.4.31(typescript@5.5.3)))(vue@3.4.31(typescript@5.5.3))
+ vue: 3.4.31(typescript@5.5.3)
optionalDependencies:
- '@vue/compiler-sfc': 3.4.26
+ '@vue/compiler-sfc': 3.4.31
transitivePeerDependencies:
- '@vue/server-renderer'
@@ -15758,7 +16804,7 @@ snapshots:
'@trysound/sax@0.2.0': {}
- '@tsd/typescript@5.3.3': {}
+ '@tsd/typescript@5.4.5': {}
'@twemoji/parser@15.0.0': {}
@@ -15766,7 +16812,7 @@ snapshots:
'@types/accepts@1.3.7':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/archiver@6.0.2':
dependencies:
@@ -15778,31 +16824,31 @@ snapshots:
'@types/babel__core@7.20.0':
dependencies:
- '@babel/parser': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/parser': 7.24.7
+ '@babel/types': 7.24.7
'@types/babel__generator': 7.6.4
'@types/babel__template': 7.4.1
'@types/babel__traverse': 7.20.0
'@types/babel__generator@7.6.4':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.7
'@types/babel__template@7.4.1':
dependencies:
- '@babel/parser': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/parser': 7.24.7
+ '@babel/types': 7.24.7
'@types/babel__traverse@7.20.0':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.7
'@types/bcryptjs@2.4.6': {}
'@types/body-parser@1.19.5':
dependencies:
'@types/connect': 3.4.35
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/braces@3.0.1': {}
@@ -15810,15 +16856,9 @@ snapshots:
dependencies:
'@types/http-cache-semantics': 4.0.4
'@types/keyv': 3.1.4
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/responselike': 1.0.0
- '@types/chai-subset@1.3.5':
- dependencies:
- '@types/chai': 4.3.11
-
- '@types/chai@4.3.11': {}
-
'@types/color-convert@2.0.3':
dependencies:
'@types/color-name': 1.1.1
@@ -15827,11 +16867,11 @@ snapshots:
'@types/connect@3.4.35':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/connect@3.4.36':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/content-disposition@0.5.8': {}
@@ -15839,14 +16879,14 @@ snapshots:
'@types/cookies@0.9.0':
dependencies:
- '@types/connect': 3.4.35
+ '@types/connect': 3.4.36
'@types/express': 4.17.17
'@types/keygrip': 1.0.6
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/cross-spawn@6.0.2':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/debug@4.1.12':
dependencies:
@@ -15854,6 +16894,8 @@ snapshots:
'@types/detect-port@1.3.2': {}
+ '@types/diff@5.2.1': {}
+
'@types/disposable-email-domains@1.0.2': {}
'@types/doctrine@0.0.3': {}
@@ -15871,7 +16913,7 @@ snapshots:
'@types/eslint@7.29.0':
dependencies:
'@types/estree': 1.0.5
- '@types/json-schema': 7.0.12
+ '@types/json-schema': 7.0.15
'@types/estree@0.0.51': {}
@@ -15879,7 +16921,7 @@ snapshots:
'@types/express-serve-static-core@4.17.33':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/qs': 6.9.7
'@types/range-parser': 1.2.4
@@ -15894,16 +16936,16 @@ snapshots:
'@types/fluent-ffmpeg@2.1.24':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/glob@7.2.0':
dependencies:
'@types/minimatch': 5.1.2
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/graceful-fs@4.1.6':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/hast@3.0.4':
dependencies:
@@ -15917,9 +16959,9 @@ snapshots:
'@types/http-errors@2.0.4': {}
- '@types/http-link-header@1.0.5':
+ '@types/http-link-header@1.0.7':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/istanbul-lib-coverage@2.0.4': {}
@@ -15938,9 +16980,9 @@ snapshots:
'@types/js-yaml@4.0.9': {}
- '@types/jsdom@21.1.6':
+ '@types/jsdom@21.1.7':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/tough-cookie': 4.0.2
parse5: 7.1.2
@@ -15950,7 +16992,7 @@ snapshots:
'@types/json5@0.0.29': {}
- '@types/jsonld@1.5.13': {}
+ '@types/jsonld@1.5.14': {}
'@types/jsrsasign@10.5.14': {}
@@ -15958,7 +17000,7 @@ snapshots:
'@types/keyv@3.1.4':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/koa-compose@3.2.8':
dependencies:
@@ -15973,7 +17015,7 @@ snapshots:
'@types/http-errors': 2.0.4
'@types/keygrip': 1.0.6
'@types/koa-compose': 3.2.8
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/koa__router@12.0.3':
dependencies:
@@ -15991,7 +17033,7 @@ snapshots:
'@types/mdx@2.0.3': {}
- '@types/micromatch@4.0.7':
+ '@types/micromatch@4.0.9':
dependencies:
'@types/braces': 3.0.1
@@ -16007,15 +17049,15 @@ snapshots:
'@types/mute-stream@0.0.4':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/mysql@2.15.22':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/node-fetch@2.6.4':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
form-data: 3.0.1
'@types/node@18.17.15': {}
@@ -16024,7 +17066,7 @@ snapshots:
dependencies:
undici-types: 5.26.5
- '@types/node@20.12.7':
+ '@types/node@20.14.9':
dependencies:
undici-types: 5.26.5
@@ -16034,7 +17076,7 @@ snapshots:
'@types/nodemailer@6.4.15':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/normalize-package-data@2.4.1': {}
@@ -16045,11 +17087,11 @@ snapshots:
'@types/oauth2orize@1.11.5':
dependencies:
'@types/express': 4.17.17
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
- '@types/oauth@0.9.4':
+ '@types/oauth@0.9.5':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/offscreencanvas@2019.3.0': {}
@@ -16057,17 +17099,17 @@ snapshots:
'@types/pg-pool@2.0.4':
dependencies:
- '@types/pg': 8.11.5
+ '@types/pg': 8.11.6
- '@types/pg@8.11.5':
+ '@types/pg@8.11.6':
dependencies:
- '@types/node': 20.12.7
- pg-protocol: 1.6.0
+ '@types/node': 20.14.9
+ pg-protocol: 1.6.1
pg-types: 4.0.1
'@types/pg@8.6.1':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
pg-protocol: 1.6.1
pg-types: 2.2.0
@@ -16081,7 +17123,7 @@ snapshots:
'@types/qrcode@1.5.5':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/qs@6.9.7': {}
@@ -16099,7 +17141,7 @@ snapshots:
'@types/readdir-glob@1.1.1':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/rename@1.0.7': {}
@@ -16107,7 +17149,7 @@ snapshots:
'@types/responselike@1.0.0':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/sanitize-html@2.11.0':
dependencies:
@@ -16124,7 +17166,7 @@ snapshots:
'@types/serve-static@1.15.1':
dependencies:
'@types/mime': 3.0.1
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/serviceworker@0.0.67': {}
@@ -16156,15 +17198,17 @@ snapshots:
'@types/unist@3.0.2': {}
+ '@types/uuid@10.0.0': {}
+
'@types/uuid@9.0.8': {}
'@types/vary@1.1.3':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/web-push@3.6.3':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/webgl-ext@0.0.30': {}
@@ -16172,7 +17216,7 @@ snapshots:
'@types/ws@8.5.10':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
'@types/yargs-parser@21.0.0': {}
@@ -16182,19 +17226,19 @@ snapshots:
'@types/yauzl@2.10.0':
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
optional: true
- '@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0)(typescript@5.3.3)':
+ '@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0(eslint@9.6.0)(typescript@5.3.3))(eslint@9.6.0)(typescript@5.3.3)':
dependencies:
'@eslint-community/regexpp': 4.6.2
- '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
+ '@typescript-eslint/parser': 6.11.0(eslint@9.6.0)(typescript@5.3.3)
'@typescript-eslint/scope-manager': 6.11.0
- '@typescript-eslint/type-utils': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
- '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
+ '@typescript-eslint/type-utils': 6.11.0(eslint@9.6.0)(typescript@5.3.3)
+ '@typescript-eslint/utils': 6.11.0(eslint@9.6.0)(typescript@5.3.3)
'@typescript-eslint/visitor-keys': 6.11.0
- debug: 4.3.4(supports-color@8.1.1)
- eslint: 8.53.0
+ debug: 4.3.4(supports-color@5.5.0)
+ eslint: 9.6.0
graphemer: 1.4.0
ignore: 5.2.4
natural-compare: 1.4.0
@@ -16205,16 +17249,16 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3)':
+ '@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0(eslint@9.6.0)(typescript@5.3.3))(eslint@9.6.0)(typescript@5.3.3)':
dependencies:
'@eslint-community/regexpp': 4.6.2
- '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3)
+ '@typescript-eslint/parser': 7.1.0(eslint@9.6.0)(typescript@5.3.3)
'@typescript-eslint/scope-manager': 7.1.0
- '@typescript-eslint/type-utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3)
- '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3)
+ '@typescript-eslint/type-utils': 7.1.0(eslint@9.6.0)(typescript@5.3.3)
+ '@typescript-eslint/utils': 7.1.0(eslint@9.6.0)(typescript@5.3.3)
'@typescript-eslint/visitor-keys': 7.1.0
- debug: 4.3.4(supports-color@8.1.1)
- eslint: 8.57.0
+ debug: 4.3.4(supports-color@5.5.0)
+ eslint: 9.6.0
graphemer: 1.4.0
ignore: 5.2.4
natural-compare: 1.4.0
@@ -16225,62 +17269,60 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)':
+ '@typescript-eslint/eslint-plugin@7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)':
dependencies:
'@eslint-community/regexpp': 4.10.0
- '@typescript-eslint/parser': 7.7.1(eslint@8.57.0)(typescript@5.5.2)
- '@typescript-eslint/scope-manager': 7.7.1
- '@typescript-eslint/type-utils': 7.7.1(eslint@8.57.0)(typescript@5.5.2)
- '@typescript-eslint/utils': 7.7.1(eslint@8.57.0)(typescript@5.5.2)
- '@typescript-eslint/visitor-keys': 7.7.1
- debug: 4.3.4(supports-color@8.1.1)
- eslint: 8.57.0
+ '@typescript-eslint/parser': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
+ '@typescript-eslint/scope-manager': 7.15.0
+ '@typescript-eslint/type-utils': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
+ '@typescript-eslint/utils': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
+ '@typescript-eslint/visitor-keys': 7.15.0
+ eslint: 9.6.0
graphemer: 1.4.0
ignore: 5.3.1
natural-compare: 1.4.0
- semver: 7.6.0
- ts-api-utils: 1.3.0(typescript@5.5.2)
+ ts-api-utils: 1.3.0(typescript@5.5.3)
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.5.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3)':
+ '@typescript-eslint/parser@6.11.0(eslint@9.6.0)(typescript@5.3.3)':
dependencies:
'@typescript-eslint/scope-manager': 6.11.0
'@typescript-eslint/types': 6.11.0
'@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3)
'@typescript-eslint/visitor-keys': 6.11.0
- debug: 4.3.4(supports-color@8.1.1)
- eslint: 8.53.0
+ debug: 4.3.4(supports-color@5.5.0)
+ eslint: 9.6.0
optionalDependencies:
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3)':
+ '@typescript-eslint/parser@7.1.0(eslint@9.6.0)(typescript@5.3.3)':
dependencies:
'@typescript-eslint/scope-manager': 7.1.0
'@typescript-eslint/types': 7.1.0
'@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3)
'@typescript-eslint/visitor-keys': 7.1.0
- debug: 4.3.4(supports-color@8.1.1)
- eslint: 8.57.0
+ debug: 4.3.4(supports-color@5.5.0)
+ eslint: 9.6.0
optionalDependencies:
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2)':
+ '@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3)':
dependencies:
- '@typescript-eslint/scope-manager': 7.7.1
- '@typescript-eslint/types': 7.7.1
- '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.5.2)
- '@typescript-eslint/visitor-keys': 7.7.1
- debug: 4.3.4(supports-color@8.1.1)
- eslint: 8.57.0
+ '@typescript-eslint/scope-manager': 7.15.0
+ '@typescript-eslint/types': 7.15.0
+ '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3)
+ '@typescript-eslint/visitor-keys': 7.15.0
+ debug: 4.3.5(supports-color@8.1.1)
+ eslint: 9.6.0
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.5.3
transitivePeerDependencies:
- supports-color
@@ -16294,44 +17336,44 @@ snapshots:
'@typescript-eslint/types': 7.1.0
'@typescript-eslint/visitor-keys': 7.1.0
- '@typescript-eslint/scope-manager@7.7.1':
+ '@typescript-eslint/scope-manager@7.15.0':
dependencies:
- '@typescript-eslint/types': 7.7.1
- '@typescript-eslint/visitor-keys': 7.7.1
+ '@typescript-eslint/types': 7.15.0
+ '@typescript-eslint/visitor-keys': 7.15.0
- '@typescript-eslint/type-utils@6.11.0(eslint@8.53.0)(typescript@5.3.3)':
+ '@typescript-eslint/type-utils@6.11.0(eslint@9.6.0)(typescript@5.3.3)':
dependencies:
'@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3)
- '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
- debug: 4.3.4(supports-color@8.1.1)
- eslint: 8.53.0
+ '@typescript-eslint/utils': 6.11.0(eslint@9.6.0)(typescript@5.3.3)
+ debug: 4.3.5(supports-color@8.1.1)
+ eslint: 9.6.0
ts-api-utils: 1.0.1(typescript@5.3.3)
optionalDependencies:
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/type-utils@7.1.0(eslint@8.57.0)(typescript@5.3.3)':
+ '@typescript-eslint/type-utils@7.1.0(eslint@9.6.0)(typescript@5.3.3)':
dependencies:
'@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3)
- '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3)
- debug: 4.3.4(supports-color@8.1.1)
- eslint: 8.57.0
+ '@typescript-eslint/utils': 7.1.0(eslint@9.6.0)(typescript@5.3.3)
+ debug: 4.3.4(supports-color@5.5.0)
+ eslint: 9.6.0
ts-api-utils: 1.0.1(typescript@5.3.3)
optionalDependencies:
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/type-utils@7.7.1(eslint@8.57.0)(typescript@5.5.2)':
+ '@typescript-eslint/type-utils@7.15.0(eslint@9.6.0)(typescript@5.5.3)':
dependencies:
- '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.5.2)
- '@typescript-eslint/utils': 7.7.1(eslint@8.57.0)(typescript@5.5.2)
- debug: 4.3.4(supports-color@8.1.1)
- eslint: 8.57.0
- ts-api-utils: 1.3.0(typescript@5.5.2)
+ '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3)
+ '@typescript-eslint/utils': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
+ debug: 4.3.5(supports-color@8.1.1)
+ eslint: 9.6.0
+ ts-api-utils: 1.3.0(typescript@5.5.3)
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.5.3
transitivePeerDependencies:
- supports-color
@@ -16339,13 +17381,13 @@ snapshots:
'@typescript-eslint/types@7.1.0': {}
- '@typescript-eslint/types@7.7.1': {}
+ '@typescript-eslint/types@7.15.0': {}
'@typescript-eslint/typescript-estree@6.11.0(typescript@5.3.3)':
dependencies:
'@typescript-eslint/types': 6.11.0
'@typescript-eslint/visitor-keys': 6.11.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
globby: 11.1.0
is-glob: 4.0.3
semver: 7.5.4
@@ -16359,7 +17401,7 @@ snapshots:
dependencies:
'@typescript-eslint/types': 7.1.0
'@typescript-eslint/visitor-keys': 7.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.3
@@ -16370,59 +17412,56 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/typescript-estree@7.7.1(typescript@5.5.2)':
+ '@typescript-eslint/typescript-estree@7.15.0(typescript@5.5.3)':
dependencies:
- '@typescript-eslint/types': 7.7.1
- '@typescript-eslint/visitor-keys': 7.7.1
- debug: 4.3.4(supports-color@8.1.1)
+ '@typescript-eslint/types': 7.15.0
+ '@typescript-eslint/visitor-keys': 7.15.0
+ debug: 4.3.5(supports-color@8.1.1)
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.4
semver: 7.6.0
- ts-api-utils: 1.3.0(typescript@5.5.2)
+ ts-api-utils: 1.3.0(typescript@5.5.3)
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.5.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@6.11.0(eslint@8.53.0)(typescript@5.3.3)':
+ '@typescript-eslint/utils@6.11.0(eslint@9.6.0)(typescript@5.3.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
'@types/json-schema': 7.0.12
'@types/semver': 7.5.8
'@typescript-eslint/scope-manager': 6.11.0
'@typescript-eslint/types': 6.11.0
'@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3)
- eslint: 8.53.0
+ eslint: 9.6.0
semver: 7.5.4
transitivePeerDependencies:
- supports-color
- typescript
- '@typescript-eslint/utils@7.1.0(eslint@8.57.0)(typescript@5.3.3)':
+ '@typescript-eslint/utils@7.1.0(eslint@9.6.0)(typescript@5.3.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
'@types/json-schema': 7.0.12
'@types/semver': 7.5.8
'@typescript-eslint/scope-manager': 7.1.0
'@typescript-eslint/types': 7.1.0
'@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3)
- eslint: 8.57.0
+ eslint: 9.6.0
semver: 7.6.0
transitivePeerDependencies:
- supports-color
- typescript
- '@typescript-eslint/utils@7.7.1(eslint@8.57.0)(typescript@5.5.2)':
+ '@typescript-eslint/utils@7.15.0(eslint@9.6.0)(typescript@5.5.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
- '@types/json-schema': 7.0.15
- '@types/semver': 7.5.8
- '@typescript-eslint/scope-manager': 7.7.1
- '@typescript-eslint/types': 7.7.1
- '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.5.2)
- eslint: 8.57.0
- semver: 7.6.0
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
+ '@typescript-eslint/scope-manager': 7.15.0
+ '@typescript-eslint/types': 7.15.0
+ '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3)
+ eslint: 9.6.0
transitivePeerDependencies:
- supports-color
- typescript
@@ -16437,84 +17476,59 @@ snapshots:
'@typescript-eslint/types': 7.1.0
eslint-visitor-keys: 3.4.3
- '@typescript-eslint/visitor-keys@7.7.1':
+ '@typescript-eslint/visitor-keys@7.15.0':
dependencies:
- '@typescript-eslint/types': 7.7.1
+ '@typescript-eslint/types': 7.15.0
eslint-visitor-keys: 3.4.3
'@ungap/structured-clone@1.2.0': {}
- '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3))(vue@3.4.26(typescript@5.5.2))':
+ '@vitejs/plugin-vue@5.0.5(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))(vue@3.4.31(typescript@5.5.3))':
dependencies:
- vite: 5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
- vue: 3.4.26(typescript@5.5.2)
+ vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
+ vue: 3.4.31(typescript@5.5.3)
- '@vitest/coverage-v8@0.34.6(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3))':
+ '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1))':
dependencies:
'@ampproject/remapping': 2.2.1
'@bcoe/v8-coverage': 0.2.3
+ debug: 4.3.4(supports-color@5.5.0)
istanbul-lib-coverage: 3.2.2
istanbul-lib-report: 3.0.1
- istanbul-lib-source-maps: 4.0.1
+ istanbul-lib-source-maps: 5.0.4
istanbul-reports: 3.1.6
- magic-string: 0.30.7
+ magic-string: 0.30.10
+ magicast: 0.3.4
picocolors: 1.0.0
std-env: 3.7.0
+ strip-literal: 2.1.0
test-exclude: 6.0.0
- v8-to-istanbul: 9.2.0
- vitest: 0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3)
+ vitest: 1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1)
transitivePeerDependencies:
- supports-color
- '@vitest/expect@0.34.6':
+ '@vitest/expect@1.6.0':
dependencies:
- '@vitest/spy': 0.34.6
- '@vitest/utils': 0.34.6
+ '@vitest/spy': 1.6.0
+ '@vitest/utils': 1.6.0
chai: 4.3.10
- '@vitest/expect@1.3.1':
+ '@vitest/runner@1.6.0':
dependencies:
- '@vitest/spy': 1.3.1
- '@vitest/utils': 1.3.1
- chai: 4.3.10
-
- '@vitest/runner@0.34.6':
- dependencies:
- '@vitest/utils': 0.34.6
- p-limit: 4.0.0
+ '@vitest/utils': 1.6.0
+ p-limit: 5.0.0
pathe: 1.1.2
- '@vitest/snapshot@0.34.6':
+ '@vitest/snapshot@1.6.0':
dependencies:
- magic-string: 0.30.7
+ magic-string: 0.30.10
pathe: 1.1.2
pretty-format: 29.7.0
- '@vitest/spy@0.34.6':
- dependencies:
- tinyspy: 2.2.0
-
- '@vitest/spy@1.3.1':
- dependencies:
- tinyspy: 2.2.0
-
'@vitest/spy@1.6.0':
dependencies:
tinyspy: 2.2.0
- '@vitest/utils@0.34.6':
- dependencies:
- diff-sequences: 29.6.3
- loupe: 2.3.7
- pretty-format: 29.7.0
-
- '@vitest/utils@1.3.1':
- dependencies:
- diff-sequences: 29.6.3
- estree-walker: 3.0.3
- loupe: 2.3.7
- pretty-format: 29.7.0
-
'@vitest/utils@1.6.0':
dependencies:
diff-sequences: 29.6.3
@@ -16526,125 +17540,149 @@ snapshots:
dependencies:
'@volar/source-map': 2.2.0
+ '@volar/language-core@2.4.0-alpha.11':
+ dependencies:
+ '@volar/source-map': 2.4.0-alpha.11
+
'@volar/source-map@2.2.0':
dependencies:
muggle-string: 0.4.1
+ '@volar/source-map@2.4.0-alpha.11': {}
+
'@volar/typescript@2.2.0':
dependencies:
'@volar/language-core': 2.2.0
path-browserify: 1.0.1
- '@vue/compiler-core@3.4.21':
+ '@volar/typescript@2.4.0-alpha.11':
dependencies:
- '@babel/parser': 7.24.0
- '@vue/shared': 3.4.21
- entities: 4.5.0
- estree-walker: 2.0.2
- source-map-js: 1.0.2
+ '@volar/language-core': 2.4.0-alpha.11
+ path-browserify: 1.0.1
+ vscode-uri: 3.0.8
- '@vue/compiler-core@3.4.25':
+ '@vue/compiler-core@3.4.29':
dependencies:
- '@babel/parser': 7.24.5
- '@vue/shared': 3.4.25
+ '@babel/parser': 7.24.7
+ '@vue/shared': 3.4.29
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.2.0
- '@vue/compiler-core@3.4.26':
+ '@vue/compiler-core@3.4.31':
dependencies:
- '@babel/parser': 7.24.5
- '@vue/shared': 3.4.26
+ '@babel/parser': 7.24.7
+ '@vue/shared': 3.4.31
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.2.0
- '@vue/compiler-dom@3.4.21':
+ '@vue/compiler-dom@3.4.29':
dependencies:
- '@vue/compiler-core': 3.4.21
- '@vue/shared': 3.4.21
+ '@vue/compiler-core': 3.4.29
+ '@vue/shared': 3.4.29
- '@vue/compiler-dom@3.4.25':
+ '@vue/compiler-dom@3.4.31':
dependencies:
- '@vue/compiler-core': 3.4.25
- '@vue/shared': 3.4.25
+ '@vue/compiler-core': 3.4.31
+ '@vue/shared': 3.4.31
- '@vue/compiler-dom@3.4.26':
+ '@vue/compiler-sfc@3.4.31':
dependencies:
- '@vue/compiler-core': 3.4.26
- '@vue/shared': 3.4.26
-
- '@vue/compiler-sfc@3.4.26':
- dependencies:
- '@babel/parser': 7.24.5
- '@vue/compiler-core': 3.4.26
- '@vue/compiler-dom': 3.4.26
- '@vue/compiler-ssr': 3.4.26
- '@vue/shared': 3.4.26
+ '@babel/parser': 7.24.7
+ '@vue/compiler-core': 3.4.31
+ '@vue/compiler-dom': 3.4.31
+ '@vue/compiler-ssr': 3.4.31
+ '@vue/shared': 3.4.31
estree-walker: 2.0.2
magic-string: 0.30.10
postcss: 8.4.38
source-map-js: 1.2.0
- '@vue/compiler-ssr@3.4.26':
+ '@vue/compiler-ssr@3.4.29':
dependencies:
- '@vue/compiler-dom': 3.4.26
- '@vue/shared': 3.4.26
+ '@vue/compiler-dom': 3.4.29
+ '@vue/shared': 3.4.29
+ optional: true
+
+ '@vue/compiler-ssr@3.4.31':
+ dependencies:
+ '@vue/compiler-dom': 3.4.31
+ '@vue/shared': 3.4.31
'@vue/devtools-api@6.6.1': {}
- '@vue/language-core@2.0.16(typescript@5.5.2)':
+ '@vue/language-core@2.0.16(typescript@5.5.3)':
dependencies:
'@volar/language-core': 2.2.0
- '@vue/compiler-dom': 3.4.25
- '@vue/shared': 3.4.25
+ '@vue/compiler-dom': 3.4.29
+ '@vue/shared': 3.4.29
computeds: 0.0.1
minimatch: 9.0.4
path-browserify: 1.0.1
vue-template-compiler: 2.7.14
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.5.3
- '@vue/reactivity@3.4.26':
+ '@vue/language-core@2.0.24(typescript@5.5.3)':
dependencies:
- '@vue/shared': 3.4.26
+ '@volar/language-core': 2.4.0-alpha.11
+ '@vue/compiler-dom': 3.4.29
+ '@vue/shared': 3.4.29
+ computeds: 0.0.1
+ minimatch: 9.0.4
+ muggle-string: 0.4.1
+ path-browserify: 1.0.1
+ vue-template-compiler: 2.7.14
+ optionalDependencies:
+ typescript: 5.5.3
- '@vue/runtime-core@3.4.26':
+ '@vue/reactivity@3.4.31':
dependencies:
- '@vue/reactivity': 3.4.26
- '@vue/shared': 3.4.26
+ '@vue/shared': 3.4.31
- '@vue/runtime-dom@3.4.26':
+ '@vue/runtime-core@3.4.31':
dependencies:
- '@vue/runtime-core': 3.4.26
- '@vue/shared': 3.4.26
+ '@vue/reactivity': 3.4.31
+ '@vue/shared': 3.4.31
+
+ '@vue/runtime-dom@3.4.31':
+ dependencies:
+ '@vue/reactivity': 3.4.31
+ '@vue/runtime-core': 3.4.31
+ '@vue/shared': 3.4.31
csstype: 3.1.3
- '@vue/server-renderer@3.4.26(vue@3.4.26(typescript@5.5.2))':
+ '@vue/server-renderer@3.4.29(vue@3.4.31(typescript@5.5.3))':
dependencies:
- '@vue/compiler-ssr': 3.4.26
- '@vue/shared': 3.4.26
- vue: 3.4.26(typescript@5.5.2)
+ '@vue/compiler-ssr': 3.4.29
+ '@vue/shared': 3.4.29
+ vue: 3.4.31(typescript@5.5.3)
+ optional: true
- '@vue/shared@3.4.21': {}
+ '@vue/server-renderer@3.4.31(vue@3.4.31(typescript@5.5.3))':
+ dependencies:
+ '@vue/compiler-ssr': 3.4.31
+ '@vue/shared': 3.4.31
+ vue: 3.4.31(typescript@5.5.3)
- '@vue/shared@3.4.25': {}
+ '@vue/shared@3.4.29': {}
- '@vue/shared@3.4.26': {}
+ '@vue/shared@3.4.31': {}
- '@vue/test-utils@2.4.1(@vue/server-renderer@3.4.26(vue@3.4.26(typescript@5.5.2)))(vue@3.4.26(typescript@5.5.2))':
+ '@vue/test-utils@2.4.1(@vue/server-renderer@3.4.29(vue@3.4.31(typescript@5.5.3)))(vue@3.4.31(typescript@5.5.3))':
dependencies:
js-beautify: 1.14.9
- vue: 3.4.26(typescript@5.5.2)
+ vue: 3.4.31(typescript@5.5.3)
vue-component-type-helpers: 1.8.4
optionalDependencies:
- '@vue/server-renderer': 3.4.26(vue@3.4.26(typescript@5.5.2))
+ '@vue/server-renderer': 3.4.29(vue@3.4.31(typescript@5.5.3))
'@webgpu/types@0.1.30': {}
- '@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15(esbuild@0.20.2)':
+ '@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15(esbuild@0.19.11)':
dependencies:
- esbuild: 0.20.2
+ esbuild: 0.19.11
tslib: 2.6.2
'@yarnpkg/fslib@2.10.3':
@@ -16672,22 +17710,22 @@ snapshots:
mime-types: 2.1.35
negotiator: 0.6.3
- acorn-import-assertions@1.9.0(acorn@8.11.3):
+ acorn-import-assertions@1.9.0(acorn@8.12.0):
dependencies:
- acorn: 8.11.3
+ acorn: 8.12.0
optional: true
- acorn-import-attributes@1.9.5(acorn@8.11.3):
+ acorn-import-attributes@1.9.5(acorn@8.12.0):
dependencies:
- acorn: 8.11.3
+ acorn: 8.12.0
acorn-jsx@5.3.2(acorn@7.4.1):
dependencies:
acorn: 7.4.1
- acorn-jsx@5.3.2(acorn@8.11.3):
+ acorn-jsx@5.3.2(acorn@8.12.0):
dependencies:
- acorn: 8.11.3
+ acorn: 8.12.0
acorn-walk@7.2.0: {}
@@ -16695,7 +17733,7 @@ snapshots:
acorn@7.4.1: {}
- acorn@8.11.3: {}
+ acorn@8.12.0: {}
address@1.2.2: {}
@@ -16709,13 +17747,13 @@ snapshots:
agent-base@6.0.2:
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
agent-base@7.1.0:
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -16738,7 +17776,15 @@ snapshots:
optionalDependencies:
ajv: 8.13.0
- ajv-formats@2.1.1(ajv@8.13.0):
+ ajv-draft-04@1.0.0(ajv@8.16.0):
+ optionalDependencies:
+ ajv: 8.16.0
+
+ ajv-formats@2.1.1(ajv@8.16.0):
+ optionalDependencies:
+ ajv: 8.16.0
+
+ ajv-formats@3.0.1(ajv@8.13.0):
optionalDependencies:
ajv: 8.13.0
@@ -16749,6 +17795,13 @@ snapshots:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
+ ajv@8.12.0:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+ uri-js: 4.4.1
+
ajv@8.13.0:
dependencies:
fast-deep-equal: 3.1.3
@@ -16756,6 +17809,13 @@ snapshots:
require-from-string: 2.0.2
uri-js: 4.4.1
+ ajv@8.16.0:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+ uri-js: 4.4.1
+
ansi-colors@4.1.3: {}
ansi-escapes@4.3.2:
@@ -16798,7 +17858,7 @@ snapshots:
archiver-utils@5.0.2:
dependencies:
- glob: 10.3.12
+ glob: 10.4.2
graceful-fs: 4.2.11
is-stream: 2.0.1
lazystream: 1.0.1
@@ -16832,10 +17892,18 @@ snapshots:
argparse@2.0.1: {}
+ aria-hidden@1.2.4:
+ dependencies:
+ tslib: 2.6.2
+
aria-query@5.1.3:
dependencies:
deep-equal: 2.2.0
+ aria-query@5.3.0:
+ dependencies:
+ dequal: 2.0.3
+
array-buffer-byte-length@1.0.0:
dependencies:
call-bind: 1.0.2
@@ -16931,6 +17999,8 @@ snapshots:
dependencies:
tslib: 2.6.2
+ async@0.2.10: {}
+
async@3.2.4: {}
asynckit@0.4.0: {}
@@ -16945,12 +18015,12 @@ snapshots:
dependencies:
'@fastify/error': 3.4.0
archy: 1.0.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
fastq: 1.17.1
transitivePeerDependencies:
- supports-color
- aws-sdk-client-mock@3.0.1:
+ aws-sdk-client-mock@4.0.1:
dependencies:
'@types/sinon': 10.0.13
sinon: 16.1.3
@@ -16962,13 +18032,13 @@ snapshots:
axios@0.24.0:
dependencies:
- follow-redirects: 1.15.2(debug@4.3.4)
+ follow-redirects: 1.15.2(debug@4.3.5)
transitivePeerDependencies:
- debug
- axios@1.6.2(debug@4.3.4):
+ axios@1.6.2(debug@4.3.5):
dependencies:
- follow-redirects: 1.15.2(debug@4.3.4)
+ follow-redirects: 1.15.2(debug@4.3.5)
form-data: 4.0.0
proxy-from-env: 1.1.0
transitivePeerDependencies:
@@ -16976,9 +18046,9 @@ snapshots:
b4a@1.6.4: {}
- babel-core@7.0.0-bridge.0(@babel/core@7.24.0):
+ babel-core@7.0.0-bridge.0(@babel/core@7.24.7):
dependencies:
- '@babel/core': 7.24.0
+ '@babel/core': 7.24.7
babel-jest@29.7.0(@babel/core@7.23.5):
dependencies:
@@ -17006,31 +18076,31 @@ snapshots:
babel-plugin-jest-hoist@29.6.3:
dependencies:
'@babel/template': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.7
'@types/babel__core': 7.20.0
'@types/babel__traverse': 7.20.0
- babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.24.0):
+ babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.7):
dependencies:
- '@babel/compat-data': 7.23.5
- '@babel/core': 7.24.0
- '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.24.0)
+ '@babel/compat-data': 7.24.7
+ '@babel/core': 7.24.7
+ '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-corejs3@0.8.6(@babel/core@7.24.0):
+ babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.7):
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.24.0)
- core-js-compat: 3.33.3
+ '@babel/core': 7.24.7
+ '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7)
+ core-js-compat: 3.37.1
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.24.0):
+ babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.7):
dependencies:
- '@babel/core': 7.24.0
- '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7)
transitivePeerDependencies:
- supports-color
@@ -17058,7 +18128,7 @@ snapshots:
babel-walk@3.0.0-canary-5:
dependencies:
- '@babel/types': 7.23.5
+ '@babel/types': 7.24.0
bail@2.0.2: {}
@@ -17110,23 +18180,6 @@ snapshots:
bn.js@4.12.0: {}
- body-parser@1.20.1:
- dependencies:
- bytes: 3.1.2
- content-type: 1.0.5
- debug: 2.6.9
- depd: 2.0.0
- destroy: 1.2.0
- http-errors: 2.0.0
- iconv-lite: 0.4.24
- on-finished: 2.4.1
- qs: 6.11.0
- raw-body: 2.5.1
- type-is: 1.6.18
- unpipe: 1.0.0
- transitivePeerDependencies:
- - supports-color
-
body-parser@1.20.2:
dependencies:
bytes: 3.1.2
@@ -17165,6 +18218,10 @@ snapshots:
dependencies:
fill-range: 7.0.1
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
broadcast-channel@7.0.0:
dependencies:
'@babel/runtime': 7.23.4
@@ -17224,7 +18281,7 @@ snapshots:
node-gyp-build: 4.6.0
optional: true
- bullmq@5.7.8:
+ bullmq@5.8.3:
dependencies:
cron-parser: 4.8.1
ioredis: 5.4.1
@@ -17252,7 +18309,7 @@ snapshots:
dependencies:
'@npmcli/fs': 3.1.0
fs-minipass: 3.0.2
- glob: 10.3.12
+ glob: 10.4.2
lru-cache: 10.2.2
minipass: 7.0.4
minipass-collect: 1.0.2
@@ -17277,6 +18334,16 @@ snapshots:
normalize-url: 8.0.0
responselike: 3.0.0
+ cacheable-request@12.0.1:
+ dependencies:
+ '@types/http-cache-semantics': 4.0.4
+ get-stream: 9.0.1
+ http-cache-semantics: 4.1.1
+ keyv: 4.5.4
+ mimic-response: 4.0.0
+ normalize-url: 8.0.1
+ responselike: 3.0.0
+
cacheable-request@7.0.2:
dependencies:
clone-response: 1.0.3
@@ -17371,26 +18438,26 @@ snapshots:
dependencies:
is-regex: 1.1.4
- chart.js@4.4.2:
+ chart.js@4.4.3:
dependencies:
'@kurkle/color': 0.3.2
- chartjs-adapter-date-fns@3.0.0(chart.js@4.4.2)(date-fns@2.30.0):
+ chartjs-adapter-date-fns@3.0.0(chart.js@4.4.3)(date-fns@2.30.0):
dependencies:
- chart.js: 4.4.2
+ chart.js: 4.4.3
date-fns: 2.30.0
- chartjs-chart-matrix@2.0.1(chart.js@4.4.2):
+ chartjs-chart-matrix@2.0.1(chart.js@4.4.3):
dependencies:
- chart.js: 4.4.2
+ chart.js: 4.4.3
- chartjs-plugin-gradient@0.6.1(chart.js@4.4.2):
+ chartjs-plugin-gradient@0.6.1(chart.js@4.4.3):
dependencies:
- chart.js: 4.4.2
+ chart.js: 4.4.3
- chartjs-plugin-zoom@2.0.1(chart.js@4.4.2):
+ chartjs-plugin-zoom@2.0.1(chart.js@4.4.3):
dependencies:
- chart.js: 4.4.2
+ chart.js: 4.4.3
hammerjs: 2.0.8
check-error@1.0.3:
@@ -17434,7 +18501,7 @@ snapshots:
chownr@2.0.0: {}
- chromatic@11.3.0: {}
+ chromatic@11.5.4: {}
ci-info@3.7.1: {}
@@ -17459,8 +18526,6 @@ snapshots:
parse5-htmlparser2-tree-adapter: 6.0.1
yargs: 16.2.0
- cli-spinners@2.7.0: {}
-
cli-spinners@2.9.2: {}
cli-table3@0.6.3:
@@ -17612,8 +18677,8 @@ snapshots:
constantinople@4.0.1:
dependencies:
- '@babel/parser': 7.23.9
- '@babel/types': 7.23.5
+ '@babel/parser': 7.24.5
+ '@babel/types': 7.24.0
content-disposition@0.5.4:
dependencies:
@@ -17631,7 +18696,7 @@ snapshots:
cookie@0.6.0: {}
- core-js-compat@3.33.3:
+ core-js-compat@3.37.1:
dependencies:
browserslist: 4.23.0
@@ -17653,13 +18718,13 @@ snapshots:
crc-32: 1.2.2
readable-stream: 4.3.0
- create-jest@29.7.0(@types/node@20.12.7):
+ create-jest@29.7.0(@types/node@20.14.9):
dependencies:
'@jest/types': 29.6.3
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.11
- jest-config: 29.7.0(@types/node@20.12.7)
+ jest-config: 29.7.0(@types/node@20.14.9)
jest-util: 29.7.0
prompts: 2.4.2
transitivePeerDependencies:
@@ -17705,7 +18770,9 @@ snapshots:
shebang-command: 2.0.0
which: 2.0.2
- crypto-random-string@2.0.0: {}
+ crypto-random-string@4.0.0:
+ dependencies:
+ type-fest: 1.4.0
css-declaration-sorter@7.2.0(postcss@8.4.38):
dependencies:
@@ -17793,7 +18860,7 @@ snapshots:
dependencies:
uniq: 1.0.1
- cypress@13.7.3:
+ cypress@13.13.0:
dependencies:
'@cypress/request': 3.0.0
'@cypress/xvfb': 1.2.4(supports-color@8.1.1)
@@ -17811,52 +18878,7 @@ snapshots:
commander: 6.2.1
common-tags: 1.8.2
dayjs: 1.11.10
- debug: 4.3.4(supports-color@8.1.1)
- enquirer: 2.3.6
- eventemitter2: 6.4.7
- execa: 4.1.0
- executable: 4.1.1
- extract-zip: 2.0.1(supports-color@8.1.1)
- figures: 3.2.0
- fs-extra: 9.1.0
- getos: 3.2.1
- is-ci: 3.0.1
- is-installed-globally: 0.4.0
- lazy-ass: 1.6.0
- listr2: 3.14.0(enquirer@2.3.6)
- lodash: 4.17.21
- log-symbols: 4.1.0
- minimist: 1.2.8
- ospath: 1.2.2
- pretty-bytes: 5.6.0
- process: 0.11.10
- proxy-from-env: 1.0.0
- request-progress: 3.0.0
- semver: 7.6.0
- supports-color: 8.1.1
- tmp: 0.2.3
- untildify: 4.0.0
- yauzl: 2.10.0
-
- cypress@13.8.1:
- dependencies:
- '@cypress/request': 3.0.0
- '@cypress/xvfb': 1.2.4(supports-color@8.1.1)
- '@types/sinonjs__fake-timers': 8.1.1
- '@types/sizzle': 2.3.3
- arch: 2.2.0
- blob-util: 2.0.2
- bluebird: 3.7.2
- buffer: 5.7.1
- cachedir: 2.3.0
- chalk: 4.1.2
- check-more-types: 2.24.0
- cli-cursor: 3.1.0
- cli-table3: 0.6.3
- commander: 6.2.1
- common-tags: 1.8.2
- dayjs: 1.11.10
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
enquirer: 2.3.6
eventemitter2: 6.4.7
execa: 4.1.0
@@ -17920,7 +18942,7 @@ snapshots:
optionalDependencies:
supports-color: 5.5.0
- debug@4.3.4(supports-color@8.1.1):
+ debug@4.3.5(supports-color@8.1.1):
dependencies:
ms: 2.1.2
optionalDependencies:
@@ -18013,17 +19035,6 @@ snapshots:
defu@6.1.4: {}
- del@6.1.1:
- dependencies:
- globby: 11.1.0
- graceful-fs: 4.2.11
- is-glob: 4.0.3
- is-path-cwd: 2.2.0
- is-path-inside: 3.0.3
- p-map: 4.0.0
- rimraf: 3.0.2
- slash: 3.0.0
-
delayed-stream@1.0.0: {}
delegates@1.0.0:
@@ -18046,6 +19057,8 @@ snapshots:
detect-newline@3.1.0: {}
+ detect-node-es@1.1.0: {}
+
detect-package-manager@2.0.1:
dependencies:
execa: 5.1.1
@@ -18053,7 +19066,7 @@ snapshots:
detect-port@1.5.1:
dependencies:
address: 1.2.2
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -18067,6 +19080,8 @@ snapshots:
diff@5.1.0: {}
+ diff@5.2.0: {}
+
dijkstrajs@1.0.2: {}
dir-glob@3.0.1:
@@ -18140,7 +19155,7 @@ snapshots:
ee-first@1.1.1: {}
- ejs@3.1.9:
+ ejs@3.1.10:
dependencies:
jake: 10.8.5
@@ -18239,7 +19254,7 @@ snapshots:
isarray: 2.0.5
stop-iteration-iterator: 1.0.0
- es-module-lexer@0.9.3: {}
+ es-module-lexer@1.5.4: {}
es-set-tostringtag@2.0.1:
dependencies:
@@ -18267,10 +19282,10 @@ snapshots:
esbuild-plugin-alias@0.2.1: {}
- esbuild-register@3.5.0(esbuild@0.20.2):
+ esbuild-register@3.5.0(esbuild@0.19.11):
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
- esbuild: 0.20.2
+ debug: 4.3.5(supports-color@8.1.1)
+ esbuild: 0.19.11
transitivePeerDependencies:
- supports-color
@@ -18325,31 +19340,58 @@ snapshots:
'@esbuild/win32-ia32': 0.19.11
'@esbuild/win32-x64': 0.19.11
- esbuild@0.20.2:
+ esbuild@0.21.5:
optionalDependencies:
- '@esbuild/aix-ppc64': 0.20.2
- '@esbuild/android-arm': 0.20.2
- '@esbuild/android-arm64': 0.20.2
- '@esbuild/android-x64': 0.20.2
- '@esbuild/darwin-arm64': 0.20.2
- '@esbuild/darwin-x64': 0.20.2
- '@esbuild/freebsd-arm64': 0.20.2
- '@esbuild/freebsd-x64': 0.20.2
- '@esbuild/linux-arm': 0.20.2
- '@esbuild/linux-arm64': 0.20.2
- '@esbuild/linux-ia32': 0.20.2
- '@esbuild/linux-loong64': 0.20.2
- '@esbuild/linux-mips64el': 0.20.2
- '@esbuild/linux-ppc64': 0.20.2
- '@esbuild/linux-riscv64': 0.20.2
- '@esbuild/linux-s390x': 0.20.2
- '@esbuild/linux-x64': 0.20.2
- '@esbuild/netbsd-x64': 0.20.2
- '@esbuild/openbsd-x64': 0.20.2
- '@esbuild/sunos-x64': 0.20.2
- '@esbuild/win32-arm64': 0.20.2
- '@esbuild/win32-ia32': 0.20.2
- '@esbuild/win32-x64': 0.20.2
+ '@esbuild/aix-ppc64': 0.21.5
+ '@esbuild/android-arm': 0.21.5
+ '@esbuild/android-arm64': 0.21.5
+ '@esbuild/android-x64': 0.21.5
+ '@esbuild/darwin-arm64': 0.21.5
+ '@esbuild/darwin-x64': 0.21.5
+ '@esbuild/freebsd-arm64': 0.21.5
+ '@esbuild/freebsd-x64': 0.21.5
+ '@esbuild/linux-arm': 0.21.5
+ '@esbuild/linux-arm64': 0.21.5
+ '@esbuild/linux-ia32': 0.21.5
+ '@esbuild/linux-loong64': 0.21.5
+ '@esbuild/linux-mips64el': 0.21.5
+ '@esbuild/linux-ppc64': 0.21.5
+ '@esbuild/linux-riscv64': 0.21.5
+ '@esbuild/linux-s390x': 0.21.5
+ '@esbuild/linux-x64': 0.21.5
+ '@esbuild/netbsd-x64': 0.21.5
+ '@esbuild/openbsd-x64': 0.21.5
+ '@esbuild/sunos-x64': 0.21.5
+ '@esbuild/win32-arm64': 0.21.5
+ '@esbuild/win32-ia32': 0.21.5
+ '@esbuild/win32-x64': 0.21.5
+
+ esbuild@0.22.0:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.22.0
+ '@esbuild/android-arm': 0.22.0
+ '@esbuild/android-arm64': 0.22.0
+ '@esbuild/android-x64': 0.22.0
+ '@esbuild/darwin-arm64': 0.22.0
+ '@esbuild/darwin-x64': 0.22.0
+ '@esbuild/freebsd-arm64': 0.22.0
+ '@esbuild/freebsd-x64': 0.22.0
+ '@esbuild/linux-arm': 0.22.0
+ '@esbuild/linux-arm64': 0.22.0
+ '@esbuild/linux-ia32': 0.22.0
+ '@esbuild/linux-loong64': 0.22.0
+ '@esbuild/linux-mips64el': 0.22.0
+ '@esbuild/linux-ppc64': 0.22.0
+ '@esbuild/linux-riscv64': 0.22.0
+ '@esbuild/linux-s390x': 0.22.0
+ '@esbuild/linux-x64': 0.22.0
+ '@esbuild/netbsd-x64': 0.22.0
+ '@esbuild/openbsd-arm64': 0.22.0
+ '@esbuild/openbsd-x64': 0.22.0
+ '@esbuild/sunos-x64': 0.22.0
+ '@esbuild/win32-arm64': 0.22.0
+ '@esbuild/win32-ia32': 0.22.0
+ '@esbuild/win32-x64': 0.22.0
escalade@3.1.1: {}
@@ -18392,37 +19434,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.8.0(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.53.0):
+ eslint-module-utils@2.8.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint@9.6.0):
dependencies:
debug: 3.2.7(supports-color@8.1.1)
optionalDependencies:
- '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
- eslint: 8.53.0
+ '@typescript-eslint/parser': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
+ eslint: 9.6.0
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.8.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0):
- dependencies:
- debug: 3.2.7(supports-color@8.1.1)
- optionalDependencies:
- '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3)
- eslint: 8.57.0
- eslint-import-resolver-node: 0.3.9
- transitivePeerDependencies:
- - supports-color
-
- eslint-module-utils@2.8.0(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0):
- dependencies:
- debug: 3.2.7(supports-color@8.1.1)
- optionalDependencies:
- '@typescript-eslint/parser': 7.7.1(eslint@8.57.0)(typescript@5.5.2)
- eslint: 8.57.0
- eslint-import-resolver-node: 0.3.9
- transitivePeerDependencies:
- - supports-color
-
- eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint@8.53.0):
+ eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0):
dependencies:
array-includes: 3.1.7
array.prototype.findlastindex: 1.2.3
@@ -18430,9 +19452,9 @@ snapshots:
array.prototype.flatmap: 1.3.2
debug: 3.2.7(supports-color@8.1.1)
doctrine: 2.1.0
- eslint: 8.53.0
+ eslint: 9.6.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.53.0)
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint@9.6.0)
hasown: 2.0.0
is-core-module: 2.13.1
is-glob: 4.0.3
@@ -18443,76 +19465,22 @@ snapshots:
semver: 6.3.1
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
+ '@typescript-eslint/parser': 7.15.0(eslint@9.6.0)(typescript@5.5.3)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
- eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0):
+ eslint-plugin-vue@9.26.0(eslint@9.6.0):
dependencies:
- array-includes: 3.1.7
- array.prototype.findlastindex: 1.2.3
- array.prototype.flat: 1.3.2
- array.prototype.flatmap: 1.3.2
- debug: 3.2.7(supports-color@8.1.1)
- doctrine: 2.1.0
- eslint: 8.57.0
- eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0)
- hasown: 2.0.0
- is-core-module: 2.13.1
- is-glob: 4.0.3
- minimatch: 3.1.2
- object.fromentries: 2.0.7
- object.groupby: 1.0.1
- object.values: 1.1.7
- semver: 6.3.1
- tsconfig-paths: 3.15.0
- optionalDependencies:
- '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3)
- transitivePeerDependencies:
- - eslint-import-resolver-typescript
- - eslint-import-resolver-webpack
- - supports-color
-
- eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0):
- dependencies:
- array-includes: 3.1.7
- array.prototype.findlastindex: 1.2.3
- array.prototype.flat: 1.3.2
- array.prototype.flatmap: 1.3.2
- debug: 3.2.7(supports-color@8.1.1)
- doctrine: 2.1.0
- eslint: 8.57.0
- eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0)
- hasown: 2.0.0
- is-core-module: 2.13.1
- is-glob: 4.0.3
- minimatch: 3.1.2
- object.fromentries: 2.0.7
- object.groupby: 1.0.1
- object.values: 1.1.7
- semver: 6.3.1
- tsconfig-paths: 3.15.0
- optionalDependencies:
- '@typescript-eslint/parser': 7.7.1(eslint@8.57.0)(typescript@5.5.2)
- transitivePeerDependencies:
- - eslint-import-resolver-typescript
- - eslint-import-resolver-webpack
- - supports-color
-
- eslint-plugin-vue@9.25.0(eslint@8.57.0):
- dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
- eslint: 8.57.0
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
+ eslint: 9.6.0
globals: 13.24.0
natural-compare: 1.4.0
nth-check: 2.1.1
- postcss-selector-parser: 6.0.15
+ postcss-selector-parser: 6.0.16
semver: 7.6.0
- vue-eslint-parser: 9.4.2(eslint@8.57.0)
+ vue-eslint-parser: 9.4.3(eslint@9.6.0)
xml-name-validator: 4.0.0
transitivePeerDependencies:
- supports-color
@@ -18524,40 +19492,43 @@ snapshots:
esrecurse: 4.3.0
estraverse: 5.3.0
+ eslint-scope@8.0.1:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
eslint-visitor-keys@3.4.3: {}
- eslint@8.53.0:
+ eslint-visitor-keys@4.0.0: {}
+
+ eslint@9.6.0:
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0)
- '@eslint-community/regexpp': 4.6.2
- '@eslint/eslintrc': 2.1.4
- '@eslint/js': 8.53.0
- '@humanwhocodes/config-array': 0.11.13
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0)
+ '@eslint-community/regexpp': 4.10.0
+ '@eslint/config-array': 0.17.0
+ '@eslint/eslintrc': 3.1.0
+ '@eslint/js': 9.6.0
'@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.3.0
'@nodelib/fs.walk': 1.2.8
- '@ungap/structured-clone': 1.2.0
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
- debug: 4.3.4(supports-color@8.1.1)
- doctrine: 3.0.0
+ debug: 4.3.5(supports-color@8.1.1)
escape-string-regexp: 4.0.0
- eslint-scope: 7.2.2
- eslint-visitor-keys: 3.4.3
- espree: 9.6.1
- esquery: 1.4.2
+ eslint-scope: 8.0.1
+ eslint-visitor-keys: 4.0.0
+ espree: 10.1.0
+ esquery: 1.5.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
- file-entry-cache: 6.0.1
+ file-entry-cache: 8.0.0
find-up: 5.0.0
glob-parent: 6.0.2
- globals: 13.19.0
- graphemer: 1.4.0
- ignore: 5.2.4
+ ignore: 5.3.1
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
- js-yaml: 4.1.0
json-stable-stringify-without-jsonify: 1.0.1
levn: 0.4.1
lodash.merge: 4.6.2
@@ -18569,53 +19540,16 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint@8.57.0:
+ espree@10.1.0:
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
- '@eslint-community/regexpp': 4.6.2
- '@eslint/eslintrc': 2.1.4
- '@eslint/js': 8.57.0
- '@humanwhocodes/config-array': 0.11.14
- '@humanwhocodes/module-importer': 1.0.1
- '@nodelib/fs.walk': 1.2.8
- '@ungap/structured-clone': 1.2.0
- ajv: 6.12.6
- chalk: 4.1.2
- cross-spawn: 7.0.3
- debug: 4.3.4(supports-color@8.1.1)
- doctrine: 3.0.0
- escape-string-regexp: 4.0.0
- eslint-scope: 7.2.2
- eslint-visitor-keys: 3.4.3
- espree: 9.6.1
- esquery: 1.4.2
- esutils: 2.0.3
- fast-deep-equal: 3.1.3
- file-entry-cache: 6.0.1
- find-up: 5.0.0
- glob-parent: 6.0.2
- globals: 13.19.0
- graphemer: 1.4.0
- ignore: 5.2.4
- imurmurhash: 0.1.4
- is-glob: 4.0.3
- is-path-inside: 3.0.3
- js-yaml: 4.1.0
- json-stable-stringify-without-jsonify: 1.0.1
- levn: 0.4.1
- lodash.merge: 4.6.2
- minimatch: 3.1.2
- natural-compare: 1.4.0
- optionator: 0.9.3
- strip-ansi: 6.0.1
- text-table: 0.2.0
- transitivePeerDependencies:
- - supports-color
+ acorn: 8.12.0
+ acorn-jsx: 5.3.2(acorn@8.12.0)
+ eslint-visitor-keys: 4.0.0
espree@9.6.1:
dependencies:
- acorn: 8.11.3
- acorn-jsx: 5.3.2(acorn@8.11.3)
+ acorn: 8.12.0
+ acorn-jsx: 5.3.2(acorn@8.12.0)
eslint-visitor-keys: 3.4.3
esprima@4.0.1: {}
@@ -18624,6 +19558,10 @@ snapshots:
dependencies:
estraverse: 5.3.0
+ esquery@1.5.0:
+ dependencies:
+ estraverse: 5.3.0
+
esrecurse@4.3.0:
dependencies:
estraverse: 5.3.0
@@ -18718,6 +19656,21 @@ snapshots:
signal-exit: 4.1.0
strip-final-newline: 3.0.0
+ execa@9.2.0:
+ dependencies:
+ '@sindresorhus/merge-streams': 4.0.0
+ cross-spawn: 7.0.3
+ figures: 6.1.0
+ get-stream: 9.0.1
+ human-signals: 7.0.0
+ is-plain-obj: 4.1.0
+ is-stream: 4.0.1
+ npm-run-path: 5.3.0
+ pretty-ms: 9.0.0
+ signal-exit: 4.1.0
+ strip-final-newline: 4.0.0
+ yoctocolors: 2.0.2
+
executable@4.1.1:
dependencies:
pify: 2.3.0
@@ -18734,42 +19687,6 @@ snapshots:
exponential-backoff@3.1.1: {}
- express@4.18.2:
- dependencies:
- accepts: 1.3.8
- array-flatten: 1.1.1
- body-parser: 1.20.1
- content-disposition: 0.5.4
- content-type: 1.0.5
- cookie: 0.5.0
- cookie-signature: 1.0.6
- debug: 2.6.9
- depd: 2.0.0
- encodeurl: 1.0.2
- escape-html: 1.0.3
- etag: 1.8.1
- finalhandler: 1.2.0
- fresh: 0.5.2
- http-errors: 2.0.0
- merge-descriptors: 1.0.1
- methods: 1.1.2
- on-finished: 2.4.1
- parseurl: 1.3.3
- path-to-regexp: 0.1.7
- proxy-addr: 2.0.7
- qs: 6.11.0
- range-parser: 1.2.1
- safe-buffer: 5.2.1
- send: 0.18.0
- serve-static: 1.15.0
- setprototypeof: 1.2.0
- statuses: 2.0.1
- type-is: 1.6.18
- utils-merge: 1.0.1
- vary: 1.1.2
- transitivePeerDependencies:
- - supports-color
-
express@4.19.2:
dependencies:
accepts: 1.3.8
@@ -18819,7 +19736,7 @@ snapshots:
extract-zip@2.0.1(supports-color@8.1.1):
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
get-stream: 5.2.0
yauzl: 2.10.0
optionalDependencies:
@@ -18843,15 +19760,15 @@ snapshots:
'@nodelib/fs.walk': 1.2.8
glob-parent: 5.1.2
merge2: 1.4.1
- micromatch: 4.0.5
+ micromatch: 4.0.7
fast-json-stable-stringify@2.1.0: {}
fast-json-stringify@5.8.0:
dependencies:
'@fastify/deepmerge': 1.3.0
- ajv: 8.13.0
- ajv-formats: 2.1.1(ajv@8.13.0)
+ ajv: 8.16.0
+ ajv-formats: 2.1.1(ajv@8.16.0)
fast-deep-equal: 3.1.3
fast-uri: 2.2.0
rfdc: 1.3.0
@@ -18880,7 +19797,7 @@ snapshots:
raw-body: 2.5.2
secure-json-parse: 2.7.0
- fastify@4.26.2:
+ fastify@4.28.1:
dependencies:
'@fastify/ajv-compiler': 3.5.0
'@fastify/error': 3.4.0
@@ -18891,20 +19808,16 @@ snapshots:
fast-json-stringify: 5.8.0
find-my-way: 8.2.0
light-my-request: 5.11.0
- pino: 8.17.0
+ pino: 9.2.0
process-warning: 3.0.0
proxy-addr: 2.0.7
rfdc: 1.3.0
secure-json-parse: 2.7.0
semver: 7.6.0
- toad-cache: 3.3.0
+ toad-cache: 3.7.0
transitivePeerDependencies:
- supports-color
- fastq@1.15.0:
- dependencies:
- reusify: 1.0.4
-
fastq@1.17.1:
dependencies:
reusify: 1.0.4
@@ -18932,9 +19845,13 @@ snapshots:
dependencies:
escape-string-regexp: 1.0.5
- file-entry-cache@6.0.1:
+ figures@6.1.0:
dependencies:
- flat-cache: 3.0.4
+ is-unicode-supported: 2.0.0
+
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
file-system-cache@2.3.0:
dependencies:
@@ -18969,6 +19886,10 @@ snapshots:
dependencies:
to-regex-range: 5.0.1
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
finalhandler@1.2.0:
dependencies:
debug: 2.6.9
@@ -19028,23 +19949,23 @@ snapshots:
ps-list: 8.1.1
taskkill: 5.0.0
- flat-cache@3.0.4:
+ flat-cache@4.0.1:
dependencies:
- flatted: 3.2.7
- rimraf: 3.0.2
+ flatted: 3.3.1
+ keyv: 4.5.4
- flatted@3.2.7: {}
+ flatted@3.3.1: {}
flow-parser@0.202.0: {}
- fluent-ffmpeg@2.1.2:
+ fluent-ffmpeg@2.1.3:
dependencies:
- async: 3.2.4
+ async: 0.2.10
which: 1.3.1
- follow-redirects@1.15.2(debug@4.3.4):
+ follow-redirects@1.15.2(debug@4.3.5):
optionalDependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
for-each@0.3.3:
dependencies:
@@ -19171,6 +20092,8 @@ snapshots:
has-proto: 1.0.1
has-symbols: 1.0.3
+ get-nonce@1.0.1: {}
+
get-npm-tarball-url@2.0.3: {}
get-package-type@0.1.0: {}
@@ -19199,6 +20122,11 @@ snapshots:
get-stream@8.0.1: {}
+ get-stream@9.0.1:
+ dependencies:
+ '@sec-ant/readable-stream': 0.4.1
+ is-stream: 4.0.1
+
get-symbol-description@1.0.0:
dependencies:
call-bind: 1.0.2
@@ -19265,6 +20193,15 @@ snapshots:
minipass: 7.0.4
path-scurry: 1.10.2
+ glob@10.4.2:
+ dependencies:
+ foreground-child: 3.1.1
+ jackspeak: 3.4.0
+ minimatch: 9.0.4
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.0
+ path-scurry: 1.11.1
+
glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
@@ -19288,14 +20225,14 @@ snapshots:
globals@11.12.0: {}
- globals@13.19.0:
- dependencies:
- type-fest: 0.20.2
-
globals@13.24.0:
dependencies:
type-fest: 0.20.2
+ globals@14.0.0: {}
+
+ globals@15.7.0: {}
+
globalthis@1.0.3:
dependencies:
define-properties: 1.2.0
@@ -19309,6 +20246,15 @@ snapshots:
merge2: 1.4.1
slash: 3.0.0
+ globby@14.0.1:
+ dependencies:
+ '@sindresorhus/merge-streams': 2.3.0
+ fast-glob: 3.3.2
+ ignore: 5.3.1
+ path-type: 5.0.0
+ slash: 5.1.0
+ unicorn-magic: 0.1.0
+
google-protobuf@3.21.2:
optional: true
@@ -19344,12 +20290,12 @@ snapshots:
p-cancelable: 3.0.0
responselike: 3.0.0
- got@14.2.1:
+ got@14.4.1:
dependencies:
- '@sindresorhus/is': 6.1.0
+ '@sindresorhus/is': 6.3.1
'@szmarczak/http-timer': 5.0.1
cacheable-lookup: 7.0.0
- cacheable-request: 10.2.14
+ cacheable-request: 12.0.1
decompress-response: 6.0.0
form-data-encoder: 4.0.2
get-stream: 8.0.1
@@ -19357,6 +20303,7 @@ snapshots:
lowercase-keys: 3.0.0
p-cancelable: 4.0.1
responselike: 3.0.0
+ type-fest: 4.20.1
graceful-fs@4.2.11: {}
@@ -19499,7 +20446,14 @@ snapshots:
http-proxy-agent@7.0.0:
dependencies:
agent-base: 7.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ http-proxy-agent@7.0.2:
+ dependencies:
+ agent-base: 7.1.0
+ debug: 4.3.4(supports-color@5.5.0)
transitivePeerDependencies:
- supports-color
@@ -19538,14 +20492,21 @@ snapshots:
https-proxy-agent@5.0.1:
dependencies:
agent-base: 6.0.2
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
https-proxy-agent@7.0.2:
dependencies:
agent-base: 7.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ https-proxy-agent@7.0.4:
+ dependencies:
+ agent-base: 7.1.0
+ debug: 4.3.4(supports-color@5.5.0)
transitivePeerDependencies:
- supports-color
@@ -19557,6 +20518,8 @@ snapshots:
human-signals@5.0.0: {}
+ human-signals@7.0.0: {}
+
iconv-lite@0.4.24:
dependencies:
safer-buffer: 2.1.2
@@ -19588,16 +20551,16 @@ snapshots:
import-in-the-middle@1.4.2:
dependencies:
- acorn: 8.11.3
- acorn-import-assertions: 1.9.0(acorn@8.11.3)
+ acorn: 8.12.0
+ acorn-import-assertions: 1.9.0(acorn@8.12.0)
cjs-module-lexer: 1.2.2
module-details-from-path: 1.0.3
optional: true
- import-in-the-middle@1.7.4:
+ import-in-the-middle@1.8.1:
dependencies:
- acorn: 8.11.3
- acorn-import-attributes: 1.9.5(acorn@8.11.3)
+ acorn: 8.12.0
+ acorn-import-attributes: 1.9.5(acorn@8.12.0)
cjs-module-lexer: 1.2.2
module-details-from-path: 1.0.3
@@ -19637,11 +20600,15 @@ snapshots:
intersection-observer@0.12.2: {}
+ invariant@2.2.4:
+ dependencies:
+ loose-envify: 1.4.0
+
ioredis@5.4.1:
dependencies:
'@ioredis/commands': 1.2.0
cluster-key-slot: 1.1.2
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
denque: 2.1.0
lodash.defaults: 4.2.0
lodash.isarguments: 3.1.0
@@ -19653,15 +20620,14 @@ snapshots:
iota-array@1.0.0: {}
- ip-address@7.1.0:
+ ip-address@9.0.5:
dependencies:
jsbn: 1.1.0
- sprintf-js: 1.1.2
+ sprintf-js: 1.1.3
- ip-cidr@3.1.0:
+ ip-cidr@4.0.1:
dependencies:
- ip-address: 7.1.0
- jsbn: 1.1.0
+ ip-address: 9.0.5
ip-regex@4.3.0: {}
@@ -19776,8 +20742,6 @@ snapshots:
is-number@7.0.0: {}
- is-path-cwd@2.2.0: {}
-
is-path-inside@3.0.3: {}
is-plain-obj@1.1.0: {}
@@ -19811,11 +20775,13 @@ snapshots:
is-stream@3.0.0: {}
+ is-stream@4.0.1: {}
+
is-string@1.0.7:
dependencies:
has-tostringtag: 1.0.0
- is-svg@5.0.0:
+ is-svg@5.0.1:
dependencies:
fast-xml-parser: 4.2.5
@@ -19835,6 +20801,8 @@ snapshots:
is-unicode-supported@0.1.0: {}
+ is-unicode-supported@2.0.0: {}
+
is-weakmap@2.0.1: {}
is-weakref@1.0.2:
@@ -19868,8 +20836,8 @@ snapshots:
istanbul-lib-instrument@5.2.1:
dependencies:
- '@babel/core': 7.24.0
- '@babel/parser': 7.24.0
+ '@babel/core': 7.24.7
+ '@babel/parser': 7.24.7
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 6.3.1
@@ -19878,8 +20846,8 @@ snapshots:
istanbul-lib-instrument@6.0.0:
dependencies:
- '@babel/core': 7.24.0
- '@babel/parser': 7.24.0
+ '@babel/core': 7.24.7
+ '@babel/parser': 7.24.7
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 7.6.0
@@ -19894,12 +20862,20 @@ snapshots:
istanbul-lib-source-maps@4.0.1:
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
istanbul-lib-coverage: 3.2.2
source-map: 0.6.1
transitivePeerDependencies:
- supports-color
+ istanbul-lib-source-maps@5.0.4:
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.25
+ debug: 4.3.5(supports-color@8.1.1)
+ istanbul-lib-coverage: 3.2.2
+ transitivePeerDependencies:
+ - supports-color
+
istanbul-reports@3.1.6:
dependencies:
html-escaper: 2.0.2
@@ -19913,6 +20889,12 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
+ jackspeak@3.4.0:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+ optionalDependencies:
+ '@pkgjs/parseargs': 0.11.0
+
jake@10.8.5:
dependencies:
async: 3.2.4
@@ -19932,7 +20914,7 @@ snapshots:
'@jest/expect': 29.7.0
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
chalk: 4.1.2
co: 4.6.0
dedent: 1.3.0
@@ -19952,16 +20934,16 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@29.7.0(@types/node@20.12.7):
+ jest-cli@29.7.0(@types/node@20.14.9):
dependencies:
'@jest/core': 29.7.0
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
chalk: 4.1.2
- create-jest: 29.7.0(@types/node@20.12.7)
+ create-jest: 29.7.0(@types/node@20.14.9)
exit: 0.1.2
import-local: 3.1.0
- jest-config: 29.7.0(@types/node@20.12.7)
+ jest-config: 29.7.0(@types/node@20.14.9)
jest-util: 29.7.0
jest-validate: 29.7.0
yargs: 17.7.2
@@ -19971,7 +20953,7 @@ snapshots:
- supports-color
- ts-node
- jest-config@29.7.0(@types/node@20.12.7):
+ jest-config@29.7.0(@types/node@20.14.9):
dependencies:
'@babel/core': 7.23.5
'@jest/test-sequencer': 29.7.0
@@ -19990,13 +20972,13 @@ snapshots:
jest-runner: 29.7.0
jest-util: 29.7.0
jest-validate: 29.7.0
- micromatch: 4.0.5
+ micromatch: 4.0.7
parse-json: 5.2.0
pretty-format: 29.7.0
slash: 3.0.0
strip-json-comments: 3.1.1
optionalDependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
@@ -20025,7 +21007,7 @@ snapshots:
'@jest/environment': 29.7.0
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -20042,14 +21024,14 @@ snapshots:
dependencies:
'@jest/types': 29.6.3
'@types/graceful-fs': 4.1.6
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
jest-regex-util: 29.6.3
jest-util: 29.7.0
jest-worker: 29.7.0
- micromatch: 4.0.5
+ micromatch: 4.0.7
walker: 1.0.8
optionalDependencies:
fsevents: 2.3.3
@@ -20073,7 +21055,7 @@ snapshots:
'@types/stack-utils': 2.0.1
chalk: 4.1.2
graceful-fs: 4.2.11
- micromatch: 4.0.5
+ micromatch: 4.0.7
pretty-format: 29.7.0
slash: 3.0.0
stack-utils: 2.0.6
@@ -20081,7 +21063,7 @@ snapshots:
jest-mock@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
jest-util: 29.7.0
jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
@@ -20116,7 +21098,7 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
chalk: 4.1.2
emittery: 0.13.1
graceful-fs: 4.2.11
@@ -20144,7 +21126,7 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
chalk: 4.1.2
cjs-module-lexer: 1.2.2
collect-v8-coverage: 1.0.1
@@ -20190,7 +21172,7 @@ snapshots:
jest-util@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
chalk: 4.1.2
ci-info: 3.7.1
graceful-fs: 4.2.11
@@ -20209,7 +21191,7 @@ snapshots:
dependencies:
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
@@ -20223,17 +21205,17 @@ snapshots:
jest-worker@29.7.0:
dependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@29.7.0(@types/node@20.12.7):
+ jest@29.7.0(@types/node@20.14.9):
dependencies:
'@jest/core': 29.7.0
'@jest/types': 29.6.3
import-local: 3.1.0
- jest-cli: 29.7.0(@types/node@20.12.7)
+ jest-cli: 29.7.0(@types/node@20.14.9)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -20263,6 +21245,8 @@ snapshots:
js-tokens@4.0.0: {}
+ js-tokens@9.0.0: {}
+
js-yaml@3.14.1:
dependencies:
argparse: 1.0.10
@@ -20278,55 +21262,55 @@ snapshots:
jschardet@3.0.0: {}
- jscodeshift@0.15.1(@babel/preset-env@7.23.5(@babel/core@7.24.0)):
+ jscodeshift@0.15.1(@babel/preset-env@7.24.7(@babel/core@7.24.7)):
dependencies:
- '@babel/core': 7.24.0
- '@babel/parser': 7.24.0
- '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0)
- '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0)
- '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.24.0)
- '@babel/preset-flow': 7.23.3(@babel/core@7.24.0)
- '@babel/preset-typescript': 7.23.3(@babel/core@7.24.0)
- '@babel/register': 7.22.15(@babel/core@7.24.0)
- babel-core: 7.0.0-bridge.0(@babel/core@7.24.0)
+ '@babel/core': 7.24.7
+ '@babel/parser': 7.24.7
+ '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7)
+ '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.7)
+ '@babel/preset-flow': 7.23.3(@babel/core@7.24.7)
+ '@babel/preset-typescript': 7.23.3(@babel/core@7.24.7)
+ '@babel/register': 7.22.15(@babel/core@7.24.7)
+ babel-core: 7.0.0-bridge.0(@babel/core@7.24.7)
chalk: 4.1.2
flow-parser: 0.202.0
graceful-fs: 4.2.11
- micromatch: 4.0.5
+ micromatch: 4.0.7
neo-async: 2.6.2
node-dir: 0.1.17
- recast: 0.23.4
+ recast: 0.23.6
temp: 0.8.4
write-file-atomic: 2.4.3
optionalDependencies:
- '@babel/preset-env': 7.23.5(@babel/core@7.24.0)
+ '@babel/preset-env': 7.24.7(@babel/core@7.24.7)
transitivePeerDependencies:
- supports-color
- jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3):
+ jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3):
dependencies:
cssstyle: 4.0.1
data-urls: 5.0.0
decimal.js: 10.4.3
form-data: 4.0.0
html-encoding-sniffer: 4.0.0
- http-proxy-agent: 7.0.0
- https-proxy-agent: 7.0.2
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.4
is-potential-custom-element-name: 1.0.1
- nwsapi: 2.2.9
+ nwsapi: 2.2.10
parse5: 7.1.2
- rrweb-cssom: 0.6.0
+ rrweb-cssom: 0.7.1
saxes: 6.0.0
symbol-tree: 3.2.4
- tough-cookie: 4.1.3
+ tough-cookie: 4.1.4
w3c-xmlserializer: 5.0.0
webidl-conversions: 7.0.0
whatwg-encoding: 3.1.1
whatwg-mimetype: 4.0.0
whatwg-url: 14.0.0
- ws: 8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
+ ws: 8.17.1(bufferutil@4.0.7)(utf-8-validate@6.0.3)
xml-name-validator: 5.0.0
transitivePeerDependencies:
- bufferutil
@@ -20407,8 +21391,6 @@ snapshots:
jsrsasign@11.1.0: {}
- jssha@3.3.1: {}
-
jstransformer@1.0.0:
dependencies:
is-promise: 2.2.2
@@ -20487,7 +21469,10 @@ snapshots:
optionalDependencies:
enquirer: 2.3.6
- local-pkg@0.4.3: {}
+ local-pkg@0.5.0:
+ dependencies:
+ mlly: 1.5.0
+ pkg-types: 1.0.3
locate-path@3.0.0:
dependencies:
@@ -20510,8 +21495,6 @@ snapshots:
lodash.isarguments@3.1.0: {}
- lodash.isequal@4.5.0: {}
-
lodash.memoize@4.1.2: {}
lodash.merge@4.6.2: {}
@@ -20583,9 +21566,11 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
- magic-string@0.30.7:
+ magicast@0.3.4:
dependencies:
- '@jridgewell/sourcemap-codec': 1.4.15
+ '@babel/parser': 7.24.5
+ '@babel/types': 7.24.0
+ source-map-js: 1.2.0
mailcheck@1.1.1: {}
@@ -20745,7 +21730,7 @@ snapshots:
media-typer@0.3.0: {}
- meilisearch@0.38.0(encoding@0.1.13):
+ meilisearch@0.41.0(encoding@0.1.13):
dependencies:
cross-fetch: 3.1.6(encoding@0.1.13)
transitivePeerDependencies:
@@ -20958,7 +21943,7 @@ snapshots:
micromark@4.0.0:
dependencies:
'@types/debug': 4.1.12
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
decode-named-character-reference: 1.0.2
devlop: 1.1.0
micromark-core-commonmark: 2.0.0
@@ -20977,9 +21962,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- micromatch@4.0.5:
+ micromatch@4.0.7:
dependencies:
- braces: 3.0.2
+ braces: 3.0.3
picomatch: 2.3.1
mime-db@1.52.0: {}
@@ -21076,6 +22061,8 @@ snapshots:
minipass@7.0.4: {}
+ minipass@7.1.2: {}
+
minizlib@1.3.3:
dependencies:
minipass: 2.9.0
@@ -21098,7 +22085,7 @@ snapshots:
mlly@1.5.0:
dependencies:
- acorn: 8.11.3
+ acorn: 8.12.0
pathe: 1.1.2
pkg-types: 1.0.3
ufo: 1.3.2
@@ -21137,18 +22124,18 @@ snapshots:
optionalDependencies:
msgpackr-extract: 3.0.2
- msw-storybook-addon@2.0.1(msw@2.2.14(typescript@5.5.2)):
+ msw-storybook-addon@2.0.2(msw@2.3.1(typescript@5.5.3)):
dependencies:
is-node-process: 1.2.0
- msw: 2.2.14(typescript@5.5.2)
+ msw: 2.3.1(typescript@5.5.3)
- msw@2.2.14(typescript@5.5.2):
+ msw@2.3.1(typescript@5.5.3):
dependencies:
'@bundled-es-modules/cookie': 2.0.0
'@bundled-es-modules/statuses': 1.0.1
'@inquirer/confirm': 3.1.6
'@mswjs/cookies': 1.1.0
- '@mswjs/interceptors': 0.26.15
+ '@mswjs/interceptors': 0.29.1
'@open-draft/until': 2.1.0
'@types/cookie': 0.6.0
'@types/statuses': 2.0.4
@@ -21162,7 +22149,7 @@ snapshots:
type-fest: 4.9.0
yargs: 17.7.2
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.5.3
muggle-string@0.4.1: {}
@@ -21294,7 +22281,7 @@ snapshots:
dependencies:
env-paths: 2.2.1
exponential-backoff: 3.1.1
- glob: 10.3.12
+ glob: 10.4.2
graceful-fs: 4.2.11
make-fetch-happen: 13.0.0
nopt: 7.2.0
@@ -21309,7 +22296,7 @@ snapshots:
node-releases@2.0.14: {}
- nodemailer@6.9.13: {}
+ nodemailer@6.9.14: {}
nodemon@3.0.2:
dependencies:
@@ -21324,14 +22311,14 @@ snapshots:
touch: 3.1.0
undefsafe: 2.0.5
- nodemon@3.1.0:
+ nodemon@3.1.4:
dependencies:
chokidar: 3.5.3
debug: 4.3.4(supports-color@5.5.0)
ignore-by-default: 1.0.1
minimatch: 3.1.2
pstree.remy: 1.1.8
- semver: 7.5.4
+ semver: 7.6.0
simple-update-notifier: 2.0.0
supports-color: 5.5.0
touch: 3.1.0
@@ -21376,6 +22363,8 @@ snapshots:
normalize-url@8.0.0: {}
+ normalize-url@8.0.1: {}
+
npm-run-path@2.0.2:
dependencies:
path-key: 2.0.1
@@ -21388,6 +22377,10 @@ snapshots:
dependencies:
path-key: 4.0.0
+ npm-run-path@5.3.0:
+ dependencies:
+ path-key: 4.0.0
+
npmlog@5.0.1:
dependencies:
are-we-there-yet: 2.0.0
@@ -21405,7 +22398,7 @@ snapshots:
dependencies:
boolbase: 1.0.0
- nwsapi@2.2.9: {}
+ nwsapi@2.2.10: {}
oauth-sign@0.9.0: {}
@@ -21505,9 +22498,9 @@ snapshots:
opentelemetry-instrumentation-fetch-node@1.2.0:
dependencies:
- '@opentelemetry/api': 1.8.0
- '@opentelemetry/instrumentation': 0.43.0(@opentelemetry/api@1.8.0)
- '@opentelemetry/semantic-conventions': 1.24.1
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.43.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.25.1
transitivePeerDependencies:
- supports-color
optional: true
@@ -21526,7 +22519,7 @@ snapshots:
bl: 4.1.0
chalk: 4.1.2
cli-cursor: 3.1.0
- cli-spinners: 2.7.0
+ cli-spinners: 2.9.2
is-interactive: 1.0.0
is-unicode-supported: 0.1.0
log-symbols: 4.1.0
@@ -21541,9 +22534,9 @@ snapshots:
ospath@1.2.2: {}
- otpauth@9.2.3:
+ otpauth@9.3.1:
dependencies:
- jssha: 3.3.1
+ '@noble/hashes': 1.4.0
outvariant@1.4.2: {}
@@ -21563,7 +22556,7 @@ snapshots:
dependencies:
yocto-queue: 0.1.0
- p-limit@4.0.0:
+ p-limit@5.0.0:
dependencies:
yocto-queue: 1.0.0
@@ -21594,6 +22587,8 @@ snapshots:
p-try@2.2.0: {}
+ package-json-from-dist@1.0.0: {}
+
pako@0.2.9: {}
parent-module@1.0.1:
@@ -21611,6 +22606,8 @@ snapshots:
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
+ parse-ms@4.0.0: {}
+
parse-srcset@1.0.2: {}
parse5-htmlparser2-tree-adapter@6.0.1:
@@ -21658,6 +22655,11 @@ snapshots:
lru-cache: 10.2.2
minipass: 7.0.4
+ path-scurry@1.11.1:
+ dependencies:
+ lru-cache: 10.2.2
+ minipass: 7.1.2
+
path-to-regexp@0.1.7: {}
path-to-regexp@1.8.0:
@@ -21670,6 +22672,8 @@ snapshots:
path-type@4.0.0: {}
+ path-type@5.0.0: {}
+
pathe@1.1.2: {}
pathval@1.1.1: {}
@@ -21699,11 +22703,9 @@ snapshots:
pg-numeric@1.0.2: {}
- pg-pool@3.6.2(pg@8.11.5):
+ pg-pool@3.6.2(pg@8.12.0):
dependencies:
- pg: 8.11.5
-
- pg-protocol@1.6.0: {}
+ pg: 8.12.0
pg-protocol@1.6.1: {}
@@ -21725,10 +22727,10 @@ snapshots:
postgres-interval: 3.0.0
postgres-range: 1.1.3
- pg@8.11.5:
+ pg@8.12.0:
dependencies:
pg-connection-string: 2.6.4
- pg-pool: 3.6.2(pg@8.11.5)
+ pg-pool: 3.6.2(pg@8.12.0)
pg-protocol: 1.6.1
pg-types: 2.2.0
pgpass: 1.0.5
@@ -21739,7 +22741,7 @@ snapshots:
dependencies:
split2: 4.1.0
- photoswipe@5.4.3: {}
+ photoswipe@5.4.4: {}
picocolors@1.0.0: {}
@@ -21753,26 +22755,26 @@ snapshots:
pify@4.0.1: {}
- pino-abstract-transport@1.1.0:
+ pino-abstract-transport@1.2.0:
dependencies:
readable-stream: 4.3.0
split2: 4.1.0
- pino-std-serializers@6.1.0: {}
+ pino-std-serializers@7.0.0: {}
- pino@8.17.0:
+ pino@9.2.0:
dependencies:
atomic-sleep: 1.0.0
fast-redact: 3.1.2
on-exit-leak-free: 2.1.0
- pino-abstract-transport: 1.1.0
- pino-std-serializers: 6.1.0
- process-warning: 2.2.0
+ pino-abstract-transport: 1.2.0
+ pino-std-serializers: 7.0.0
+ process-warning: 3.0.0
quick-format-unescaped: 4.0.4
real-require: 0.2.0
safe-stable-stringify: 2.4.2
- sonic-boom: 3.7.0
- thread-stream: 2.3.0
+ sonic-boom: 4.0.1
+ thread-stream: 3.1.0
pirates@4.0.5: {}
@@ -22007,7 +23009,7 @@ snapshots:
prelude-ls@1.2.1: {}
- prettier@3.2.5: {}
+ prettier@3.3.2: {}
pretty-bytes@5.6.0: {}
@@ -22025,6 +23027,10 @@ snapshots:
pretty-hrtime@1.0.3: {}
+ pretty-ms@9.0.0:
+ dependencies:
+ parse-ms: 4.0.0
+
private-ip@2.3.3:
dependencies:
ip-regex: 4.3.0
@@ -22110,19 +23116,21 @@ snapshots:
js-stringify: 1.0.2
pug-runtime: 3.0.1
- pug-code-gen@3.0.2:
+ pug-code-gen@3.0.3:
dependencies:
constantinople: 4.0.1
doctypes: 1.1.0
js-stringify: 1.0.2
pug-attrs: 3.0.0
- pug-error: 2.0.0
+ pug-error: 2.1.0
pug-runtime: 3.0.1
void-elements: 3.1.0
with: 7.0.2
pug-error@2.0.0: {}
+ pug-error@2.1.0: {}
+
pug-filters@4.0.0:
dependencies:
constantinople: 4.0.1
@@ -22160,9 +23168,9 @@ snapshots:
pug-walk@2.0.0: {}
- pug@3.0.2:
+ pug@3.0.3:
dependencies:
- pug-code-gen: 3.0.2
+ pug-code-gen: 3.0.3
pug-filters: 4.0.0
pug-lexer: 5.0.1
pug-linker: 4.0.0
@@ -22242,13 +23250,6 @@ snapshots:
ratelimiter@3.4.1: {}
- raw-body@2.5.1:
- dependencies:
- bytes: 3.1.2
- http-errors: 2.0.0
- iconv-lite: 0.4.24
- unpipe: 1.0.0
-
raw-body@2.5.2:
dependencies:
bytes: 3.1.2
@@ -22260,7 +23261,7 @@ snapshots:
dependencies:
setimmediate: 1.0.5
- re2@1.21.2:
+ re2@1.21.3:
dependencies:
install-artifact-from-github: 1.3.5
nan: 2.20.0
@@ -22273,15 +23274,15 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- react-docgen-typescript@2.2.2(typescript@5.5.2):
+ react-docgen-typescript@2.2.2(typescript@5.5.3):
dependencies:
- typescript: 5.5.2
+ typescript: 5.5.3
react-docgen@7.0.1:
dependencies:
- '@babel/core': 7.24.0
- '@babel/traverse': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/core': 7.24.7
+ '@babel/traverse': 7.24.7
+ '@babel/types': 7.24.7
'@types/babel__core': 7.20.0
'@types/babel__traverse': 7.20.0
'@types/doctrine': 0.0.9
@@ -22314,6 +23315,34 @@ snapshots:
react-is@18.2.0: {}
+ react-remove-scroll-bar@2.3.6(@types/react@18.0.28)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-style-singleton: 2.2.1(@types/react@18.0.28)(react@18.3.1)
+ tslib: 2.6.2
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ react-remove-scroll@2.5.7(@types/react@18.0.28)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-remove-scroll-bar: 2.3.6(@types/react@18.0.28)(react@18.3.1)
+ react-style-singleton: 2.2.1(@types/react@18.0.28)(react@18.3.1)
+ tslib: 2.6.2
+ use-callback-ref: 1.3.2(@types/react@18.0.28)(react@18.3.1)
+ use-sidecar: 1.1.2(@types/react@18.0.28)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ react-style-singleton@2.2.1(@types/react@18.0.28)(react@18.3.1):
+ dependencies:
+ get-nonce: 1.0.1
+ invariant: 2.2.4
+ react: 18.3.1
+ tslib: 2.6.2
+ optionalDependencies:
+ '@types/react': 18.0.28
+
react@18.3.1:
dependencies:
loose-envify: 1.4.0
@@ -22375,14 +23404,6 @@ snapshots:
real-require@0.2.0: {}
- recast@0.23.4:
- dependencies:
- assert: 2.1.0
- ast-types: 0.16.1
- esprima: 4.0.1
- source-map: 0.6.1
- tslib: 2.6.2
-
recast@0.23.6:
dependencies:
ast-types: 0.16.1
@@ -22527,7 +23548,7 @@ snapshots:
require-in-the-middle@7.3.0:
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
module-details-from-path: 1.0.3
resolve: 1.22.8
transitivePeerDependencies:
@@ -22551,11 +23572,6 @@ snapshots:
resolve.exports@2.0.0: {}
- resolve@1.19.0:
- dependencies:
- is-core-module: 2.13.1
- path-parse: 1.0.7
-
resolve@1.22.8:
dependencies:
is-core-module: 2.13.1
@@ -22595,31 +23611,34 @@ snapshots:
rimraf@3.0.2:
dependencies:
glob: 7.2.3
+ optional: true
- rollup@4.17.2:
+ rollup@4.18.0:
dependencies:
'@types/estree': 1.0.5
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.17.2
- '@rollup/rollup-android-arm64': 4.17.2
- '@rollup/rollup-darwin-arm64': 4.17.2
- '@rollup/rollup-darwin-x64': 4.17.2
- '@rollup/rollup-linux-arm-gnueabihf': 4.17.2
- '@rollup/rollup-linux-arm-musleabihf': 4.17.2
- '@rollup/rollup-linux-arm64-gnu': 4.17.2
- '@rollup/rollup-linux-arm64-musl': 4.17.2
- '@rollup/rollup-linux-powerpc64le-gnu': 4.17.2
- '@rollup/rollup-linux-riscv64-gnu': 4.17.2
- '@rollup/rollup-linux-s390x-gnu': 4.17.2
- '@rollup/rollup-linux-x64-gnu': 4.17.2
- '@rollup/rollup-linux-x64-musl': 4.17.2
- '@rollup/rollup-win32-arm64-msvc': 4.17.2
- '@rollup/rollup-win32-ia32-msvc': 4.17.2
- '@rollup/rollup-win32-x64-msvc': 4.17.2
+ '@rollup/rollup-android-arm-eabi': 4.18.0
+ '@rollup/rollup-android-arm64': 4.18.0
+ '@rollup/rollup-darwin-arm64': 4.18.0
+ '@rollup/rollup-darwin-x64': 4.18.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.18.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.18.0
+ '@rollup/rollup-linux-arm64-gnu': 4.18.0
+ '@rollup/rollup-linux-arm64-musl': 4.18.0
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.18.0
+ '@rollup/rollup-linux-s390x-gnu': 4.18.0
+ '@rollup/rollup-linux-x64-gnu': 4.18.0
+ '@rollup/rollup-linux-x64-musl': 4.18.0
+ '@rollup/rollup-win32-arm64-msvc': 4.18.0
+ '@rollup/rollup-win32-ia32-msvc': 4.18.0
+ '@rollup/rollup-win32-x64-msvc': 4.18.0
fsevents: 2.3.3
rrweb-cssom@0.6.0: {}
+ rrweb-cssom@0.7.1: {}
+
rss-parser@3.13.0:
dependencies:
entities: 2.2.0
@@ -22667,7 +23686,7 @@ snapshots:
parse-srcset: 1.0.2
postcss: 8.4.38
- sass@1.76.0:
+ sass@1.77.6:
dependencies:
chokidar: 3.5.3
immutable: 4.2.2
@@ -22749,14 +23768,14 @@ snapshots:
dependencies:
kind-of: 6.0.3
- sharp@0.33.3:
+ sharp@0.33.4:
dependencies:
color: 4.2.3
detect-libc: 2.0.3
semver: 7.6.0
optionalDependencies:
- '@img/sharp-darwin-arm64': 0.33.3
- '@img/sharp-darwin-x64': 0.33.3
+ '@img/sharp-darwin-arm64': 0.33.4
+ '@img/sharp-darwin-x64': 0.33.4
'@img/sharp-libvips-darwin-arm64': 1.0.2
'@img/sharp-libvips-darwin-x64': 1.0.2
'@img/sharp-libvips-linux-arm': 1.0.2
@@ -22765,15 +23784,15 @@ snapshots:
'@img/sharp-libvips-linux-x64': 1.0.2
'@img/sharp-libvips-linuxmusl-arm64': 1.0.2
'@img/sharp-libvips-linuxmusl-x64': 1.0.2
- '@img/sharp-linux-arm': 0.33.3
- '@img/sharp-linux-arm64': 0.33.3
- '@img/sharp-linux-s390x': 0.33.3
- '@img/sharp-linux-x64': 0.33.3
- '@img/sharp-linuxmusl-arm64': 0.33.3
- '@img/sharp-linuxmusl-x64': 0.33.3
- '@img/sharp-wasm32': 0.33.3
- '@img/sharp-win32-ia32': 0.33.3
- '@img/sharp-win32-x64': 0.33.3
+ '@img/sharp-linux-arm': 0.33.4
+ '@img/sharp-linux-arm64': 0.33.4
+ '@img/sharp-linux-s390x': 0.33.4
+ '@img/sharp-linux-x64': 0.33.4
+ '@img/sharp-linuxmusl-arm64': 0.33.4
+ '@img/sharp-linuxmusl-x64': 0.33.4
+ '@img/sharp-wasm32': 0.33.4
+ '@img/sharp-win32-ia32': 0.33.4
+ '@img/sharp-win32-x64': 0.33.4
shebang-command@1.2.0:
dependencies:
@@ -22787,9 +23806,9 @@ snapshots:
shebang-regex@3.0.0: {}
- shiki@1.4.0:
+ shiki@1.10.0:
dependencies:
- '@shikijs/core': 1.4.0
+ '@shikijs/core': 1.10.0
shimmer@1.2.1: {}
@@ -22805,11 +23824,11 @@ snapshots:
signal-exit@4.1.0: {}
- simple-oauth2@5.0.0:
+ simple-oauth2@5.0.1:
dependencies:
- '@hapi/hoek': 10.0.1
+ '@hapi/hoek': 11.0.4
'@hapi/wreck': 18.0.1
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
joi: 17.11.0
transitivePeerDependencies:
- supports-color
@@ -22890,6 +23909,8 @@ snapshots:
slash@3.0.0: {}
+ slash@5.1.0: {}
+
slice-ansi@3.0.0:
dependencies:
ansi-styles: 4.3.0
@@ -22907,7 +23928,7 @@ snapshots:
socks-proxy-agent@8.0.2:
dependencies:
agent-base: 7.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
socks: 2.7.1
transitivePeerDependencies:
- supports-color
@@ -22917,7 +23938,7 @@ snapshots:
ip: 2.0.1
smart-buffer: 4.2.0
- sonic-boom@3.7.0:
+ sonic-boom@4.0.1:
dependencies:
atomic-sleep: 1.0.0
@@ -22973,7 +23994,7 @@ snapshots:
sprintf-js@1.0.3: {}
- sprintf-js@1.1.2: {}
+ sprintf-js@1.1.3: {}
sshpk@1.17.0:
dependencies:
@@ -22999,16 +24020,16 @@ snapshots:
standard-as-callback@2.1.0: {}
- start-server-and-test@2.0.3:
+ start-server-and-test@2.0.4:
dependencies:
arg: 5.0.2
bluebird: 3.7.2
check-more-types: 2.24.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.5(supports-color@8.1.1)
execa: 5.1.1
lazy-ass: 1.6.0
ps-tree: 1.2.0
- wait-on: 7.2.0(debug@4.3.4)
+ wait-on: 7.2.0(debug@4.3.5)
transitivePeerDependencies:
- supports-color
@@ -23022,22 +24043,22 @@ snapshots:
store2@2.14.2: {}
- storybook-addon-misskey-theme@https://codeload.github.com/misskey-dev/storybook-addon-misskey-theme/tar.gz/cf583db098365b2ccc81a82f63ca9c93bc32b640(@storybook/blocks@8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/components@8.0.9(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/core-events@8.0.9)(@storybook/manager-api@8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/preview-api@8.0.9)(@storybook/theming@8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/types@8.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ storybook-addon-misskey-theme@https://codeload.github.com/misskey-dev/storybook-addon-misskey-theme/tar.gz/cf583db098365b2ccc81a82f63ca9c93bc32b640(@storybook/blocks@8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/components@8.1.11(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/core-events@8.1.11)(@storybook/manager-api@8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/preview-api@8.1.11)(@storybook/theming@8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@storybook/types@8.1.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
- '@storybook/blocks': 8.0.9(@types/react@18.0.28)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/components': 8.0.9(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/core-events': 8.0.9
- '@storybook/manager-api': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/preview-api': 8.0.9
- '@storybook/theming': 8.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@storybook/types': 8.0.9
+ '@storybook/blocks': 8.1.11(@types/react@18.0.28)(encoding@0.1.13)(prettier@3.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/components': 8.1.11(@types/react@18.0.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/core-events': 8.1.11
+ '@storybook/manager-api': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/preview-api': 8.1.11
+ '@storybook/theming': 8.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@storybook/types': 8.1.11
optionalDependencies:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- storybook@8.0.9(@babel/preset-env@7.23.5(@babel/core@7.24.0))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3):
+ storybook@8.1.11(@babel/preset-env@7.24.7(@babel/core@7.24.7))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3):
dependencies:
- '@storybook/cli': 8.0.9(@babel/preset-env@7.23.5(@babel/core@7.24.0))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)
+ '@storybook/cli': 8.1.11(@babel/preset-env@7.24.7(@babel/core@7.24.7))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@6.0.3)
transitivePeerDependencies:
- '@babel/preset-env'
- bufferutil
@@ -23146,6 +24167,8 @@ snapshots:
strip-final-newline@3.0.0: {}
+ strip-final-newline@4.0.0: {}
+
strip-indent@3.0.0:
dependencies:
min-indent: 1.0.1
@@ -23156,9 +24179,9 @@ snapshots:
strip-json-comments@3.1.1: {}
- strip-literal@1.3.0:
+ strip-literal@2.1.0:
dependencies:
- acorn: 8.11.3
+ js-tokens: 9.0.0
strip-outer@2.0.0: {}
@@ -23208,7 +24231,7 @@ snapshots:
symbol-tree@3.2.4: {}
- systeminformation@5.22.7: {}
+ systeminformation@5.22.11: {}
tar-fs@2.1.1:
dependencies:
@@ -23259,24 +24282,23 @@ snapshots:
dependencies:
memoizerific: 1.11.3
- temp-dir@2.0.0: {}
+ temp-dir@3.0.0: {}
temp@0.8.4:
dependencies:
rimraf: 2.6.3
- tempy@1.0.1:
+ tempy@3.1.0:
dependencies:
- del: 6.1.1
- is-stream: 2.0.1
- temp-dir: 2.0.0
- type-fest: 0.16.0
- unique-string: 2.0.0
+ is-stream: 3.0.0
+ temp-dir: 3.0.0
+ type-fest: 2.19.0
+ unique-string: 3.0.0
- terser@5.30.3:
+ terser@5.31.1:
dependencies:
'@jridgewell/source-map': 0.3.5
- acorn: 8.11.3
+ acorn: 8.12.0
commander: 2.20.3
source-map-support: 0.5.21
@@ -23298,13 +24320,13 @@ snapshots:
dependencies:
any-promise: 1.3.0
- thread-stream@2.3.0:
+ thread-stream@3.1.0:
dependencies:
real-require: 0.2.0
- three@0.164.1: {}
+ three@0.165.0: {}
- throttle-debounce@5.0.0: {}
+ throttle-debounce@5.0.2: {}
throttleit@1.0.0: {}
@@ -23317,8 +24339,6 @@ snapshots:
through@2.3.8: {}
- tiny-invariant@1.3.1: {}
-
tiny-invariant@1.3.3: {}
tiny-lru@10.0.1: {}
@@ -23327,7 +24347,7 @@ snapshots:
tinycolor2@1.6.0: {}
- tinypool@0.7.0: {}
+ tinypool@0.8.4: {}
tinyspy@2.2.0: {}
@@ -23343,8 +24363,6 @@ snapshots:
dependencies:
is-number: 7.0.0
- toad-cache@3.3.0: {}
-
toad-cache@3.7.0: {}
tocbot@4.21.1: {}
@@ -23367,7 +24385,7 @@ snapshots:
psl: 1.9.0
punycode: 2.3.1
- tough-cookie@4.1.3:
+ tough-cookie@4.1.4:
dependencies:
psl: 1.9.0
punycode: 2.3.1
@@ -23394,9 +24412,9 @@ snapshots:
dependencies:
typescript: 5.3.3
- ts-api-utils@1.3.0(typescript@5.5.2):
+ ts-api-utils@1.3.0(typescript@5.5.3):
dependencies:
- typescript: 5.5.2
+ typescript: 5.5.3
ts-case-convert@2.0.2: {}
@@ -23404,7 +24422,7 @@ snapshots:
ts-map@1.0.3: {}
- tsc-alias@1.8.8:
+ tsc-alias@1.8.10:
dependencies:
chokidar: 3.5.3
commander: 9.5.0
@@ -23426,9 +24444,9 @@ snapshots:
minimist: 1.2.8
strip-bom: 3.0.0
- tsd@0.30.7:
+ tsd@0.31.1:
dependencies:
- '@tsd/typescript': 5.3.3
+ '@tsd/typescript': 5.4.5
eslint-formatter-pretty: 4.1.0
globby: 11.1.0
jest-diff: 29.7.0
@@ -23440,6 +24458,8 @@ snapshots:
tslib@2.6.2: {}
+ tslib@2.6.3: {}
+
tsx@4.4.0:
dependencies:
esbuild: 0.18.20
@@ -23459,8 +24479,6 @@ snapshots:
type-detect@4.0.8: {}
- type-fest@0.16.0: {}
-
type-fest@0.18.1: {}
type-fest@0.20.2: {}
@@ -23471,8 +24489,12 @@ snapshots:
type-fest@0.8.1: {}
+ type-fest@1.4.0: {}
+
type-fest@2.19.0: {}
+ type-fest@4.20.1: {}
+
type-fest@4.9.0: {}
type-is@1.6.18:
@@ -23509,7 +24531,7 @@ snapshots:
typedarray@0.0.6: {}
- typeorm@0.3.20(ioredis@5.4.1)(pg@8.11.5):
+ typeorm@0.3.20(ioredis@5.4.1)(pg@8.12.0):
dependencies:
'@sqltools/formatter': 1.2.5
app-root-path: 3.1.0
@@ -23517,7 +24539,7 @@ snapshots:
chalk: 4.1.2
cli-highlight: 2.1.11
dayjs: 1.11.10
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
dotenv: 16.0.3
glob: 10.3.10
mkdirp: 2.1.6
@@ -23528,7 +24550,7 @@ snapshots:
yargs: 17.7.2
optionalDependencies:
ioredis: 5.4.1
- pg: 8.11.5
+ pg: 8.12.0
transitivePeerDependencies:
- supports-color
@@ -23536,7 +24558,7 @@ snapshots:
typescript@5.4.2: {}
- typescript@5.5.2: {}
+ typescript@5.5.3: {}
ufo@1.3.2: {}
@@ -23577,6 +24599,8 @@ snapshots:
unicode-property-aliases-ecmascript@2.1.0: {}
+ unicorn-magic@0.1.0: {}
+
unified@11.0.4:
dependencies:
'@types/unist': 3.0.2
@@ -23597,9 +24621,9 @@ snapshots:
dependencies:
imurmurhash: 0.1.4
- unique-string@2.0.0:
+ unique-string@3.0.0:
dependencies:
- crypto-random-string: 2.0.0
+ crypto-random-string: 4.0.0
unist-util-is@6.0.0:
dependencies:
@@ -23632,7 +24656,7 @@ snapshots:
unplugin@1.4.0:
dependencies:
- acorn: 8.11.3
+ acorn: 8.12.0
chokidar: 3.5.3
webpack-sources: 3.2.3
webpack-virtual-modules: 0.5.0
@@ -23660,6 +24684,21 @@ snapshots:
querystringify: 2.2.0
requires-port: 1.0.0
+ use-callback-ref@1.3.2(@types/react@18.0.28)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ tslib: 2.6.2
+ optionalDependencies:
+ '@types/react': 18.0.28
+
+ use-sidecar@1.1.2(@types/react@18.0.28)(react@18.3.1):
+ dependencies:
+ detect-node-es: 1.1.0
+ react: 18.3.1
+ tslib: 2.6.2
+ optionalDependencies:
+ '@types/react': 18.0.28
+
utf-8-validate@6.0.3:
dependencies:
node-gyp-build: 4.6.0
@@ -23677,20 +24716,22 @@ snapshots:
utils-merge@1.0.1: {}
+ uuid@10.0.0: {}
+
uuid@3.4.0: {}
uuid@8.3.2: {}
uuid@9.0.1: {}
- v-code-diff@1.11.0(vue@3.4.26(typescript@5.5.2)):
+ v-code-diff@1.12.0(vue@3.4.31(typescript@5.5.3)):
dependencies:
diff: 5.1.0
diff-match-patch: 1.0.5
highlight.js: 11.9.0
- vue: 3.4.26(typescript@5.5.2)
- vue-demi: 0.14.7(vue@3.4.26(typescript@5.5.2))
- vue-i18n: 9.13.1(vue@3.4.26(typescript@5.5.2))
+ vue: 3.4.31(typescript@5.5.3)
+ vue-demi: 0.14.7(vue@3.4.31(typescript@5.5.3))
+ vue-i18n: 9.13.1(vue@3.4.31(typescript@5.5.3))
v8-to-istanbul@9.2.0:
dependencies:
@@ -23703,8 +24744,6 @@ snapshots:
spdx-correct: 3.1.1
spdx-expression-parse: 3.0.1
- validator@13.9.0: {}
-
vary@1.1.2: {}
verror@1.10.0:
@@ -23724,14 +24763,13 @@ snapshots:
unist-util-stringify-position: 4.0.0
vfile-message: 4.0.2
- vite-node@0.34.6(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3):
+ vite-node@1.6.0(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1):
dependencies:
cac: 6.7.14
- debug: 4.3.4(supports-color@8.1.1)
- mlly: 1.5.0
+ debug: 4.3.5(supports-color@8.1.1)
pathe: 1.1.2
picocolors: 1.0.0
- vite: 5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
+ vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -23744,53 +24782,50 @@ snapshots:
vite-plugin-turbosnap@1.0.3: {}
- vite@5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3):
+ vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1):
dependencies:
- esbuild: 0.20.2
+ esbuild: 0.21.5
postcss: 8.4.38
- rollup: 4.17.2
+ rollup: 4.18.0
optionalDependencies:
- '@types/node': 20.12.7
+ '@types/node': 20.14.9
fsevents: 2.3.3
- sass: 1.76.0
- terser: 5.30.3
+ sass: 1.77.6
+ terser: 5.31.1
- vitest-fetch-mock@0.2.2(encoding@0.1.13)(vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3)):
+ vitest-fetch-mock@0.2.2(encoding@0.1.13)(vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1)):
dependencies:
cross-fetch: 3.1.6(encoding@0.1.13)
- vitest: 0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3)
+ vitest: 1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1)
transitivePeerDependencies:
- encoding
- vitest@0.34.6(happy-dom@10.0.3)(jsdom@24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.76.0)(terser@5.30.3):
+ vitest@1.6.0(@types/node@20.14.9)(happy-dom@10.0.3)(jsdom@24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(sass@1.77.6)(terser@5.31.1):
dependencies:
- '@types/chai': 4.3.11
- '@types/chai-subset': 1.3.5
- '@types/node': 20.12.7
- '@vitest/expect': 0.34.6
- '@vitest/runner': 0.34.6
- '@vitest/snapshot': 0.34.6
- '@vitest/spy': 0.34.6
- '@vitest/utils': 0.34.6
- acorn: 8.11.3
+ '@vitest/expect': 1.6.0
+ '@vitest/runner': 1.6.0
+ '@vitest/snapshot': 1.6.0
+ '@vitest/spy': 1.6.0
+ '@vitest/utils': 1.6.0
acorn-walk: 8.3.2
- cac: 6.7.14
chai: 4.3.10
- debug: 4.3.4(supports-color@8.1.1)
- local-pkg: 0.4.3
- magic-string: 0.30.7
+ debug: 4.3.4(supports-color@5.5.0)
+ execa: 8.0.1
+ local-pkg: 0.5.0
+ magic-string: 0.30.10
pathe: 1.1.2
picocolors: 1.0.0
std-env: 3.7.0
- strip-literal: 1.3.0
+ strip-literal: 2.1.0
tinybench: 2.6.0
- tinypool: 0.7.0
- vite: 5.2.11(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
- vite-node: 0.34.6(@types/node@20.12.7)(sass@1.76.0)(terser@5.30.3)
+ tinypool: 0.8.4
+ vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
+ vite-node: 1.6.0(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)
why-is-node-running: 2.2.2
optionalDependencies:
+ '@types/node': 20.14.9
happy-dom: 10.0.3
- jsdom: 24.0.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
+ jsdom: 24.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
transitivePeerDependencies:
- less
- lightningcss
@@ -23823,98 +24858,100 @@ snapshots:
dependencies:
vscode-languageserver-protocol: 3.17.5
- vue-component-meta@2.0.16(typescript@5.5.2):
+ vscode-uri@3.0.8: {}
+
+ vue-component-meta@2.0.16(typescript@5.5.3):
dependencies:
'@volar/typescript': 2.2.0
- '@vue/language-core': 2.0.16(typescript@5.5.2)
+ '@vue/language-core': 2.0.16(typescript@5.5.3)
path-browserify: 1.0.1
vue-component-type-helpers: 2.0.16
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.5.3
vue-component-type-helpers@1.8.4: {}
vue-component-type-helpers@2.0.16: {}
- vue-component-type-helpers@2.0.21: {}
+ vue-component-type-helpers@2.0.24: {}
- vue-demi@0.14.7(vue@3.4.26(typescript@5.5.2)):
+ vue-demi@0.14.7(vue@3.4.31(typescript@5.5.3)):
dependencies:
- vue: 3.4.26(typescript@5.5.2)
+ vue: 3.4.31(typescript@5.5.3)
- vue-docgen-api@4.75.1(vue@3.4.26(typescript@5.5.2)):
+ vue-docgen-api@4.75.1(vue@3.4.31(typescript@5.5.3)):
dependencies:
- '@babel/parser': 7.24.0
- '@babel/types': 7.24.0
- '@vue/compiler-dom': 3.4.21
- '@vue/compiler-sfc': 3.4.26
+ '@babel/parser': 7.24.7
+ '@babel/types': 7.24.7
+ '@vue/compiler-dom': 3.4.29
+ '@vue/compiler-sfc': 3.4.31
ast-types: 0.16.1
hash-sum: 2.0.0
lru-cache: 8.0.4
- pug: 3.0.2
- recast: 0.23.4
+ pug: 3.0.3
+ recast: 0.23.6
ts-map: 1.0.3
- vue: 3.4.26(typescript@5.5.2)
- vue-inbrowser-compiler-independent-utils: 4.71.1(vue@3.4.26(typescript@5.5.2))
+ vue: 3.4.31(typescript@5.5.3)
+ vue-inbrowser-compiler-independent-utils: 4.71.1(vue@3.4.31(typescript@5.5.3))
- vue-eslint-parser@9.4.2(eslint@8.57.0):
+ vue-eslint-parser@9.4.3(eslint@9.6.0):
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
- eslint: 8.57.0
+ debug: 4.3.4(supports-color@5.5.0)
+ eslint: 9.6.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
esquery: 1.4.2
lodash: 4.17.21
- semver: 7.5.4
+ semver: 7.6.0
transitivePeerDependencies:
- supports-color
- vue-i18n@9.13.1(vue@3.4.26(typescript@5.5.2)):
+ vue-i18n@9.13.1(vue@3.4.31(typescript@5.5.3)):
dependencies:
'@intlify/core-base': 9.13.1
'@intlify/shared': 9.13.1
'@vue/devtools-api': 6.6.1
- vue: 3.4.26(typescript@5.5.2)
+ vue: 3.4.31(typescript@5.5.3)
- vue-inbrowser-compiler-independent-utils@4.71.1(vue@3.4.26(typescript@5.5.2)):
+ vue-inbrowser-compiler-independent-utils@4.71.1(vue@3.4.31(typescript@5.5.3)):
dependencies:
- vue: 3.4.26(typescript@5.5.2)
+ vue: 3.4.31(typescript@5.5.3)
vue-template-compiler@2.7.14:
dependencies:
de-indent: 1.0.2
he: 1.2.0
- vue-tsc@2.0.16(typescript@5.5.2):
+ vue-tsc@2.0.24(typescript@5.5.3):
dependencies:
- '@volar/typescript': 2.2.0
- '@vue/language-core': 2.0.16(typescript@5.5.2)
+ '@volar/typescript': 2.4.0-alpha.11
+ '@vue/language-core': 2.0.24(typescript@5.5.3)
semver: 7.6.0
- typescript: 5.5.2
+ typescript: 5.5.3
- vue@3.4.26(typescript@5.5.2):
+ vue@3.4.31(typescript@5.5.3):
dependencies:
- '@vue/compiler-dom': 3.4.26
- '@vue/compiler-sfc': 3.4.26
- '@vue/runtime-dom': 3.4.26
- '@vue/server-renderer': 3.4.26(vue@3.4.26(typescript@5.5.2))
- '@vue/shared': 3.4.26
+ '@vue/compiler-dom': 3.4.31
+ '@vue/compiler-sfc': 3.4.31
+ '@vue/runtime-dom': 3.4.31
+ '@vue/server-renderer': 3.4.31(vue@3.4.31(typescript@5.5.3))
+ '@vue/shared': 3.4.31
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.5.3
- vuedraggable@4.1.0(vue@3.4.26(typescript@5.5.2)):
+ vuedraggable@4.1.0(vue@3.4.31(typescript@5.5.3)):
dependencies:
sortablejs: 1.14.0
- vue: 3.4.26(typescript@5.5.2)
+ vue: 3.4.31(typescript@5.5.3)
w3c-xmlserializer@5.0.0:
dependencies:
xml-name-validator: 5.0.0
- wait-on@7.2.0(debug@4.3.4):
+ wait-on@7.2.0(debug@4.3.5):
dependencies:
- axios: 1.6.2(debug@4.3.4)
+ axios: 1.6.2(debug@4.3.5)
joi: 17.11.0
lodash: 4.17.21
minimist: 1.2.8
@@ -24026,8 +25063,8 @@ snapshots:
with@7.0.2:
dependencies:
- '@babel/parser': 7.23.9
- '@babel/types': 7.23.5
+ '@babel/parser': 7.24.5
+ '@babel/types': 7.24.0
assert-never: 1.2.1
babel-walk: 3.0.0-canary-5
@@ -24064,7 +25101,7 @@ snapshots:
imurmurhash: 0.1.4
signal-exit: 3.0.7
- ws@8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3):
+ ws@8.17.1(bufferutil@4.0.7)(utf-8-validate@6.0.3):
optionalDependencies:
bufferutil: 4.0.7
utf-8-validate: 6.0.3
@@ -24152,13 +25189,7 @@ snapshots:
yocto-queue@1.0.0: {}
- z-schema@5.0.5:
- dependencies:
- lodash.get: 4.4.2
- lodash.isequal: 4.5.0
- validator: 13.9.0
- optionalDependencies:
- commander: 9.5.0
+ yoctocolors@2.0.2: {}
zip-stream@6.0.1:
dependencies:
diff --git a/scripts/changelog-checker/.eslintrc.cjs b/scripts/changelog-checker/.eslintrc.cjs
deleted file mode 100644
index 6acf8b3e6e..0000000000
--- a/scripts/changelog-checker/.eslintrc.cjs
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: [
- '../../packages/shared/.eslintrc.js',
- ],
-};
diff --git a/scripts/changelog-checker/eslint.config.js b/scripts/changelog-checker/eslint.config.js
new file mode 100644
index 0000000000..813e96981a
--- /dev/null
+++ b/scripts/changelog-checker/eslint.config.js
@@ -0,0 +1,17 @@
+import tsParser from '@typescript-eslint/parser';
+import sharedConfig from '../../packages/shared/eslint.config.js';
+
+export default [
+ ...sharedConfig,
+ {
+ files: ['src/**/*.ts', 'src/**/*.tsx'],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ project: ['./tsconfig.json'],
+ sourceType: 'module',
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ },
+];
From eafae79869204e6de4a3fd4835eda3eb23b53974 Mon Sep 17 00:00:00 2001
From: Kisaragi <48310258+KisaragiEffective@users.noreply.github.com>
Date: Tue, 2 Jul 2024 14:29:44 +0900
Subject: [PATCH 067/143] test(backend): goodbye, Lenna (#14111)
---
.../src/models/json-schema/drive-file.ts | 2 +-
.../api/endpoints/admin/drive/show-file.ts | 2 +-
packages/backend/test/e2e/drive.ts | 6 +++---
packages/backend/test/e2e/endpoints.ts | 2 +-
packages/backend/test/e2e/note.ts | 4 ++--
packages/backend/test/e2e/user-notes.ts | 4 ++--
packages/backend/test/resources/192.jpg | Bin 0 -> 5131 bytes
packages/backend/test/resources/192.png | Bin 0 -> 26568 bytes
packages/backend/test/resources/Lenna.jpg | Bin 25360 -> 0 bytes
packages/backend/test/resources/Lenna.png | Bin 473831 -> 0 bytes
packages/backend/test/unit/FileInfoService.ts | 10 +++++-----
packages/backend/test/utils.ts | 2 +-
packages/misskey-js/src/autogen/types.ts | 4 ++--
13 files changed, 18 insertions(+), 18 deletions(-)
create mode 100644 packages/backend/test/resources/192.jpg
create mode 100644 packages/backend/test/resources/192.png
delete mode 100644 packages/backend/test/resources/Lenna.jpg
delete mode 100644 packages/backend/test/resources/Lenna.png
diff --git a/packages/backend/src/models/json-schema/drive-file.ts b/packages/backend/src/models/json-schema/drive-file.ts
index ca88cc0e39..5ee1561c50 100644
--- a/packages/backend/src/models/json-schema/drive-file.ts
+++ b/packages/backend/src/models/json-schema/drive-file.ts
@@ -20,7 +20,7 @@ export const packedDriveFileSchema = {
name: {
type: 'string',
optional: false, nullable: false,
- example: 'lenna.jpg',
+ example: '192.jpg',
},
type: {
type: 'string',
diff --git a/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts b/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts
index 459d8880fa..a7136d8c8c 100644
--- a/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts
+++ b/packages/backend/src/server/api/endpoints/admin/drive/show-file.ts
@@ -61,7 +61,7 @@ export const meta = {
name: {
type: 'string',
optional: false, nullable: false,
- example: 'lenna.jpg',
+ example: '192.jpg',
},
type: {
type: 'string',
diff --git a/packages/backend/test/e2e/drive.ts b/packages/backend/test/e2e/drive.ts
index 828c5200ef..43a73163eb 100644
--- a/packages/backend/test/e2e/drive.ts
+++ b/packages/backend/test/e2e/drive.ts
@@ -23,7 +23,7 @@ describe('Drive', () => {
const marker = Math.random().toString();
- const url = 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/Lenna.jpg';
+ const url = 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/192.jpg';
const catcher = makeStreamCatcher(
alice,
@@ -41,14 +41,14 @@ describe('Drive', () => {
const file = await catcher;
assert.strictEqual(res.status, 204);
- assert.strictEqual(file.name, 'Lenna.jpg');
+ assert.strictEqual(file.name, '192.jpg');
assert.strictEqual(file.type, 'image/jpeg');
});
test('ローカルからアップロードできる', async () => {
// APIレスポンスを直接使用するので utils.js uploadFile が通過することで成功とする
- const res = await uploadFile(alice, { path: 'Lenna.jpg', name: 'テスト画像' });
+ const res = await uploadFile(alice, { path: '192.jpg', name: 'テスト画像' });
assert.strictEqual(res.body?.name, 'テスト画像.jpg');
assert.strictEqual(res.body.type, 'image/jpeg');
diff --git a/packages/backend/test/e2e/endpoints.ts b/packages/backend/test/e2e/endpoints.ts
index de5e8ba95e..d5583ea8bb 100644
--- a/packages/backend/test/e2e/endpoints.ts
+++ b/packages/backend/test/e2e/endpoints.ts
@@ -584,7 +584,7 @@ describe('Endpoints', () => {
assert.strictEqual(res.status, 200);
assert.strictEqual(typeof res.body === 'object' && !Array.isArray(res.body), true);
- assert.strictEqual(res.body!.name, 'Lenna.jpg');
+ assert.strictEqual(res.body!.name, '192.jpg');
});
test('ファイルに名前を付けられる', async () => {
diff --git a/packages/backend/test/e2e/note.ts b/packages/backend/test/e2e/note.ts
index bda31d9640..7ce9f47bc3 100644
--- a/packages/backend/test/e2e/note.ts
+++ b/packages/backend/test/e2e/note.ts
@@ -41,7 +41,7 @@ describe('Note', () => {
});
test('ファイルを添付できる', async () => {
- const file = await uploadUrl(alice, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/Lenna.jpg');
+ const file = await uploadUrl(alice, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/192.jpg');
const res = await api('notes/create', {
fileIds: [file.id],
@@ -53,7 +53,7 @@ describe('Note', () => {
}, 1000 * 10);
test('他人のファイルで怒られる', async () => {
- const file = await uploadUrl(bob, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/Lenna.jpg');
+ const file = await uploadUrl(bob, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/192.jpg');
const res = await api('notes/create', {
text: 'test',
diff --git a/packages/backend/test/e2e/user-notes.ts b/packages/backend/test/e2e/user-notes.ts
index 331e053935..cc07c5ae71 100644
--- a/packages/backend/test/e2e/user-notes.ts
+++ b/packages/backend/test/e2e/user-notes.ts
@@ -17,8 +17,8 @@ describe('users/notes', () => {
beforeAll(async () => {
alice = await signup({ username: 'alice' });
- const jpg = await uploadUrl(alice, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/Lenna.jpg');
- const png = await uploadUrl(alice, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/Lenna.png');
+ const jpg = await uploadUrl(alice, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/192.jpg');
+ const png = await uploadUrl(alice, 'https://raw.githubusercontent.com/misskey-dev/misskey/develop/packages/backend/test/resources/192.png');
jpgNote = await post(alice, {
fileIds: [jpg.id],
});
diff --git a/packages/backend/test/resources/192.jpg b/packages/backend/test/resources/192.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..76374628e0acf2e3b85152d55c11c9a763027810
GIT binary patch
literal 5131
zcmbtYc|4ohyN^d?(HRjMeaOp2ru
zbZkjUF_jTjYbv;0I`6FnFsY=z*nnOG!xq
zxLaCUT2@v@MqXZCNoha-4^SCM2(&|3NC@<=wnJp6n6Qv22#^8tZ6iBGK*Bpkg~axN
zcI*(^AtJm(94xeRQ&DDzkg$lXhSB#s9YsCE_TIEIMmEW5YgQCKc={r=>zG#acTU$D
z#jMkv6BJ|w%0fFu#6-k*Zjo;)8+|XUu@mX(c=PFAr_e^N@0uz!A5?akSQ*P*6a73a
zKXWWhTOon}3M8`&^a}J!SV$JMLlz_~3*x^6frWt;$Oy}TPJ0Q$DPdX3`s>r2kE_HTr+SE#_@(uK-Eo
zA75U<){EGNq6#KjqP_xyQj~J{N=nEA)}IF-vfErRVDWB^qeq`=yf8Hl>57;N3C*P1
zCq%)`ZzO9@gk|;yY^anMdOR%VplVRJ~eaL2gzlmgGxsMASi81$HLlAHHz
z0h%gBzpuKCOg5&X;^V3?I|pUdviYFv3yRcxPsK6k{q{}3R$OLsh8{wkVR3XHOY`F$
za%}OIA2O~(jq#&3!p&$7H^#hIdP-9KeMk{9dZG|Yn2CYvVcPrO44>~k+zQgdXfdJMh!zDdIBN8jc{GzBdDvVv60
zF8}l3psKDYFVf@;)!=B~ar@O@Pfsh`w~Hs789n}Nqy
zet1xH?5d}i)qemd!qZA{F23N_8381|Q>ID*3yR@0q*C8jFbYkpp_MYR#)z!4r4;F^
zRnwEElD)pvdvzY?T8=c|>zO?`AHWBV|5VQhz3?q3nA<`cIElYesJDN5Xp(c@LUm7L
zf~BVfjD_xVYN%{L`_2tc%rDQ^7TuSN^iqZ~nek>ZpL!>)KCn*OLi8sHs2op!;p
z*6rYQ*T9ySF&AYUB_6rh?!jkZQHm|44B8Y71~==R_3t~*HoxQr*M-tyVPx{)rLcjY
z7`QQX`GaRYqkW@EU?WC)1dgIYo`AUpuS>_Vc~teDTM^LGfYAOS`+V9Mw28#oPXp@)oApL$>(Q
z{p8jA6jpuBFvEt>^{#v|@8q?_OT_`RY&X9n%PFBL;VazMQHEvl$izUPsyS`tWBy9p
z0-W2&?e=`83Q5wdo~G=zE|zf0cs|XjRO>jCZW+k*O6dTTdU5&8oWSez>^MndvCEy-
z2<#JB^q;Uc)tX*B+PfMtR-5lr^4i5So*tI6#0Qm@rkyA*q7t~sr7Du5MpQLZKf^~k
z1<`yRWrH}pbSPqorS!2XO)Er>-EE15J5ivd;^DLR$CZxUk}I4JG&{p#s9<85
z`kShdJhf}-FPhb3!(OLDjysqs*{-++XLbq0h_A7)Pt^H2{;bCZe1gObdBQ!&+=yzR
zElvmA5+2XI9NV6wXw-J_+$Aq%G@5t)a}k>kB@pvmX2VKs+4?ZsV_fCvu0WJ>H2O*<
z&4@f!0XRJ-p*Nr}far?rC?S!S>a;D0669gT&KoC0$rskEi%pdS_L7Qg5@+MB=%YM8
z$1G#Fu#Buk_gSKzxl$ngV@9kYA9TQ{by7z+k};s@A}=m~>&|(DLv}&nf1y9n2d=Fk
zuz`V{fBWW5w0Xuw1pZM$PH-D42>LE7(Y(Q~7(|iZi5krH@sl-Ol_9pof}S-#$oF;E
zk*4dnRHdel`QE
z=oN(3btsU->bk0TJnaea!M}b+1y=^6;7!wcE%^ftHOhs5q@{h2eVsFB4c1I&(%sjB
z@jmX;Fq>P)|9Y)7)2oMN@q$bs^m1A?0?SLtz{<2ZWfbeAA7_PT;tF@i=JNs?Y@(u>
zX@dzTme8%yrd*hTHA=ytaK-2VTpjaGw6xZQ5r+0$mW
zMwFY3{<8h~41_FkFR?RxroF5Vns+VbZT%Pw@z5_nw)Lci{6kAptUP*jLLn}p~
zpp@4y!adqI;2y4r#uZs_)Na*J3{Nj8@#>RybFVNNe9-R|dN|_ZeHe_2{;sc_Kc>@M}@8MTM0(M<7oW@z|YNHSL(vc1xm5^a_
z+X(7Nc4A2uW4^0%NzEf)?rEAyHT>rzYeg5k&CZTx+0@5N^l)Byr5$RCz&Dw_tryF?
z*4tF!+bS{WR5e(8ujx;JJFsB)2=1TOay|dzr&gB!PjR0QG+X`
z`gisI@d3de@{c2SRU+(&`HjUwRjVB>52IS^_
zRId8yLIZiKSq@2M@py%Y_PLIkpPD7}rix=v=-*ahcmCS;=s2=Xs{kCp?Hf9?`}~8~
z;tsBw4y}iOS&Ju&-Dm_a>$n(oWcCmsO&kuL-k+GSvWqw08j6!f>lrRq;g(n?kC;0T!9aJ>=##-N4G39W_;O@L&I_wy3ilIKZfb(
z1N)H{CCUdC(AT6nHvJzhc`@)$r%U&~#RT`i@#TX$rW}{n;v2loc$k3Hv*-Ar8lAeC
zQ{ge|Zuw&^$#-jeYUj^b?lcQF5$tTml^ou?zBM}@;lSMCjjFPZS{^|sby9wAWrMS!
zybn&y@0f;*pqoa%Z@oZjH(|Llz?^Xwk;GH8QhfNvdJ3=`ckrGhOHka6Bsuv=23z>HY{f`WW23
z*bJOZ9S}iTk{Or03XGWVEtv1qI3wS4l_|tPl*PS3Ll@|g{Jz4Ch@#eofRzs$z#;L&
zw@uD{Y;A|aQG?{ps0J*?EVr6sduR3e5XJO-W~CFE&^~m_S@OH5zaBL@TCVZ5d<&7{
z+uYy3af{g%fC7*z9w>jRQEu#UyKXYZ4SV=t)HTK|e$7WI_H!Q84AtFJs6i-z71*OA
zi;*#bne;_EY0lWD4Dk3l+!=?F#eRMKY>mxj5AV6O=vK9=0`*f8Z19yO1U~Z|;#1+B
zJj06TnR-vWn2yC0@d@HRSuS*1mg?5uTaT!^_F7nTnsY`O&54|WMfY)+8HokjXnk@f
zgE2)OL&q(~*>>mAxIkNBFvtx(3P3zy;t%AcK<4-*3lKJ)STLWD3N$Uys_-T_r46HK
zoK-rVp7Xez-I@S95n2na>8GOlQHd%e9S^~{NH#JvgqW6scDZFp*$9aotQlfq)=u`C
z#rwRNg*su@T3#d~U$42zU_$5j$n^3-(S0`vhbVywM;4-YyP9$!<_p;&rbSwnZ&zsW
zo+f-IJP`(SEWK~&mdy@p)z2WtZO}=0QbNj{Uw#zwV9jHW0$4LuDNswZ$*4_@^U~}_4k2S%Uh9pTGb{n3oCk$e7GH>(n*XJ%yOCaXMbojg
zx5!m5eB%VMJ1pCiIPKnCM?dSB%jGc1iI)y+1T;8J)D;SA1)x?_V7eU>ivgL@rYjG+
z%$$26$~YID`86Y~M_@>{;Ao
zkg{3m_*?6rGRxPJuXVRGZ=audGeulz(+2UxO-sI%DS-M0kU|5cl7FfKz!HE33W^~>
zZD5<(;#>Vh0j>D9h5VCI4k!vT$}h>L;3Y(gH4E&I3^^)KoA4Q
zD3SY;_H{r85M=<60b+#2S76otD?e?$C2bw8v(LId>sjl4k8gi`{KGmU%=x>IpCY(V
z=+obS{M6rm^b}2oed>}Ewqw<6e!3Z1i1F!_Te9QT;q!X7Zk+u_4#|!qL&p)6Ea-me
zsLtWXGXYj!B}o8sugtG2JDRm?UbiLtns8F`J6kzjsratj2U?cdJozVQWh68yoyMt+99CK
zJUhFUD!g82IT+!OKs{Y{m>;c;zxn7Viu%qHGRT-~lf<=!l-isi0|aI8?M-rILq=A-
z0g47F6{b=J7OOOQgX7*U6*V(nu}4Kc1FhzrG$vVAthkL{3em_yXM5e7Ub+c+`Q)=$
zE?LQeXBirXnh5h^sm>AN*h?yVb&gyB9H*A>t&e^}mT=bzpCnCTXu7W`)QrJBdmXho
z6R4obijjT+L(0I32s=2+P|LG*_8J+=DywfTlVHIiRmegAgbu4Qzn+yETPM0;!n<$C
zci8im+mz!(mpo)%dgYdmOGgJa2&*yy^)Vqk@2r#Sd96thl$2l90odg*-DC0+ycuS!(3Z+y~73omseF|ArlT2xhoZ&Z@&-%J==$eEI{3KA&
zeze>4)rC4cdO0~=jc61n(gbpvBjZ*&m0Y$b3lhCbJ3$F0Z|ut%K1W5uWwiOijKVW6
z9!)Z=2NRu*82>_3Sl%=;5-Yemg4UF&WSIW+U1
zf&@ybu3LM_a~T>%i4b#>$vo?;)&_dyP=%_+l~S(WNhsDf61lQkYK=DS>^I&C-Q<~D
zI^33nuNr|QlD9;Tzg|NYJ;OA1+c7Z0QzR(Z9E}-orXlm(CX}CW_+A0o);UBWYum{A
zslm=p6nlsjSgVm-Emc=6AeK+}IZP82rUytt8
z3EPtUBJ}`n7*Qag@B+ujooeS>D
z(Ftr04J?ESLSt}hUXz7Wjwn6>q1qvDT0}Qmny9%Lk8Ndgz+H!oh?<#+J$V#qFX?OR
zvR?9_oz%n{eQEV|p5zGucg1IJ_;wOh@c5J`AR;JDRoFvio{45aS)XpGRZpd{CvSlh^D0nX6tX?~
zhI(_xSE|T_6MWhESAp}mtkk2~nZWdfsr+kIe9ELt=AZ`$a(83MqyY0OPlFzizTS*LTZXAUGa%%}VVq)(vscQarCH6}Q!x-!Y3mO;as
zAip*GDX;q@`>%ZX^qjA*XB8%>(<|OsIbjOcVuNxF-(FAMq6SUrqJ_|sHWs!~mweh)
zDjFHxQQudXR`r}(f^hh^JB${U4*^&s9ISSp8H|yuw4gMN%`_(Ef|^5EIi=LsOy-!e
zyva(4n8zx$5Y{YR?jDaj{2%i{q_CsJY+qjvAin&;7%m`|Y|Hhk$9ll6&WYlOw+HZ(Z$v-u&RFLI6`U
z92tOn744o(Dj$sFst`NNISIFrDQ9fpCrH)nM}R^l=Y(bnOOK2R3q5p~vM0}hlSA88P6V?3Tujd{bIS{4%@8{s$d~yJxKV*{Ch^0-s6yc*
zHy*fH^lG$OkKO4MlhBQskg=-v{JKO*-IRI=)`jC5`qL{ByE|Pxw?9D$_PH{8Wp%Rt@
zUb+!9;?BWu*%oMu)jV4n)T-V=&S!IiE_%#=mvz1SbR-Ph3Y4~CnAa&&O6m91FN}=z
zFy!YDpw!=3z*Vryb0<;_fR1>58aX=loL6eyvvdj!I~w
zu#z(w$@c2vcdzcd%uj=~k9cZiL@`l4@d=0OrP_O)XNf_h4Aqh!98KSil|!J0js@+e
zGS!lt&o05Gu6aGmHAf?aNL`0=ao>nlobiztU~#<0s?^-KY8
ztjj7NZ^&0roqJ>XWSc{Pc9|>aoFJ}+DKO-x^1)r_bOi!7`c8LN@U+?`mWO;gJZn?o
zU}$U%Br9tM&-RT)tyvXlhlukaJ$eUpuN5F~%%$l>yHQTS04A&y)}EWj=Um?D