From 4f816857e554557e7364e8c0197160df11a2e1e4 Mon Sep 17 00:00:00 2001 From: sim1222 Date: Mon, 14 Oct 2024 08:20:24 +0900 Subject: [PATCH 1/4] Update deps, Remove Reactivity Transform, Remove AI --- docker-compose.yml | 47 +- package.json | 33 +- packages/backend/package.json | 7 +- packages/backend/src/core/AiService.ts | 48 +- packages/backend/src/core/CoreModule.ts | 806 +++- packages/backend/src/core/FileInfoService.ts | 278 +- packages/backend/yarn.lock | 1043 ++--- packages/client/.eslintrc.js | 141 +- packages/client/package.json | 110 +- .../client/src/components/MkAbuseReport.vue | 6 +- .../client/src/components/MkAnalogClock.vue | 56 +- packages/client/src/components/MkButton.vue | 12 +- .../client/src/components/MkContextMenu.vue | 16 +- .../client/src/components/MkCropperDialog.vue | 16 +- .../client/src/components/MkFollowButton.vue | 24 +- .../src/components/MkForgotPassword.vue | 18 +- .../client/src/components/MkImageViewer.vue | 4 +- .../src/components/MkImgWithBlurhash.vue | 10 +- .../src/components/MkInstanceCardMini.vue | 6 +- .../client/src/components/MkInstanceStats.vue | 14 +- .../client/src/components/MkLaunchPad.vue | 6 +- packages/client/src/components/MkLink.vue | 8 +- .../client/src/components/MkMediaBanner.vue | 10 +- .../client/src/components/MkMediaImage.vue | 6 +- .../client/src/components/MkMediaVideo.vue | 4 +- packages/client/src/components/MkMenu.vue | 36 +- .../client/src/components/MkMiniChart.vue | 20 +- packages/client/src/components/MkModal.vue | 68 +- .../src/components/MkModalPageWindow.vue | 38 +- .../client/src/components/MkModalWindow.vue | 24 +- packages/client/src/components/MkNote.vue | 48 +- .../client/src/components/MkNoteDetailed.vue | 42 +- .../client/src/components/MkNoteSimple.vue | 4 +- packages/client/src/components/MkNoteSub.vue | 8 +- .../MkNotificationSettingWindow.vue | 28 +- .../src/components/MkNotificationToast.vue | 6 +- .../client/src/components/MkPageWindow.vue | 36 +- .../client/src/components/MkPopupMenu.vue | 4 +- packages/client/src/components/MkPostForm.vue | 306 +- .../client/src/components/MkReactionList.vue | 2 +- packages/client/src/components/MkSignin.vue | 98 +- .../client/src/components/MkSigninDialog.vue | 8 +- packages/client/src/components/MkSignup.vue | 118 +- .../client/src/components/MkSignupDialog.vue | 8 +- .../src/components/MkSubNoteContent.vue | 4 +- packages/client/src/components/MkTagCloud.vue | 18 +- packages/client/src/components/MkTimeline.vue | 12 +- packages/client/src/components/MkToast.vue | 4 +- .../src/components/MkTokenGenerateWindow.vue | 26 +- .../client/src/components/MkUrlPreview.vue | 44 +- .../src/components/MkUrlPreviewPopup.vue | 10 +- .../client/src/components/MkUserCardMini.vue | 6 +- .../src/components/MkUserOnlineIndicator.vue | 4 +- .../client/src/components/MkUserPreview.vue | 16 +- .../src/components/MkUserSelectDialog.vue | 38 +- .../client/src/components/MkVisibility.vue | 6 +- .../src/components/MkVisibilityPicker.vue | 16 +- packages/client/src/components/MkWindow.vue | 72 +- .../client/src/components/MkYoutubePlayer.vue | 16 +- .../client/src/components/form/checkbox.vue | 10 +- .../client/src/components/form/folder.vue | 12 +- packages/client/src/components/form/radio.vue | 4 +- .../client/src/components/form/switch.vue | 4 +- packages/client/src/components/global/MkA.vue | 4 +- .../client/src/components/global/MkAvatar.vue | 6 +- .../src/components/global/MkPageHeader.vue | 36 +- .../client/src/components/global/MkSpacer.vue | 20 +- .../components/global/MkStickyContainer.vue | 28 +- .../client/src/components/global/MkTime.vue | 14 +- .../src/components/global/RouterView.vue | 14 +- packages/client/src/pages/_error_.vue | 22 +- packages/client/src/pages/about-misskey.vue | 22 +- .../client/src/pages/about.federation.vue | 24 +- packages/client/src/pages/about.vue | 10 +- packages/client/src/pages/admin-file.vue | 30 +- packages/client/src/pages/admin/_header_.vue | 8 +- packages/client/src/pages/admin/abuses.vue | 26 +- packages/client/src/pages/admin/ads.vue | 14 +- .../client/src/pages/admin/announcements.vue | 14 +- .../client/src/pages/admin/bot-protection.vue | 34 +- packages/client/src/pages/admin/database.vue | 6 +- .../client/src/pages/admin/email-settings.vue | 48 +- .../src/pages/admin/emoji-edit-dialog.vue | 30 +- packages/client/src/pages/admin/emojigen.vue | 2 +- packages/client/src/pages/admin/emojis.vue | 4 +- packages/client/src/pages/admin/files.vue | 24 +- packages/client/src/pages/admin/index.vue | 84 +- .../client/src/pages/admin/instance-block.vue | 12 +- .../src/pages/admin/integrations.discord.vue | 24 +- .../src/pages/admin/integrations.github.vue | 24 +- .../src/pages/admin/integrations.twitter.vue | 24 +- .../client/src/pages/admin/integrations.vue | 18 +- .../client/src/pages/admin/object-storage.vue | 84 +- .../client/src/pages/admin/other-settings.vue | 6 +- .../client/src/pages/admin/overview.user.vue | 6 +- packages/client/src/pages/admin/overview.vue | 60 +- .../client/src/pages/admin/proxy-account.vue | 22 +- .../client/src/pages/admin/queue.chart.vue | 24 +- packages/client/src/pages/admin/queue.vue | 8 +- packages/client/src/pages/admin/relays.vue | 10 +- packages/client/src/pages/admin/security.vue | 64 +- packages/client/src/pages/admin/settings.vue | 150 +- packages/client/src/pages/admin/users.vue | 30 +- packages/client/src/pages/announcements.vue | 6 +- .../client/src/pages/antenna-timeline.vue | 30 +- packages/client/src/pages/api-console.vue | 6 +- packages/client/src/pages/channel-editor.vue | 46 +- packages/client/src/pages/channel.vue | 18 +- packages/client/src/pages/channels.vue | 8 +- packages/client/src/pages/clip.vue | 30 +- packages/client/src/pages/drive.vue | 10 +- .../client/src/pages/explore.featured.vue | 4 +- packages/client/src/pages/explore.users.vue | 18 +- packages/client/src/pages/explore.vue | 22 +- packages/client/src/pages/follow-requests.vue | 4 +- packages/client/src/pages/gallery/edit.vue | 46 +- packages/client/src/pages/gallery/index.vue | 16 +- packages/client/src/pages/gallery/post.vue | 42 +- packages/client/src/pages/instance-info.vue | 34 +- packages/client/src/pages/messaging/index.vue | 36 +- .../pages/messaging/messaging-room.form.vue | 60 +- .../messaging/messaging-room.message.vue | 6 +- .../src/pages/messaging/messaging-room.vue | 132 +- packages/client/src/pages/mfm-cheat-sheet.vue | 62 +- packages/client/src/pages/miauth.vue | 10 +- .../client/src/pages/my-antennas/create.vue | 8 +- .../client/src/pages/my-antennas/edit.vue | 10 +- .../client/src/pages/my-antennas/editor.vue | 66 +- .../client/src/pages/my-antennas/index.vue | 6 +- packages/client/src/pages/my-clips/index.vue | 14 +- packages/client/src/pages/my-lists/index.vue | 10 +- packages/client/src/pages/my-lists/list.vue | 38 +- packages/client/src/pages/not-found.vue | 6 +- packages/client/src/pages/note.vue | 74 +- packages/client/src/pages/notifications.vue | 24 +- .../page-editor/els/page-editor.el.image.vue | 8 +- .../page-editor/els/page-editor.el.note.vue | 16 +- .../els/page-editor.el.radio-button.vue | 8 +- .../src/pages/page-editor/page-editor.vue | 160 +- packages/client/src/pages/page.vue | 56 +- packages/client/src/pages/pages.vue | 8 +- packages/client/src/pages/preview.vue | 4 +- packages/client/src/pages/registry.keys.vue | 16 +- packages/client/src/pages/registry.value.vue | 34 +- packages/client/src/pages/registry.vue | 10 +- packages/client/src/pages/reset-password.vue | 10 +- packages/client/src/pages/scratchpad.vue | 6 +- packages/client/src/pages/search.vue | 4 +- .../src/pages/settings/account-info.vue | 6 +- .../client/src/pages/settings/accounts.vue | 6 +- packages/client/src/pages/settings/api.vue | 6 +- packages/client/src/pages/settings/apps.vue | 6 +- .../client/src/pages/settings/custom-css.vue | 6 +- packages/client/src/pages/settings/deck.vue | 4 +- .../src/pages/settings/delete-account.vue | 6 +- packages/client/src/pages/settings/drive.vue | 12 +- packages/client/src/pages/settings/email.vue | 6 +- .../pages/settings/experimental-features.vue | 4 +- .../client/src/pages/settings/general.vue | 4 +- .../src/pages/settings/import-export.vue | 6 +- packages/client/src/pages/settings/index.vue | 66 +- .../src/pages/settings/instance-mute.vue | 6 +- .../client/src/pages/settings/integration.vue | 4 +- .../client/src/pages/settings/mute-block.vue | 8 +- packages/client/src/pages/settings/navbar.vue | 4 +- .../src/pages/settings/notifications.vue | 6 +- packages/client/src/pages/settings/other.vue | 4 +- .../src/pages/settings/plugin.install.vue | 6 +- packages/client/src/pages/settings/plugin.vue | 6 +- .../pages/settings/preferences-backups.vue | 44 +- .../client/src/pages/settings/privacy.vue | 42 +- .../client/src/pages/settings/profile.vue | 6 +- .../client/src/pages/settings/reaction.vue | 28 +- .../client/src/pages/settings/security.vue | 6 +- packages/client/src/pages/settings/sounds.vue | 4 +- .../client/src/pages/settings/statusbar.vue | 8 +- .../src/pages/settings/theme.install.vue | 8 +- .../src/pages/settings/theme.manage.vue | 4 +- packages/client/src/pages/settings/theme.vue | 4 +- .../src/pages/settings/webhook.edit.vue | 50 +- .../client/src/pages/settings/webhook.new.vue | 46 +- .../client/src/pages/settings/webhook.vue | 6 +- .../client/src/pages/settings/word-mute.vue | 6 +- packages/client/src/pages/share.vue | 48 +- packages/client/src/pages/signup-complete.vue | 6 +- packages/client/src/pages/tag.vue | 4 +- packages/client/src/pages/theme-editor.vue | 64 +- packages/client/src/pages/timeline.vue | 26 +- packages/client/src/pages/user-info.vue | 92 +- .../client/src/pages/user-list-timeline.vue | 26 +- packages/client/src/pages/user/followers.vue | 24 +- packages/client/src/pages/user/following.vue | 24 +- packages/client/src/pages/user/home.vue | 26 +- .../client/src/pages/user/index.activity.vue | 6 +- .../client/src/pages/user/index.photos.vue | 10 +- packages/client/src/pages/user/index.vue | 34 +- .../client/src/pages/welcome.entrance.a.vue | 22 +- packages/client/src/pages/welcome.setup.vue | 18 +- packages/client/src/pages/welcome.vue | 10 +- .../src/ui/_common_/statusbar-federation.vue | 4 +- .../client/src/ui/_common_/statusbar-rss.vue | 4 +- .../src/ui/_common_/statusbar-user-list.vue | 4 +- .../src/ui/_common_/stream-indicator.vue | 8 +- .../src/ui/_common_old/stream-indicator.vue | 8 +- packages/client/src/ui/classic.vue | 42 +- packages/client/src/ui/deck.vue | 8 +- .../client/src/ui/deck/antenna-column.vue | 4 +- packages/client/src/ui/deck/column.vue | 38 +- packages/client/src/ui/deck/list-column.vue | 4 +- packages/client/src/ui/deck/main-column.vue | 6 +- packages/client/src/ui/deck/tl-column.vue | 24 +- .../client/src/ui/deck/widgets-column.vue | 6 +- .../client/src/ui/deckold/antenna-column.vue | 4 +- packages/client/src/ui/deckold/column.vue | 38 +- .../client/src/ui/deckold/list-column.vue | 4 +- .../client/src/ui/deckold/main-column.vue | 6 +- packages/client/src/ui/deckold/tl-column.vue | 24 +- .../client/src/ui/deckold/widgets-column.vue | 6 +- packages/client/src/ui/universal.vue | 14 +- packages/client/src/ui/universal.widgets.vue | 8 +- packages/client/src/ui/visitor/b.vue | 30 +- packages/client/src/ui/zen.vue | 10 +- .../client/src/widgets/activity.chart.vue | 36 +- packages/client/src/widgets/clock.vue | 8 +- packages/client/src/widgets/digital-clock.vue | 8 +- .../client/src/widgets/instance-cloud.vue | 10 +- packages/client/src/widgets/rss-ticker.vue | 4 +- .../src/widgets/server-metric/cpu-mem.vue | 56 +- .../client/src/widgets/server-metric/cpu.vue | 6 +- .../client/src/widgets/server-metric/disk.vue | 10 +- .../client/src/widgets/server-metric/mem.vue | 18 +- .../client/src/widgets/server-metric/net.vue | 60 +- .../client/src/widgets/server-metric/pie.vue | 6 +- packages/client/tsconfig.json | 22 +- packages/client/vite.config.ts | 12 +- packages/client/yarn.lock | 3877 ++++++++++------- scripts/build.js | 35 - scripts/build.mjs | 37 + scripts/clean-all.js | 15 - scripts/clean-all.mjs | 32 + scripts/clean.js | 8 - scripts/clean.mjs | 16 + scripts/dev.js | 48 - scripts/dev.mjs | 50 + scripts/install-packages.js | 27 - scripts/install-packages.mjs | 29 + scripts/lint.js | 24 - scripts/lint.mjs | 26 + yarn.lock | 3704 ++++++---------- 249 files changed, 7703 insertions(+), 7954 deletions(-) delete mode 100644 scripts/build.js create mode 100644 scripts/build.mjs delete mode 100644 scripts/clean-all.js create mode 100644 scripts/clean-all.mjs delete mode 100644 scripts/clean.js create mode 100644 scripts/clean.mjs delete mode 100644 scripts/dev.js create mode 100644 scripts/dev.mjs delete mode 100644 scripts/install-packages.js create mode 100644 scripts/install-packages.mjs delete mode 100644 scripts/lint.js create mode 100644 scripts/lint.mjs diff --git a/docker-compose.yml b/docker-compose.yml index 0bf17a555..22c2f0692 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,40 +1,36 @@ version: "3" - services: - web: - build: . - restart: always - links: - - db - - redis -# - es - ports: - - "3000:3000" - networks: - - internal_network - - external_network - volumes: - - ./files:/misskey/files - - ./.config:/misskey/.config:ro - + # web: + # build: . + # restart: always + # links: + # - db + # - redis + # # - es + # ports: + # - "3000:3000" + # networks: + # - internal_network + # - external_network + # volumes: + # - ./files:/misskey/files + # - ./.config:/misskey/.config:ro redis: restart: always - image: redis:4.0-alpine - networks: - - internal_network + image: redis:alpine + ports: + - "6379:6379" volumes: - ./redis:/data - db: restart: always - image: postgres:12.2-alpine - networks: - - internal_network + image: postgres:17.0-alpine + ports: + - "5432:5432" env_file: - .config/docker.env volumes: - ./db:/var/lib/postgresql/data - # es: # restart: always # image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2 @@ -45,7 +41,6 @@ services: # - internal_network # volumes: # - ./elasticsearch:/usr/share/elasticsearch/data - networks: internal_network: internal: true diff --git a/package.json b/package.json index e351c3fe4..f7309b303 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,8 @@ }, "private": true, "scripts": { - "postinstall": "node ./scripts/install-packages.js", - "build": "node ./scripts/build.js", + "postinstall": "node ./scripts/install-packages.mjs", + "build": "node ./scripts/build.mjs", "start": "cd packages/backend && node --experimental-json-modules ./built/boot/index.js", "start:test": "cd packages/backend && cross-env NODE_ENV=test node --experimental-json-modules ./built/boot/index.js", "init": "npm run migrate", @@ -17,8 +17,8 @@ "migrateandstart": "npm run migrate && npm run start", "gulp": "gulp build", "watch": "npm run dev", - "dev": "node ./scripts/dev.js", - "lint": "node ./scripts/lint.js", + "dev": "node ./scripts/dev.mjs", + "lint": "node ./scripts/lint.mjs", "cy:open": "cypress open --browser --e2e --config-file=cypress.config.ts", "cy:run": "cypress run", "e2e": "start-server-and-test start:test http://localhost:61812 cy:run", @@ -27,26 +27,27 @@ "test": "npm run jest", "test-and-coverage": "npm run jest-and-coverage", "format": "gulp format", - "clean": "node ./scripts/clean.js", - "clean-all": "node ./scripts/clean-all.js", + "clean": "node ./scripts/clean.mjs", + "clean-all": "node ./scripts/clean-all.mjs", "cleanall": "npm run clean-all" }, "dependencies": { - "execa": "5.1.1", - "gulp": "4.0.2", + "execa": "9.4.0", + "gulp": "5.0.0", "gulp-cssnano": "2.1.3", "gulp-rename": "2.0.0", - "gulp-replace": "1.1.3", + "gulp-replace": "1.1.4", "gulp-terser": "2.1.0", "js-yaml": "4.1.0" }, "devDependencies": { - "@types/gulp": "4.0.9", - "@types/gulp-rename": "2.0.1", - "@typescript-eslint/parser": "5.38.0", + "@types/gulp": "4.0.17", + "@types/gulp-rename": "2.0.6", + "@typescript-eslint/parser": "8.8.1", "cross-env": "7.0.3", - "cypress": "10.8.0", - "start-server-and-test": "1.14.0", - "typescript": "4.8.3" - } + "cypress": "13.15.0", + "start-server-and-test": "2.0.8", + "typescript": "5.6.3" + }, + "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" } diff --git a/packages/backend/package.json b/packages/backend/package.json index f2fe009a9..eb34b9cad 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -15,9 +15,6 @@ "chokidar": "^3.3.1", "lodash": "^4.17.21" }, - "optionalDependencies": { - "@tensorflow/tfjs-node": "3.20.0" - }, "dependencies": { "@bull-board/koa": "4.3.1", "@discordapp/twemoji": "14.0.2", @@ -38,7 +35,7 @@ "aws-sdk": "2.1213.0", "bcryptjs": "2.4.3", "blurhash": "1.1.5", - "bull": "4.9.0", + "bull": "4.16.3", "cacheable-lookup": "6.1.0", "cbor": "8.1.0", "chalk": "5.0.1", @@ -94,7 +91,7 @@ "qrcode": "1.5.1", "random-seed": "0.3.0", "ratelimiter": "3.4.1", - "re2": "1.17.7", + "re2": "1.21.4", "redis-lock": "0.1.4", "reflect-metadata": "0.1.13", "rename": "1.0.4", diff --git a/packages/backend/src/core/AiService.ts b/packages/backend/src/core/AiService.ts index 15084b8ff..0d102a859 100644 --- a/packages/backend/src/core/AiService.ts +++ b/packages/backend/src/core/AiService.ts @@ -1,16 +1,16 @@ -import * as fs from 'node:fs'; -import { fileURLToPath } from 'node:url'; -import { dirname } from 'node:path'; -import { Inject, Injectable } from '@nestjs/common'; -import * as nsfw from 'nsfwjs'; -import si from 'systeminformation'; -import type { Config } from '@/config.js'; -import { DI } from '@/di-symbols.js'; +import * as fs from "node:fs"; +import { fileURLToPath } from "node:url"; +import { dirname } from "node:path"; +import { Inject, Injectable } from "@nestjs/common"; +import * as nsfw from "nsfwjs"; +import si from "systeminformation"; +import type { Config } from "@/config.js"; +import { DI } from "@/di-symbols.js"; const _filename = fileURLToPath(import.meta.url); const _dirname = dirname(_filename); -const REQUIRED_CPU_FLAGS = ['avx2', 'fma']; +const REQUIRED_CPU_FLAGS = ["avx2", "fma"]; let isSupportedCpu: undefined | boolean = undefined; @Injectable() @@ -20,27 +20,33 @@ export class AiService { constructor( @Inject(DI.config) private config: Config, - ) { - } + ) { } - public async detectSensitive(path: string): Promise { + public async detectSensitive( + path: string, + ): Promise { try { if (isSupportedCpu === undefined) { const cpuFlags = await this.getCpuFlags(); - isSupportedCpu = REQUIRED_CPU_FLAGS.every(required => cpuFlags.includes(required)); + isSupportedCpu = REQUIRED_CPU_FLAGS.every((required) => + cpuFlags.includes(required), + ); } - + if (!isSupportedCpu) { - console.error('This CPU cannot use TensorFlow.'); + console.error("This CPU cannot use TensorFlow."); return null; } - - const tf = await import('@tensorflow/tfjs-node'); - - if (this.model == null) this.model = await nsfw.load(`file://${_dirname}/../../nsfw-model/`, { size: 299 }); - + + const tf = await import("@tensorflow/tfjs-node"); + + if (this.model == null) + this.model = await nsfw.load(`file://${_dirname}/../../nsfw-model/`, { + size: 299, + }); + const buffer = await fs.promises.readFile(path); - const image = await tf.node.decodeImage(buffer, 3) as any; + const image = (await tf.node.decodeImage(buffer, 3)) as any; try { const predictions = await this.model.classify(image); return predictions; diff --git a/packages/backend/src/core/CoreModule.ts b/packages/backend/src/core/CoreModule.ts index da07728d2..17959783f 100644 --- a/packages/backend/src/core/CoreModule.ts +++ b/packages/backend/src/core/CoreModule.ts @@ -1,248 +1,576 @@ -import { Module } from '@nestjs/common'; -import { DI } from '../di-symbols.js'; -import { AccountUpdateService } from './AccountUpdateService.js'; -import { AiService } from './AiService.js'; -import { AntennaService } from './AntennaService.js'; -import { AppLockService } from './AppLockService.js'; -import { CaptchaService } from './CaptchaService.js'; -import { CreateNotificationService } from './CreateNotificationService.js'; -import { CreateSystemUserService } from './CreateSystemUserService.js'; -import { CustomEmojiService } from './CustomEmojiService.js'; -import { DeleteAccountService } from './DeleteAccountService.js'; -import { DownloadService } from './DownloadService.js'; -import { DriveService } from './DriveService.js'; -import { EmailService } from './EmailService.js'; -import { FederatedInstanceService } from './FederatedInstanceService.js'; -import { FetchInstanceMetadataService } from './FetchInstanceMetadataService.js'; -import { GlobalEventService } from './GlobalEventService.js'; -import { HashtagService } from './HashtagService.js'; -import { HttpRequestService } from './HttpRequestService.js'; -import { IdService } from './IdService.js'; -import { ImageProcessingService } from './ImageProcessingService.js'; -import { InstanceActorService } from './InstanceActorService.js'; -import { InternalStorageService } from './InternalStorageService.js'; -import { MessagingService } from './MessagingService.js'; -import { MetaService } from './MetaService.js'; -import { MfmService } from './MfmService.js'; -import { ModerationLogService } from './ModerationLogService.js'; -import { NoteCreateService } from './NoteCreateService.js'; -import { NoteDeleteService } from './NoteDeleteService.js'; -import { NotePiningService } from './NotePiningService.js'; -import { NoteReadService } from './NoteReadService.js'; -import { NotificationService } from './NotificationService.js'; -import { PollService } from './PollService.js'; -import { PushNotificationService } from './PushNotificationService.js'; -import { QueryService } from './QueryService.js'; -import { ReactionService } from './ReactionService.js'; -import { RelayService } from './RelayService.js'; -import { S3Service } from './S3Service.js'; -import { SignupService } from './SignupService.js'; -import { TwoFactorAuthenticationService } from './TwoFactorAuthenticationService.js'; -import { UserBlockingService } from './UserBlockingService.js'; -import { UserCacheService } from './UserCacheService.js'; -import { UserFollowingService } from './UserFollowingService.js'; -import { UserKeypairStoreService } from './UserKeypairStoreService.js'; -import { UserListService } from './UserListService.js'; -import { UserMutingService } from './UserMutingService.js'; -import { UserSuspendService } from './UserSuspendService.js'; -import { VideoProcessingService } from './VideoProcessingService.js'; -import { WebhookService } from './WebhookService.js'; -import { ProxyAccountService } from './ProxyAccountService.js'; -import { UtilityService } from './UtilityService.js'; -import { FileInfoService } from './FileInfoService.js'; -import { ChartLoggerService } from './chart/ChartLoggerService.js'; -import FederationChart from './chart/charts/federation.js'; -import NotesChart from './chart/charts/notes.js'; -import UsersChart from './chart/charts/users.js'; -import ActiveUsersChart from './chart/charts/active-users.js'; -import InstanceChart from './chart/charts/instance.js'; -import PerUserNotesChart from './chart/charts/per-user-notes.js'; -import DriveChart from './chart/charts/drive.js'; -import PerUserReactionsChart from './chart/charts/per-user-reactions.js'; -import HashtagChart from './chart/charts/hashtag.js'; -import PerUserFollowingChart from './chart/charts/per-user-following.js'; -import PerUserDriveChart from './chart/charts/per-user-drive.js'; -import ApRequestChart from './chart/charts/ap-request.js'; -import { ChartManagementService } from './chart/ChartManagementService.js'; -import { AbuseUserReportEntityService } from './entities/AbuseUserReportEntityService.js'; -import { AntennaEntityService } from './entities/AntennaEntityService.js'; -import { AppEntityService } from './entities/AppEntityService.js'; -import { AuthSessionEntityService } from './entities/AuthSessionEntityService.js'; -import { BlockingEntityService } from './entities/BlockingEntityService.js'; -import { ChannelEntityService } from './entities/ChannelEntityService.js'; -import { ClipEntityService } from './entities/ClipEntityService.js'; -import { DriveFileEntityService } from './entities/DriveFileEntityService.js'; -import { DriveFolderEntityService } from './entities/DriveFolderEntityService.js'; -import { EmojiEntityService } from './entities/EmojiEntityService.js'; -import { FollowingEntityService } from './entities/FollowingEntityService.js'; -import { FollowRequestEntityService } from './entities/FollowRequestEntityService.js'; -import { GalleryLikeEntityService } from './entities/GalleryLikeEntityService.js'; -import { GalleryPostEntityService } from './entities/GalleryPostEntityService.js'; -import { HashtagEntityService } from './entities/HashtagEntityService.js'; -import { InstanceEntityService } from './entities/InstanceEntityService.js'; -import { MessagingMessageEntityService } from './entities/MessagingMessageEntityService.js'; -import { ModerationLogEntityService } from './entities/ModerationLogEntityService.js'; -import { MutingEntityService } from './entities/MutingEntityService.js'; -import { NoteEntityService } from './entities/NoteEntityService.js'; -import { NoteFavoriteEntityService } from './entities/NoteFavoriteEntityService.js'; -import { NoteReactionEntityService } from './entities/NoteReactionEntityService.js'; -import { NotificationEntityService } from './entities/NotificationEntityService.js'; -import { PageEntityService } from './entities/PageEntityService.js'; -import { PageLikeEntityService } from './entities/PageLikeEntityService.js'; -import { SigninEntityService } from './entities/SigninEntityService.js'; -import { UserEntityService } from './entities/UserEntityService.js'; -import { UserGroupEntityService } from './entities/UserGroupEntityService.js'; -import { UserGroupInvitationEntityService } from './entities/UserGroupInvitationEntityService.js'; -import { UserListEntityService } from './entities/UserListEntityService.js'; -import { ApAudienceService } from './remote/activitypub/ApAudienceService.js'; -import { ApDbResolverService } from './remote/activitypub/ApDbResolverService.js'; -import { ApDeliverManagerService } from './remote/activitypub/ApDeliverManagerService.js'; -import { ApInboxService } from './remote/activitypub/ApInboxService.js'; -import { ApLoggerService } from './remote/activitypub/ApLoggerService.js'; -import { ApMfmService } from './remote/activitypub/ApMfmService.js'; -import { ApRendererService } from './remote/activitypub/ApRendererService.js'; -import { ApRequestService } from './remote/activitypub/ApRequestService.js'; -import { ApResolverService } from './remote/activitypub/ApResolverService.js'; -import { LdSignatureService } from './remote/activitypub/LdSignatureService.js'; -import { RemoteLoggerService } from './remote/RemoteLoggerService.js'; -import { ResolveUserService } from './remote/ResolveUserService.js'; -import { WebfingerService } from './remote/WebfingerService.js'; -import { ApImageService } from './remote/activitypub/models/ApImageService.js'; -import { ApMentionService } from './remote/activitypub/models/ApMentionService.js'; -import { ApNoteService } from './remote/activitypub/models/ApNoteService.js'; -import { ApPersonService } from './remote/activitypub/models/ApPersonService.js'; -import { ApQuestionService } from './remote/activitypub/models/ApQuestionService.js'; -import { QueueModule } from './queue/QueueModule.js'; -import { QueueService } from './QueueService.js'; -import { LoggerService } from './LoggerService.js'; -import type { Provider } from '@nestjs/common'; +import { Module } from "@nestjs/common"; +import { DI } from "../di-symbols.js"; +import { AccountUpdateService } from "./AccountUpdateService.js"; +// import { AiService } from './AiService.js'; +import { AntennaService } from "./AntennaService.js"; +import { AppLockService } from "./AppLockService.js"; +import { CaptchaService } from "./CaptchaService.js"; +import { CreateNotificationService } from "./CreateNotificationService.js"; +import { CreateSystemUserService } from "./CreateSystemUserService.js"; +import { CustomEmojiService } from "./CustomEmojiService.js"; +import { DeleteAccountService } from "./DeleteAccountService.js"; +import { DownloadService } from "./DownloadService.js"; +import { DriveService } from "./DriveService.js"; +import { EmailService } from "./EmailService.js"; +import { FederatedInstanceService } from "./FederatedInstanceService.js"; +import { FetchInstanceMetadataService } from "./FetchInstanceMetadataService.js"; +import { GlobalEventService } from "./GlobalEventService.js"; +import { HashtagService } from "./HashtagService.js"; +import { HttpRequestService } from "./HttpRequestService.js"; +import { IdService } from "./IdService.js"; +import { ImageProcessingService } from "./ImageProcessingService.js"; +import { InstanceActorService } from "./InstanceActorService.js"; +import { InternalStorageService } from "./InternalStorageService.js"; +import { MessagingService } from "./MessagingService.js"; +import { MetaService } from "./MetaService.js"; +import { MfmService } from "./MfmService.js"; +import { ModerationLogService } from "./ModerationLogService.js"; +import { NoteCreateService } from "./NoteCreateService.js"; +import { NoteDeleteService } from "./NoteDeleteService.js"; +import { NotePiningService } from "./NotePiningService.js"; +import { NoteReadService } from "./NoteReadService.js"; +import { NotificationService } from "./NotificationService.js"; +import { PollService } from "./PollService.js"; +import { PushNotificationService } from "./PushNotificationService.js"; +import { QueryService } from "./QueryService.js"; +import { ReactionService } from "./ReactionService.js"; +import { RelayService } from "./RelayService.js"; +import { S3Service } from "./S3Service.js"; +import { SignupService } from "./SignupService.js"; +import { TwoFactorAuthenticationService } from "./TwoFactorAuthenticationService.js"; +import { UserBlockingService } from "./UserBlockingService.js"; +import { UserCacheService } from "./UserCacheService.js"; +import { UserFollowingService } from "./UserFollowingService.js"; +import { UserKeypairStoreService } from "./UserKeypairStoreService.js"; +import { UserListService } from "./UserListService.js"; +import { UserMutingService } from "./UserMutingService.js"; +import { UserSuspendService } from "./UserSuspendService.js"; +import { VideoProcessingService } from "./VideoProcessingService.js"; +import { WebhookService } from "./WebhookService.js"; +import { ProxyAccountService } from "./ProxyAccountService.js"; +import { UtilityService } from "./UtilityService.js"; +import { FileInfoService } from "./FileInfoService.js"; +import { ChartLoggerService } from "./chart/ChartLoggerService.js"; +import FederationChart from "./chart/charts/federation.js"; +import NotesChart from "./chart/charts/notes.js"; +import UsersChart from "./chart/charts/users.js"; +import ActiveUsersChart from "./chart/charts/active-users.js"; +import InstanceChart from "./chart/charts/instance.js"; +import PerUserNotesChart from "./chart/charts/per-user-notes.js"; +import DriveChart from "./chart/charts/drive.js"; +import PerUserReactionsChart from "./chart/charts/per-user-reactions.js"; +import HashtagChart from "./chart/charts/hashtag.js"; +import PerUserFollowingChart from "./chart/charts/per-user-following.js"; +import PerUserDriveChart from "./chart/charts/per-user-drive.js"; +import ApRequestChart from "./chart/charts/ap-request.js"; +import { ChartManagementService } from "./chart/ChartManagementService.js"; +import { AbuseUserReportEntityService } from "./entities/AbuseUserReportEntityService.js"; +import { AntennaEntityService } from "./entities/AntennaEntityService.js"; +import { AppEntityService } from "./entities/AppEntityService.js"; +import { AuthSessionEntityService } from "./entities/AuthSessionEntityService.js"; +import { BlockingEntityService } from "./entities/BlockingEntityService.js"; +import { ChannelEntityService } from "./entities/ChannelEntityService.js"; +import { ClipEntityService } from "./entities/ClipEntityService.js"; +import { DriveFileEntityService } from "./entities/DriveFileEntityService.js"; +import { DriveFolderEntityService } from "./entities/DriveFolderEntityService.js"; +import { EmojiEntityService } from "./entities/EmojiEntityService.js"; +import { FollowingEntityService } from "./entities/FollowingEntityService.js"; +import { FollowRequestEntityService } from "./entities/FollowRequestEntityService.js"; +import { GalleryLikeEntityService } from "./entities/GalleryLikeEntityService.js"; +import { GalleryPostEntityService } from "./entities/GalleryPostEntityService.js"; +import { HashtagEntityService } from "./entities/HashtagEntityService.js"; +import { InstanceEntityService } from "./entities/InstanceEntityService.js"; +import { MessagingMessageEntityService } from "./entities/MessagingMessageEntityService.js"; +import { ModerationLogEntityService } from "./entities/ModerationLogEntityService.js"; +import { MutingEntityService } from "./entities/MutingEntityService.js"; +import { NoteEntityService } from "./entities/NoteEntityService.js"; +import { NoteFavoriteEntityService } from "./entities/NoteFavoriteEntityService.js"; +import { NoteReactionEntityService } from "./entities/NoteReactionEntityService.js"; +import { NotificationEntityService } from "./entities/NotificationEntityService.js"; +import { PageEntityService } from "./entities/PageEntityService.js"; +import { PageLikeEntityService } from "./entities/PageLikeEntityService.js"; +import { SigninEntityService } from "./entities/SigninEntityService.js"; +import { UserEntityService } from "./entities/UserEntityService.js"; +import { UserGroupEntityService } from "./entities/UserGroupEntityService.js"; +import { UserGroupInvitationEntityService } from "./entities/UserGroupInvitationEntityService.js"; +import { UserListEntityService } from "./entities/UserListEntityService.js"; +import { ApAudienceService } from "./remote/activitypub/ApAudienceService.js"; +import { ApDbResolverService } from "./remote/activitypub/ApDbResolverService.js"; +import { ApDeliverManagerService } from "./remote/activitypub/ApDeliverManagerService.js"; +import { ApInboxService } from "./remote/activitypub/ApInboxService.js"; +import { ApLoggerService } from "./remote/activitypub/ApLoggerService.js"; +import { ApMfmService } from "./remote/activitypub/ApMfmService.js"; +import { ApRendererService } from "./remote/activitypub/ApRendererService.js"; +import { ApRequestService } from "./remote/activitypub/ApRequestService.js"; +import { ApResolverService } from "./remote/activitypub/ApResolverService.js"; +import { LdSignatureService } from "./remote/activitypub/LdSignatureService.js"; +import { RemoteLoggerService } from "./remote/RemoteLoggerService.js"; +import { ResolveUserService } from "./remote/ResolveUserService.js"; +import { WebfingerService } from "./remote/WebfingerService.js"; +import { ApImageService } from "./remote/activitypub/models/ApImageService.js"; +import { ApMentionService } from "./remote/activitypub/models/ApMentionService.js"; +import { ApNoteService } from "./remote/activitypub/models/ApNoteService.js"; +import { ApPersonService } from "./remote/activitypub/models/ApPersonService.js"; +import { ApQuestionService } from "./remote/activitypub/models/ApQuestionService.js"; +import { QueueModule } from "./queue/QueueModule.js"; +import { QueueService } from "./QueueService.js"; +import { LoggerService } from "./LoggerService.js"; +import type { Provider } from "@nestjs/common"; //#region 文字列ベースでのinjection用(循環参照対応のため) -const $LoggerService: Provider = { provide: 'LoggerService', useExisting: LoggerService }; -const $AccountUpdateService: Provider = { provide: 'AccountUpdateService', useExisting: AccountUpdateService }; -const $AiService: Provider = { provide: 'AiService', useExisting: AiService }; -const $AntennaService: Provider = { provide: 'AntennaService', useExisting: AntennaService }; -const $AppLockService: Provider = { provide: 'AppLockService', useExisting: AppLockService }; -const $CaptchaService: Provider = { provide: 'CaptchaService', useExisting: CaptchaService }; -const $CreateNotificationService: Provider = { provide: 'CreateNotificationService', useExisting: CreateNotificationService }; -const $CreateSystemUserService: Provider = { provide: 'CreateSystemUserService', useExisting: CreateSystemUserService }; -const $CustomEmojiService: Provider = { provide: 'CustomEmojiService', useExisting: CustomEmojiService }; -const $DeleteAccountService: Provider = { provide: 'DeleteAccountService', useExisting: DeleteAccountService }; -const $DownloadService: Provider = { provide: 'DownloadService', useExisting: DownloadService }; -const $DriveService: Provider = { provide: 'DriveService', useExisting: DriveService }; -const $EmailService: Provider = { provide: 'EmailService', useExisting: EmailService }; -const $FederatedInstanceService: Provider = { provide: 'FederatedInstanceService', useExisting: FederatedInstanceService }; -const $FetchInstanceMetadataService: Provider = { provide: 'FetchInstanceMetadataService', useExisting: FetchInstanceMetadataService }; -const $GlobalEventService: Provider = { provide: 'GlobalEventService', useExisting: GlobalEventService }; -const $HashtagService: Provider = { provide: 'HashtagService', useExisting: HashtagService }; -const $HttpRequestService: Provider = { provide: 'HttpRequestService', useExisting: HttpRequestService }; -const $IdService: Provider = { provide: 'IdService', useExisting: IdService }; -const $ImageProcessingService: Provider = { provide: 'ImageProcessingService', useExisting: ImageProcessingService }; -const $InstanceActorService: Provider = { provide: 'InstanceActorService', useExisting: InstanceActorService }; -const $InternalStorageService: Provider = { provide: 'InternalStorageService', useExisting: InternalStorageService }; -const $MessagingService: Provider = { provide: 'MessagingService', useExisting: MessagingService }; -const $MetaService: Provider = { provide: 'MetaService', useExisting: MetaService }; -const $MfmService: Provider = { provide: 'MfmService', useExisting: MfmService }; -const $ModerationLogService: Provider = { provide: 'ModerationLogService', useExisting: ModerationLogService }; -const $NoteCreateService: Provider = { provide: 'NoteCreateService', useExisting: NoteCreateService }; -const $NoteDeleteService: Provider = { provide: 'NoteDeleteService', useExisting: NoteDeleteService }; -const $NotePiningService: Provider = { provide: 'NotePiningService', useExisting: NotePiningService }; -const $NoteReadService: Provider = { provide: 'NoteReadService', useExisting: NoteReadService }; -const $NotificationService: Provider = { provide: 'NotificationService', useExisting: NotificationService }; -const $PollService: Provider = { provide: 'PollService', useExisting: PollService }; -const $ProxyAccountService: Provider = { provide: 'ProxyAccountService', useExisting: ProxyAccountService }; -const $PushNotificationService: Provider = { provide: 'PushNotificationService', useExisting: PushNotificationService }; -const $QueryService: Provider = { provide: 'QueryService', useExisting: QueryService }; -const $ReactionService: Provider = { provide: 'ReactionService', useExisting: ReactionService }; -const $RelayService: Provider = { provide: 'RelayService', useExisting: RelayService }; -const $S3Service: Provider = { provide: 'S3Service', useExisting: S3Service }; -const $SignupService: Provider = { provide: 'SignupService', useExisting: SignupService }; -const $TwoFactorAuthenticationService: Provider = { provide: 'TwoFactorAuthenticationService', useExisting: TwoFactorAuthenticationService }; -const $UserBlockingService: Provider = { provide: 'UserBlockingService', useExisting: UserBlockingService }; -const $UserCacheService: Provider = { provide: 'UserCacheService', useExisting: UserCacheService }; -const $UserFollowingService: Provider = { provide: 'UserFollowingService', useExisting: UserFollowingService }; -const $UserKeypairStoreService: Provider = { provide: 'UserKeypairStoreService', useExisting: UserKeypairStoreService }; -const $UserListService: Provider = { provide: 'UserListService', useExisting: UserListService }; -const $UserMutingService: Provider = { provide: 'UserMutingService', useExisting: UserMutingService }; -const $UserSuspendService: Provider = { provide: 'UserSuspendService', useExisting: UserSuspendService }; -const $VideoProcessingService: Provider = { provide: 'VideoProcessingService', useExisting: VideoProcessingService }; -const $WebhookService: Provider = { provide: 'WebhookService', useExisting: WebhookService }; -const $UtilityService: Provider = { provide: 'UtilityService', useExisting: UtilityService }; -const $FileInfoService: Provider = { provide: 'FileInfoService', useExisting: FileInfoService }; -const $ChartLoggerService: Provider = { provide: 'ChartLoggerService', useExisting: ChartLoggerService }; -const $FederationChart: Provider = { provide: 'FederationChart', useExisting: FederationChart }; -const $NotesChart: Provider = { provide: 'NotesChart', useExisting: NotesChart }; -const $UsersChart: Provider = { provide: 'UsersChart', useExisting: UsersChart }; -const $ActiveUsersChart: Provider = { provide: 'ActiveUsersChart', useExisting: ActiveUsersChart }; -const $InstanceChart: Provider = { provide: 'InstanceChart', useExisting: InstanceChart }; -const $PerUserNotesChart: Provider = { provide: 'PerUserNotesChart', useExisting: PerUserNotesChart }; -const $DriveChart: Provider = { provide: 'DriveChart', useExisting: DriveChart }; -const $PerUserReactionsChart: Provider = { provide: 'PerUserReactionsChart', useExisting: PerUserReactionsChart }; -const $HashtagChart: Provider = { provide: 'HashtagChart', useExisting: HashtagChart }; -const $PerUserFollowingChart: Provider = { provide: 'PerUserFollowingChart', useExisting: PerUserFollowingChart }; -const $PerUserDriveChart: Provider = { provide: 'PerUserDriveChart', useExisting: PerUserDriveChart }; -const $ApRequestChart: Provider = { provide: 'ApRequestChart', useExisting: ApRequestChart }; -const $ChartManagementService: Provider = { provide: 'ChartManagementService', useExisting: ChartManagementService }; +const $LoggerService: Provider = { + provide: "LoggerService", + useExisting: LoggerService, +}; +const $AccountUpdateService: Provider = { + provide: "AccountUpdateService", + useExisting: AccountUpdateService, +}; +// const $AiService: Provider = { provide: "AiService", useExisting: AiService }; +const $AntennaService: Provider = { + provide: "AntennaService", + useExisting: AntennaService, +}; +const $AppLockService: Provider = { + provide: "AppLockService", + useExisting: AppLockService, +}; +const $CaptchaService: Provider = { + provide: "CaptchaService", + useExisting: CaptchaService, +}; +const $CreateNotificationService: Provider = { + provide: "CreateNotificationService", + useExisting: CreateNotificationService, +}; +const $CreateSystemUserService: Provider = { + provide: "CreateSystemUserService", + useExisting: CreateSystemUserService, +}; +const $CustomEmojiService: Provider = { + provide: "CustomEmojiService", + useExisting: CustomEmojiService, +}; +const $DeleteAccountService: Provider = { + provide: "DeleteAccountService", + useExisting: DeleteAccountService, +}; +const $DownloadService: Provider = { + provide: "DownloadService", + useExisting: DownloadService, +}; +const $DriveService: Provider = { + provide: "DriveService", + useExisting: DriveService, +}; +const $EmailService: Provider = { + provide: "EmailService", + useExisting: EmailService, +}; +const $FederatedInstanceService: Provider = { + provide: "FederatedInstanceService", + useExisting: FederatedInstanceService, +}; +const $FetchInstanceMetadataService: Provider = { + provide: "FetchInstanceMetadataService", + useExisting: FetchInstanceMetadataService, +}; +const $GlobalEventService: Provider = { + provide: "GlobalEventService", + useExisting: GlobalEventService, +}; +const $HashtagService: Provider = { + provide: "HashtagService", + useExisting: HashtagService, +}; +const $HttpRequestService: Provider = { + provide: "HttpRequestService", + useExisting: HttpRequestService, +}; +const $IdService: Provider = { provide: "IdService", useExisting: IdService }; +const $ImageProcessingService: Provider = { + provide: "ImageProcessingService", + useExisting: ImageProcessingService, +}; +const $InstanceActorService: Provider = { + provide: "InstanceActorService", + useExisting: InstanceActorService, +}; +const $InternalStorageService: Provider = { + provide: "InternalStorageService", + useExisting: InternalStorageService, +}; +const $MessagingService: Provider = { + provide: "MessagingService", + useExisting: MessagingService, +}; +const $MetaService: Provider = { + provide: "MetaService", + useExisting: MetaService, +}; +const $MfmService: Provider = { + provide: "MfmService", + useExisting: MfmService, +}; +const $ModerationLogService: Provider = { + provide: "ModerationLogService", + useExisting: ModerationLogService, +}; +const $NoteCreateService: Provider = { + provide: "NoteCreateService", + useExisting: NoteCreateService, +}; +const $NoteDeleteService: Provider = { + provide: "NoteDeleteService", + useExisting: NoteDeleteService, +}; +const $NotePiningService: Provider = { + provide: "NotePiningService", + useExisting: NotePiningService, +}; +const $NoteReadService: Provider = { + provide: "NoteReadService", + useExisting: NoteReadService, +}; +const $NotificationService: Provider = { + provide: "NotificationService", + useExisting: NotificationService, +}; +const $PollService: Provider = { + provide: "PollService", + useExisting: PollService, +}; +const $ProxyAccountService: Provider = { + provide: "ProxyAccountService", + useExisting: ProxyAccountService, +}; +const $PushNotificationService: Provider = { + provide: "PushNotificationService", + useExisting: PushNotificationService, +}; +const $QueryService: Provider = { + provide: "QueryService", + useExisting: QueryService, +}; +const $ReactionService: Provider = { + provide: "ReactionService", + useExisting: ReactionService, +}; +const $RelayService: Provider = { + provide: "RelayService", + useExisting: RelayService, +}; +const $S3Service: Provider = { provide: "S3Service", useExisting: S3Service }; +const $SignupService: Provider = { + provide: "SignupService", + useExisting: SignupService, +}; +const $TwoFactorAuthenticationService: Provider = { + provide: "TwoFactorAuthenticationService", + useExisting: TwoFactorAuthenticationService, +}; +const $UserBlockingService: Provider = { + provide: "UserBlockingService", + useExisting: UserBlockingService, +}; +const $UserCacheService: Provider = { + provide: "UserCacheService", + useExisting: UserCacheService, +}; +const $UserFollowingService: Provider = { + provide: "UserFollowingService", + useExisting: UserFollowingService, +}; +const $UserKeypairStoreService: Provider = { + provide: "UserKeypairStoreService", + useExisting: UserKeypairStoreService, +}; +const $UserListService: Provider = { + provide: "UserListService", + useExisting: UserListService, +}; +const $UserMutingService: Provider = { + provide: "UserMutingService", + useExisting: UserMutingService, +}; +const $UserSuspendService: Provider = { + provide: "UserSuspendService", + useExisting: UserSuspendService, +}; +const $VideoProcessingService: Provider = { + provide: "VideoProcessingService", + useExisting: VideoProcessingService, +}; +const $WebhookService: Provider = { + provide: "WebhookService", + useExisting: WebhookService, +}; +const $UtilityService: Provider = { + provide: "UtilityService", + useExisting: UtilityService, +}; +const $FileInfoService: Provider = { + provide: "FileInfoService", + useExisting: FileInfoService, +}; +const $ChartLoggerService: Provider = { + provide: "ChartLoggerService", + useExisting: ChartLoggerService, +}; +const $FederationChart: Provider = { + provide: "FederationChart", + useExisting: FederationChart, +}; +const $NotesChart: Provider = { + provide: "NotesChart", + useExisting: NotesChart, +}; +const $UsersChart: Provider = { + provide: "UsersChart", + useExisting: UsersChart, +}; +const $ActiveUsersChart: Provider = { + provide: "ActiveUsersChart", + useExisting: ActiveUsersChart, +}; +const $InstanceChart: Provider = { + provide: "InstanceChart", + useExisting: InstanceChart, +}; +const $PerUserNotesChart: Provider = { + provide: "PerUserNotesChart", + useExisting: PerUserNotesChart, +}; +const $DriveChart: Provider = { + provide: "DriveChart", + useExisting: DriveChart, +}; +const $PerUserReactionsChart: Provider = { + provide: "PerUserReactionsChart", + useExisting: PerUserReactionsChart, +}; +const $HashtagChart: Provider = { + provide: "HashtagChart", + useExisting: HashtagChart, +}; +const $PerUserFollowingChart: Provider = { + provide: "PerUserFollowingChart", + useExisting: PerUserFollowingChart, +}; +const $PerUserDriveChart: Provider = { + provide: "PerUserDriveChart", + useExisting: PerUserDriveChart, +}; +const $ApRequestChart: Provider = { + provide: "ApRequestChart", + useExisting: ApRequestChart, +}; +const $ChartManagementService: Provider = { + provide: "ChartManagementService", + useExisting: ChartManagementService, +}; -const $AbuseUserReportEntityService: Provider = { provide: 'AbuseUserReportEntityService', useExisting: AbuseUserReportEntityService }; -const $AntennaEntityService: Provider = { provide: 'AntennaEntityService', useExisting: AntennaEntityService }; -const $AppEntityService: Provider = { provide: 'AppEntityService', useExisting: AppEntityService }; -const $AuthSessionEntityService: Provider = { provide: 'AuthSessionEntityService', useExisting: AuthSessionEntityService }; -const $BlockingEntityService: Provider = { provide: 'BlockingEntityService', useExisting: BlockingEntityService }; -const $ChannelEntityService: Provider = { provide: 'ChannelEntityService', useExisting: ChannelEntityService }; -const $ClipEntityService: Provider = { provide: 'ClipEntityService', useExisting: ClipEntityService }; -const $DriveFileEntityService: Provider = { provide: 'DriveFileEntityService', useExisting: DriveFileEntityService }; -const $DriveFolderEntityService: Provider = { provide: 'DriveFolderEntityService', useExisting: DriveFolderEntityService }; -const $EmojiEntityService: Provider = { provide: 'EmojiEntityService', useExisting: EmojiEntityService }; -const $FollowingEntityService: Provider = { provide: 'FollowingEntityService', useExisting: FollowingEntityService }; -const $FollowRequestEntityService: Provider = { provide: 'FollowRequestEntityService', useExisting: FollowRequestEntityService }; -const $GalleryLikeEntityService: Provider = { provide: 'GalleryLikeEntityService', useExisting: GalleryLikeEntityService }; -const $GalleryPostEntityService: Provider = { provide: 'GalleryPostEntityService', useExisting: GalleryPostEntityService }; -const $HashtagEntityService: Provider = { provide: 'HashtagEntityService', useExisting: HashtagEntityService }; -const $InstanceEntityService: Provider = { provide: 'InstanceEntityService', useExisting: InstanceEntityService }; -const $MessagingMessageEntityService: Provider = { provide: 'MessagingMessageEntityService', useExisting: MessagingMessageEntityService }; -const $ModerationLogEntityService: Provider = { provide: 'ModerationLogEntityService', useExisting: ModerationLogEntityService }; -const $MutingEntityService: Provider = { provide: 'MutingEntityService', useExisting: MutingEntityService }; -const $NoteEntityService: Provider = { provide: 'NoteEntityService', useExisting: NoteEntityService }; -const $NoteFavoriteEntityService: Provider = { provide: 'NoteFavoriteEntityService', useExisting: NoteFavoriteEntityService }; -const $NoteReactionEntityService: Provider = { provide: 'NoteReactionEntityService', useExisting: NoteReactionEntityService }; -const $NotificationEntityService: Provider = { provide: 'NotificationEntityService', useExisting: NotificationEntityService }; -const $PageEntityService: Provider = { provide: 'PageEntityService', useExisting: PageEntityService }; -const $PageLikeEntityService: Provider = { provide: 'PageLikeEntityService', useExisting: PageLikeEntityService }; -const $SigninEntityService: Provider = { provide: 'SigninEntityService', useExisting: SigninEntityService }; -const $UserEntityService: Provider = { provide: 'UserEntityService', useExisting: UserEntityService }; -const $UserGroupEntityService: Provider = { provide: 'UserGroupEntityService', useExisting: UserGroupEntityService }; -const $UserGroupInvitationEntityService: Provider = { provide: 'UserGroupInvitationEntityService', useExisting: UserGroupInvitationEntityService }; -const $UserListEntityService: Provider = { provide: 'UserListEntityService', useExisting: UserListEntityService }; +const $AbuseUserReportEntityService: Provider = { + provide: "AbuseUserReportEntityService", + useExisting: AbuseUserReportEntityService, +}; +const $AntennaEntityService: Provider = { + provide: "AntennaEntityService", + useExisting: AntennaEntityService, +}; +const $AppEntityService: Provider = { + provide: "AppEntityService", + useExisting: AppEntityService, +}; +const $AuthSessionEntityService: Provider = { + provide: "AuthSessionEntityService", + useExisting: AuthSessionEntityService, +}; +const $BlockingEntityService: Provider = { + provide: "BlockingEntityService", + useExisting: BlockingEntityService, +}; +const $ChannelEntityService: Provider = { + provide: "ChannelEntityService", + useExisting: ChannelEntityService, +}; +const $ClipEntityService: Provider = { + provide: "ClipEntityService", + useExisting: ClipEntityService, +}; +const $DriveFileEntityService: Provider = { + provide: "DriveFileEntityService", + useExisting: DriveFileEntityService, +}; +const $DriveFolderEntityService: Provider = { + provide: "DriveFolderEntityService", + useExisting: DriveFolderEntityService, +}; +const $EmojiEntityService: Provider = { + provide: "EmojiEntityService", + useExisting: EmojiEntityService, +}; +const $FollowingEntityService: Provider = { + provide: "FollowingEntityService", + useExisting: FollowingEntityService, +}; +const $FollowRequestEntityService: Provider = { + provide: "FollowRequestEntityService", + useExisting: FollowRequestEntityService, +}; +const $GalleryLikeEntityService: Provider = { + provide: "GalleryLikeEntityService", + useExisting: GalleryLikeEntityService, +}; +const $GalleryPostEntityService: Provider = { + provide: "GalleryPostEntityService", + useExisting: GalleryPostEntityService, +}; +const $HashtagEntityService: Provider = { + provide: "HashtagEntityService", + useExisting: HashtagEntityService, +}; +const $InstanceEntityService: Provider = { + provide: "InstanceEntityService", + useExisting: InstanceEntityService, +}; +const $MessagingMessageEntityService: Provider = { + provide: "MessagingMessageEntityService", + useExisting: MessagingMessageEntityService, +}; +const $ModerationLogEntityService: Provider = { + provide: "ModerationLogEntityService", + useExisting: ModerationLogEntityService, +}; +const $MutingEntityService: Provider = { + provide: "MutingEntityService", + useExisting: MutingEntityService, +}; +const $NoteEntityService: Provider = { + provide: "NoteEntityService", + useExisting: NoteEntityService, +}; +const $NoteFavoriteEntityService: Provider = { + provide: "NoteFavoriteEntityService", + useExisting: NoteFavoriteEntityService, +}; +const $NoteReactionEntityService: Provider = { + provide: "NoteReactionEntityService", + useExisting: NoteReactionEntityService, +}; +const $NotificationEntityService: Provider = { + provide: "NotificationEntityService", + useExisting: NotificationEntityService, +}; +const $PageEntityService: Provider = { + provide: "PageEntityService", + useExisting: PageEntityService, +}; +const $PageLikeEntityService: Provider = { + provide: "PageLikeEntityService", + useExisting: PageLikeEntityService, +}; +const $SigninEntityService: Provider = { + provide: "SigninEntityService", + useExisting: SigninEntityService, +}; +const $UserEntityService: Provider = { + provide: "UserEntityService", + useExisting: UserEntityService, +}; +const $UserGroupEntityService: Provider = { + provide: "UserGroupEntityService", + useExisting: UserGroupEntityService, +}; +const $UserGroupInvitationEntityService: Provider = { + provide: "UserGroupInvitationEntityService", + useExisting: UserGroupInvitationEntityService, +}; +const $UserListEntityService: Provider = { + provide: "UserListEntityService", + useExisting: UserListEntityService, +}; -const $ApAudienceService: Provider = { provide: 'ApAudienceService', useExisting: ApAudienceService }; -const $ApDbResolverService: Provider = { provide: 'ApDbResolverService', useExisting: ApDbResolverService }; -const $ApDeliverManagerService: Provider = { provide: 'ApDeliverManagerService', useExisting: ApDeliverManagerService }; -const $ApInboxService: Provider = { provide: 'ApInboxService', useExisting: ApInboxService }; -const $ApLoggerService: Provider = { provide: 'ApLoggerService', useExisting: ApLoggerService }; -const $ApMfmService: Provider = { provide: 'ApMfmService', useExisting: ApMfmService }; -const $ApRendererService: Provider = { provide: 'ApRendererService', useExisting: ApRendererService }; -const $ApRequestService: Provider = { provide: 'ApRequestService', useExisting: ApRequestService }; -const $ApResolverService: Provider = { provide: 'ApResolverService', useExisting: ApResolverService }; -const $LdSignatureService: Provider = { provide: 'LdSignatureService', useExisting: LdSignatureService }; -const $RemoteLoggerService: Provider = { provide: 'RemoteLoggerService', useExisting: RemoteLoggerService }; -const $ResolveUserService: Provider = { provide: 'ResolveUserService', useExisting: ResolveUserService }; -const $WebfingerService: Provider = { provide: 'WebfingerService', useExisting: WebfingerService }; -const $ApImageService: Provider = { provide: 'ApImageService', useExisting: ApImageService }; -const $ApMentionService: Provider = { provide: 'ApMentionService', useExisting: ApMentionService }; -const $ApNoteService: Provider = { provide: 'ApNoteService', useExisting: ApNoteService }; -const $ApPersonService: Provider = { provide: 'ApPersonService', useExisting: ApPersonService }; -const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting: ApQuestionService }; +const $ApAudienceService: Provider = { + provide: "ApAudienceService", + useExisting: ApAudienceService, +}; +const $ApDbResolverService: Provider = { + provide: "ApDbResolverService", + useExisting: ApDbResolverService, +}; +const $ApDeliverManagerService: Provider = { + provide: "ApDeliverManagerService", + useExisting: ApDeliverManagerService, +}; +const $ApInboxService: Provider = { + provide: "ApInboxService", + useExisting: ApInboxService, +}; +const $ApLoggerService: Provider = { + provide: "ApLoggerService", + useExisting: ApLoggerService, +}; +const $ApMfmService: Provider = { + provide: "ApMfmService", + useExisting: ApMfmService, +}; +const $ApRendererService: Provider = { + provide: "ApRendererService", + useExisting: ApRendererService, +}; +const $ApRequestService: Provider = { + provide: "ApRequestService", + useExisting: ApRequestService, +}; +const $ApResolverService: Provider = { + provide: "ApResolverService", + useExisting: ApResolverService, +}; +const $LdSignatureService: Provider = { + provide: "LdSignatureService", + useExisting: LdSignatureService, +}; +const $RemoteLoggerService: Provider = { + provide: "RemoteLoggerService", + useExisting: RemoteLoggerService, +}; +const $ResolveUserService: Provider = { + provide: "ResolveUserService", + useExisting: ResolveUserService, +}; +const $WebfingerService: Provider = { + provide: "WebfingerService", + useExisting: WebfingerService, +}; +const $ApImageService: Provider = { + provide: "ApImageService", + useExisting: ApImageService, +}; +const $ApMentionService: Provider = { + provide: "ApMentionService", + useExisting: ApMentionService, +}; +const $ApNoteService: Provider = { + provide: "ApNoteService", + useExisting: ApNoteService, +}; +const $ApPersonService: Provider = { + provide: "ApPersonService", + useExisting: ApPersonService, +}; +const $ApQuestionService: Provider = { + provide: "ApQuestionService", + useExisting: ApQuestionService, +}; //#endregion @Module({ - imports: [ - QueueModule, - ], + imports: [QueueModule], providers: [ LoggerService, AccountUpdateService, - AiService, + // AiService, AntennaService, AppLockService, CaptchaService, @@ -358,7 +686,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting //#region 文字列ベースでのinjection用(循環参照対応のため) $LoggerService, $AccountUpdateService, - $AiService, + // $AiService, $AntennaService, $AppLockService, $CaptchaService, @@ -475,7 +803,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting QueueModule, LoggerService, AccountUpdateService, - AiService, + // AiService, AntennaService, AppLockService, CaptchaService, @@ -590,7 +918,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting //#region 文字列ベースでのinjection用(循環参照対応のため) $LoggerService, $AccountUpdateService, - $AiService, + // $AiService, $AntennaService, $AppLockService, $CaptchaService, @@ -703,4 +1031,4 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting //#endregion ], }) -export class CoreModule {} +export class CoreModule { } diff --git a/packages/backend/src/core/FileInfoService.ts b/packages/backend/src/core/FileInfoService.ts index fd8a4fdd3..235c7dced 100644 --- a/packages/backend/src/core/FileInfoService.ts +++ b/packages/backend/src/core/FileInfoService.ts @@ -1,19 +1,19 @@ -import * as fs from 'node:fs'; -import * as crypto from 'node:crypto'; -import { join } from 'node:path'; -import * as stream from 'node:stream'; -import * as util from 'node:util'; -import { Inject, Injectable } from '@nestjs/common'; -import { FSWatcher } from 'chokidar'; -import { fileTypeFromFile } from 'file-type'; -import FFmpeg from 'fluent-ffmpeg'; -import isSvg from 'is-svg'; -import probeImageSize from 'probe-image-size'; -import { type predictionType } from 'nsfwjs'; -import sharp from 'sharp'; -import { encode } from 'blurhash'; -import { createTempDir } from '@/misc/create-temp.js'; -import { AiService } from '@/core/AiService.js'; +import * as fs from "node:fs"; +import * as crypto from "node:crypto"; +import { join } from "node:path"; +import * as stream from "node:stream"; +import * as util from "node:util"; +import { Inject, Injectable } from "@nestjs/common"; +import { FSWatcher } from "chokidar"; +import { fileTypeFromFile } from "file-type"; +import FFmpeg from "fluent-ffmpeg"; +import isSvg from "is-svg"; +import probeImageSize from "probe-image-size"; +import { type predictionType } from "nsfwjs"; +import sharp from "sharp"; +import { encode } from "blurhash"; +import { createTempDir } from "@/misc/create-temp.js"; +// import { AiService } from '@/core/AiService.js'; const pipeline = util.promisify(stream.pipeline); @@ -34,30 +34,30 @@ export type FileInfo = { }; const TYPE_OCTET_STREAM = { - mime: 'application/octet-stream', + mime: "application/octet-stream", ext: null, }; const TYPE_SVG = { - mime: 'image/svg+xml', - ext: 'svg', + mime: "image/svg+xml", + ext: "svg", }; @Injectable() export class FileInfoService { - constructor( - private aiService: AiService, - ) { - } + constructor() {} // private aiService: AiService, /** * Get file information */ - public async getFileInfo(path: string, opts: { - skipSensitiveDetection: boolean; - sensitiveThreshold?: number; - sensitiveThresholdForPorn?: number; - enableSensitiveMediaDetectionForVideos?: boolean; - }): Promise { + public async getFileInfo( + path: string, + opts: { + skipSensitiveDetection: boolean; + sensitiveThreshold?: number; + sensitiveThresholdForPorn?: number; + enableSensitiveMediaDetectionForVideos?: boolean; + }, + ): Promise { const warnings = [] as string[]; const size = await this.getFileSize(path); @@ -70,24 +70,36 @@ export class FileInfoService { let height: number | undefined; let orientation: number | undefined; - if (['image/jpeg', 'image/gif', 'image/png', 'image/apng', 'image/webp', 'image/bmp', 'image/tiff', 'image/svg+xml', 'image/vnd.adobe.photoshop'].includes(type.mime)) { - const imageSize = await this.detectImageSize(path).catch(e => { + if ( + [ + "image/jpeg", + "image/gif", + "image/png", + "image/apng", + "image/webp", + "image/bmp", + "image/tiff", + "image/svg+xml", + "image/vnd.adobe.photoshop", + ].includes(type.mime) + ) { + const imageSize = await this.detectImageSize(path).catch((e) => { warnings.push(`detectImageSize failed: ${e}`); return undefined; }); // うまく判定できない画像は octet-stream にする if (!imageSize) { - warnings.push('cannot detect image dimensions'); + warnings.push("cannot detect image dimensions"); type = TYPE_OCTET_STREAM; - } else if (imageSize.wUnits === 'px') { + } else if (imageSize.wUnits === "px") { width = imageSize.width; height = imageSize.height; orientation = imageSize.orientation; // 制限を超えている画像は octet-stream にする if (imageSize.width > 16383 || imageSize.height > 16383) { - warnings.push('image dimensions exceeds limits'); + warnings.push("image dimensions exceeds limits"); type = TYPE_OCTET_STREAM; } } else { @@ -97,8 +109,17 @@ export class FileInfoService { let blurhash: string | undefined; - if (['image/jpeg', 'image/gif', 'image/png', 'image/apng', 'image/webp', 'image/svg+xml'].includes(type.mime)) { - blurhash = await this.getBlurhash(path).catch(e => { + if ( + [ + "image/jpeg", + "image/gif", + "image/png", + "image/apng", + "image/webp", + "image/svg+xml", + ].includes(type.mime) + ) { + blurhash = await this.getBlurhash(path).catch((e) => { warnings.push(`getBlurhash failed: ${e}`); return undefined; }); @@ -114,11 +135,14 @@ export class FileInfoService { opts.sensitiveThreshold ?? 0.5, opts.sensitiveThresholdForPorn ?? 0.75, opts.enableSensitiveMediaDetectionForVideos ?? false, - ).then(value => { - [sensitive, porn] = value; - }, error => { - warnings.push(`detectSensitivity failed: ${error}`); - }); + ).then( + (value) => { + [sensitive, porn] = value; + }, + (error) => { + warnings.push(`detectSensitivity failed: ${error}`); + }, + ); } return { @@ -135,71 +159,100 @@ export class FileInfoService { }; } - private async detectSensitivity(source: string, mime: string, sensitiveThreshold: number, sensitiveThresholdForPorn: number, analyzeVideo: boolean): Promise<[sensitive: boolean, porn: boolean]> { + private async detectSensitivity( + source: string, + mime: string, + sensitiveThreshold: number, + sensitiveThresholdForPorn: number, + analyzeVideo: boolean, + ): Promise<[sensitive: boolean, porn: boolean]> { let sensitive = false; let porn = false; - - function judgePrediction(result: readonly predictionType[]): [sensitive: boolean, porn: boolean] { + + function judgePrediction( + result: readonly predictionType[], + ): [sensitive: boolean, porn: boolean] { let sensitive = false; let porn = false; - - if ((result.find(x => x.className === 'Sexy')?.probability ?? 0) > sensitiveThreshold) sensitive = true; - if ((result.find(x => x.className === 'Hentai')?.probability ?? 0) > sensitiveThreshold) sensitive = true; - if ((result.find(x => x.className === 'Porn')?.probability ?? 0) > sensitiveThreshold) sensitive = true; - - if ((result.find(x => x.className === 'Porn')?.probability ?? 0) > sensitiveThresholdForPorn) porn = true; - + + if ( + (result.find((x) => x.className === "Sexy")?.probability ?? 0) > + sensitiveThreshold + ) + sensitive = true; + if ( + (result.find((x) => x.className === "Hentai")?.probability ?? 0) > + sensitiveThreshold + ) + sensitive = true; + if ( + (result.find((x) => x.className === "Porn")?.probability ?? 0) > + sensitiveThreshold + ) + sensitive = true; + + if ( + (result.find((x) => x.className === "Porn")?.probability ?? 0) > + sensitiveThresholdForPorn + ) + porn = true; + return [sensitive, porn]; } - - if (['image/jpeg', 'image/png', 'image/webp'].includes(mime)) { - const result = await this.aiService.detectSensitive(source); - if (result) { - [sensitive, porn] = judgePrediction(result); - } - } else if (analyzeVideo && (mime === 'image/apng' || mime.startsWith('video/'))) { + + if (["image/jpeg", "image/png", "image/webp"].includes(mime)) { + // const result = await this.aiService.detectSensitive(source); + // if (result) { + // [sensitive, porn] = judgePrediction(result); + // } + } else if ( + analyzeVideo && + (mime === "image/apng" || mime.startsWith("video/")) + ) { const [outDir, disposeOutDir] = await createTempDir(); try { const command = FFmpeg() .input(source) .inputOptions([ - '-skip_frame', 'nokey', // 可能ならキーフレームのみを取得してほしいとする(そうなるとは限らない) - '-lowres', '3', // 元の画質でデコードする必要はないので 1/8 画質でデコードしてもよいとする(そうなるとは限らない) + "-skip_frame", + "nokey", // 可能ならキーフレームのみを取得してほしいとする(そうなるとは限らない) + "-lowres", + "3", // 元の画質でデコードする必要はないので 1/8 画質でデコードしてもよいとする(そうなるとは限らない) ]) .noAudio() .videoFilters([ { - filter: 'select', // フレームのフィルタリング + filter: "select", // フレームのフィルタリング options: { - e: 'eq(pict_type,PICT_TYPE_I)', // I-Frame のみをフィルタする(VP9 とかはデコードしてみないとわからないっぽい) + e: "eq(pict_type,PICT_TYPE_I)", // I-Frame のみをフィルタする(VP9 とかはデコードしてみないとわからないっぽい) }, }, { - filter: 'blackframe', // 暗いフレームの検出 + filter: "blackframe", // 暗いフレームの検出 options: { - amount: '0', // 暗さに関わらず全てのフレームで測定値を取る + amount: "0", // 暗さに関わらず全てのフレームで測定値を取る }, }, { - filter: 'metadata', + filter: "metadata", options: { - mode: 'select', // フレーム選択モード - key: 'lavfi.blackframe.pblack', // フレームにおける暗部の百分率(前のフィルタからのメタデータを参照する) - value: '50', - function: 'less', // 50% 未満のフレームを選択する(50% 以上暗部があるフレームだと誤検知を招くかもしれないので) + mode: "select", // フレーム選択モード + key: "lavfi.blackframe.pblack", // フレームにおける暗部の百分率(前のフィルタからのメタデータを参照する) + value: "50", + function: "less", // 50% 未満のフレームを選択する(50% 以上暗部があるフレームだと誤検知を招くかもしれないので) }, }, { - filter: 'scale', + filter: "scale", options: { w: 299, h: 299, }, }, ]) - .format('image2') - .output(join(outDir, '%d.png')) - .outputOptions(['-vsync', '0']); // 可変フレームレートにすることで穴埋めをさせない + .format("image2") + .output(join(outDir, "%d.png")) + .outputOptions(["-vsync", "0"]); // 可変フレームレートにすることで穴埋めをさせない const results: ReturnType[] = []; let frameIndex = 0; let targetIndex = 0; @@ -212,53 +265,63 @@ export class FileInfoService { } targetIndex = nextIndex; nextIndex += index; // fibonacci sequence によってフレーム数制限を掛ける - const result = await this.aiService.detectSensitive(path); - if (result) { - results.push(judgePrediction(result)); - } + // const result = await this.aiService.detectSensitive(path); + // if (result) { + // results.push(judgePrediction(result)); + // } } finally { fs.promises.unlink(path); } } - sensitive = results.filter(x => x[0]).length >= Math.ceil(results.length * sensitiveThreshold); - porn = results.filter(x => x[1]).length >= Math.ceil(results.length * sensitiveThresholdForPorn); + sensitive = + results.filter((x) => x[0]).length >= + Math.ceil(results.length * sensitiveThreshold); + porn = + results.filter((x) => x[1]).length >= + Math.ceil(results.length * sensitiveThresholdForPorn); } finally { disposeOutDir(); } } - + return [sensitive, porn]; } - - private async *asyncIterateFrames(cwd: string, command: FFmpeg.FfmpegCommand): AsyncGenerator { + + private async *asyncIterateFrames( + cwd: string, + command: FFmpeg.FfmpegCommand, + ): AsyncGenerator { const watcher = new FSWatcher({ cwd, disableGlobbing: true, }); let finished = false; - command.once('end', () => { + command.once("end", () => { finished = true; watcher.close(); }); command.run(); - for (let i = 1; true; i++) { // eslint-disable-line @typescript-eslint/no-unnecessary-condition + for (let i = 1; true; i++) { + // eslint-disable-line @typescript-eslint/no-unnecessary-condition const current = `${i}.png`; const next = `${i + 1}.png`; const framePath = join(cwd, current); if (await this.exists(join(cwd, next))) { yield framePath; - } else if (!finished) { // eslint-disable-line @typescript-eslint/no-unnecessary-condition + } else if (!finished) { + // eslint-disable-line @typescript-eslint/no-unnecessary-condition watcher.add(next); await new Promise((resolve, reject) => { - watcher.on('add', function onAdd(path) { - if (path === next) { // 次フレームの書き出しが始まっているなら、現在フレームの書き出しは終わっている + watcher.on("add", function onAdd(path) { + if (path === next) { + // 次フレームの書き出しが始まっているなら、現在フレームの書き出しは終わっている watcher.unwatch(current); - watcher.off('add', onAdd); + watcher.off("add", onAdd); resolve(); } }); - command.once('end', resolve); // 全てのフレームを処理し終わったなら、最終フレームである現在フレームの書き出しは終わっている - command.once('error', reject); + command.once("end", resolve); // 全てのフレームを処理し終わったなら、最終フレームである現在フレームの書き出しは終わっている + command.once("error", reject); }); yield framePath; } else if (await this.exists(framePath)) { @@ -268,19 +331,22 @@ export class FileInfoService { } } } - + private exists(path: string): Promise { - return fs.promises.access(path).then(() => true, () => false); + return fs.promises.access(path).then( + () => true, + () => false, + ); } /** * Detect MIME Type and extension */ public async detectType(path: string): Promise<{ - mime: string; - ext: string | null; -}> { - // Check 0 byte + mime: string; + ext: string | null; + }> { + // Check 0 byte const fileSize = await this.getFileSize(path); if (fileSize === 0) { return TYPE_OCTET_STREAM; @@ -289,8 +355,8 @@ export class FileInfoService { const type = await fileTypeFromFile(path); if (type) { - // XMLはSVGかもしれない - if (type.mime === 'application/xml' && await this.checkSvg(path)) { + // XMLはSVGかもしれない + if (type.mime === "application/xml" && (await this.checkSvg(path))) { return TYPE_SVG; } @@ -334,7 +400,7 @@ export class FileInfoService { * Calculate MD5 hash */ private async calcHash(path: string): Promise { - const hash = crypto.createHash('md5').setEncoding('hex'); + const hash = crypto.createHash("md5").setEncoding("hex"); await pipeline(fs.createReadStream(path), hash); return hash.read(); } @@ -343,12 +409,12 @@ export class FileInfoService { * Detect dimensions of image */ private async detectImageSize(path: string): Promise<{ - width: number; - height: number; - wUnits: string; - hUnits: string; - orientation?: number; -}> { + width: number; + height: number; + wUnits: string; + hUnits: string; + orientation?: number; + }> { const readable = fs.createReadStream(path); const imageSize = await probeImageSize(readable); readable.destroy(); @@ -363,7 +429,7 @@ export class FileInfoService { sharp(path) .raw() .ensureAlpha() - .resize(64, 64, { fit: 'inside' }) + .resize(64, 64, { fit: "inside" }) .toBuffer((err, buffer, { width, height }) => { if (err) return reject(err); diff --git a/packages/backend/yarn.lock b/packages/backend/yarn.lock index 598451fa8..c0b6cb3fe 100644 --- a/packages/backend/yarn.lock +++ b/packages/backend/yarn.lock @@ -401,11 +401,6 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@gar/promisify@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" - integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== - "@humanwhocodes/config-array@^0.10.4": version "0.10.4" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" @@ -430,6 +425,23 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@ioredis/commands@^1.1.1": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" + integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -747,20 +759,35 @@ methods "^1.1.2" path-to-regexp "^6.1.0" -"@mapbox/node-pre-gyp@1.0.9": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz#09a8781a3a036151cdebbe8719d6f8b25d4058bc" - integrity sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw== - dependencies: - detect-libc "^2.0.0" - https-proxy-agent "^5.0.0" - make-dir "^3.1.0" - node-fetch "^2.6.7" - nopt "^5.0.0" - npmlog "^5.0.1" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.11" +"@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz#9edec61b22c3082018a79f6d1c30289ddf3d9d11" + integrity sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw== + +"@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz#33677a275204898ad8acbf62734fc4dc0b6a4855" + integrity sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw== + +"@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz#19edf7cdc2e7063ee328403c1d895a86dd28f4bb" + integrity sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg== + +"@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz#94fb0543ba2e28766c3fc439cabbe0440ae70159" + integrity sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw== + +"@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz#4a0609ab5fe44d07c9c60a11e4484d3c38bbd6e3" + integrity sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg== + +"@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz#0aa5502d547b57abfc4ac492de68e2006e417242" + integrity sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ== "@nestjs/common@9.1.1": version "9.1.1" @@ -842,21 +869,23 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" -"@npmcli/fs@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.0.tgz#f2a21c28386e299d1a9fae8051d35ad180e33109" - integrity sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ== +"@npmcli/agent@^2.0.0": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.2.tgz#967604918e62f620a648c7975461c9c9e74fc5d5" + integrity sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og== dependencies: - "@gar/promisify" "^1.1.3" - semver "^7.3.5" + agent-base "^7.1.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.1" + lru-cache "^10.0.1" + socks-proxy-agent "^8.0.3" -"@npmcli/move-file@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.0.tgz#417f585016081a0184cef3e38902cd917a9bbd02" - integrity sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg== +"@npmcli/fs@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.1.tgz#59cdaa5adca95d135fc00f2bb53f5771575ce726" + integrity sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg== dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" + semver "^7.3.5" "@nsfw-filter/gif-frames@1.0.2": version "1.0.2" @@ -896,6 +925,11 @@ jsprim "^1.2.2" sshpk "^1.14.1" +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + "@redocly/ajv@^8.6.5": version "8.6.5" resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-8.6.5.tgz#b6e737248b791905b3f600fb329779a807f0f774" @@ -1094,90 +1128,6 @@ dependencies: defer-to-connect "^2.0.1" -"@tensorflow/tfjs-backend-cpu@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.20.0.tgz#338ec5cfc7c713355839fd85ddf90b5b59b6099a" - integrity sha512-gf075YaBLwSAAiUwa0D4GvYyUBhbJ1BVSivUNQmUfGKvIr2lIhF0qstBr033YTc3lhkbFSHEEPAHh/EfpqyjXQ== - dependencies: - "@types/seedrandom" "^2.4.28" - seedrandom "^3.0.5" - -"@tensorflow/tfjs-backend-webgl@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.20.0.tgz#1ea6dff51a62cda64bd80ff9e7861a6010924f5a" - integrity sha512-SucbyQ08re3HvRgVfarRtKFIjNM4JvIAzcXmw4vaE/HrCtPEePkGO1VrmfQoN470EdUmGiwgqAjoyBvM2VOlVg== - dependencies: - "@tensorflow/tfjs-backend-cpu" "3.20.0" - "@types/offscreencanvas" "~2019.3.0" - "@types/seedrandom" "^2.4.28" - "@types/webgl-ext" "0.0.30" - "@types/webgl2" "0.0.6" - seedrandom "^3.0.5" - -"@tensorflow/tfjs-converter@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-3.20.0.tgz#5d3d2b388775997585204bc867ecdf1e52789a38" - integrity sha512-8EIYqtQwvSYw9GFNW2OFU8Qnl/FQF/kKAsQJoORYaZ419WJo+FIZWbAWDtCpJSAgkgoHH1jYWgV9H313cVmqxg== - -"@tensorflow/tfjs-core@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.20.0.tgz#b6f89ae6490099e2c0c992faa59c96f563f9eba2" - integrity sha512-L16JyVA4a8jFJXFgB9/oYZxcGq/GfLypt5dMVTyedznARZZ9SiY/UMMbo3IKl9ZylG1dOVVTpjzV3EvBYfeJXw== - dependencies: - "@types/long" "^4.0.1" - "@types/offscreencanvas" "~2019.3.0" - "@types/seedrandom" "^2.4.28" - "@types/webgl-ext" "0.0.30" - "@webgpu/types" "0.1.16" - long "4.0.0" - node-fetch "~2.6.1" - seedrandom "^3.0.5" - -"@tensorflow/tfjs-data@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-data/-/tfjs-data-3.20.0.tgz#8e267ea9f01066e0276be3226cb21b7d38711144" - integrity sha512-DiD3M/K/RYyTpOsrTL0ZUsdLgoczbSEx1+cQgCtlO3wUFoMxGYMxRTFeqp4hnJalY9MDptEqZ2gXAO1BMd2IXA== - dependencies: - "@types/node-fetch" "^2.1.2" - node-fetch "~2.6.1" - string_decoder "^1.3.0" - -"@tensorflow/tfjs-layers@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-layers/-/tfjs-layers-3.20.0.tgz#53aac3e719c9aa06cdff894e564704555e73a069" - integrity sha512-CbeDFX7XgWVsjsqp9HisbhO+a+soLt9tMNNBD/F+Rmw+YDJ5+X64iRpsMj3OWK8yKp895waoeads56UhG+Pxlw== - -"@tensorflow/tfjs-node@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-node/-/tfjs-node-3.20.0.tgz#df401f99a6e7690d64f35136910d541cd337ba0f" - integrity sha512-lhMaqydtFNQ89kiET2nNMsV/rhOVa/Xh+hUHpxJP5e6KpVBzACmcJD8MjxM122G2EBntbf/vOQUAfnbX9AI9PA== - dependencies: - "@mapbox/node-pre-gyp" "1.0.9" - "@tensorflow/tfjs" "3.20.0" - adm-zip "^0.5.2" - google-protobuf "^3.9.2" - https-proxy-agent "^2.2.1" - progress "^2.0.0" - rimraf "^2.6.2" - tar "^4.4.6" - -"@tensorflow/tfjs@3.20.0": - version "3.20.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs/-/tfjs-3.20.0.tgz#4a525be52c72deb9964fe2e5a0abaae04b95d862" - integrity sha512-Vx6MBFgZs+o413a/tM9nLdo4LM5U8Rh3d1fB8ioPL4j8dsqoqfCeee/215J3zzWPHIiSqv3pcD7bkK3fDA27GQ== - dependencies: - "@tensorflow/tfjs-backend-cpu" "3.20.0" - "@tensorflow/tfjs-backend-webgl" "3.20.0" - "@tensorflow/tfjs-converter" "3.20.0" - "@tensorflow/tfjs-core" "3.20.0" - "@tensorflow/tfjs-data" "3.20.0" - "@tensorflow/tfjs-layers" "3.20.0" - argparse "^1.0.10" - chalk "^4.1.0" - core-js "3" - regenerator-runtime "^0.13.5" - yargs "^16.0.3" - "@tokenizer/token@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" @@ -1575,11 +1525,6 @@ dependencies: "@types/koa" "*" -"@types/long@^4.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" - integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== - "@types/mime-types@2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@types/mime-types/-/mime-types-2.1.1.tgz#d9ba43490fa3a3df958759adf69396c3532cf2c1" @@ -1602,14 +1547,6 @@ dependencies: node-fetch "*" -"@types/node-fetch@^2.1.2": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" - integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== - dependencies: - "@types/node" "*" - form-data "^3.0.0" - "@types/node@*": version "16.6.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.6.2.tgz#331b7b9f8621c638284787c5559423822fdffc50" @@ -1639,11 +1576,6 @@ dependencies: "@types/node" "*" -"@types/offscreencanvas@~2019.3.0": - version "2019.3.0" - resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz#3336428ec7e9180cf4566dfea5da04eb586a6553" - integrity sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q== - "@types/pg@8.6.5": version "8.6.5" resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.6.5.tgz#2dce9cb468a6a5e0f1296a59aea3ac75dd27b702" @@ -1730,11 +1662,6 @@ dependencies: htmlparser2 "^6.0.0" -"@types/seedrandom@^2.4.28": - version "2.4.30" - resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-2.4.30.tgz#d2efe425869b84163c2d56e779dddadb9372cbfa" - integrity sha512-AnxLHewubLVzoF/A4qdxBGHCKifw8cY32iro3DQX9TPcetE95zBeVt3jnsvtvAUf1vwzMfwzp4t/L2yqPlnjkQ== - "@types/semver@7.3.12": version "7.3.12" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c" @@ -1806,16 +1733,6 @@ dependencies: "@types/node" "*" -"@types/webgl-ext@0.0.30": - version "0.0.30" - resolved "https://registry.yarnpkg.com/@types/webgl-ext/-/webgl-ext-0.0.30.tgz#0ce498c16a41a23d15289e0b844d945b25f0fb9d" - integrity sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg== - -"@types/webgl2@0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.6.tgz#1ea2db791362bd8521548d664dbd3c5311cdf4b6" - integrity sha512-50GQhDVTq/herLMiqSQkdtRu+d5q/cWHn4VvKJtrj4DJAjo1MNkWYa2MA41BaBO1q1HgsUjuQvEOk0QHvlnAaQ== - "@types/websocket@1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/websocket/-/websocket-1.0.5.tgz#3fb80ed8e07f88e51961211cd3682a3a4a81569c" @@ -1929,11 +1846,6 @@ "@typescript-eslint/types" "5.38.0" eslint-visitor-keys "^3.3.0" -"@webgpu/types@0.1.16": - version "0.1.16" - resolved "https://registry.yarnpkg.com/@webgpu/types/-/types-0.1.16.tgz#1f05497b95b7c013facf7035c8e21784645f5cc4" - integrity sha512-9E61voMP4+Rze02jlTXud++Htpjyyk8vw5Hyw9FGRrmhHQg2GqbuOfwf5Klrb8vTxc2XWI3EfO7RUHMpxTj26A== - abab@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" @@ -1944,6 +1856,11 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== +abbrev@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" + integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -2002,33 +1919,19 @@ acorn@^8.8.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== -adm-zip@^0.5.2: - version "0.5.9" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.5.9.tgz#b33691028333821c0cf95c31374c5462f2905a83" - integrity sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg== - -agent-base@6, agent-base@^6.0.2: +agent-base@6: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" -agent-base@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" - integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== +agent-base@^7.0.2, agent-base@^7.1.0, agent-base@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" + integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== dependencies: - es6-promisify "^5.0.0" - -agentkeepalive@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" - integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== - dependencies: - debug "^4.1.0" - depd "^1.1.2" - humanize-ms "^1.2.1" + debug "^4.3.4" aggregate-error@^3.0.0: version "3.1.0" @@ -2100,6 +2003,11 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" + integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -2127,6 +2035,11 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -2163,11 +2076,6 @@ aproba@^1.0.3: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== -"aproba@^1.0.3 || ^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== - archiver-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" @@ -2197,14 +2105,6 @@ archiver@5.3.1: tar-stream "^2.2.0" zip-stream "^4.1.0" -are-we-there-yet@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" - integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - are-we-there-yet@~1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" @@ -2218,7 +2118,7 @@ arg@^4.1.0: resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== -argparse@^1.0.10, argparse@^1.0.7: +argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== @@ -2609,19 +2509,17 @@ bufferutil@^4.0.1: dependencies: node-gyp-build "~3.7.0" -bull@4.9.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/bull/-/bull-4.9.0.tgz#522a955fa045141ce2c063ab24c2c78e4ee3782e" - integrity sha512-yiaSb41dywjIhJ3i1mczjQGDmM6pLIoM1Ea0Gcf5HKDxOoEzL5i9XEEKW7fbsj7u083UEOnQ4gSWfbWIUDO6JQ== +bull@4.16.3: + version "4.16.3" + resolved "https://registry.yarnpkg.com/bull/-/bull-4.16.3.tgz#b269b25e15223895719b94b0806e3f06906dbb2e" + integrity sha512-BZbPzNiKXczfZPXBTVhcN73b+CQFHTzVb7yJi1bSYld4/8bDc9oh/j/dYTsQBgOAZIZahFeHO6dPHbVEXXCvCg== dependencies: cron-parser "^4.2.1" - debuglog "^1.0.0" get-port "^5.1.1" - ioredis "^4.28.5" + ioredis "^5.3.2" lodash "^4.17.21" - msgpackr "^1.5.2" - p-timeout "^3.2.0" - semver "^7.3.2" + msgpackr "^1.10.1" + semver "^7.5.2" uuid "^8.3.0" busboy@^0.2.11: @@ -2637,29 +2535,23 @@ bytes@3.1.0, bytes@^3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cacache@^16.1.0: - version "16.1.1" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.1.tgz#4e79fb91d3efffe0630d5ad32db55cc1b870669c" - integrity sha512-VDKN+LHyCQXaaYZ7rA/qtkURU+/yYhviUdvqEv2LT6QPZU8jpyzEkEVAcKlKLt5dJ5BRp11ym8lo3NKLluEPLg== +cacache@^18.0.0: + version "18.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.4.tgz#4601d7578dadb59c66044e157d02a3314682d6a5" + integrity sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ== dependencies: - "@npmcli/fs" "^2.1.0" - "@npmcli/move-file" "^2.0.0" - chownr "^2.0.0" - fs-minipass "^2.1.0" - glob "^8.0.1" - infer-owner "^1.0.4" - lru-cache "^7.7.1" - minipass "^3.1.6" - minipass-collect "^1.0.2" + "@npmcli/fs" "^3.1.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^10.0.1" + minipass "^7.0.3" + minipass-collect "^2.0.1" minipass-flush "^1.0.5" minipass-pipeline "^1.2.4" - mkdirp "^1.0.4" p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^9.0.0" + ssri "^10.0.0" tar "^6.1.11" - unique-filename "^1.1.1" + unique-filename "^3.0.0" cache-content-type@^1.0.0: version "1.0.1" @@ -2878,7 +2770,7 @@ chokidar@^3.3.1, chokidar@^3.5.3: optionalDependencies: fsevents "~2.1.2" -chownr@^1.1.1, chownr@^1.1.4: +chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== @@ -3012,11 +2904,6 @@ color-string@^1.9.0: color-name "^1.0.0" simple-swizzle "^0.2.2" -color-support@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - color@^4.0.1: version "4.2.3" resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" @@ -3094,7 +2981,7 @@ consola@^2.15.0: resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== -console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: +console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= @@ -3153,11 +3040,6 @@ copy-to@^2.0.1: resolved "https://registry.yarnpkg.com/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5" integrity sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU= -core-js@3: - version "3.23.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.23.3.tgz#3b977612b15da6da0c9cc4aec487e8d24f371112" - integrity sha512-oAKwkj9xcWNBAvGbT//WiCdOMpb9XQG92/Fe3ABFM/R16BsHgePG00mFOgKf7IsCtfj8tA1kHtf/VwErhriz5Q== - core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -3198,7 +3080,7 @@ cross-env@7.0.3: dependencies: cross-spawn "^7.0.1" -cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -3339,11 +3221,6 @@ debug@^4.3.3, debug@^4.3.4: dependencies: ms "2.1.2" -debuglog@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= - decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -3436,16 +3313,21 @@ denque@^1.1.0: resolved "https://registry.yarnpkg.com/denque/-/denque-1.4.1.tgz#6744ff7641c148c3f8a69c307e51235c1f4a37cf" integrity sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ== -depd@^1.1.2, depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= +denque@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== depd@^2.0.0, depd@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + destroy@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" @@ -3461,6 +3343,11 @@ detect-libc@^2.0.0: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.0.tgz#c528bc09bc6d1aa30149228240917c225448f204" integrity sha512-S55LzUl8HUav8l9E2PBTlC5PAJrHK7tkM+XXFGD+fbsbkTzhCpG6K05LxJcUOEWzMa4v6ptcMZ9s3fOdJDu0Zw== +detect-libc@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" + integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -3625,6 +3512,11 @@ duplexer2@~0.1.4: dependencies: readable-stream "^2.0.2" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -3677,6 +3569,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" @@ -3838,18 +3735,6 @@ es6-iterator@~2.0.3: es5-ext "^0.10.35" es6-symbol "^3.1.1" -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - es6-symbol@^3.1.1, es6-symbol@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" @@ -4143,6 +4028,11 @@ expect@^29.0.3: jest-message-util "^29.0.3" jest-util "^29.0.3" +exponential-backoff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== + ext@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" @@ -4340,6 +4230,14 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" +foreground-child@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" + integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -4350,15 +4248,6 @@ form-data-encoder@^2.1.2: resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.2.tgz#5996b7c236e8c418d08316055a2235226c5e4061" integrity sha512-FCaIOVTRA9E0siY6FeXid7D5yrCqpsErplUkE2a1BEiKj1BE9z6FbKB4ntDTwC4NVLie9p+4E9nX4mWwEOT05A== -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -4403,20 +4292,20 @@ fs-extra@^8.0.1: jsonfile "^4.0.0" universalify "^0.1.0" -fs-minipass@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - -fs-minipass@^2.0.0, fs-minipass@^2.1.0: +fs-minipass@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" +fs-minipass@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== + dependencies: + minipass "^7.0.3" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -4462,36 +4351,6 @@ functions-have-names@^1.2.2: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -gauge@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" - integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - object-assign "^4.1.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - -gauge@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.0.tgz#afba07aa0374a93c6219603b1fb83eaa2264d8f8" - integrity sha512-F8sU45yQpjQjxKkm1UOAhf0U/O0aFt//Fl7hsrNVto+patMHjs7dPI9mFOGUKbhrgKm0S3EjW3scMFuQmWSROw== - dependencies: - ansi-regex "^5.0.1" - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -4617,6 +4476,18 @@ glob-parent@^6.0.1: dependencies: is-glob "^4.0.3" +glob@^10.2.2, glob@^10.3.10: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + glob@^7.1.3, glob@^7.1.4: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -4641,17 +4512,6 @@ glob@^7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.1: - version "8.0.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" - integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -4688,11 +4548,6 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -google-protobuf@^3.9.2: - version "3.20.1" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.20.1.tgz#1b255c2b59bcda7c399df46c65206aa3c7a0ce8b" - integrity sha512-XMf1+O32FjYIV3CYu6Tuh5PNbfNEU5Xu22X+Xkdb/DUexFlCzhvv7d5Iirm4AOwn8lv4al1YvIhzGrg2j9Zfzw== - got@11.8.5: version "11.8.5" resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" @@ -4814,7 +4669,7 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-unicode@^2.0.0, has-unicode@^2.0.1: +has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= @@ -4893,6 +4748,11 @@ http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== +http-cache-semantics@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + http-errors@1.7.3, http-errors@^1.6.3, http-errors@^1.7.3, http-errors@~1.7.2: version "1.7.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" @@ -4923,6 +4783,14 @@ http-proxy-agent@^5.0.0: agent-base "6" debug "4" +http-proxy-agent@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -4955,14 +4823,6 @@ http_ece@1.1.0: dependencies: urlsafe-base64 "~1.0.0" -https-proxy-agent@^2.2.1: - version "2.2.4" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" - integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== - dependencies: - agent-base "^4.3.0" - debug "^3.1.0" - https-proxy-agent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" @@ -4979,6 +4839,14 @@ https-proxy-agent@^5.0.1: agent-base "6" debug "4" +https-proxy-agent@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2" + integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== + dependencies: + agent-base "^7.0.2" + debug "4" + human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -4989,13 +4857,6 @@ human-signals@^3.0.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= - dependencies: - ms "^2.0.0" - humanize-number@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/humanize-number/-/humanize-number-0.0.2.tgz#11c0af6a471643633588588048f1799541489c18" @@ -5068,11 +4929,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - inflation@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f" @@ -5101,10 +4957,10 @@ ini@^1.3.4, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== -install-artifact-from-github@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/install-artifact-from-github/-/install-artifact-from-github-1.3.1.tgz#eefaad9af35d632e5d912ad1569c1de38c3c2462" - integrity sha512-3l3Bymg2eKDsN5wQuMfgGEj2x6l5MCAv0zPL6rxHESufFVlEAKW/6oY9F1aGgvY/EgWm5+eWGRjINveL4X7Hgg== +install-artifact-from-github@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/install-artifact-from-github/-/install-artifact-from-github-1.3.5.tgz#88c96fe40e5eb21d45586d564208c648a1dbf38d" + integrity sha512-gZHC7f/cJgXz7MXlHFBxPVMsvIbev1OQN1uKQYKVJDydGNm9oYf9JstbU4Atnh/eSvk41WtEovoRm+8IF686xg== internal-slot@^1.0.3: version "1.0.3" @@ -5115,7 +4971,7 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" -ioredis@4.28.5, ioredis@^4.28.5: +ioredis@4.28.5: version "4.28.5" resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.28.5.tgz#5c149e6a8d76a7f8fa8a504ffc85b7d5b6797f9f" integrity sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A== @@ -5132,6 +4988,21 @@ ioredis@4.28.5, ioredis@^4.28.5: redis-parser "^3.0.0" standard-as-callback "^2.1.0" +ioredis@^5.3.2: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.4.1.tgz#1c56b70b759f01465913887375ed809134296f40" + integrity sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA== + dependencies: + "@ioredis/commands" "^1.1.1" + cluster-key-slot "^1.1.0" + debug "^4.3.4" + denque "^2.1.0" + lodash.defaults "^4.2.0" + lodash.isarguments "^3.1.0" + redis-errors "^1.2.0" + redis-parser "^3.0.0" + standard-as-callback "^2.1.0" + iota-array@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/iota-array/-/iota-array-1.0.0.tgz#81ef57fe5d05814cd58c2483632a99c30a0e8087" @@ -5145,6 +5016,14 @@ ip-address@^7.1.0: jsbn "1.1.0" sprintf-js "1.1.2" +ip-address@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" + integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== + dependencies: + jsbn "1.1.0" + sprintf-js "^1.1.3" + ip-cidr@3.0.10: version "3.0.10" resolved "https://registry.yarnpkg.com/ip-cidr/-/ip-cidr-3.0.10.tgz#e1a039705196d84b43858f81a243fd70def9cefc" @@ -5158,11 +5037,6 @@ ip-regex@^4.0.0, ip-regex@^4.3.0: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== -ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - ipaddr.js@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" @@ -5458,6 +5332,11 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +isexe@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" + integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== + isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -5510,6 +5389,15 @@ iterare@1.2.1: resolved "https://registry.yarnpkg.com/iterare/-/iterare-1.2.1.tgz#139c400ff7363690e33abffa33cbba8920f00042" integrity sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q== +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jake@^10.8.5: version "10.8.5" resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" @@ -6524,11 +6412,6 @@ lodash@^4.17.11, lodash@^4.17.19, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -long@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - lowercase-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" @@ -6539,6 +6422,11 @@ lowercase-keys@^3.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== +lru-cache@^10.0.1, lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + lru-cache@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" @@ -6554,11 +6442,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.7.1: - version "7.12.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.12.0.tgz#be2649a992c8a9116efda5c487538dcf715f3476" - integrity sha512-OIP3DwzRZDfLg9B9VP/huWBlpvbkmbfiBy8xmsXp4RPmE4A3MhwNozc5ZJ3fWnSg8fDcdlE/neRTPG2ycEKliw== - luxon@^1.28.0: version "1.28.0" resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.28.0.tgz#e7f96daad3938c06a62de0fb027115d251251fbf" @@ -6569,7 +6452,7 @@ mailcheck@^1.1.1: resolved "https://registry.yarnpkg.com/mailcheck/-/mailcheck-1.1.1.tgz#d87cf6ba0b64ba512199dbf93f1489f479591e34" integrity sha1-2Hz2ugtkulEhmdv5PxSJ9HlZHjQ= -make-dir@^3.0.0, make-dir@^3.1.0: +make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -6581,27 +6464,23 @@ make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -make-fetch-happen@^10.0.3: - version "10.1.8" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.1.8.tgz#3b6e93dd8d8fdb76c0d7bf32e617f37c3108435a" - integrity sha512-0ASJbG12Au6+N5I84W+8FhGS6iM8MyzvZady+zaQAu+6IOaESFzCLLD0AR1sAFF3Jufi8bxm586ABN6hWd3k7g== +make-fetch-happen@^13.0.0: + version "13.0.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz#273ba2f78f45e1f3a6dca91cede87d9fa4821e36" + integrity sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA== dependencies: - agentkeepalive "^4.2.1" - cacache "^16.1.0" - http-cache-semantics "^4.1.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" + "@npmcli/agent" "^2.0.0" + cacache "^18.0.0" + http-cache-semantics "^4.1.1" is-lambda "^1.0.1" - lru-cache "^7.7.1" - minipass "^3.1.6" - minipass-collect "^1.0.2" - minipass-fetch "^2.0.3" + minipass "^7.0.2" + minipass-fetch "^3.0.0" minipass-flush "^1.0.5" minipass-pipeline "^1.2.4" negotiator "^0.6.3" + proc-log "^4.2.0" promise-retry "^2.0.1" - socks-proxy-agent "^7.0.0" - ssri "^9.0.0" + ssri "^10.0.0" makeerror@1.0.12: version "1.0.12" @@ -6721,24 +6600,31 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== +minipass-collect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-2.0.1.tgz#1621bc77e12258a12c60d34e2276ec5c20680863" + integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw== dependencies: - minipass "^3.0.0" + minipass "^7.0.3" -minipass-fetch@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.0.tgz#ca1754a5f857a3be99a9271277246ac0b44c3ff8" - integrity sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg== +minipass-fetch@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.5.tgz#f0f97e40580affc4a35cc4a1349f05ae36cb1e4c" + integrity sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg== dependencies: - minipass "^3.1.6" + minipass "^7.0.3" minipass-sized "^1.0.3" minizlib "^2.1.2" optionalDependencies: @@ -6765,34 +6651,22 @@ minipass-sized@^1.0.3: dependencies: minipass "^3.0.0" -minipass@^2.6.0, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1: +minipass@^3.0.0: version "3.1.6" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== dependencies: yallist "^4.0.0" -minipass@^3.1.6: - version "3.3.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" - integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== - dependencies: - yallist "^4.0.0" +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -minizlib@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3, minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" @@ -6828,13 +6702,6 @@ mkdirp-classic@^0.5.3: dependencies: minimist "^1.2.5" -mkdirp@^0.5.5: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" @@ -6860,25 +6727,31 @@ ms@3.0.0-canary.1: resolved "https://registry.yarnpkg.com/ms/-/ms-3.0.0-canary.1.tgz#c7b34fbce381492fd0b345d1cf56e14d67b77b80" integrity sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g== -ms@^2.0.0, ms@^2.1.1: +ms@^2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -msgpackr-extract@^1.0.14: - version "1.0.16" - resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-1.0.16.tgz#701c4f6e6f25c100ae84557092274e8fffeefe45" - integrity sha512-fxdRfQUxPrL/TizyfYfMn09dK58e+d65bRD/fcaVH4052vj30QOzzqxcQIS7B0NsqlypEQ/6Du3QmP2DhWFfCA== +msgpackr-extract@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz#e9d87023de39ce714872f9e9504e3c1996d61012" + integrity sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA== dependencies: - nan "^2.14.2" - node-gyp-build "^4.2.3" - -msgpackr@^1.5.2: - version "1.5.4" - resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.5.4.tgz#2b6ea6cb7d79c0ad98fc76c68163c48eda50cf0d" - integrity sha512-Z7w5Jg+2Q9z9gJxeM68d7tSuWZZGnFIRhZnyqcZCa/1dKkhOCNvR1TUV3zzJ3+vj78vlwKRzUgVDlW4jiSOeDA== + node-gyp-build-optional-packages "5.2.2" optionalDependencies: - msgpackr-extract "^1.0.14" + "@msgpackr-extract/msgpackr-extract-darwin-arm64" "3.0.3" + "@msgpackr-extract/msgpackr-extract-darwin-x64" "3.0.3" + "@msgpackr-extract/msgpackr-extract-linux-arm" "3.0.3" + "@msgpackr-extract/msgpackr-extract-linux-arm64" "3.0.3" + "@msgpackr-extract/msgpackr-extract-linux-x64" "3.0.3" + "@msgpackr-extract/msgpackr-extract-win32-x64" "3.0.3" + +msgpackr@^1.10.1: + version "1.11.0" + resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.11.0.tgz#8321d52333048cadc749f56385e3231e65337091" + integrity sha512-I8qXuuALqJe5laEBYoFykChhSXLikZmUhccjGsPuSJ/7uPip2TJ7lwdIQwWSAi0jGZDXv4WOP8Qg65QZRuXxXw== + optionalDependencies: + msgpackr-extract "^3.0.2" multer@1.4.4: version "1.4.4" @@ -6913,15 +6786,10 @@ mz@^2.4.0, mz@^2.7.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nan@^2.14.2: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== - -nan@^2.16.0: - version "2.16.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" - integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== +nan@^2.20.0: + version "2.22.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.22.0.tgz#31bc433fc33213c97bad36404bb68063de604de3" + integrity sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw== nanoid@^3.1.30: version "3.3.1" @@ -7043,7 +6911,7 @@ node-fetch@3.2.10: fetch-blob "^3.1.4" formdata-polyfill "^4.0.10" -node-fetch@^2.6.1, node-fetch@^2.6.7, node-fetch@~2.6.1: +node-fetch@^2.6.1: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== @@ -7059,31 +6927,33 @@ node-fetch@^3.2.2: fetch-blob "^3.1.4" formdata-polyfill "^4.0.10" -node-gyp-build@^4.2.3: - version "4.3.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" - integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== +node-gyp-build-optional-packages@5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz#522f50c2d53134d7f3a76cd7255de4ab6c96a3a4" + integrity sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw== + dependencies: + detect-libc "^2.0.1" node-gyp-build@~3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz#daa77a4f547b9aed3e2aac779eaf151afd60ec8d" integrity sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w== -node-gyp@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.0.0.tgz#e1da2067427f3eb5bb56820cb62bc6b1e4bd2089" - integrity sha512-Ma6p4s+XCTPxCuAMrOA/IJRmVy16R8Sdhtwl4PrCr7IBlj4cPawF0vg/l7nOT1jPbuNS7lIRJpBSvVsXwEZuzw== +node-gyp@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.2.0.tgz#80101c4aa4f7ab225f13fcc8daaaac4eb1a8dd86" + integrity sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw== dependencies: env-paths "^2.2.0" - glob "^7.1.4" + exponential-backoff "^3.1.1" + glob "^10.3.10" graceful-fs "^4.2.6" - make-fetch-happen "^10.0.3" - nopt "^5.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" + make-fetch-happen "^13.0.0" + nopt "^7.0.0" + proc-log "^4.1.0" semver "^7.3.5" - tar "^6.1.2" - which "^2.0.2" + tar "^6.2.1" + which "^4.0.0" node-int64@^0.4.0: version "0.4.0" @@ -7120,12 +6990,12 @@ nopt@^4.0.3: abbrev "1" osenv "^0.1.4" -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" - integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== +nopt@^7.0.0: + version "7.2.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.1.tgz#1cac0eab9b8e97c9093338446eddd40b2c8ca1e7" + integrity sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w== dependencies: - abbrev "1" + abbrev "^2.0.0" normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" @@ -7166,26 +7036,6 @@ npmlog@^4.0.1: gauge "~2.7.3" set-blocking "~2.0.0" -npmlog@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" - integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^3.0.0" - set-blocking "^2.0.0" - -npmlog@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.0.tgz#ba9ef39413c3d936ea91553db7be49c34ad0520c" - integrity sha512-03ppFRGlsyUaQFbGC2C8QWJN/C/K7PsfyD9aQdhVKAQIH4sQBc8WASqFBP7O+Ut4d2oo5LoeoboB3cGdBZSp6Q== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^4.0.0" - set-blocking "^2.0.0" - nsfwjs@2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/nsfwjs/-/nsfwjs-2.4.2.tgz#dd8656705f79f53d789245eaf317d6b6818a0032" @@ -7364,11 +7214,6 @@ p-cancelable@^3.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -7430,13 +7275,6 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-timeout@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" - integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== - dependencies: - p-finally "^1.0.0" - p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" @@ -7447,6 +7285,11 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + packet-reader@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" @@ -7552,6 +7395,14 @@ path-parse@^1.0.6, path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-to-regexp@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-3.2.0.tgz#fa7877ecbc495c601907562222453c43cc204a5f" @@ -7808,21 +7659,16 @@ probe-image-size@7.2.3: needle "^2.5.2" stream-parser "~0.3.1" +proc-log@^4.1.0, proc-log@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-4.2.0.tgz#b6f461e4026e75fdfe228b265e9f7a00779d7034" + integrity sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA== + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - promise-limit@2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/promise-limit/-/promise-limit-2.7.0.tgz#eb5737c33342a030eaeaecea9b3d3a93cb592b26" @@ -8080,14 +7926,14 @@ rdf-canonize@^3.0.0: dependencies: setimmediate "^1.0.5" -re2@1.17.7: - version "1.17.7" - resolved "https://registry.yarnpkg.com/re2/-/re2-1.17.7.tgz#e14cab85a177a5534c7215c322d1b043c55aa1e9" - integrity sha512-X8GSuiBoVWwcjuppqSjsIkRxNUKDdjhkO9SBekQbZ2ksqWUReCy7DQPWOVpoTnpdtdz5PIpTTxTFzvJv5UMfjA== +re2@1.21.4: + version "1.21.4" + resolved "https://registry.yarnpkg.com/re2/-/re2-1.21.4.tgz#d688edcc40da3cf542ee3a480a8b60e5900dd24d" + integrity sha512-MVIfXWJmsP28mRsSt8HeL750ifb8H5+oF2UDIxGaiJCr8fkMqhLZ7kcX9ADRk2dC8qeGKedB7UVYRfBVpEiLfA== dependencies: - install-artifact-from-github "^1.3.1" - nan "^2.16.0" - node-gyp "^9.0.0" + install-artifact-from-github "^1.3.5" + nan "^2.20.0" + node-gyp "^10.2.0" react-is@^18.0.0: version "18.2.0" @@ -8204,11 +8050,6 @@ reflect-metadata@0.1.13, reflect-metadata@^0.1.13: resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== -regenerator-runtime@^0.13.5: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - regexp.prototype.flags@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" @@ -8357,7 +8198,7 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@2, rimraf@^2.6.2: +rimraf@2: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -8409,7 +8250,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1: +safe-buffer@5.2.1, safe-buffer@^5.1.2: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -8472,7 +8313,7 @@ seedrandom@2.4.2: resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.2.tgz#18d78c41287d13aff8eadb29e235938b248aa9ff" integrity sha1-GNeMQSh9E6/46tsp4jWTiySKqf8= -seedrandom@3.0.5, seedrandom@^3.0.5: +seedrandom@3.0.5: version "3.0.5" resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7" integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== @@ -8494,7 +8335,7 @@ semver@^6.0.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2, semver@^7.3.4: +semver@^7.3.4: version "7.3.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== @@ -8508,6 +8349,11 @@ semver@^7.3.5: dependencies: lru-cache "^6.0.0" +semver@^7.5.2: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -8586,6 +8432,11 @@ signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + simple-concat@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" @@ -8622,21 +8473,21 @@ smart-buffer@^4.2.0: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== -socks-proxy-agent@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" - integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== +socks-proxy-agent@^8.0.3: + version "8.0.4" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz#9071dca17af95f483300316f4b063578fa0db08c" + integrity sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw== dependencies: - agent-base "^6.0.2" - debug "^4.3.3" - socks "^2.6.2" + agent-base "^7.1.1" + debug "^4.3.4" + socks "^2.8.3" -socks@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" - integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== +socks@^2.8.3: + version "2.8.3" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5" + integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== dependencies: - ip "^1.1.5" + ip-address "^9.0.5" smart-buffer "^4.2.0" source-map-js@^0.6.2: @@ -8676,6 +8527,11 @@ sprintf-js@1.1.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== +sprintf-js@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -8711,12 +8567,12 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -ssri@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" - integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== +ssri@^10.0.0: + version "10.0.6" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.6.tgz#a8aade2de60ba2bce8688e3fa349bad05c7dc1e5" + integrity sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ== dependencies: - minipass "^3.1.1" + minipass "^7.0.3" stack-utils@^2.0.3: version "2.0.5" @@ -8760,6 +8616,16 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.2.3: + name string-width-cjs + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -8777,15 +8643,6 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string-width@^4.1.0, string-width@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" @@ -8795,6 +8652,15 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string.prototype.trimend@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" @@ -8829,7 +8695,7 @@ string.prototype.trimstart@^1.0.5: define-properties "^1.1.4" es-abstract "^1.19.5" -string_decoder@^1.1.1, string_decoder@^1.3.0: +string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -8855,6 +8721,14 @@ stringz@2.1.0: dependencies: char-regex "^1.0.2" +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.1: + name strip-ansi-cjs + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -8876,12 +8750,12 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: - ansi-regex "^5.0.1" + ansi-regex "^6.0.1" strip-bom@^3.0.0: version "3.0.0" @@ -9036,20 +8910,7 @@ tar-stream@^2.1.4, tar-stream@^2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^4.4.6: - version "4.4.19" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" - integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== - dependencies: - chownr "^1.1.4" - fs-minipass "^1.2.7" - minipass "^2.9.0" - minizlib "^1.3.3" - mkdirp "^0.5.5" - safe-buffer "^5.2.1" - yallist "^3.1.1" - -tar@^6.1.11, tar@^6.1.2: +tar@^6.1.11: version "6.1.11" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== @@ -9061,6 +8922,18 @@ tar@^6.1.11, tar@^6.1.2: mkdirp "^1.0.3" yallist "^4.0.0" +tar@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + terminal-link@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" @@ -9419,17 +9292,17 @@ uniq@^1.0.0: resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== +unique-filename@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" + integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== dependencies: - unique-slug "^2.0.0" + unique-slug "^4.0.0" -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== +unique-slug@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" + integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== dependencies: imurmurhash "^0.1.4" @@ -9692,13 +9565,20 @@ which@^1.1.1: dependencies: isexe "^2.0.0" -which@^2.0.1, which@^2.0.2: +which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" +which@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a" + integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== + dependencies: + isexe "^3.1.1" + wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" @@ -9706,13 +9586,6 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" -wide-align@^1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - with@^7.0.0: version "7.0.2" resolved "https://registry.yarnpkg.com/with/-/with-7.0.2.tgz#ccee3ad542d25538a7a7a80aad212b9828495bac" @@ -9728,6 +9601,15 @@ word-wrap@^1.2.3, word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -9737,14 +9619,14 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" wrappy@1: version "1.0.2" @@ -9847,11 +9729,6 @@ yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.0, yallist@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - yaml-ast-parser@0.0.43: version "0.0.43" resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" @@ -9892,7 +9769,7 @@ yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^16.0.0, yargs@^16.0.3: +yargs@^16.0.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== diff --git a/packages/client/.eslintrc.js b/packages/client/.eslintrc.js index c3a78bd5f..f7583a622 100644 --- a/packages/client/.eslintrc.js +++ b/packages/client/.eslintrc.js @@ -1,87 +1,98 @@ module.exports = { root: true, env: { - 'node': false, + node: false, }, - parser: 'vue-eslint-parser', + parser: "vue-eslint-parser", parserOptions: { - 'parser': '@typescript-eslint/parser', + parser: "@typescript-eslint/parser", tsconfigRootDir: __dirname, - project: ['./tsconfig.json'], - extraFileExtensions: ['.vue'], + project: ["./tsconfig.json"], + extraFileExtensions: [".vue"], }, - extends: [ - '../shared/.eslintrc.js', - 'plugin:vue/vue3-recommended', - ], + extends: ["../shared/.eslintrc.js", "plugin:vue/vue3-recommended"], rules: { - '@typescript-eslint/no-empty-interface': [ - 'error', + "@typescript-eslint/no-empty-interface": [ + "error", { - 'allowSingleExtends': true, + allowSingleExtends: true, }, ], - '@typescript-eslint/prefer-nullish-coalescing': [ - 'error', - ], + "@typescript-eslint/prefer-nullish-coalescing": ["error"], // 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/valid-v-for': 'warn', - 'vue/return-in-computed-property': 'warn', - 'vue/no-setup-props-destructure': 'warn', - 'vue/max-attributes-per-line': 'off', - 'vue/html-self-closing': 'off', - 'vue/singleline-html-element-content-newline': 'off', + "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/valid-v-for": "warn", + "vue/return-in-computed-property": "warn", + "vue/no-setup-props-destructure": "warn", + "vue/max-attributes-per-line": "off", + "vue/html-self-closing": "off", + "vue/singleline-html-element-content-newline": "off", }, globals: { // Node.js - 'module': false, - 'require': false, - '__dirname': false, + module: false, + require: false, + __dirname: false, // Vue - '$$': false, - '$ref': false, - '$shallowRef': false, - '$computed': false, + // '$$': false, + // '$ref': false, + // '$shallowRef': false, + // '$computed': 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, + _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/client/package.json b/packages/client/package.json index b4a9a7393..076b5a282 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -3,88 +3,92 @@ "scripts": { "watch": "vite build --watch --mode development", "build": "vite build", - "lint": "eslint --quiet \"src/**/*.{ts,vue}\"" + "lint": "eslint --quiet \"src/**/*.{ts,vue}\"", + "typecheck:vue": "vue-tsc --noEmit", + "typecheck:tsc": "tsc -p . --noEmit" }, "resolutions": { "chokidar": "^3.3.1", "lodash": "^4.17.21" }, "dependencies": { - "@discordapp/twemoji": "14.0.2", - "@fortawesome/fontawesome-free": "6.1.2", - "@rollup/plugin-alias": "3.1.9", - "@rollup/plugin-json": "4.1.0", + "@discordapp/twemoji": "15.1.0", + "@fortawesome/fontawesome-free": "6.6.0", + "@rollup/plugin-alias": "5.1.1", + "@rollup/plugin-json": "6.1.0", "@syuilo/aiscript": "0.11.1", - "@vitejs/plugin-vue": "3.1.0", - "@vue/compiler-sfc": "3.2.39", + "@vitejs/plugin-vue": "5.1.4", + "@vue/compiler-sfc": "3.5.12", "autobind-decorator": "2.4.0", - "autosize": "5.0.1", - "blurhash": "1.1.5", - "broadcast-channel": "4.17.0", + "autosize": "6.0.1", + "blurhash": "2.0.5", + "broadcast-channel": "7.0.0", "browser-image-resizer": "git+https://github.com/misskey-dev/browser-image-resizer#v2.2.1-misskey.2", - "chart.js": "3.9.1", - "chartjs-adapter-date-fns": "2.0.0", - "chartjs-plugin-gradient": "0.5.1", - "chartjs-plugin-zoom": "1.2.1", - "compare-versions": "5.0.1", + "chart.js": "4.4.4", + "chartjs-adapter-date-fns": "3.0.0", + "chartjs-plugin-gradient": "0.6.1", + "chartjs-plugin-zoom": "2.0.1", + "chokidar": "^4.0.1", + "compare-versions": "6.1.1", "cropperjs": "2.0.0-beta", - "date-fns": "2.29.3", + "date-fns": "4.1.0", "escape-regexp": "0.0.1", - "eventemitter3": "4.0.7", - "idb-keyval": "6.2.0", + "eventemitter3": "5.0.1", + "idb-keyval": "6.2.1", "insert-text-at-cursor": "0.3.0", - "json5": "2.2.1", - "katex": "0.15.6", - "matter-js": "0.18.0", + "json5": "2.2.3", + "katex": "0.16.11", + "matter-js": "0.20.0", "mfm-js": "git+https://github.com/sim1222/mfm.js.git", "misetehoshii": "https://github.com/melt-adzuki/misetehoshii", "misskey-js": "0.0.14", - "photoswipe": "5.3.2", + "photoswipe": "5.4.4", "prismjs": "1.29.0", - "punycode": "2.1.1", + "punycode": "2.3.1", "querystring": "0.2.1", "rndstr": "1.0.0", "s-age": "1.1.2", - "sass": "1.54.9", + "sass": "1.79.5", "seedrandom": "3.0.5", "strict-event-emitter-types": "2.0.0", "stringz": "2.1.0", "syuilo-password-strength": "0.0.1", "textarea-caret": "3.1.0", - "three": "0.144.0", - "throttle-debounce": "5.0.0", - "tinycolor2": "1.4.2", - "tsc-alias": "1.7.0", - "tsconfig-paths": "4.1.0", + "three": "0.169.0", + "throttle-debounce": "5.0.2", + "tinycolor2": "1.6.0", + "tsc-alias": "1.8.10", + "tsconfig-paths": "4.2.0", "twemoji-parser": "14.0.0", - "typescript": "4.8.3", - "uuid": "9.0.0", - "vanilla-tilt": "1.7.2", - "vite": "3.1.3", - "vue": "3.2.39", + "typescript": "5.6.3", + "uuid": "10.0.0", + "vanilla-tilt": "1.8.1", + "vite": "5.4.8", + "vue": "3.5.12", "vue-prism-editor": "2.0.0-alpha.2", "vuedraggable": "4.0.1" }, "devDependencies": { - "@types/escape-regexp": "0.0.1", - "@types/glob": "8.0.0", - "@types/gulp": "4.0.9", - "@types/gulp-rename": "2.0.1", - "@types/katex": "0.14.0", - "@types/matter-js": "0.18.2", - "@types/punycode": "2.1.0", - "@types/seedrandom": "3.0.2", - "@types/throttle-debounce": "5.0.0", - "@types/tinycolor2": "1.4.3", - "@types/uuid": "8.3.4", - "@typescript-eslint/eslint-plugin": "5.38.0", - "@typescript-eslint/parser": "5.38.0", + "@types/escape-regexp": "0.0.3", + "@types/glob": "8.1.0", + "@types/gulp": "4.0.17", + "@types/gulp-rename": "2.0.6", + "@types/katex": "0.16.7", + "@types/matter-js": "0.19.7", + "@types/punycode": "2.1.4", + "@types/seedrandom": "3.0.8", + "@types/throttle-debounce": "5.0.2", + "@types/tinycolor2": "1.4.6", + "@types/uuid": "10.0.0", + "@typescript-eslint/eslint-plugin": "8.8.1", + "@typescript-eslint/parser": "8.8.1", "cross-env": "7.0.3", - "cypress": "10.8.0", - "eslint": "8.23.1", - "eslint-plugin-import": "2.26.0", - "eslint-plugin-vue": "9.5.1", - "rollup": "2.79.0", - "start-server-and-test": "1.14.0" + "cypress": "13.15.0", + "eslint": "9.12.0", + "eslint-plugin-import": "2.31.0", + "eslint-plugin-vue": "9.29.0", + "rollup": "4.24.0", + "start-server-and-test": "2.0.8", + "vue-tsc": "2.1.6" } } diff --git a/packages/client/src/components/MkAbuseReport.vue b/packages/client/src/components/MkAbuseReport.vue index f8fd901f3..cd974edd1 100644 --- a/packages/client/src/components/MkAbuseReport.vue +++ b/packages/client/src/components/MkAbuseReport.vue @@ -36,6 +36,8 @@ diff --git a/packages/client/src/components/MkContextMenu.vue b/packages/client/src/components/MkContextMenu.vue index ab050136b..f84dce609 100644 --- a/packages/client/src/components/MkContextMenu.vue +++ b/packages/client/src/components/MkContextMenu.vue @@ -7,7 +7,7 @@ diff --git a/packages/client/src/components/MkCropperDialog.vue b/packages/client/src/components/MkCropperDialog.vue index 9a09834bf..55b8403db 100644 --- a/packages/client/src/components/MkCropperDialog.vue +++ b/packages/client/src/components/MkCropperDialog.vue @@ -26,7 +26,7 @@ diff --git a/packages/client/src/components/MkImageViewer.vue b/packages/client/src/components/MkImageViewer.vue index f074b1a2f..ea85d1d7e 100644 --- a/packages/client/src/components/MkImageViewer.vue +++ b/packages/client/src/components/MkImageViewer.vue @@ -13,7 +13,7 @@