From b4156e6000e6085adf756fe0dc4e3b2573ded401 Mon Sep 17 00:00:00 2001 From: Andrey Borysenko Date: Mon, 22 Apr 2024 17:22:47 +0300 Subject: [PATCH 1/8] WIP: Test deploy draft (1) Signed-off-by: Andrey Borysenko --- appinfo/routes.php | 6 +- lib/AppInfo/Application.php | 2 + lib/Command/ExApp/Register.php | 27 +- lib/Controller/DaemonConfigController.php | 51 +- lib/Controller/ExAppsPageController.php | 25 + lib/DeployActions/DockerActions.php | 35 +- lib/Service/DaemonConfigService.php | 19 + lib/Settings/Admin.php | 20 +- package-lock.json | 1656 +++++++++++------ src/components/DaemonConfig/DaemonConfig.vue | 24 +- .../DaemonConfig/DaemonConfigDetailsModal.vue | 1 + .../DaemonConfig/DaemonTestDeploy.vue | 386 ++++ 12 files changed, 1644 insertions(+), 608 deletions(-) create mode 100644 src/components/DaemonConfig/DaemonTestDeploy.vue diff --git a/appinfo/routes.php b/appinfo/routes.php index dc1835af..9051dc22 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -33,6 +33,7 @@ ['name' => 'ExAppsPage#enableApp', 'url' => '/apps/enable/{appId}', 'verb' => 'GET' , 'root' => ''], ['name' => 'ExAppsPage#enableApp', 'url' => '/apps/enable/{appId}', 'verb' => 'POST' , 'root' => ''], ['name' => 'ExAppsPage#getAppStatus', 'url' => '/apps/status/{appId}', 'verb' => 'GET' , 'root' => ''], + ['name' => 'ExAppsPage#getAppLogs', 'url' => '/apps/logs/{appId}', 'verb' => 'GET' , 'root' => ''], ['name' => 'ExAppsPage#disableApp', 'url' => '/apps/disable/{appId}', 'verb' => 'GET' , 'root' => ''], ['name' => 'ExAppsPage#updateApp', 'url' => '/apps/update/{appId}', 'verb' => 'GET' , 'root' => ''], ['name' => 'ExAppsPage#uninstallApp', 'url' => '/apps/uninstall/{appId}', 'verb' => 'GET' , 'root' => ''], @@ -46,7 +47,10 @@ ['name' => 'DaemonConfig#unregisterDaemonConfig', 'url' => '/daemons/{name}', 'verb' => 'DELETE'], ['name' => 'DaemonConfig#verifyDaemonConnection', 'url' => '/daemons/{name}/check', 'verb' => 'POST'], ['name' => 'DaemonConfig#checkDaemonConnection', 'url' => '/daemons/verify_connection', 'verb' => 'POST'], - ['name' => 'DaemonConfig#updateDaemonConfig', 'url' => '/daemons', 'verb' => 'PUT'], + + // Test Deploy actions + ['name' => 'DaemonConfig#startTestDeploy', 'url' => '/daemons/{name}/test_deploy', 'verb' => 'POST'], + ['name' => 'DaemonConfig#stopTestDeploy', 'url' => '/daemons/{name}/test_deploy', 'verb' => 'DELETE'], ], 'ocs' => [ // Logging diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index c221d384..3b764d6d 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -55,6 +55,8 @@ class Application extends App implements IBootstrap { public const APP_ID = 'app_api'; + public const TEST_DEPLOY_APPID = 'test-deploy'; + public const TEST_DEPLOY_INFO_XML = 'https://raw.githubusercontent.com/cloud-py-api/test-deploy/main/appinfo/info.xml'; public function __construct(array $urlParams = []) { parent::__construct(self::APP_ID, $urlParams); diff --git a/lib/Command/ExApp/Register.php b/lib/Command/ExApp/Register.php index 65812c8c..3aad5071 100644 --- a/lib/Command/ExApp/Register.php +++ b/lib/Command/ExApp/Register.php @@ -55,18 +55,23 @@ protected function configure(): void { $this->addOption('json-info', null, InputOption::VALUE_REQUIRED, 'ExApp info.xml in JSON format'); $this->addOption('wait-finish', null, InputOption::VALUE_NONE, 'Wait until finish'); $this->addOption('silent', null, InputOption::VALUE_NONE, 'Do not print to console'); + $this->addOption('test-deploy-mode', null, InputOption::VALUE_NONE, 'Test deploy mode with additional status checks and slightly different logic'); } protected function execute(InputInterface $input, OutputInterface $output): int { $outputConsole = !$input->getOption('silent'); + $isTestDeployMode = $input->getOption('test-deploy-mode'); $appId = $input->getArgument('appid'); if ($this->exAppService->getExApp($appId) !== null) { - $this->logger->error(sprintf('ExApp %s is already registered.', $appId)); - if ($outputConsole) { - $output->writeln(sprintf('ExApp %s is already registered.', $appId)); + if (!$isTestDeployMode) { + $this->logger->error(sprintf('ExApp %s is already registered.', $appId)); + if ($outputConsole) { + $output->writeln(sprintf('ExApp %s is already registered.', $appId)); + } + return 3; } - return 3; + $this->exAppService->unregisterExApp($appId); } $appInfo = $this->exAppService->getAppInfo( @@ -147,7 +152,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int if ($outputConsole) { $output->writeln(sprintf('Error while registering API scopes for %s.', $appId)); } - $this->exAppService->unregisterExApp($appId); + $this->_unregisterExApp($appId, $isTestDeployMode); return 1; } $this->logger->info( @@ -167,7 +172,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int if ($outputConsole) { $output->writeln(sprintf('Failed to install translations for %s. Reason: %s', $appId, $result)); } - $this->exAppService->unregisterExApp($appId); + $this->_unregisterExApp($appId, $isTestDeployMode); return 3; } } @@ -181,7 +186,8 @@ protected function execute(InputInterface $input, OutputInterface $output): int if ($outputConsole) { $output->writeln(sprintf('ExApp %s deployment failed. Error: %s', $appId, $deployResult)); } - $this->exAppService->unregisterExApp($appId); + $this->exAppService->setStatusError($exApp, $deployResult); + $this->_unregisterExApp($appId, $isTestDeployMode); return 1; } @@ -241,4 +247,11 @@ protected function execute(InputInterface $input, OutputInterface $output): int } return 0; } + + private function _unregisterExApp(string $appId, bool $testDeployMode = false): void { + if ($testDeployMode) { + return; + } + $this->exAppService->unregisterExApp($appId); + } } diff --git a/lib/Controller/DaemonConfigController.php b/lib/Controller/DaemonConfigController.php index 455c26b0..94ec4875 100644 --- a/lib/Controller/DaemonConfigController.php +++ b/lib/Controller/DaemonConfigController.php @@ -4,17 +4,20 @@ namespace OCA\AppAPI\Controller; +use OC\AppFramework\Http; use OCA\AppAPI\AppInfo\Application; use OCA\AppAPI\Db\DaemonConfig; use OCA\AppAPI\DeployActions\DockerActions; use OCA\AppAPI\Service\AppAPIService; use OCA\AppAPI\Service\DaemonConfigService; +use OCA\AppAPI\Service\ExAppService; use OCP\AppFramework\ApiController; use OCP\AppFramework\Http\Attribute\NoCSRFRequired; use OCP\AppFramework\Http\JSONResponse; use OCP\AppFramework\Http\Response; use OCP\IConfig; +use OCP\IL10N; use OCP\IRequest; /** @@ -28,16 +31,17 @@ public function __construct( private readonly DaemonConfigService $daemonConfigService, private readonly DockerActions $dockerActions, private readonly AppAPIService $service, + private readonly ExAppService $exAppService, + private readonly IL10N $l10n, ) { parent::__construct(Application::APP_ID, $request); } #[NoCSRFRequired] public function getAllDaemonConfigs(): Response { - $daemonConfigs = $this->daemonConfigService->getRegisteredDaemonConfigs(); return new JSONResponse([ - 'daemons' => $daemonConfigs, - 'default_daemon_config' => $this->config->getAppValue(Application::APP_ID, 'default_daemon_config', ''), + 'daemons' => $this->daemonConfigService->getDaemonConfigsWithAppsCount(), + 'default_daemon_config' => $this->config->getAppValue(Application::APP_ID, 'default_daemon_config'), ]); } @@ -116,4 +120,45 @@ public function checkDaemonConnection(array $daemonParams): Response { 'success' => $dockerDaemonAccessible, ]); } + + #[NoCSRFRequired] + public function startTestDeploy(string $name): Response { + $daemonConfig = $this->daemonConfigService->getDaemonConfigByName($name); + if (!$daemonConfig) { + return new JSONResponse(['error' => $this->l10n->t('Daemon config not found')], Http::STATUS_NOT_FOUND); + } + + if (!$this->service->runOccCommand( + sprintf("app_api:app:register --force-scopes --silent %s %s --info-xml %s --test-deploy-mode", + Application::TEST_DEPLOY_APPID, $daemonConfig->getName(), Application::TEST_DEPLOY_INFO_XML) + )) { + return new JSONResponse(['error' => $this->l10n->t('Error starting install of ExApp')], Http::STATUS_INTERNAL_SERVER_ERROR); + } + + $elapsedTime = 0; + while ($elapsedTime < 5000000 && !$this->exAppService->getExApp(Application::TEST_DEPLOY_APPID)) { + usleep(150000); // 0.15 + $elapsedTime += 150000; + } + + $exApp = $this->exAppService->getExApp(Application::TEST_DEPLOY_APPID); + $status = $exApp->getStatus(); + + return new JSONResponse([ + 'success' => $exApp !== null, + 'status' => $status, + ]); + } + + #[NoCSRFRequired] + public function stopTestDeploy(string $name): Response { + $exApp = $this->exAppService->getExApp(Application::TEST_DEPLOY_APPID); + if ($exApp !== null) { + $this->service->runOccCommand(sprintf("app_api:app:unregister --silent --force %s", Application::TEST_DEPLOY_APPID)); + } + $exApp = $this->exAppService->getExApp(Application::TEST_DEPLOY_APPID); + return new JSONResponse([ + 'success' => $exApp === null, + ]); + } } diff --git a/lib/Controller/ExAppsPageController.php b/lib/Controller/ExAppsPageController.php index b8e4f779..b2d7165c 100644 --- a/lib/Controller/ExAppsPageController.php +++ b/lib/Controller/ExAppsPageController.php @@ -26,6 +26,7 @@ use OCP\AppFramework\Http\Attribute\NoCSRFRequired; use OCP\AppFramework\Http\Attribute\PasswordConfirmationRequired; use OCP\AppFramework\Http\ContentSecurityPolicy; +use OCP\AppFramework\Http\DataDownloadResponse; use OCP\AppFramework\Http\JSONResponse; use OCP\AppFramework\Http\TemplateResponse; use OCP\AppFramework\Services\IInitialState; @@ -524,6 +525,7 @@ public function listCategories(): JSONResponse { /** * Get ExApp status, that includes initialization information */ + #[NoCSRFRequired] public function getAppStatus(string $appId): JSONResponse { $exApp = $this->exAppService->getExApp($appId); if (is_null($exApp)) { @@ -532,6 +534,29 @@ public function getAppStatus(string $appId): JSONResponse { return new JSONResponse($exApp->getStatus()); } + #[NoCSRFRequired] + public function getAppLogs(string $appId): DataDownloadResponse { + $exApp = $this->exAppService->getExApp($appId); + if (is_null($exApp)) { + return new DataDownloadResponse(json_encode(['error' => $this->l10n->t('ExApp not found, failed to get logs')]), $this->dockerActions->buildExAppContainerName($appId) . '_logs.txt', 'text/plain'); + } + $daemonConfig = $this->daemonConfigService->getDaemonConfigByName($exApp->getDaemonConfigName()); + $this->dockerActions->initGuzzleClient($daemonConfig); + try { + $logs = $this->dockerActions->getContainerLogs( + $this->dockerActions->buildDockerUrl($daemonConfig), + $this->dockerActions->buildExAppContainerName($appId) + ); + return new DataDownloadResponse( + $logs, + $this->dockerActions->buildExAppContainerName($appId) . '_logs.txt', 'text/plain', + Http::STATUS_OK + ); + } catch (Exception) { + return new DataDownloadResponse(json_encode(['error' => $this->l10n->t('Failed to get logs')]), $this->dockerActions->buildExAppContainerName($appId) . '_logs.txt', 'text/plain'); + } + } + /** * Using default methods to fetch App Store categories as they are the same for ExApps * diff --git a/lib/DeployActions/DockerActions.php b/lib/DeployActions/DockerActions.php index d6e0e007..6c7918ee 100644 --- a/lib/DeployActions/DockerActions.php +++ b/lib/DeployActions/DockerActions.php @@ -328,7 +328,40 @@ public function getContainerLogs(string $dockerUrl, string $containerId, string $dockerUrl, sprintf('containers/%s/logs?stdout=true&stderr=true&tail=%s', $containerId, $tail) ); $response = $this->guzzleClient->get($url); - return (string) $response->getBody(); + return array_reduce($this->processDockerLogs((string) $response->getBody()), function ($carry, $logEntry) { + return $carry . $logEntry['content']; + }, ''); + } + + private function processDockerLogs($binaryData): array { + $offset = 0; + $length = strlen($binaryData); + $logs = []; + + while ($offset < $length) { + if ($offset + 8 > $length) { + break; // Incomplete header, handle this case as needed + } + + // Unpack the header + $header = unpack('C1type/C3skip/N1size', substr($binaryData, $offset, 8)); + $offset += 8; // Move past the header + + // Extract the log data based on the size from header + $logSize = $header['size']; + if ($offset + $logSize > $length) { + break; // Incomplete data, handle this case as needed + } + + $logs[] = [ + 'stream_type' => $header['type'] === 1 ? 'stdout' : 'stderr', + 'content' => substr($binaryData, $offset, $logSize) + ]; + + $offset += $logSize; // Move to the next log entry + } + + return $logs; } public function createVolume(string $dockerUrl, string $volume): array { diff --git a/lib/Service/DaemonConfigService.php b/lib/Service/DaemonConfigService.php index fce8dd54..6ccd23ec 100644 --- a/lib/Service/DaemonConfigService.php +++ b/lib/Service/DaemonConfigService.php @@ -19,6 +19,7 @@ class DaemonConfigService { public function __construct( private readonly LoggerInterface $logger, private readonly DaemonConfigMapper $mapper, + private readonly ExAppService $exAppService, ) { } @@ -72,6 +73,24 @@ public function getRegisteredDaemonConfigs(): array { } } + public function getDaemonConfigsWithAppsCount(): array { + $exApps = $this->exAppService->getExAppsList('all'); + $daemonsExAppsCount = []; + foreach ($exApps as $app) { + $exApp = $this->exAppService->getExApp($app['id']); + if (!isset($daemonsExAppsCount[$exApp->getDaemonConfigName()])) { + $daemonsExAppsCount[$exApp->getDaemonConfigName()] = 0; + } + $daemonsExAppsCount[$exApp->getDaemonConfigName()] += 1; + } + return array_map(function (DaemonConfig $daemonConfig) use ($daemonsExAppsCount) { + return [ + ...$daemonConfig->jsonSerialize(), + 'exAppsCount' => isset($daemonsExAppsCount[$daemonConfig->getName()]) ? $daemonsExAppsCount[$daemonConfig->getName()] : 0, + ]; + }, $this->getRegisteredDaemonConfigs()); + } + public function getDaemonConfigByName(string $name): ?DaemonConfig { try { return $this->mapper->findByName($name); diff --git a/lib/Settings/Admin.php b/lib/Settings/Admin.php index a76e6aa5..f547e8b6 100644 --- a/lib/Settings/Admin.php +++ b/lib/Settings/Admin.php @@ -6,10 +6,8 @@ use OCA\AppAPI\AppInfo\Application; -use OCA\AppAPI\Db\DaemonConfig; use OCA\AppAPI\DeployActions\DockerActions; use OCA\AppAPI\Service\DaemonConfigService; -use OCA\AppAPI\Service\ExAppService; use OCP\AppFramework\Http\TemplateResponse; use OCP\AppFramework\Services\IInitialState; use OCP\IConfig; @@ -23,29 +21,13 @@ public function __construct( private readonly DaemonConfigService $daemonConfigService, private readonly IConfig $config, private readonly DockerActions $dockerActions, - private readonly ExAppService $service, private readonly LoggerInterface $logger, ) { } public function getForm(): TemplateResponse { - $exApps = $this->service->getExAppsList('all'); - $daemonsExAppsCount = []; - foreach ($exApps as $app) { - $exApp = $this->service->getExApp($app['id']); - if (!isset($daemonsExAppsCount[$exApp->getDaemonConfigName()])) { - $daemonsExAppsCount[$exApp->getDaemonConfigName()] = 0; - } - $daemonsExAppsCount[$exApp->getDaemonConfigName()] += 1; - } - $daemons = array_map(function (DaemonConfig $daemonConfig) use ($daemonsExAppsCount) { - return [ - ...$daemonConfig->jsonSerialize(), - 'exAppsCount' => isset($daemonsExAppsCount[$daemonConfig->getName()]) ? $daemonsExAppsCount[$daemonConfig->getName()] : 0, - ]; - }, $this->daemonConfigService->getRegisteredDaemonConfigs()); $adminInitialData = [ - 'daemons' => $daemons, + 'daemons' => $this->daemonConfigService->getDaemonConfigsWithAppsCount(), 'default_daemon_config' => $this->config->getAppValue(Application::APP_ID, 'default_daemon_config'), 'init_timeout' => $this->config->getAppValue(Application::APP_ID, 'init_timeout', '40'), 'container_restart_policy' => $this->config->getAppValue(Application::APP_ID, 'container_restart_policy', 'unless-stopped'), diff --git a/package-lock.json b/package-lock.json index cca1344d..e29a17cc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,6 +59,8 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -67,38 +69,12 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/cli": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.23.4.tgz", - "integrity": "sha512-j3luA9xGKCXVyCa5R7lJvOMM+Kc2JEnAEIgz2ggtjQ/j5YUVgfsg/WsG95bbsgq7YLHuiCOzMnoSasuY16qiCw==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "commander": "^4.0.1", - "convert-source-map": "^2.0.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.2.0", - "make-dir": "^2.1.0", - "slash": "^2.0.0" - }, - "bin": { - "babel": "bin/babel.js", - "babel-external-helpers": "bin/babel-external-helpers.js" - }, - "engines": { - "node": ">=6.9.0" - }, - "optionalDependencies": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", - "chokidar": "^3.4.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/code-frame": { "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "peer": true, "dependencies": { "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" @@ -111,6 +87,8 @@ "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -119,6 +97,8 @@ "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.6.tgz", "integrity": "sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==", + "dev": true, + "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.23.5", @@ -167,6 +147,8 @@ "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", @@ -181,6 +163,8 @@ "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -192,6 +176,8 @@ "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.22.15" }, @@ -203,6 +189,8 @@ "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-validator-option": "^7.23.5", @@ -218,6 +206,8 @@ "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz", "integrity": "sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", @@ -240,6 +230,8 @@ "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "regexpu-core": "^5.3.1", @@ -256,6 +248,8 @@ "version": "0.4.4", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -271,6 +265,8 @@ "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -279,6 +275,8 @@ "version": "7.23.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "peer": true, "dependencies": { "@babel/template": "^7.22.15", "@babel/types": "^7.23.0" @@ -291,6 +289,8 @@ "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -302,6 +302,8 @@ "version": "7.23.0", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.23.0" }, @@ -313,6 +315,8 @@ "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.22.15" }, @@ -324,6 +328,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", @@ -342,6 +348,8 @@ "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -353,6 +361,8 @@ "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -361,6 +371,8 @@ "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", @@ -377,6 +389,8 @@ "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-member-expression-to-functions": "^7.22.15", @@ -393,6 +407,8 @@ "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -404,6 +420,8 @@ "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -415,6 +433,8 @@ "version": "7.22.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -426,6 +446,8 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -434,6 +456,8 @@ "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -442,6 +466,8 @@ "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -450,6 +476,8 @@ "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-function-name": "^7.22.5", "@babel/template": "^7.22.15", @@ -463,6 +491,8 @@ "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz", "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==", + "dev": true, + "peer": true, "dependencies": { "@babel/template": "^7.22.15", "@babel/traverse": "^7.23.6", @@ -476,6 +506,8 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -500,6 +532,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -514,6 +548,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -530,6 +566,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.22.5" @@ -563,6 +601,8 @@ "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "peer": true, "engines": { "node": ">=6.9.0" }, @@ -574,6 +614,8 @@ "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -585,6 +627,8 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -596,6 +640,8 @@ "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -607,6 +653,8 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -621,6 +669,8 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -632,6 +682,8 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, @@ -643,6 +695,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -657,6 +711,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -671,6 +727,8 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -682,6 +740,8 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -693,6 +753,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -707,6 +769,8 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -718,6 +782,8 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -729,6 +795,8 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -740,6 +808,8 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -751,6 +821,8 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -762,6 +834,8 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -773,6 +847,8 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -787,6 +863,8 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -801,6 +879,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -815,6 +895,8 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -830,6 +912,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -844,6 +928,8 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz", "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.22.5", @@ -861,6 +947,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", @@ -877,6 +965,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -891,6 +981,8 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -905,6 +997,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -920,6 +1014,8 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", @@ -936,6 +1032,8 @@ "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-compilation-targets": "^7.22.15", @@ -958,6 +1056,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/template": "^7.22.15" @@ -973,6 +1073,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -987,6 +1089,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1002,6 +1106,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1016,6 +1122,8 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3" @@ -1031,6 +1139,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1046,6 +1156,8 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" @@ -1061,6 +1173,8 @@ "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1076,6 +1190,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-function-name": "^7.23.0", @@ -1092,6 +1208,8 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-json-strings": "^7.8.3" @@ -1107,6 +1225,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1121,6 +1241,8 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" @@ -1136,6 +1258,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1150,6 +1274,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5" @@ -1165,6 +1291,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5", @@ -1181,6 +1309,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-module-transforms": "^7.23.3", @@ -1198,6 +1328,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5" @@ -1213,6 +1345,8 @@ "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" @@ -1228,6 +1362,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1242,6 +1378,8 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" @@ -1257,6 +1395,8 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-numeric-separator": "^7.10.4" @@ -1272,6 +1412,8 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dev": true, + "peer": true, "dependencies": { "@babel/compat-data": "^7.23.3", "@babel/helper-compilation-targets": "^7.22.15", @@ -1290,6 +1432,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-replace-supers": "^7.22.20" @@ -1305,6 +1449,8 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" @@ -1320,6 +1466,8 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -1336,6 +1484,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1350,6 +1500,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1365,6 +1517,8 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-create-class-features-plugin": "^7.22.15", @@ -1382,6 +1536,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1396,6 +1552,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "regenerator-transform": "^0.15.2" @@ -1411,6 +1569,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1425,6 +1585,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1439,6 +1601,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1454,6 +1618,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1468,6 +1634,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1482,6 +1650,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1492,27 +1662,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", - "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1527,6 +1682,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1542,6 +1699,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1557,6 +1716,8 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1572,6 +1733,8 @@ "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.6.tgz", "integrity": "sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-compilation-targets": "^7.23.6", @@ -1665,6 +1828,8 @@ "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", @@ -1674,28 +1839,12 @@ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/preset-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", - "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-typescript": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/regjsgen": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true, + "peer": true }, "node_modules/@babel/runtime": { "version": "7.23.6", @@ -1717,6 +1866,8 @@ "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.22.13", "@babel/parser": "^7.22.15", @@ -1730,6 +1881,8 @@ "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz", "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.23.5", "@babel/generator": "^7.23.6", @@ -1750,6 +1903,8 @@ "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -1762,7 +1917,9 @@ "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "peer": true }, "node_modules/@buttercup/fetch": { "version": "0.2.1", @@ -2071,6 +2228,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "peer": true, "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -2086,6 +2245,8 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -2094,6 +2255,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -2110,6 +2273,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -2124,6 +2289,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2139,6 +2306,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -2149,12 +2318,16 @@ "node_modules/@jest/console/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/@jest/console/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -2163,6 +2336,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -2171,6 +2346,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -2182,6 +2359,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "peer": true, "dependencies": { "@jest/console": "^29.7.0", "@jest/reporters": "^29.7.0", @@ -2228,6 +2407,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -2242,6 +2423,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2257,6 +2440,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -2267,12 +2452,16 @@ "node_modules/@jest/core/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/@jest/core/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -2281,6 +2470,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -2289,6 +2480,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -2300,6 +2493,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "peer": true, "dependencies": { "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", @@ -2314,6 +2509,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "peer": true, "dependencies": { "expect": "^29.7.0", "jest-snapshot": "^29.7.0" @@ -2326,6 +2523,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "peer": true, "dependencies": { "jest-get-type": "^29.6.3" }, @@ -2337,6 +2536,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", @@ -2353,6 +2554,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "peer": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -2367,6 +2570,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "peer": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^29.7.0", @@ -2409,6 +2614,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -2423,6 +2630,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2438,6 +2647,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "peer": true, "engines": { "node": ">=10" } @@ -2446,6 +2657,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -2456,12 +2669,16 @@ "node_modules/@jest/reporters/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/@jest/reporters/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -2470,6 +2687,8 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "dev": true, + "peer": true, "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -2485,6 +2704,8 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "peer": true, "dependencies": { "yallist": "^4.0.0" }, @@ -2496,6 +2717,8 @@ "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -2510,6 +2733,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -2518,6 +2743,8 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "peer": true, "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -2530,6 +2757,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -2540,12 +2769,15 @@ "node_modules/@jest/reporters/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "peer": true }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -2557,6 +2789,8 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", @@ -2570,6 +2804,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "peer": true, "dependencies": { "@jest/console": "^29.7.0", "@jest/types": "^29.6.3", @@ -2584,6 +2820,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "peer": true, "dependencies": { "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", @@ -2598,6 +2836,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -2606,6 +2846,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "peer": true, "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", @@ -2631,6 +2873,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -2645,6 +2889,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2660,6 +2906,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -2670,12 +2918,16 @@ "node_modules/@jest/transform/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/@jest/transform/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -2684,6 +2936,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -2692,6 +2946,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -2703,6 +2959,7 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -2719,6 +2976,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -2733,6 +2991,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2748,6 +3007,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -2758,12 +3018,14 @@ "node_modules/@jest/types/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/@jest/types/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -2772,6 +3034,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -2783,6 +3046,8 @@ "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "peer": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -2796,6 +3061,8 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "peer": true, "engines": { "node": ">=6.0.0" } @@ -2804,6 +3071,8 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "peer": true, "engines": { "node": ">=6.0.0" } @@ -2822,12 +3091,16 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true, + "peer": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.20", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2961,96 +3234,15 @@ } }, "node_modules/@nextcloud/capabilities": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@nextcloud/capabilities/-/capabilities-1.1.0.tgz", - "integrity": "sha512-BccveP5M5eKym1gtTYVI2huk75nzYuxqJ+JXkqF3C+gZVdJk8AE3pySKhBtRmngM6vy8BzDVQk5Q/LplHCKPgw==", - "dependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/preset-env": "^7.18.10", - "@babel/preset-typescript": "^7.18.6", - "@nextcloud/browserslist-config": "^2.2.0", - "@nextcloud/initial-state": "^2.0.0", - "babel-jest": "^29.5.0", - "babel-plugin-transform-class-properties": "^6.24.1", - "core-js": "^3.24.1", - "jest": "^29.5.0", - "typedoc": "^0.24.1", - "typescript": "^4.7.4" - }, - "engines": { - "node": "^20.0.0", - "npm": "^9.0.0" - } - }, - "node_modules/@nextcloud/capabilities/node_modules/@nextcloud/browserslist-config": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@nextcloud/browserslist-config/-/browserslist-config-2.2.0.tgz", - "integrity": "sha512-kC42RQW5rZjZZsRaEjVlIQpp6aW/yxm+zZdETnrRQnUzcPwBgF4wO4makfGT63Ckd+LkgUW+geesPiPRqxFVew==" - }, - "node_modules/@nextcloud/capabilities/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@nextcloud/capabilities/node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@nextcloud/capabilities/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@nextcloud/capabilities/node_modules/typedoc": { - "version": "0.24.8", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.24.8.tgz", - "integrity": "sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@nextcloud/capabilities/-/capabilities-1.2.0.tgz", + "integrity": "sha512-L1NQtOfHWzkfj0Ple1MEJt6HmOHWAi3y4qs+OnwSWexqJT0DtXTVPyRxi7ADyITwRxS5H9R/HMl6USAj4Nr1nQ==", "dependencies": { - "lunr": "^2.3.9", - "marked": "^4.3.0", - "minimatch": "^9.0.0", - "shiki": "^0.14.1" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 14.14" - }, - "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x" - } - }, - "node_modules/@nextcloud/capabilities/node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "@nextcloud/initial-state": "^2.1.0" }, "engines": { - "node": ">=4.2.0" + "node": "^20.0.0", + "npm": "^10.0.0" } }, "node_modules/@nextcloud/dialogs": { @@ -3468,12 +3660,6 @@ "webpack-dev-server": "^4.15.1" } }, - "node_modules/@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8-no-fsevents.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", - "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", - "optional": true - }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -3522,12 +3708,15 @@ "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true }, "node_modules/@sinonjs/commons": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "peer": true, "dependencies": { "type-detect": "4.0.8" } @@ -3536,6 +3725,8 @@ "version": "10.3.0", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "peer": true, "dependencies": { "@sinonjs/commons": "^3.0.0" } @@ -3544,6 +3735,8 @@ "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "peer": true, "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -3556,6 +3749,8 @@ "version": "7.6.7", "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.0.0" } @@ -3564,6 +3759,8 @@ "version": "7.4.4", "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "peer": true, "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -3573,6 +3770,8 @@ "version": "7.20.4", "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.20.7" } @@ -3684,6 +3883,8 @@ "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "peer": true, "dependencies": { "@types/node": "*" } @@ -3716,12 +3917,14 @@ "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "*" } @@ -3730,6 +3933,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, "dependencies": { "@types/istanbul-lib-report": "*" } @@ -3786,6 +3990,7 @@ "version": "20.10.4", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.4.tgz", "integrity": "sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==", + "dev": true, "dependencies": { "undici-types": "~5.26.4" } @@ -3902,7 +4107,9 @@ "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "peer": true }, "node_modules/@types/toastify-js": { "version": "1.12.3", @@ -3933,6 +4140,7 @@ "version": "17.0.32", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, "dependencies": { "@types/yargs-parser": "*" } @@ -3940,7 +4148,8 @@ "node_modules/@types/yargs-parser": { "version": "21.0.3", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "6.14.0", @@ -4836,6 +5045,8 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "peer": true, "dependencies": { "type-fest": "^0.21.3" }, @@ -4863,19 +5074,18 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } }, - "node_modules/ansi-sequence-parser": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", - "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==" - }, "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -4887,6 +5097,8 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "peer": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -4909,6 +5121,8 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "peer": true, "dependencies": { "sprintf-js": "~1.0.2" } @@ -5104,116 +5318,32 @@ "node_modules/available-typed-arrays": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==" - }, - "node_modules/babel-code-frame/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "peer": true, "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q==", - "dependencies": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng==", + "node_modules/axios": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "peer": true, "dependencies": { "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", @@ -5234,6 +5364,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -5248,6 +5380,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5263,6 +5397,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -5273,12 +5409,16 @@ "node_modules/babel-jest/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/babel-jest/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -5287,6 +5427,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -5295,6 +5437,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -5320,18 +5464,12 @@ "webpack": ">=5" } }, - "node_modules/babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -5347,6 +5485,8 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "peer": true, "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -5361,6 +5501,8 @@ "version": "0.4.7", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/compat-data": "^7.22.6", "@babel/helper-define-polyfill-provider": "^0.4.4", @@ -5374,6 +5516,8 @@ "version": "0.8.7", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-define-polyfill-provider": "^0.4.4", "core-js-compat": "^3.33.1" @@ -5386,6 +5530,8 @@ "version": "0.5.4", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", + "dev": true, + "peer": true, "dependencies": { "@babel/helper-define-polyfill-provider": "^0.4.4" }, @@ -5393,26 +5539,12 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/babel-plugin-syntax-class-properties": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", - "integrity": "sha512-chI3Rt9T1AbrQD1s+vxw3KcwC9yHtF621/MacuItITfZX344uhQoANjpoSJZleAmW2tjlolqB/f+h7jIqXa7pA==" - }, - "node_modules/babel-plugin-transform-class-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", - "integrity": "sha512-n4jtBA3OYBdvG5PRMKsMXJXHfLYw/ZOmtxCLOOwz6Ro5XlrColkStLnz1AS1L2yfPA9BKJ1ZNlmVCLjAL9DSIg==", - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-plugin-syntax-class-properties": "^6.8.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, "node_modules/babel-preset-current-node-syntax": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", @@ -5435,6 +5567,8 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "peer": true, "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" @@ -5446,98 +5580,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-runtime/node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "hasInstallScript": true - }, - "node_modules/babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/babel-traverse/node_modules/globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-traverse/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", - "dependencies": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "node_modules/babel-types/node_modules/to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "bin": { - "babylon": "bin/babylon.js" - } - }, "node_modules/bail": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", @@ -5599,7 +5641,8 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "devOptional": true, + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -5710,6 +5753,8 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5719,6 +5764,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -5867,6 +5913,7 @@ "version": "4.22.2", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, "funding": [ { "type": "opencollective", @@ -5881,6 +5928,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001565", "electron-to-chromium": "^1.4.601", @@ -5898,6 +5946,8 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "peer": true, "dependencies": { "node-int64": "^0.4.0" } @@ -5930,7 +5980,9 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "peer": true }, "node_modules/buffer-xor": { "version": "1.0.3", @@ -6044,6 +6096,8 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "peer": true, "engines": { "node": ">=6" } @@ -6052,6 +6106,8 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "peer": true, "engines": { "node": ">=6" } @@ -6105,6 +6161,7 @@ "version": "1.0.30001568", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001568.tgz", "integrity": "sha512-vSUkH84HontZJ88MiNrOau1EBrCqEQYgkC5gIySiDlpsm8sGVrhU7Kx4V6h0tnqaHzIHZv08HlJIwPbL4XL9+A==", + "dev": true, "funding": [ { "type": "opencollective", @@ -6118,7 +6175,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "peer": true }, "node_modules/ccount": { "version": "2.0.1", @@ -6133,6 +6191,8 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -6171,13 +6231,14 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "devOptional": true, + "dev": true, "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } ], + "peer": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -6208,6 +6269,7 @@ "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, "funding": [ { "type": "github", @@ -6232,7 +6294,9 @@ "node_modules/cjs-module-lexer": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true, + "peer": true }, "node_modules/clamp": { "version": "1.0.1", @@ -6253,6 +6317,8 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "peer": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -6302,6 +6368,8 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "peer": true, "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -6310,12 +6378,16 @@ "node_modules/collect-v8-coverage": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "peer": true }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "peer": true, "dependencies": { "color-name": "1.1.3" } @@ -6323,7 +6395,9 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "peer": true }, "node_modules/colord": { "version": "2.9.3", @@ -6359,14 +6433,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "engines": { - "node": ">= 6" - } - }, "node_modules/comment-parser": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", @@ -6443,7 +6509,9 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "peer": true }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", @@ -6509,7 +6577,9 @@ "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "peer": true }, "node_modules/cookie": { "version": "0.6.0", @@ -6542,6 +6612,8 @@ "version": "3.34.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.34.0.tgz", "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", + "dev": true, + "peer": true, "dependencies": { "browserslist": "^4.22.2" }, @@ -6655,6 +6727,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -6675,6 +6749,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -6689,6 +6765,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6704,6 +6782,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -6714,12 +6794,16 @@ "node_modules/create-jest/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/create-jest/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -6728,6 +6812,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -6739,6 +6825,8 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "peer": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -6998,6 +7086,8 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "peer": true, "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, @@ -7018,6 +7108,8 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -7138,6 +7230,8 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -7165,6 +7259,8 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "peer": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -7320,7 +7416,9 @@ "node_modules/electron-to-chromium": { "version": "1.4.611", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.611.tgz", - "integrity": "sha512-ZtRpDxrjHapOwxtv+nuth5ByB8clyn8crVynmRNGO3wG3LOp8RTcyZDqwaI6Ng6y8FCK2hVZmJoqwCskKbNMaw==" + "integrity": "sha512-ZtRpDxrjHapOwxtv+nuth5ByB8clyn8crVynmRNGO3wG3LOp8RTcyZDqwaI6Ng6y8FCK2hVZmJoqwCskKbNMaw==", + "dev": true, + "peer": true }, "node_modules/elliptic": { "version": "6.5.5", @@ -7349,6 +7447,8 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "peer": true, "engines": { "node": ">=12" }, @@ -7371,7 +7471,9 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "peer": true }, "node_modules/emojis-list": { "version": "3.0.0", @@ -7437,6 +7539,8 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "peer": true, "dependencies": { "is-arrayish": "^0.2.1" } @@ -7572,6 +7676,8 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "peer": true, "engines": { "node": ">=6" } @@ -7585,6 +7691,8 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "peer": true, "engines": { "node": ">=0.8.0" } @@ -8414,6 +8522,8 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "peer": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -8482,6 +8592,8 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -8538,6 +8650,8 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "peer": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -8560,6 +8674,8 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "peer": true, "engines": { "node": ">= 0.8.0" } @@ -8568,6 +8684,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "peer": true, "dependencies": { "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", @@ -8692,7 +8810,9 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "peer": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -8758,6 +8878,8 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "peer": true, "dependencies": { "bser": "2.1.1" } @@ -8802,6 +8924,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -8866,6 +8989,8 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "peer": true, "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -9020,20 +9145,19 @@ "dev": true, "peer": true }, - "node_modules/fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "peer": true }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -9071,6 +9195,8 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -9079,6 +9205,8 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "peer": true, "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -9107,6 +9235,8 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "peer": true, "engines": { "node": ">=8.0.0" } @@ -9115,6 +9245,8 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -9156,6 +9288,8 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9175,7 +9309,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "devOptional": true, + "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -9235,6 +9369,8 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "peer": true, "engines": { "node": ">=4" } @@ -9315,7 +9451,8 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true }, "node_modules/graphemer": { "version": "1.4.0", @@ -9341,25 +9478,6 @@ "node": ">=6" } }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -9374,6 +9492,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "peer": true, "engines": { "node": ">=4" } @@ -9469,6 +9589,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "peer": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -9650,7 +9772,9 @@ "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "peer": true }, "node_modules/html-tags": { "version": "3.3.1", @@ -9780,6 +9904,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "peer": true, "engines": { "node": ">=10.17.0" } @@ -9894,6 +10020,8 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "peer": true, "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -9912,6 +10040,8 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "peer": true, "dependencies": { "find-up": "^4.0.0" }, @@ -9923,6 +10053,8 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "peer": true, "engines": { "node": ">=0.8.19" } @@ -9944,6 +10076,8 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "peer": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -9952,7 +10086,9 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "peer": true }, "node_modules/ini": { "version": "1.3.8", @@ -9991,14 +10127,6 @@ "node": ">=10.13.0" } }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/ipaddr.js": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", @@ -10055,7 +10183,9 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "peer": true }, "node_modules/is-bigint": { "version": "1.0.4", @@ -10074,7 +10204,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "devOptional": true, + "dev": true, + "peer": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -10137,6 +10268,8 @@ "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "peer": true, "dependencies": { "hasown": "^2.0.0" }, @@ -10180,7 +10313,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.10.0" } @@ -10189,6 +10322,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -10197,6 +10332,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "peer": true, "engines": { "node": ">=6" } @@ -10221,7 +10358,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "devOptional": true, + "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -10263,6 +10400,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "engines": { "node": ">=0.12.0" } @@ -10347,6 +10485,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "peer": true, "engines": { "node": ">=8" }, @@ -10452,7 +10592,9 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "peer": true }, "node_modules/isobject": { "version": "3.0.1", @@ -10468,6 +10610,8 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -10476,6 +10620,8 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "peer": true, "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -10491,6 +10637,8 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "peer": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -10504,6 +10652,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -10512,6 +10662,8 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "peer": true, "dependencies": { "yallist": "^4.0.0" }, @@ -10523,6 +10675,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "peer": true, "dependencies": { "semver": "^7.5.3" }, @@ -10537,6 +10691,8 @@ "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -10551,6 +10707,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -10561,12 +10719,16 @@ "node_modules/istanbul-lib-report/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "peer": true }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "peer": true, "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -10580,6 +10742,8 @@ "version": "3.1.6", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "peer": true, "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -10592,6 +10756,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "peer": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -10617,6 +10783,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "peer": true, "dependencies": { "execa": "^5.0.0", "jest-util": "^29.7.0", @@ -10630,6 +10798,8 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "peer": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -10644,6 +10814,8 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -10655,6 +10827,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "peer": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -10685,6 +10859,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10699,6 +10875,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10714,6 +10892,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -10724,12 +10904,16 @@ "node_modules/jest-circus/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/jest-circus/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -10738,6 +10922,8 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "peer": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -10752,6 +10938,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -10760,6 +10948,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -10771,6 +10961,8 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -10782,6 +10974,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "peer": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/test-result": "^29.7.0", @@ -10814,6 +11008,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10828,6 +11024,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10843,6 +11041,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -10853,12 +11053,16 @@ "node_modules/jest-cli/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/jest-cli/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -10867,6 +11071,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -10878,6 +11084,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^29.7.0", @@ -10922,6 +11130,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10936,6 +11146,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10951,6 +11163,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -10961,12 +11175,16 @@ "node_modules/jest-config/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/jest-config/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -10975,6 +11193,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -10983,6 +11203,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -10994,6 +11216,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "peer": true, "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", @@ -11008,6 +11232,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11022,6 +11248,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11037,6 +11265,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -11047,12 +11277,16 @@ "node_modules/jest-diff/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/jest-diff/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -11061,6 +11295,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -11072,6 +11308,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "peer": true, "dependencies": { "detect-newline": "^3.0.0" }, @@ -11083,6 +11321,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -11098,6 +11338,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11112,6 +11354,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11127,6 +11371,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -11137,12 +11383,16 @@ "node_modules/jest-each/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/jest-each/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -11151,6 +11401,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -11162,6 +11414,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "peer": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -11178,6 +11432,8 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "peer": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -11186,6 +11442,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", @@ -11210,6 +11468,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "peer": true, "dependencies": { "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" @@ -11222,6 +11482,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "peer": true, "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", @@ -11236,6 +11498,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11250,6 +11514,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11265,6 +11531,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -11275,12 +11543,16 @@ "node_modules/jest-matcher-utils/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/jest-matcher-utils/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -11289,6 +11561,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -11300,6 +11574,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", @@ -11319,6 +11595,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11333,6 +11611,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11348,6 +11628,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -11358,12 +11640,16 @@ "node_modules/jest-message-util/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/jest-message-util/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -11372,6 +11658,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -11380,6 +11668,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -11391,6 +11681,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -11404,6 +11696,8 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "peer": true, "engines": { "node": ">=6" }, @@ -11420,6 +11714,8 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "peer": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -11428,6 +11724,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "peer": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", @@ -11447,6 +11745,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "peer": true, "dependencies": { "jest-regex-util": "^29.6.3", "jest-snapshot": "^29.7.0" @@ -11459,6 +11759,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11473,6 +11775,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11488,6 +11792,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -11498,12 +11804,16 @@ "node_modules/jest-resolve/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/jest-resolve/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -11512,6 +11822,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -11520,6 +11832,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -11531,6 +11845,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "peer": true, "dependencies": { "@jest/console": "^29.7.0", "@jest/environment": "^29.7.0", @@ -11562,6 +11878,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11576,6 +11894,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11591,6 +11911,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -11601,12 +11923,16 @@ "node_modules/jest-runner/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/jest-runner/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -11615,6 +11941,8 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "peer": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -11629,6 +11957,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -11640,6 +11970,8 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -11651,6 +11983,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "peer": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -11683,6 +12017,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11697,6 +12033,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11712,6 +12050,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -11722,12 +12062,16 @@ "node_modules/jest-runtime/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/jest-runtime/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -11736,6 +12080,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -11744,6 +12090,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -11755,6 +12103,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "peer": true, "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", @@ -11785,6 +12135,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11799,6 +12151,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11814,6 +12168,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -11824,12 +12180,16 @@ "node_modules/jest-snapshot/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/jest-snapshot/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -11838,6 +12198,8 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "peer": true, "dependencies": { "yallist": "^4.0.0" }, @@ -11849,6 +12211,8 @@ "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -11863,6 +12227,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -11873,12 +12239,15 @@ "node_modules/jest-snapshot/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "peer": true }, "node_modules/jest-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -11895,6 +12264,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11909,6 +12279,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11924,6 +12295,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -11934,12 +12306,14 @@ "node_modules/jest-util/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/jest-util/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -11948,6 +12322,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -11959,6 +12334,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "camelcase": "^6.2.0", @@ -11975,6 +12352,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11989,6 +12368,8 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -12000,6 +12381,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12015,6 +12398,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -12025,12 +12410,16 @@ "node_modules/jest-validate/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/jest-validate/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -12039,6 +12428,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -12050,6 +12441,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "peer": true, "dependencies": { "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", @@ -12068,6 +12461,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -12082,6 +12477,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12097,6 +12494,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "peer": true, "engines": { "node": ">=10" } @@ -12105,6 +12504,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -12115,12 +12516,16 @@ "node_modules/jest-watcher/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/jest-watcher/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -12129,6 +12534,8 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "peer": true, "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -12141,6 +12548,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -12152,6 +12561,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -12166,6 +12576,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -12174,6 +12585,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -12187,12 +12599,16 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "peer": true }, "node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "peer": true, "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -12215,6 +12631,8 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "peer": true, "bin": { "jsesc": "bin/jsesc" }, @@ -12232,7 +12650,9 @@ "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "peer": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -12252,6 +12672,8 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "peer": true, "bin": { "json5": "lib/cli.js" }, @@ -12259,11 +12681,6 @@ "node": ">=6" } }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" - }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -12288,6 +12705,8 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "peer": true, "engines": { "node": ">=6" } @@ -12319,6 +12738,8 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "peer": true, "engines": { "node": ">=6" } @@ -12340,7 +12761,9 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "peer": true }, "node_modules/linkify-string": { "version": "4.1.3", @@ -12398,6 +12821,8 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "peer": true, "dependencies": { "p-locate": "^4.1.0" }, @@ -12408,12 +12833,16 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "peer": true }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "peer": true }, "node_modules/lodash.get": { "version": "4.4.2", @@ -12448,54 +12877,22 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "peer": true, "dependencies": { "yallist": "^3.0.2" } }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" - } - }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "peer": true, "dependencies": { "tmpl": "1.0.5" } @@ -12882,7 +13279,8 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "node_modules/merge2": { "version": "1.4.1", @@ -13442,6 +13840,7 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -13507,6 +13906,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "peer": true, "engines": { "node": ">=6" } @@ -13539,6 +13940,8 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -13618,7 +14021,9 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "peer": true }, "node_modules/negotiator": { "version": "0.6.3", @@ -13700,7 +14105,9 @@ "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "peer": true }, "node_modules/node-polyfill-webpack-plugin": { "version": "3.0.0", @@ -13757,7 +14164,9 @@ "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true, + "peer": true }, "node_modules/normalize-package-data": { "version": "3.0.3", @@ -13815,6 +14224,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -13823,6 +14233,8 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "peer": true, "dependencies": { "path-key": "^3.0.0" }, @@ -13982,6 +14394,8 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "peer": true, "dependencies": { "wrappy": "1" } @@ -13990,6 +14404,8 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "peer": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -14061,6 +14477,8 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "peer": true, "dependencies": { "p-limit": "^2.2.0" }, @@ -14072,6 +14490,8 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "peer": true, "dependencies": { "p-try": "^2.0.0" }, @@ -14100,6 +14520,8 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "peer": true, "engines": { "node": ">=6" } @@ -14146,6 +14568,8 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -14180,6 +14604,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -14188,6 +14614,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -14196,6 +14624,8 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -14203,7 +14633,9 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "peer": true }, "node_modules/path-posix": { "version": "1.0.0", @@ -14252,6 +14684,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "engines": { "node": ">=8.6" }, @@ -14259,18 +14692,12 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, "node_modules/pirates": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "peer": true, "engines": { "node": ">= 6" } @@ -14587,6 +15014,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "peer": true, "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -14600,6 +15029,8 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -14628,6 +15059,8 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "peer": true, "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -14716,6 +15149,7 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true, "funding": [ { "type": "individual", @@ -14725,7 +15159,8 @@ "type": "opencollective", "url": "https://opencollective.com/fast-check" } - ] + ], + "peer": true }, "node_modules/qs": { "version": "6.12.0", @@ -14851,7 +15286,9 @@ "node_modules/react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true, + "peer": true }, "node_modules/read-pkg": { "version": "6.0.0", @@ -15015,7 +15452,8 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "devOptional": true, + "dev": true, + "peer": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -15056,12 +15494,16 @@ "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "peer": true }, "node_modules/regenerate-unicode-properties": { "version": "10.1.1", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "peer": true, "dependencies": { "regenerate": "^1.4.2" }, @@ -15069,15 +15511,12 @@ "node": ">=4" } }, - "node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, "node_modules/regenerator-transform": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.8.4" } @@ -15104,6 +15543,8 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "peer": true, "dependencies": { "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", @@ -15120,6 +15561,8 @@ "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "peer": true, "dependencies": { "jsesc": "~0.5.0" }, @@ -15131,6 +15574,8 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "peer": true, "bin": { "jsesc": "bin/jsesc" } @@ -15355,6 +15800,8 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -15387,6 +15834,8 @@ "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "peer": true, "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -15403,6 +15852,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "peer": true, "dependencies": { "resolve-from": "^5.0.0" }, @@ -15414,6 +15865,8 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -15432,6 +15885,8 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "peer": true, "engines": { "node": ">=10" } @@ -15707,6 +16162,8 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "peer": true, "bin": { "semver": "bin/semver.js" } @@ -15950,6 +16407,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "peer": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -15961,6 +16420,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -15975,17 +16436,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/shiki": { - "version": "0.14.6", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.6.tgz", - "integrity": "sha512-R4koBBlQP33cC8cpzX0hAoOURBHJILp4Aaduh2eYi+Vj8ZBqtK/5SWNEHBS3qwUMu8dqOtI/ftno3ESfNeVW9g==", - "dependencies": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" - } - }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", @@ -16008,20 +16458,16 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "peer": true }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "engines": { - "node": ">=6" - } + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "peer": true }, "node_modules/slice-ansi": { "version": "4.0.0", @@ -16109,6 +16555,8 @@ "version": "0.5.13", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "peer": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -16214,12 +16662,16 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "peer": true }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "peer": true, "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -16231,6 +16683,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -16353,6 +16807,8 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16414,6 +16870,8 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -16425,6 +16883,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -16433,6 +16893,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "peer": true, "engines": { "node": ">=6" } @@ -16457,6 +16919,8 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "peer": true, "engines": { "node": ">=8" }, @@ -16766,6 +17230,8 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "peer": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -16814,6 +17280,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "peer": true, "engines": { "node": ">= 0.4" }, @@ -17020,6 +17488,8 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "peer": true, "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -17069,12 +17539,16 @@ "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "peer": true }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "peer": true, "engines": { "node": ">=4" } @@ -17083,6 +17557,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -17357,6 +17832,8 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "peer": true, "engines": { "node": ">=4" } @@ -17365,6 +17842,8 @@ "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -17488,12 +17967,15 @@ "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "peer": true, "engines": { "node": ">=4" } @@ -17502,6 +17984,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "peer": true, "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -17514,6 +17998,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "peer": true, "engines": { "node": ">=4" } @@ -17522,6 +18008,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "peer": true, "engines": { "node": ">=4" } @@ -17644,6 +18132,7 @@ "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, "funding": [ { "type": "opencollective", @@ -17658,6 +18147,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -17758,6 +18248,8 @@ "version": "9.2.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dev": true, + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -17822,16 +18314,6 @@ "dev": true, "peer": true }, - "node_modules/vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==" - }, - "node_modules/vscode-textmate": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==" - }, "node_modules/vue": { "version": "2.7.16", "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.16.tgz", @@ -18101,6 +18583,8 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "peer": true, "dependencies": { "makeerror": "1.0.12" } @@ -18453,6 +18937,8 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "peer": true, "dependencies": { "isexe": "^2.0.0" }, @@ -18511,6 +18997,8 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -18527,6 +19015,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -18541,6 +19031,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -18551,17 +19043,23 @@ "node_modules/wrap-ansi/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "peer": true }, "node_modules/write-file-atomic": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "peer": true, "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -18616,6 +19114,8 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "peer": true, "engines": { "node": ">=10" } @@ -18623,12 +19123,16 @@ "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "peer": true }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "peer": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -18656,6 +19160,8 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "peer": true, "engines": { "node": ">=12" } diff --git a/src/components/DaemonConfig/DaemonConfig.vue b/src/components/DaemonConfig/DaemonConfig.vue index d3a048d9..dd4b4d46 100644 --- a/src/components/DaemonConfig/DaemonConfig.vue +++ b/src/components/DaemonConfig/DaemonConfig.vue @@ -18,7 +18,13 @@ {{ !isDefault ? t('app_api', 'Set as default') : t('app_api', 'Default') }} - + + {{ t('app_api', 'Test deploy') }} + + + {{ t('app_api', 'Delete') }} @@ -49,9 +61,11 @@ import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js' import NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js' import CheckBold from 'vue-material-design-icons/CheckBold.vue' +import TestTube from 'vue-material-design-icons/TestTube.vue' import DaemonConfigDetailsModal from './DaemonConfigDetailsModal.vue' import ConfirmDaemonDeleteModal from './ConfirmDaemonDeleteModal.vue' +import DaemonTestDeploy from './DaemonTestDeploy.vue' export default { name: 'DaemonConfig', @@ -61,7 +75,9 @@ export default { CheckBold, DaemonConfigDetailsModal, ConfirmDaemonDeleteModal, + DaemonTestDeploy, NcLoadingIcon, + TestTube, }, props: { daemon: { @@ -90,6 +106,7 @@ export default { deleting: false, showDeleteDialog: false, removeExAppsOnDaemonDelete: false, + showTestDeployDialog: false, } }, computed: { @@ -118,7 +135,7 @@ export default { this.settingDefault = false }) }, - deleteDaemonConfig(daemon) { + deleteDaemonConfig() { this.showDeleteDialog = true }, _deleteDaemonConfig(daemon) { @@ -137,6 +154,9 @@ export default { this.showDetailsModal = false }) }, + showTestDeployModal() { + this.showTestDeployDialog = true + }, }, } diff --git a/src/components/DaemonConfig/DaemonConfigDetailsModal.vue b/src/components/DaemonConfig/DaemonConfigDetailsModal.vue index 23274c6f..4fc80044 100644 --- a/src/components/DaemonConfig/DaemonConfigDetailsModal.vue +++ b/src/components/DaemonConfig/DaemonConfigDetailsModal.vue @@ -12,6 +12,7 @@ {{ t('app_api', 'Manual install daemon usually used for development. It cannot be set as default daemon.') }} +

{{ t('app_api', 'ExApps installed') }}: {{ daemon.exAppsCount }}

{{ t('app_api', 'Name') }}: {{ daemon.name }}

{{ t('app_api', 'Protocol') }}: {{ daemon.protocol }}

{{ t('app_api', 'Host') }}: {{ daemon.host }}

diff --git a/src/components/DaemonConfig/DaemonTestDeploy.vue b/src/components/DaemonConfig/DaemonTestDeploy.vue new file mode 100644 index 00000000..07a2b3bd --- /dev/null +++ b/src/components/DaemonConfig/DaemonTestDeploy.vue @@ -0,0 +1,386 @@ + + + + + From fecd3f4f43a7390da6abb91dd5853e25aac217f7 Mon Sep 17 00:00:00 2001 From: Andrey Borysenko Date: Fri, 26 Apr 2024 16:32:33 +0300 Subject: [PATCH 2/8] WIP: Test deploy (2) Signed-off-by: Andrey Borysenko --- CHANGELOG.md | 6 ++ appinfo/info.xml | 5 +- appinfo/routes.php | 1 + docs/TestDeploy.rst | 95 ++++++++++++++++++ docs/img/test_deploy.png | Bin 0 -> 61038 bytes docs/img/test_deploy_modal_2.png | Bin 0 -> 96621 bytes docs/img/test_deploy_modal_4.png | Bin 0 -> 95152 bytes docs/index.rst | 1 + lib/Controller/DaemonConfigController.php | 16 ++- lib/Controller/ExAppsPageController.php | 20 +++- lib/Migration/DaemonUpdateV2RepairStep.php | 4 +- lib/Service/DaemonConfigService.php | 14 ++- .../DaemonConfig/DaemonTestDeploy.vue | 42 ++++---- 13 files changed, 164 insertions(+), 40 deletions(-) create mode 100644 docs/TestDeploy.rst create mode 100644 docs/img/test_deploy.png create mode 100644 docs/img/test_deploy_modal_2.png create mode 100644 docs/img/test_deploy_modal_4.png diff --git a/CHANGELOG.md b/CHANGELOG.md index f4fadd79..2586e728 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [2.5.1 - 2024-0x-xx] + +### Added + +- Test deploy button in Admin settings for each Daemon configuration. + ## [2.5.0 - 2024-04-23] ### Added diff --git a/appinfo/info.xml b/appinfo/info.xml index d66b4d7c..a9a11dea 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -43,7 +43,7 @@ to join us in shaping a more versatile, stable, and secure app landscape. *Your insights, suggestions, and contributions are invaluable to us.* ]]> - 2.5.0 + 2.5.1 agpl Andrey Borysenko Alexander Piskun @@ -75,6 +75,9 @@ to join us in shaping a more versatile, stable, and secure app landscape. OCA\AppAPI\Migration\DaemonUpdateV2RepairStep OCA\AppAPI\Migration\DaemonUpdateGPUSRepairStep + + OCA\AppAPI\Migration\DaemonUpdateGPUSRepairStep + OCA\AppAPI\Command\ExApp\Deploy diff --git a/appinfo/routes.php b/appinfo/routes.php index 9051dc22..bac06c48 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -51,6 +51,7 @@ // Test Deploy actions ['name' => 'DaemonConfig#startTestDeploy', 'url' => '/daemons/{name}/test_deploy', 'verb' => 'POST'], ['name' => 'DaemonConfig#stopTestDeploy', 'url' => '/daemons/{name}/test_deploy', 'verb' => 'DELETE'], + ['name' => 'DaemonConfig#getTestDeployStatus', 'url' => '/daemons/{name}/test_deploy/status', 'verb' => 'GET'], ], 'ocs' => [ // Logging diff --git a/docs/TestDeploy.rst b/docs/TestDeploy.rst new file mode 100644 index 00000000..e116a40f --- /dev/null +++ b/docs/TestDeploy.rst @@ -0,0 +1,95 @@ +.. _test_deploy: + +Test Deploy Daemon +------------------ + +You can test each Daemon configuration deployment from the AppAPI Admin settings. + +.. image:: ./img/test_deploy.png + + +Status checks +^^^^^^^^^^^^^ + +Deploy test installs a `test-deploy `_ ExApp +to verify each step of the deployment process, including hardware support check - +for each compute device there is a separate Docker image. + +.. note:: + Test Deploy ExApp container is not removed after the test as it's needed for the logs and status checks. + You can remove it after test from the External Apps page. + The Docker images are also not removed from the Daemon, you can cleanup unused images with the ``docker image prune`` command. + +.. image:: ./img/test_deploy_modal_4.png + + +Register +******** + +Register step is the first step, checks if the ExApp is registered in the Nextcloud. + +Image pull +********** + +Image pull step downloads the ExApp Docker image. + +Possible errors: + +- Image not found +- Image pull failed (e.g. due to network issues) +- Image pull timeout + +Container started +***************** + +Container started step verifies if the ExApp container is created and started successfully. + +Possible errors: + +- Container failed to start with GPUs support + + - For NVIDIA refer to the `NVIDIA Docker configuration docs `_. + - For AMD refer to the `ROCm Docker configuration docs `_. + + +Heartbeat +********* + +Heartbeat step checks if the container healthcheck finished and healthy. +ExApp might have additional pre-configuration logic during this step. + +Possible errors: + +- ExApp failed to start a webserver e.g. if it's already in use (should be visible in the container logs) + + +Init +**** + +Init step checks if the ExApp is initialized and ready to use. +During init step ExApp can perform download of extra stuff required for it. + +Possible errors: + +- Initialization failed (e.g. due to network issues or timeout) + + +Enabled +******* + +Enabled step checks if the ExApp is enabled and ready to use. +During this step ExApp registers all the required and available APIs of the Nextcloud AppFramework. + +Possible errors: + +- ExApp didn't respond to the enable request +- ExApp failed to enable due to failure of registering AppAPI Nextcloud AppFramework APIs (should be visible both in the container logs and in the Nextcloud logs if there are any errors) + + +Download logs +^^^^^^^^^^^^^ + +You can download the logs of the last test deploy attempt container. + +.. note:: + Downloading Docker container works only for containers with the json-file or journald logging driver. diff --git a/docs/img/test_deploy.png b/docs/img/test_deploy.png new file mode 100644 index 0000000000000000000000000000000000000000..2ca76c1cb6437061cb5d9905d6ff81d811b64901 GIT binary patch literal 61038 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

J@~23 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

k@bR4I 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 ?3*!X)aI~FX zcyS3rlmw50V@N;d(o05)z)OG~rFr!5yDT+a03lBynV{?!K{)`OhR!S6Qf%Qo7BIX1 z$@cfJj;~9I@GZi0zZ>4dmMl7b-^NL;V=m}Pe&|pT2*QCZ5j5A3BX4?D2}8U*V6l0oI{b!WaUrIIBlar)%8@_yHSB-U+#bBr1yHRz?oZ_6Mt>HQmhsFooaA%owgGd7fjl{(t-iWPK z@5PcL#n4WBPEkQz`YE}3=OLfU1}hAM ztxUsw=zj65tTv^Mo#h#Fw$W!0uev(AOAdx54lHSA1Kg{^7z2?a#q1hlgjT<&$HxWn zf)=YpKp3iyfgDRf{Y}9-edaA0{~B+W!H7p?H+dBjpBX19W_RJZG)!Ws$u#pRK&y^$ z!|;4%b7aYB5s_qEq?mr2FbAQyEadS-zy2}|s+KQ`0_e76#%~iL!Ej=zp{AVSBE|<7 zKo&!#;EioVaK#iEo*$lbw82L(+o6MFUxzr7qw0dC?7Gan4l?quEszQkqy`O@@u!if zDYlAMsIlu%p%{DHfq2GGF1E#ffAIm{Y9tFjycO}CPzi+Ag15;F75<4}dgfqi1gnD5 z2wUXqWDJB@L2*lJGbK=bvec%u3YAzW?0$eZuL|%$8B#nRx;$^jOb|At4nsbvo6Vu_j*mj_WNpJ;??6XEX@SkFI$bJ+KV_o&P`cuh_&2Lyi5 zf!djXYCvabH> z;R9TLNGtCyktu0q?*hsm()b8}0D}WG-l${DFzb|8`h=7oq!Nkm0OGN&6w(#<5vU8S zlD>;xTOOoqA-?y&l)8xmVRw=tadu{(liap6n!F_mR=fbo3U#FX?h2I~8jUFem(oqCl{O8(A9`QKk+Gr^ z+)%BApwsPrNdjYo?u^osjtFnXFxbr}p68g@Jwnb~LDo0+(R%+X1jCXImNd74(~7b# zo?6w;V>+IM?!AYGAMFM#c<-l>riKf-+T>Ox{o3 z0mMmLDjkR>+m3B;CAn+FvNX9CiOi?az{-$?O63svVqgLjpm*R`7 z?6C_;7tf>&#ekz?#c-fv2L0J&eK^<0W2KVDc z+V~TCywP1Jto8m3KB4R?(ZXz(a==*v(X1&3n>NH%AR#A^Aj%% zoM%?VKm>lkdScNk!3ob9PXX^8iC%#v@3)mWeKtJ9WXS^SmKuLW|d{C9kpjmk58!`1m)`u`B`G z_dRolNsf4wK?`YIKA#_w+c7={WSekKI9H{@qjm8Oo;k#`nE9IABg1dJz{H3+o~_

k;nDmNJjH(c0 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 literal 0 HcmV?d00001 diff --git a/docs/index.rst b/docs/index.rst index 722a1386..56e814e5 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -26,6 +26,7 @@ and handle complex problems through issues. Installation DeployConfigurations CreationOfDeployDaemon + TestDeploy ManagingExternalApplications Concepts tech_details/index.rst diff --git a/lib/Controller/DaemonConfigController.php b/lib/Controller/DaemonConfigController.php index 94ec4875..b764880a 100644 --- a/lib/Controller/DaemonConfigController.php +++ b/lib/Controller/DaemonConfigController.php @@ -4,7 +4,7 @@ namespace OCA\AppAPI\Controller; -use OC\AppFramework\Http; +use OCP\AppFramework\Http; use OCA\AppAPI\AppInfo\Application; use OCA\AppAPI\Db\DaemonConfig; @@ -145,7 +145,6 @@ public function startTestDeploy(string $name): Response { $status = $exApp->getStatus(); return new JSONResponse([ - 'success' => $exApp !== null, 'status' => $status, ]); } @@ -155,10 +154,23 @@ public function stopTestDeploy(string $name): Response { $exApp = $this->exAppService->getExApp(Application::TEST_DEPLOY_APPID); if ($exApp !== null) { $this->service->runOccCommand(sprintf("app_api:app:unregister --silent --force %s", Application::TEST_DEPLOY_APPID)); + $elapsedTime = 0; + while ($elapsedTime < 5000000 && $this->exAppService->getExApp(Application::TEST_DEPLOY_APPID) === null) { + usleep(150000); // 0.15 + $elapsedTime += 150000; + } } $exApp = $this->exAppService->getExApp(Application::TEST_DEPLOY_APPID); return new JSONResponse([ 'success' => $exApp === null, ]); } + + public function getTestDeployStatus(string $name): Response { + $exApp = $this->exAppService->getExApp(Application::TEST_DEPLOY_APPID); + if (is_null($exApp) || $exApp->getDaemonConfigName() !== $name) { + return new JSONResponse(['error' => $this->l10n->t('ExApp not found, failed to get status')], Http::STATUS_NOT_FOUND); + } + return new JSONResponse($exApp->getStatus()); + } } diff --git a/lib/Controller/ExAppsPageController.php b/lib/Controller/ExAppsPageController.php index b2d7165c..64c7022b 100644 --- a/lib/Controller/ExAppsPageController.php +++ b/lib/Controller/ExAppsPageController.php @@ -5,6 +5,7 @@ namespace OCA\AppAPI\Controller; use Exception; +use GuzzleHttp\Exception\GuzzleException; use OC\App\AppStore\Fetcher\CategoryFetcher; use OC\App\AppStore\Version\VersionParser; use OC\App\DependencyAnalyzer; @@ -535,25 +536,34 @@ public function getAppStatus(string $appId): JSONResponse { } #[NoCSRFRequired] - public function getAppLogs(string $appId): DataDownloadResponse { + public function getAppLogs(string $appId, string $tail = 'all'): DataDownloadResponse { $exApp = $this->exAppService->getExApp($appId); if (is_null($exApp)) { - return new DataDownloadResponse(json_encode(['error' => $this->l10n->t('ExApp not found, failed to get logs')]), $this->dockerActions->buildExAppContainerName($appId) . '_logs.txt', 'text/plain'); + return new DataDownloadResponse( + json_encode(['error' => $this->l10n->t('ExApp not found, failed to get logs')]), + $this->dockerActions->buildExAppContainerName($appId) . '_logs.txt', + 'text/plain' + ); } $daemonConfig = $this->daemonConfigService->getDaemonConfigByName($exApp->getDaemonConfigName()); $this->dockerActions->initGuzzleClient($daemonConfig); try { $logs = $this->dockerActions->getContainerLogs( $this->dockerActions->buildDockerUrl($daemonConfig), - $this->dockerActions->buildExAppContainerName($appId) + $this->dockerActions->buildExAppContainerName($appId), + $tail ); return new DataDownloadResponse( $logs, $this->dockerActions->buildExAppContainerName($appId) . '_logs.txt', 'text/plain', Http::STATUS_OK ); - } catch (Exception) { - return new DataDownloadResponse(json_encode(['error' => $this->l10n->t('Failed to get logs')]), $this->dockerActions->buildExAppContainerName($appId) . '_logs.txt', 'text/plain'); + } catch (GuzzleException $e) { + return new DataDownloadResponse( + json_encode(['error' => $this->l10n->t('Failed to get container logs. Note: Downloading Docker container works only for containers with the json-file or journald logging driver. Error: %s', [$e->getMessage()])]), + $this->dockerActions->buildExAppContainerName($appId) . '_logs.txt', + 'text/plain' + ); } } diff --git a/lib/Migration/DaemonUpdateV2RepairStep.php b/lib/Migration/DaemonUpdateV2RepairStep.php index 3dad6638..013ed0a3 100644 --- a/lib/Migration/DaemonUpdateV2RepairStep.php +++ b/lib/Migration/DaemonUpdateV2RepairStep.php @@ -19,7 +19,7 @@ public function __construct( } public function getName(): string { - return 'AppAPI 2.0 Daemons configuration update'; + return 'AppAPI 2.5.0 Daemons configuration update'; } public function run(IOutput $output): void { @@ -30,7 +30,7 @@ public function run(IOutput $output): void { foreach ($daemons as $daemon) { $daemonsUpdated += $this->updateDaemonConfiguration($daemon); } - $output->info(sprintf('Daemons configurations updated to V2: %s', $daemonsUpdated)); + $output->info(sprintf('Daemons configurations updated to V2.5.0: %s', $daemonsUpdated)); } private function updateDaemonConfiguration(DaemonConfig $daemonConfig): int { diff --git a/lib/Service/DaemonConfigService.php b/lib/Service/DaemonConfigService.php index 6ccd23ec..d2ebd084 100644 --- a/lib/Service/DaemonConfigService.php +++ b/lib/Service/DaemonConfigService.php @@ -74,15 +74,13 @@ public function getRegisteredDaemonConfigs(): array { } public function getDaemonConfigsWithAppsCount(): array { - $exApps = $this->exAppService->getExAppsList('all'); - $daemonsExAppsCount = []; - foreach ($exApps as $app) { - $exApp = $this->exAppService->getExApp($app['id']); - if (!isset($daemonsExAppsCount[$exApp->getDaemonConfigName()])) { - $daemonsExAppsCount[$exApp->getDaemonConfigName()] = 0; + $daemonsExAppsCount = array_reduce($this->exAppService->getExApps(), function (array $carry, $exApp) { + if (!isset($carry[$exApp->getDaemonConfigName()])) { + $carry[$exApp->getDaemonConfigName()] = 0; } - $daemonsExAppsCount[$exApp->getDaemonConfigName()] += 1; - } + $carry[$exApp->getDaemonConfigName()] += 1; + return $carry; + }, []); return array_map(function (DaemonConfig $daemonConfig) use ($daemonsExAppsCount) { return [ ...$daemonConfig->jsonSerialize(), diff --git a/src/components/DaemonConfig/DaemonTestDeploy.vue b/src/components/DaemonConfig/DaemonTestDeploy.vue index 07a2b3bd..c7afa8f3 100644 --- a/src/components/DaemonConfig/DaemonTestDeploy.vue +++ b/src/components/DaemonConfig/DaemonTestDeploy.vue @@ -133,7 +133,7 @@ export default { loading: false, error: false, error_message: '', - help_url: 'https://cloud-py-api.github.io/app_api/', + help_url: 'https://cloud-py-api.github.io/app_api/TestDeploy.html#register', }, image_pull: { id: 'image_pull', @@ -143,7 +143,7 @@ export default { loading: false, error: false, error_message: '', - help_url: 'https://cloud-py-api.github.io/app_api/', + help_url: 'https://cloud-py-api.github.io/app_api/TestDeploy.html#image-pull', }, container_started: { id: 'container_started', @@ -153,7 +153,7 @@ export default { loading: false, error: false, error_message: '', - help_url: 'https://cloud-py-api.github.io/app_api/', + help_url: 'https://cloud-py-api.github.io/app_api/TestDeploy.html#container-started', }, heartbeat: { id: 'heartbeat', @@ -163,7 +163,7 @@ export default { loading: false, error: false, error_message: '', - help_url: 'https://cloud-py-api.github.io/app_api/', + help_url: 'https://cloud-py-api.github.io/app_api/TestDeploy.html#heartbeat', }, init: { id: 'init', @@ -173,7 +173,7 @@ export default { loading: false, error: false, error_message: '', - help_url: 'https://cloud-py-api.github.io/app_api/', + help_url: 'https://cloud-py-api.github.io/app_api/TestDeploy.html#init', }, enabled: { id: 'enabled', @@ -183,7 +183,7 @@ export default { loading: false, error: false, error_message: '', - help_url: 'https://cloud-py-api.github.io/app_api/', + help_url: 'https://cloud-py-api.github.io/app_api/TestDeploy.html#enabled', }, }, } @@ -218,23 +218,20 @@ export default { }).catch(() => { this.stopDeployTest() }).finally(() => { - this.startingTest = false + this.clearTestRunning() }) }, _startDeployTest() { return axios.post(generateUrl(`/apps/app_api/daemons/${this.daemon.name}/test_deploy`)) .then(res => { - if (res.data.success) { - this.startDeployTestPolling() - } + this.startDeployTestPolling() return res }).catch(err => { console.debug(err) if (err.data.error) { showError(err.data.error) } - this.testRunning = false - clearInterval(this.polling) + this.clearTestRunning() return err }) }, @@ -245,11 +242,10 @@ export default { }, stopDeployTest() { this._stopDeployTest().then(() => { - this.testRunning = false Object.values(this.statusChecks).forEach(statusCheck => { statusCheck.loading = false }) - clearInterval(this.polling) + this.clearTestRunning() }) }, _stopDeployTest() { @@ -261,20 +257,19 @@ export default { }) }, fetchTestDeployStatus() { - return axios.get(generateUrl('/apps/app_api/apps/status/test-deploy')) + return axios.get(generateUrl(`/apps/app_api/daemons/${this.daemon.name}/test_deploy/status`)) .then(res => { this.handleTestDeployStatus(res.data) }).catch(err => { // test-deploy app is not registered, test is not running if (err.status === 404) { - this.testRunning = false - clearInterval(this.polling) + this.clearTestRunning() } }) }, handleTestDeployStatus(status) { const currentStep = this._detectCurrentStep(status) - if (currentStep !== null) { + if (currentStep !== null && status.error === '') { this.testRunning = true if (this.polling === null) { this.startDeployTestPolling() @@ -305,8 +300,7 @@ export default { statusCheck.passed = status.init === 100 && status.deploy === 100 && status.action === '' && status.error === '' if (statusCheck.passed) { showSuccess(t('app_api', 'Deploy test passed successfully!')) - clearInterval(this.polling) - this.testRunning = false + this.clearTestRunning() statusCheck.loading = false } break @@ -317,8 +311,7 @@ export default { statusCheck.loading = false statusCheck.passed = false showError(t('app_api', 'Deploy test failed at step "{step}"', { step })) - clearInterval(this.polling) - this.testRunning = false + this.clearTestRunning() } }) }, @@ -357,6 +350,11 @@ export default { } return 'info' }, + clearTestRunning() { + this.testRunning = false + clearInterval(this.polling) + this.polling = null + }, getDownloadLogsUrl() { return generateUrl('/apps/app_api/apps/logs/test-deploy') }, From fde26bb8833aa9d2274c8b43eeac16909992def4 Mon Sep 17 00:00:00 2001 From: Andrey Borysenko Date: Fri, 26 Apr 2024 16:35:30 +0300 Subject: [PATCH 3/8] fix php-cs Signed-off-by: Andrey Borysenko --- lib/Controller/DaemonConfigController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Controller/DaemonConfigController.php b/lib/Controller/DaemonConfigController.php index b764880a..8be20e13 100644 --- a/lib/Controller/DaemonConfigController.php +++ b/lib/Controller/DaemonConfigController.php @@ -4,15 +4,15 @@ namespace OCA\AppAPI\Controller; -use OCP\AppFramework\Http; use OCA\AppAPI\AppInfo\Application; use OCA\AppAPI\Db\DaemonConfig; - use OCA\AppAPI\DeployActions\DockerActions; + use OCA\AppAPI\Service\AppAPIService; use OCA\AppAPI\Service\DaemonConfigService; use OCA\AppAPI\Service\ExAppService; use OCP\AppFramework\ApiController; +use OCP\AppFramework\Http; use OCP\AppFramework\Http\Attribute\NoCSRFRequired; use OCP\AppFramework\Http\JSONResponse; use OCP\AppFramework\Http\Response; From 2a52f17766a94a477c85cf01580b0b6cdd35ca14 Mon Sep 17 00:00:00 2001 From: Andrey Borysenko Date: Fri, 26 Apr 2024 16:36:37 +0300 Subject: [PATCH 4/8] fix info.xml lint Signed-off-by: Andrey Borysenko --- appinfo/info.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/appinfo/info.xml b/appinfo/info.xml index a9a11dea..236f15ad 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -70,14 +70,14 @@ to join us in shaping a more versatile, stable, and secure app landscape. OCA\AppAPI\BackgroundJob\ProvidersAICleanUpJob + + OCA\AppAPI\Migration\DaemonUpdateGPUSRepairStep + OCA\AppAPI\Migration\DataInitializationStep OCA\AppAPI\Migration\DaemonUpdateV2RepairStep OCA\AppAPI\Migration\DaemonUpdateGPUSRepairStep - - OCA\AppAPI\Migration\DaemonUpdateGPUSRepairStep - OCA\AppAPI\Command\ExApp\Deploy From 3553dabae1dcebb48ea1150f9ae03681db59a036 Mon Sep 17 00:00:00 2001 From: Andrey Borysenko Date: Fri, 26 Apr 2024 16:37:35 +0300 Subject: [PATCH 5/8] update changelog Signed-off-by: Andrey Borysenko --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2586e728..7abe0d60 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### Added -- Test deploy button in Admin settings for each Daemon configuration. +- Test deploy button in Admin settings for each Daemon configuration. #279 ## [2.5.0 - 2024-04-23] From ca96f9c2255eecc325ed74f9116951838a8d754e Mon Sep 17 00:00:00 2001 From: Alexander Piskun <13381981+bigcat88@users.noreply.github.com> Date: Sat, 27 Apr 2024 17:26:04 +0300 Subject: [PATCH 6/8] docs: corrected grammar Signed-off-by: Alexander Piskun --- docs/TestDeploy.rst | 57 ++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/docs/TestDeploy.rst b/docs/TestDeploy.rst index e116a40f..4a9521bf 100644 --- a/docs/TestDeploy.rst +++ b/docs/TestDeploy.rst @@ -8,17 +8,17 @@ You can test each Daemon configuration deployment from the AppAPI Admin settings .. image:: ./img/test_deploy.png -Status checks +Status Checks ^^^^^^^^^^^^^ -Deploy test installs a `test-deploy `_ ExApp -to verify each step of the deployment process, including hardware support check - -for each compute device there is a separate Docker image. +The Deploy test installs a `test-deploy `_ ExApp +to verify each step of the deployment process, including a hardware support check - +for each compute device, there is a separate Docker image. .. note:: - Test Deploy ExApp container is not removed after the test as it's needed for the logs and status checks. - You can remove it after test from the External Apps page. - The Docker images are also not removed from the Daemon, you can cleanup unused images with the ``docker image prune`` command. + The Test Deploy ExApp container is not removed after the test as it's needed for logs and status checks. + You can remove it after testing from the External Apps page. + The Docker images are also not removed from the Daemon; you can clean up unused images with the ``docker image prune`` command. .. image:: ./img/test_deploy_modal_4.png @@ -26,70 +26,69 @@ for each compute device there is a separate Docker image. Register ******** -Register step is the first step, checks if the ExApp is registered in the Nextcloud. +The Register step is the first step; it checks if the ExApp is registered in Nextcloud. -Image pull +Image Pull ********** -Image pull step downloads the ExApp Docker image. +The Image Pull step downloads the ExApp Docker image. Possible errors: - Image not found -- Image pull failed (e.g. due to network issues) +- Image pull failed (e.g., due to network issues) - Image pull timeout -Container started +Container Started ***************** -Container started step verifies if the ExApp container is created and started successfully. +The Container Started step verifies that the ExApp container is created and started successfully. Possible errors: -- Container failed to start with GPUs support - - - For NVIDIA refer to the `NVIDIA Docker configuration docs `_. - - For AMD refer to the `ROCm Docker configuration docs `_. +- Container failed to start with GPU support + - For NVIDIA, refer to the `NVIDIA Docker configuration docs `_. + - For AMD, refer to the `ROCm Docker configuration docs `_. Heartbeat ********* -Heartbeat step checks if the container healthcheck finished and healthy. -ExApp might have additional pre-configuration logic during this step. +The Heartbeat step checks if the container's health check is finished and the container is healthy. +The ExApp might have additional pre-configuration logic during this step. Possible errors: -- ExApp failed to start a webserver e.g. if it's already in use (should be visible in the container logs) +- ExApp failed to start a web server, e.g., if the port is already in use (this should be visible in the container logs) Init **** -Init step checks if the ExApp is initialized and ready to use. -During init step ExApp can perform download of extra stuff required for it. +The Init step checks if the ExApp is initialized and ready to use. +During the init step, the ExApp may perform downloads of extra stuff required for it. Possible errors: -- Initialization failed (e.g. due to network issues or timeout) +- Initialization failed (e.g., due to network issues or timeout) Enabled ******* -Enabled step checks if the ExApp is enabled and ready to use. -During this step ExApp registers all the required and available APIs of the Nextcloud AppFramework. +The Enabled step checks if the ExApp is enabled and ready to use. +During this step, the ExApp registers all the required and available APIs of the Nextcloud AppFramework. Possible errors: -- ExApp didn't respond to the enable request -- ExApp failed to enable due to failure of registering AppAPI Nextcloud AppFramework APIs (should be visible both in the container logs and in the Nextcloud logs if there are any errors) +- ExApp did not respond to the enable request +- ExApp failed to enable due to a failure in registering AppAPI Nextcloud AppFramework APIs (this should be visible both in the container logs and in the Nextcloud logs if there are any errors) -Download logs +Download Logs ^^^^^^^^^^^^^ You can download the logs of the last test deploy attempt container. .. note:: - Downloading Docker container works only for containers with the json-file or journald logging driver. + Downloading Docker container logs is only possible for containers using the json-file or journald logging drivers. From ec056835283aecdb52e2363042b882246cc57371 Mon Sep 17 00:00:00 2001 From: Andrey Borysenko Date: Mon, 29 Apr 2024 11:42:37 +0300 Subject: [PATCH 7/8] fix incorrect start deploy state Signed-off-by: Andrey Borysenko --- src/components/DaemonConfig/DaemonTestDeploy.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/DaemonConfig/DaemonTestDeploy.vue b/src/components/DaemonConfig/DaemonTestDeploy.vue index c7afa8f3..a22027e3 100644 --- a/src/components/DaemonConfig/DaemonTestDeploy.vue +++ b/src/components/DaemonConfig/DaemonTestDeploy.vue @@ -218,7 +218,7 @@ export default { }).catch(() => { this.stopDeployTest() }).finally(() => { - this.clearTestRunning() + this.startingTest = false }) }, _startDeployTest() { From 26ddc3c1bbd12d35ca5b6edcc0fcdf83d9780ae9 Mon Sep 17 00:00:00 2001 From: Andrey Borysenko Date: Mon, 29 Apr 2024 12:14:49 +0300 Subject: [PATCH 8/8] fix logic on stop deploy, wait until ExApp removed Signed-off-by: Andrey Borysenko --- lib/Controller/DaemonConfigController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Controller/DaemonConfigController.php b/lib/Controller/DaemonConfigController.php index 8be20e13..6d4f1e8b 100644 --- a/lib/Controller/DaemonConfigController.php +++ b/lib/Controller/DaemonConfigController.php @@ -155,7 +155,7 @@ public function stopTestDeploy(string $name): Response { if ($exApp !== null) { $this->service->runOccCommand(sprintf("app_api:app:unregister --silent --force %s", Application::TEST_DEPLOY_APPID)); $elapsedTime = 0; - while ($elapsedTime < 5000000 && $this->exAppService->getExApp(Application::TEST_DEPLOY_APPID) === null) { + while ($elapsedTime < 5000000 && $this->exAppService->getExApp(Application::TEST_DEPLOY_APPID) !== null) { usleep(150000); // 0.15 $elapsedTime += 150000; }