git: eab3bfbaf6c1 - main - security/bitwarden-cli: update to 2024.2.0

From: Hiroki Tagato <tagattie_at_FreeBSD.org>
Date: Mon, 12 Feb 2024 11:50:14 UTC
The branch main has been updated by tagattie:

URL: https://cgit.FreeBSD.org/ports/commit/?id=eab3bfbaf6c1003d304fac43bb4f83f787f37293

commit eab3bfbaf6c1003d304fac43bb4f83f787f37293
Author:     Hiroki Tagato <tagattie@FreeBSD.org>
AuthorDate: 2024-02-12 11:48:51 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2024-02-12 11:50:04 +0000

    security/bitwarden-cli: update to 2024.2.0
    
    Changelog: https://github.com/bitwarden/clients/releases/tag/cli-v2024.2.0
    
    Reported by:    GitHub (watch releases)
---
 security/bitwarden-cli/Makefile                    |   2 +-
 security/bitwarden-cli/distinfo                    |  10 +-
 .../files/packagejsons/apps/browser/package.json   |   2 +-
 .../files/packagejsons/apps/cli/package.json       |  10 +-
 .../files/packagejsons/apps/desktop/package.json   |   2 +-
 .../files/packagejsons/apps/web/package.json       |   2 +-
 .../files/packagejsons/package-lock.json           | 487 +++++++++++++--------
 .../bitwarden-cli/files/packagejsons/package.json  |  39 +-
 8 files changed, 349 insertions(+), 205 deletions(-)

diff --git a/security/bitwarden-cli/Makefile b/security/bitwarden-cli/Makefile
index 6c8896bdf56a..a95931e89677 100644
--- a/security/bitwarden-cli/Makefile
+++ b/security/bitwarden-cli/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	bitwarden-cli
 DISTVERSIONPREFIX=	cli-v
-DISTVERSION=	2024.1.0
+DISTVERSION=	2024.2.0
 CATEGORIES=	security
 MASTER_SITES=	https://nodejs.org/dist/v${PKG_NODE_VER}/:node
 DISTFILES=	node-v${PKG_NODE_VER}${EXTRACT_SUFX}:node \
diff --git a/security/bitwarden-cli/distinfo b/security/bitwarden-cli/distinfo
index cbcd8bf5ff19..9573130d6226 100644
--- a/security/bitwarden-cli/distinfo
+++ b/security/bitwarden-cli/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1705320120
+TIMESTAMP = 1707737156
 SHA256 (node-v18.15.0.tar.gz) = d65c4c3ef3c8815bccda9502081a29458c7c80797db0763f8752f270a824ac2b
 SIZE (node-v18.15.0.tar.gz) = 85359314
-SHA256 (bitwarden-cli-2024.1.0-node-modules.tar.gz) = 0310415b6b065ef00671a8962b3dfc0d00ea4606402193f61929a8ed961431fc
-SIZE (bitwarden-cli-2024.1.0-node-modules.tar.gz) = 253208708
-SHA256 (bitwarden-clients-cli-v2024.1.0_GH0.tar.gz) = 912422df41ac3e2d68a3709a844d4980afb0f209ef58fb0da6769ee852fc1ebb
-SIZE (bitwarden-clients-cli-v2024.1.0_GH0.tar.gz) = 20175952
+SHA256 (bitwarden-cli-2024.2.0-node-modules.tar.gz) = d79cf18501aafbb6527796a83a4616099fffb217c9ac11b48945d3cd2ffb758f
+SIZE (bitwarden-cli-2024.2.0-node-modules.tar.gz) = 253509573
+SHA256 (bitwarden-clients-cli-v2024.2.0_GH0.tar.gz) = f3270d8e70ed3d65f6f9399d8c2084889e6fb304cce85e9b76ee8c55e8f1d2c2
+SIZE (bitwarden-clients-cli-v2024.2.0_GH0.tar.gz) = 20328706
diff --git a/security/bitwarden-cli/files/packagejsons/apps/browser/package.json b/security/bitwarden-cli/files/packagejsons/apps/browser/package.json
index df69eb9af789..e417adf00de7 100644
--- a/security/bitwarden-cli/files/packagejsons/apps/browser/package.json
+++ b/security/bitwarden-cli/files/packagejsons/apps/browser/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@bitwarden/browser",
-  "version": "2024.1.0",
+  "version": "2024.2.0",
   "scripts": {
     "build": "webpack",
     "build:mv3": "cross-env MANIFEST_VERSION=3 webpack",
diff --git a/security/bitwarden-cli/files/packagejsons/apps/cli/package.json b/security/bitwarden-cli/files/packagejsons/apps/cli/package.json
index fdad4ba991db..9758d0c3b803 100644
--- a/security/bitwarden-cli/files/packagejsons/apps/cli/package.json
+++ b/security/bitwarden-cli/files/packagejsons/apps/cli/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@bitwarden/cli",
   "description": "A secure and free password manager for all of your devices.",
-  "version": "2024.1.0",
+  "version": "2024.2.0",
   "keywords": [
     "bitwarden",
     "password",
@@ -48,18 +48,18 @@
   },
   "dependencies": {
     "@koa/multer": "3.0.2",
-    "@koa/router": "12.0.0",
+    "@koa/router": "12.0.1",
     "argon2": "0.31.0",
     "big-integer": "1.6.51",
     "browser-hrtime": "1.1.8",
     "chalk": "4.1.2",
     "commander": "7.2.0",
     "form-data": "4.0.0",
-    "https-proxy-agent": "5.0.1",
+    "https-proxy-agent": "7.0.2",
     "inquirer": "8.2.6",
     "jsdom": "23.0.1",
     "jszip": "3.10.1",
-    "koa": "2.14.2",
+    "koa": "2.15.0",
     "koa-bodyparser": "4.4.1",
     "koa-json": "2.0.2",
     "lowdb": "1.0.0",
@@ -71,7 +71,7 @@
     "papaparse": "5.4.1",
     "proper-lockfile": "4.1.2",
     "rxjs": "7.8.1",
-    "tldts": "6.1.1",
+    "tldts": "6.1.2",
     "zxcvbn": "4.4.2"
   }
 }
diff --git a/security/bitwarden-cli/files/packagejsons/apps/desktop/package.json b/security/bitwarden-cli/files/packagejsons/apps/desktop/package.json
index 8713590629e2..4412235c2717 100644
--- a/security/bitwarden-cli/files/packagejsons/apps/desktop/package.json
+++ b/security/bitwarden-cli/files/packagejsons/apps/desktop/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@bitwarden/desktop",
   "description": "A secure and free password manager for all of your devices.",
-  "version": "2024.1.0",
+  "version": "2024.2.0",
   "keywords": [
     "bitwarden",
     "password",
diff --git a/security/bitwarden-cli/files/packagejsons/apps/web/package.json b/security/bitwarden-cli/files/packagejsons/apps/web/package.json
index a49a551c3662..809c79edffbd 100644
--- a/security/bitwarden-cli/files/packagejsons/apps/web/package.json
+++ b/security/bitwarden-cli/files/packagejsons/apps/web/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@bitwarden/web-vault",
-  "version": "2024.1.0",
+  "version": "2024.2.0",
   "scripts": {
     "build:oss": "webpack",
     "build:bit": "webpack -c ../../bitwarden_license/bit-web/webpack.config.js",
diff --git a/security/bitwarden-cli/files/packagejsons/package-lock.json b/security/bitwarden-cli/files/packagejsons/package-lock.json
index ddf70a298c5d..85151f66b65f 100644
--- a/security/bitwarden-cli/files/packagejsons/package-lock.json
+++ b/security/bitwarden-cli/files/packagejsons/package-lock.json
@@ -25,7 +25,7 @@
         "@angular/platform-browser-dynamic": "15.2.10",
         "@angular/router": "15.2.10",
         "@koa/multer": "3.0.2",
-        "@koa/router": "12.0.0",
+        "@koa/router": "12.0.1",
         "@microsoft/signalr": "6.0.25",
         "@microsoft/signalr-protocol-msgpack": "6.0.25",
         "@ng-select/ng-select": "10.0.4",
@@ -33,19 +33,19 @@
         "argon2-browser": "1.18.0",
         "big-integer": "1.6.51",
         "bootstrap": "4.6.0",
-        "braintree-web-drop-in": "1.41.0",
+        "braintree-web-drop-in": "1.42.0",
         "bufferutil": "4.0.8",
         "chalk": "4.1.2",
         "commander": "7.2.0",
         "core-js": "3.34.0",
         "duo_web_sdk": "github:duosecurity/duo_web_sdk",
         "form-data": "4.0.0",
-        "https-proxy-agent": "5.0.1",
+        "https-proxy-agent": "7.0.2",
         "inquirer": "8.2.6",
         "jquery": "3.7.1",
         "jsdom": "23.0.1",
         "jszip": "3.10.1",
-        "koa": "2.14.2",
+        "koa": "2.15.0",
         "koa-bodyparser": "4.4.1",
         "koa-json": "2.0.2",
         "lowdb": "1.0.0",
@@ -62,10 +62,11 @@
         "patch-package": "8.0.0",
         "popper.js": "1.16.1",
         "proper-lockfile": "4.1.2",
+        "qrcode-parser": "2.1.3",
         "qrious": "4.0.2",
         "rxjs": "7.8.1",
         "tabbable": "6.2.0",
-        "tldts": "6.1.1",
+        "tldts": "6.1.2",
         "utf-8-validate": "6.0.3",
         "zone.js": "0.12.0",
         "zxcvbn": "4.4.2"
@@ -80,7 +81,7 @@
         "@angular/elements": "15.2.10",
         "@compodoc/compodoc": "1.1.23",
         "@electron/notarize": "2.2.0",
-        "@electron/rebuild": "3.4.1",
+        "@electron/rebuild": "3.5.0",
         "@ngtools/webpack": "15.2.10",
         "@storybook/addon-a11y": "7.6.4",
         "@storybook/addon-actions": "7.6.4",
@@ -99,13 +100,13 @@
         "@types/jest": "29.5.11",
         "@types/jquery": "3.5.29",
         "@types/jsdom": "21.1.6",
-        "@types/koa": "2.13.8",
-        "@types/koa__multer": "2.0.4",
-        "@types/koa__router": "12.0.0",
+        "@types/koa": "2.14.0",
+        "@types/koa__multer": "2.0.7",
+        "@types/koa__router": "12.0.4",
         "@types/koa-bodyparser": "4.3.7",
-        "@types/koa-json": "2.0.20",
+        "@types/koa-json": "2.0.23",
         "@types/lowdb": "1.0.11",
-        "@types/lunr": "2.3.4",
+        "@types/lunr": "2.3.7",
         "@types/node": "18.19.2",
         "@types/node-fetch": "2.6.4",
         "@types/node-forge": "1.3.10",
@@ -115,8 +116,8 @@
         "@types/react": "16.14.54",
         "@types/retry": "0.12.2",
         "@types/zxcvbn": "4.4.4",
-        "@typescript-eslint/eslint-plugin": "6.16.0",
-        "@typescript-eslint/parser": "6.16.0",
+        "@typescript-eslint/eslint-plugin": "6.19.1",
+        "@typescript-eslint/parser": "6.19.1",
         "@webcomponents/custom-elements": "1.6.0",
         "autoprefixer": "10.4.16",
         "base64-loader": "1.0.0",
@@ -127,7 +128,7 @@
         "copy-webpack-plugin": "11.0.0",
         "cross-env": "7.0.3",
         "css-loader": "6.8.1",
-        "electron": "27.2.0",
+        "electron": "28.1.3",
         "electron-builder": "23.6.0",
         "electron-log": "5.0.1",
         "electron-reload": "2.0.0-alpha.1",
@@ -140,7 +141,7 @@
         "eslint-plugin-rxjs": "5.0.3",
         "eslint-plugin-rxjs-angular": "2.0.1",
         "eslint-plugin-storybook": "0.6.15",
-        "eslint-plugin-tailwindcss": "3.13.0",
+        "eslint-plugin-tailwindcss": "3.13.1",
         "gulp": "4.0.2",
         "gulp-filter": "9.0.1",
         "gulp-if": "3.0.0",
@@ -153,15 +154,15 @@
         "husky": "8.0.3",
         "jest-junit": "16.0.0",
         "jest-mock-extended": "3.0.5",
-        "jest-preset-angular": "13.1.4",
+        "jest-preset-angular": "14.0.0",
         "lint-staged": "15.2.0",
         "mini-css-extract-plugin": "2.7.6",
         "node-ipc": "9.2.1",
         "pkg": "vercel/pkg",
         "postcss": "8.4.32",
         "postcss-loader": "7.3.3",
-        "prettier": "3.1.1",
-        "prettier-plugin-tailwindcss": "0.5.10",
+        "prettier": "3.2.2",
+        "prettier-plugin-tailwindcss": "0.5.11",
         "process": "0.11.10",
         "react": "18.2.0",
         "react-dom": "18.2.0",
@@ -173,7 +174,7 @@
         "storybook": "7.6.4",
         "style-loader": "3.3.3",
         "tailwindcss": "3.3.5",
-        "ts-jest": "29.1.1",
+        "ts-jest": "29.1.2",
         "ts-loader": "9.5.1",
         "tsconfig-paths-webpack-plugin": "4.1.0",
         "type-fest": "2.19.0",
@@ -193,26 +194,26 @@
     },
     "apps/browser": {
       "name": "@bitwarden/browser",
-      "version": "2024.1.0"
+      "version": "2024.2.0"
     },
     "apps/cli": {
       "name": "@bitwarden/cli",
-      "version": "2024.1.0",
+      "version": "2024.2.0",
       "license": "GPL-3.0-only",
       "dependencies": {
         "@koa/multer": "3.0.2",
-        "@koa/router": "12.0.0",
+        "@koa/router": "12.0.1",
         "argon2": "0.31.0",
         "big-integer": "1.6.51",
         "browser-hrtime": "1.1.8",
         "chalk": "4.1.2",
         "commander": "7.2.0",
         "form-data": "4.0.0",
-        "https-proxy-agent": "5.0.1",
+        "https-proxy-agent": "7.0.2",
         "inquirer": "8.2.6",
         "jsdom": "23.0.1",
         "jszip": "3.10.1",
-        "koa": "2.14.2",
+        "koa": "2.15.0",
         "koa-bodyparser": "4.4.1",
         "koa-json": "2.0.2",
         "lowdb": "1.0.0",
@@ -224,7 +225,7 @@
         "papaparse": "5.4.1",
         "proper-lockfile": "4.1.2",
         "rxjs": "7.8.1",
-        "tldts": "6.1.1",
+        "tldts": "6.1.2",
         "zxcvbn": "4.4.2"
       },
       "bin": {
@@ -233,7 +234,7 @@
     },
     "apps/desktop": {
       "name": "@bitwarden/desktop",
-      "version": "2024.1.0",
+      "version": "2024.2.0",
       "hasInstallScript": true,
       "license": "GPL-3.0"
     },
@@ -263,7 +264,7 @@
     },
     "apps/web": {
       "name": "@bitwarden/web-vault",
-      "version": "2024.1.0"
+      "version": "2024.2.0"
     },
     "libs/admin-console": {
       "name": "@bitwarden/admin-console",
@@ -819,6 +820,19 @@
         "node": ">=4.0"
       }
     },
+    "node_modules/@angular-devkit/build-angular/node_modules/https-proxy-agent": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+      "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+      "dev": true,
+      "dependencies": {
+        "agent-base": "6",
+        "debug": "4"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
     "node_modules/@angular-devkit/build-angular/node_modules/inquirer": {
       "version": "8.2.4",
       "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz",
@@ -5467,9 +5481,9 @@
       }
     },
     "node_modules/@electron/rebuild": {
-      "version": "3.4.1",
-      "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.4.1.tgz",
-      "integrity": "sha512-iMKb6KJgKcdURbejs0j2GLEmrY8uY4rg1ESThXx9sFTgdWb8UOfJuTqW6LIEtcoY8FrbFqDmJrkWc4tBpdStXw==",
+      "version": "3.5.0",
+      "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.5.0.tgz",
+      "integrity": "sha512-pWRza7F+JxzTNATkEgI5iW7lAQTVBtU5r6ZjUSbrD04kbuQWUIHBcuvqosaHvKLmTpdRlsZQkPxTYciIoOWf3A==",
       "dev": true,
       "dependencies": {
         "@malept/cross-spawn-promise": "^2.0.0",
@@ -5479,7 +5493,7 @@
         "fs-extra": "^10.0.0",
         "got": "^11.7.0",
         "node-abi": "^3.45.0",
-        "node-api-version": "^0.1.4",
+        "node-api-version": "^0.2.0",
         "node-gyp": "^9.0.0",
         "ora": "^5.1.0",
         "read-binary-file-arch": "^1.0.6",
@@ -6826,10 +6840,11 @@
       }
     },
     "node_modules/@koa/router": {
-      "version": "12.0.0",
-      "resolved": "https://registry.npmjs.org/@koa/router/-/router-12.0.0.tgz",
-      "integrity": "sha512-cnnxeKHXlt7XARJptflGURdJaO+ITpNkOHmQu7NHmCoRinPbyvFzce/EG/E8Zy81yQ1W9MoSdtklc3nyaDReUw==",
+      "version": "12.0.1",
+      "resolved": "https://registry.npmjs.org/@koa/router/-/router-12.0.1.tgz",
+      "integrity": "sha512-ribfPYfHb+Uw3b27Eiw6NPqjhIhTpVFzEWLwyc/1Xp+DCdwRRyIlAUODX+9bPARF6aQtUu1+/PHzdNvRzcs/+Q==",
       "dependencies": {
+        "debug": "^4.3.4",
         "http-errors": "^2.0.0",
         "koa-compose": "^4.1.0",
         "methods": "^1.1.2",
@@ -6971,6 +6986,18 @@
         "url": "https://github.com/sponsors/isaacs"
       }
     },
+    "node_modules/@mapbox/node-pre-gyp/node_modules/https-proxy-agent": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+      "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+      "dependencies": {
+        "agent-base": "6",
+        "debug": "4"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
     "node_modules/@mapbox/node-pre-gyp/node_modules/rimraf": {
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
@@ -13017,9 +13044,9 @@
       }
     },
     "node_modules/@types/koa": {
-      "version": "2.13.8",
-      "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.8.tgz",
-      "integrity": "sha512-Ugmxmgk/yPRW3ptBTh9VjOLwsKWJuGbymo1uGX0qdaqqL18uJiiG1ZoV0rxCOYSaDGhvEp5Ece02Amx0iwaxQQ==",
+      "version": "2.14.0",
+      "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.14.0.tgz",
+      "integrity": "sha512-DTDUyznHGNHAl+wd1n0z1jxNajduyTh8R53xoewuerdBzGo6Ogj6F2299BFtrexJw4NtgjsI5SMPCmV9gZwGXA==",
       "dev": true,
       "dependencies": {
         "@types/accepts": "*",
@@ -13033,18 +13060,18 @@
       }
     },
     "node_modules/@types/koa__multer": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/@types/koa__multer/-/koa__multer-2.0.4.tgz",
-      "integrity": "sha512-WRkshXhE5rpYFUbbtAjyMhdOOSdbu1XX+2AQlRNM6AZtgxd0/WXMU4lrP7e9tk5HWVTWbx8DOOsVBmfHjSGJ4w==",
+      "version": "2.0.7",
+      "resolved": "https://registry.npmjs.org/@types/koa__multer/-/koa__multer-2.0.7.tgz",
+      "integrity": "sha512-O7hiAEpdgW1nly93jQ8TVL2nPC7Bg1HHRf1/LGNQb7ygGBjNgZWpliCm7tswNW3MjcgYbTtz0+Sca5wHne+RyA==",
       "dev": true,
       "dependencies": {
         "@types/koa": "*"
       }
     },
     "node_modules/@types/koa__router": {
-      "version": "12.0.0",
-      "resolved": "https://registry.npmjs.org/@types/koa__router/-/koa__router-12.0.0.tgz",
-      "integrity": "sha512-S6eHyZyoWCZLNHyy8j0sMW85cPrpByCbGGU2/BO4IzGiI87aHJ92lZh4E9xfsM9DcbCT469/OIqyC0sSJXSIBQ==",
+      "version": "12.0.4",
+      "resolved": "https://registry.npmjs.org/@types/koa__router/-/koa__router-12.0.4.tgz",
+      "integrity": "sha512-Y7YBbSmfXZpa/m5UGGzb7XadJIRBRnwNY9cdAojZGp65Cpe5MAP3mOZE7e3bImt8dfKS4UFcR16SLH8L/z7PBw==",
       "dev": true,
       "dependencies": {
         "@types/koa": "*"
@@ -13069,9 +13096,9 @@
       }
     },
     "node_modules/@types/koa-json": {
-      "version": "2.0.20",
-      "resolved": "https://registry.npmjs.org/@types/koa-json/-/koa-json-2.0.20.tgz",
-      "integrity": "sha512-RuQ1Vlpsm/EC5wo2oWCgNnwneixnSQ9aHQAE7nwnbSiCibgfUO2wwSQN6rn8SfF97cRdN9hKAtoc9KSIuiGP6Q==",
+      "version": "2.0.23",
+      "resolved": "https://registry.npmjs.org/@types/koa-json/-/koa-json-2.0.23.tgz",
+      "integrity": "sha512-LJKLFouztosawgU5xrtanK4neLCQKXl+vuVN96YMeVdKTYObLq2Qybggm9V426Jwam8Gi/zOrPw1g+QH0VaEHw==",
       "dev": true,
       "dependencies": {
         "@types/koa": "*"
@@ -13093,9 +13120,9 @@
       }
     },
     "node_modules/@types/lunr": {
-      "version": "2.3.4",
-      "resolved": "https://registry.npmjs.org/@types/lunr/-/lunr-2.3.4.tgz",
-      "integrity": "sha512-j4x4XJwZvorEUbA519VdQ5b9AOU9TSvfi8tvxMAfP8XzNLtFex7A8vFQwqOx3WACbV0KMXbACV3cZl4/gynQ7g==",
+      "version": "2.3.7",
+      "resolved": "https://registry.npmjs.org/@types/lunr/-/lunr-2.3.7.tgz",
+      "integrity": "sha512-Tb/kUm38e8gmjahQzdCKhbdsvQ9/ppzHFfsJ0dMs3ckqQsRj+P5IkSAwFTBrBxdyr3E/LoMUUrZngjDYAjiE3A==",
       "dev": true
     },
     "node_modules/@types/mdast": {
@@ -13454,16 +13481,16 @@
       "dev": true
     },
     "node_modules/@typescript-eslint/eslint-plugin": {
-      "version": "6.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.16.0.tgz",
-      "integrity": "sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==",
+      "version": "6.19.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.1.tgz",
+      "integrity": "sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==",
       "dev": true,
       "dependencies": {
         "@eslint-community/regexpp": "^4.5.1",
-        "@typescript-eslint/scope-manager": "6.16.0",
-        "@typescript-eslint/type-utils": "6.16.0",
-        "@typescript-eslint/utils": "6.16.0",
-        "@typescript-eslint/visitor-keys": "6.16.0",
+        "@typescript-eslint/scope-manager": "6.19.1",
+        "@typescript-eslint/type-utils": "6.19.1",
+        "@typescript-eslint/utils": "6.19.1",
+        "@typescript-eslint/visitor-keys": "6.19.1",
         "debug": "^4.3.4",
         "graphemer": "^1.4.0",
         "ignore": "^5.2.4",
@@ -13489,13 +13516,13 @@
       }
     },
     "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": {
-      "version": "6.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.16.0.tgz",
-      "integrity": "sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==",
+      "version": "6.19.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.1.tgz",
+      "integrity": "sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "6.16.0",
-        "@typescript-eslint/visitor-keys": "6.16.0"
+        "@typescript-eslint/types": "6.19.1",
+        "@typescript-eslint/visitor-keys": "6.19.1"
       },
       "engines": {
         "node": "^16.0.0 || >=18.0.0"
@@ -13506,13 +13533,13 @@
       }
     },
     "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": {
-      "version": "6.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.16.0.tgz",
-      "integrity": "sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==",
+      "version": "6.19.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.19.1.tgz",
+      "integrity": "sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/typescript-estree": "6.16.0",
-        "@typescript-eslint/utils": "6.16.0",
+        "@typescript-eslint/typescript-estree": "6.19.1",
+        "@typescript-eslint/utils": "6.19.1",
         "debug": "^4.3.4",
         "ts-api-utils": "^1.0.1"
       },
@@ -13533,9 +13560,9 @@
       }
     },
     "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": {
-      "version": "6.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.16.0.tgz",
-      "integrity": "sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==",
+      "version": "6.19.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.1.tgz",
+      "integrity": "sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==",
       "dev": true,
       "engines": {
         "node": "^16.0.0 || >=18.0.0"
@@ -13546,13 +13573,13 @@
       }
     },
     "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": {
-      "version": "6.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.16.0.tgz",
-      "integrity": "sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==",
+      "version": "6.19.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.1.tgz",
+      "integrity": "sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "6.16.0",
-        "@typescript-eslint/visitor-keys": "6.16.0",
+        "@typescript-eslint/types": "6.19.1",
+        "@typescript-eslint/visitor-keys": "6.19.1",
         "debug": "^4.3.4",
         "globby": "^11.1.0",
         "is-glob": "^4.0.3",
@@ -13574,17 +13601,17 @@
       }
     },
     "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": {
-      "version": "6.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.16.0.tgz",
-      "integrity": "sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==",
+      "version": "6.19.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.19.1.tgz",
+      "integrity": "sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==",
       "dev": true,
       "dependencies": {
         "@eslint-community/eslint-utils": "^4.4.0",
         "@types/json-schema": "^7.0.12",
         "@types/semver": "^7.5.0",
-        "@typescript-eslint/scope-manager": "6.16.0",
-        "@typescript-eslint/types": "6.16.0",
-        "@typescript-eslint/typescript-estree": "6.16.0",
+        "@typescript-eslint/scope-manager": "6.19.1",
+        "@typescript-eslint/types": "6.19.1",
+        "@typescript-eslint/typescript-estree": "6.19.1",
         "semver": "^7.5.4"
       },
       "engines": {
@@ -13599,12 +13626,12 @@
       }
     },
     "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": {
-      "version": "6.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.16.0.tgz",
-      "integrity": "sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==",
+      "version": "6.19.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.1.tgz",
+      "integrity": "sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "6.16.0",
+        "@typescript-eslint/types": "6.19.1",
         "eslint-visitor-keys": "^3.4.1"
       },
       "engines": {
@@ -13707,15 +13734,15 @@
       }
     },
     "node_modules/@typescript-eslint/parser": {
-      "version": "6.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.16.0.tgz",
-      "integrity": "sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==",
+      "version": "6.19.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.19.1.tgz",
+      "integrity": "sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/scope-manager": "6.16.0",
-        "@typescript-eslint/types": "6.16.0",
-        "@typescript-eslint/typescript-estree": "6.16.0",
-        "@typescript-eslint/visitor-keys": "6.16.0",
+        "@typescript-eslint/scope-manager": "6.19.1",
+        "@typescript-eslint/types": "6.19.1",
+        "@typescript-eslint/typescript-estree": "6.19.1",
+        "@typescript-eslint/visitor-keys": "6.19.1",
         "debug": "^4.3.4"
       },
       "engines": {
@@ -13735,13 +13762,13 @@
       }
     },
     "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
-      "version": "6.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.16.0.tgz",
-      "integrity": "sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==",
+      "version": "6.19.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.1.tgz",
+      "integrity": "sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "6.16.0",
-        "@typescript-eslint/visitor-keys": "6.16.0"
+        "@typescript-eslint/types": "6.19.1",
+        "@typescript-eslint/visitor-keys": "6.19.1"
       },
       "engines": {
         "node": "^16.0.0 || >=18.0.0"
@@ -13752,9 +13779,9 @@
       }
     },
     "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
-      "version": "6.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.16.0.tgz",
-      "integrity": "sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==",
+      "version": "6.19.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.1.tgz",
+      "integrity": "sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==",
       "dev": true,
       "engines": {
         "node": "^16.0.0 || >=18.0.0"
@@ -13765,13 +13792,13 @@
       }
     },
     "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
-      "version": "6.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.16.0.tgz",
-      "integrity": "sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==",
+      "version": "6.19.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.1.tgz",
+      "integrity": "sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "6.16.0",
-        "@typescript-eslint/visitor-keys": "6.16.0",
+        "@typescript-eslint/types": "6.19.1",
+        "@typescript-eslint/visitor-keys": "6.19.1",
         "debug": "^4.3.4",
         "globby": "^11.1.0",
         "is-glob": "^4.0.3",
@@ -13793,12 +13820,12 @@
       }
     },
     "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
-      "version": "6.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.16.0.tgz",
-      "integrity": "sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==",
+      "version": "6.19.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.1.tgz",
+      "integrity": "sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "6.16.0",
+        "@typescript-eslint/types": "6.19.1",
         "eslint-visitor-keys": "^3.4.1"
       },
       "engines": {
@@ -16151,9 +16178,9 @@
       }
     },
     "node_modules/braintree-web": {
-      "version": "3.97.4",
-      "resolved": "https://registry.npmjs.org/braintree-web/-/braintree-web-3.97.4.tgz",
-      "integrity": "sha512-w//M/ZI/MhjaxUwpICwZO50uTLF/L3WGLN4tFCPh/Xw20jDw8UBiM0Gzquq7gmwcQ1BgNnAAaYlR94HcSmt/Cg==",
+      "version": "3.99.0",
+      "resolved": "https://registry.npmjs.org/braintree-web/-/braintree-web-3.99.0.tgz",
+      "integrity": "sha512-9vSeQxAl8nz53K43Qb0GU7qgxKlxYC+YMFMMWXHyIQRg+So3wU8mZWSqlXnTJXHLXhqH2dpqMb/sAA2WKBq9WQ==",
       "dependencies": {
         "@braintree/asset-loader": "0.4.4",
         "@braintree/browser-detection": "1.17.1",
@@ -16172,16 +16199,16 @@
       }
     },
     "node_modules/braintree-web-drop-in": {
-      "version": "1.41.0",
-      "resolved": "https://registry.npmjs.org/braintree-web-drop-in/-/braintree-web-drop-in-1.41.0.tgz",
-      "integrity": "sha512-cpFY13iyoPNCTIOU7dipHmOvoblUtYFuA7ADAm0DUPk6oqxFz4EIr94R0Yg2rCabvjeauINDf01Y2d7/E1IaXg==",
+      "version": "1.42.0",
+      "resolved": "https://registry.npmjs.org/braintree-web-drop-in/-/braintree-web-drop-in-1.42.0.tgz",
+      "integrity": "sha512-f+hcJvDSxyWIE/Z1XHt0ye5jR8N/1/l7CAoOHo+zoMXKO01omuEd6O+GsSYeG+LLivPyDnaN/TPRpeRNxyWCjA==",
       "dependencies": {
         "@braintree/asset-loader": "0.4.4",
         "@braintree/browser-detection": "1.17.1",
         "@braintree/event-emitter": "0.4.1",
         "@braintree/uuid": "0.1.0",
         "@braintree/wrap-promise": "2.1.0",
-        "braintree-web": "3.97.4"
+        "braintree-web": "3.99.0"
       }
     },
     "node_modules/braintree-web/node_modules/promise-polyfill": {
@@ -16442,6 +16469,19 @@
       "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
       "dev": true
     },
+    "node_modules/builder-util/node_modules/https-proxy-agent": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+      "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+      "dev": true,
+      "dependencies": {
+        "agent-base": "6",
+        "debug": "4"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
     "node_modules/builder-util/node_modules/js-yaml": {
       "version": "4.1.0",
       "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
@@ -17700,9 +17740,9 @@
       "dev": true
     },
     "node_modules/cookies": {
-      "version": "0.8.0",
-      "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz",
-      "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==",
+      "version": "0.9.1",
+      "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz",
+      "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==",
       "dependencies": {
         "depd": "~2.0.0",
         "keygrip": "~1.1.0"
@@ -19203,9 +19243,9 @@
       }
     },
     "node_modules/electron": {
-      "version": "27.2.0",
-      "resolved": "https://registry.npmjs.org/electron/-/electron-27.2.0.tgz",
-      "integrity": "sha512-no/iMICVLI/5G0IqgKFbB89HDN88DWwKeRO+dPfJPkpJISdEX8Cx/sMEOFuuRa4VNInNe5CKCqRWExK5z3AdcQ==",
+      "version": "28.1.3",
+      "resolved": "https://registry.npmjs.org/electron/-/electron-28.1.3.tgz",
+      "integrity": "sha512-NSFyTo6SndTPXzU18XRePv4LnjmuM9rF5GMKta1/kPmi02ISoSRonnD7wUlWXD2x53XyJ6d/TbSVesMW6sXkEQ==",
       "dev": true,
       "hasInstallScript": true,
       "dependencies": {
@@ -20200,9 +20240,9 @@
       }
     },
     "node_modules/eslint-plugin-tailwindcss": {
-      "version": "3.13.0",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.13.0.tgz",
-      "integrity": "sha512-Fcep4KDRLWaK3KmkQbdyKHG0P4GdXFmXdDaweTIPcgOP60OOuWFbh1++dufRT28Q4zpKTKaHwTsXPJ4O/EjU2Q==",
+      "version": "3.13.1",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.13.1.tgz",
+      "integrity": "sha512-2Nlgr9doO6vFAG9w4iGU0sspWXuzypfng10HTF+dFS2NterhweWtgdRvf/f7aaoOUUxVZM8wMIXzazrZ7CxyeA==",
       "dev": true,
       "dependencies": {
         "fast-glob": "^3.2.5",
@@ -22195,6 +22235,19 @@
         "giget": "dist/cli.mjs"
       }
     },
+    "node_modules/giget/node_modules/https-proxy-agent": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+      "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+      "dev": true,
+      "dependencies": {
+        "agent-base": "6",
+        "debug": "4"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
     "node_modules/github-from-package": {
       "version": "0.0.0",
       "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
@@ -23984,15 +24037,26 @@
       }
     },
     "node_modules/https-proxy-agent": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
-      "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+      "version": "7.0.2",
+      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz",
+      "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==",
       "dependencies": {
-        "agent-base": "6",
+        "agent-base": "^7.0.2",
         "debug": "4"
       },
       "engines": {
-        "node": ">= 6"
+        "node": ">= 14"
+      }
+    },
+    "node_modules/https-proxy-agent/node_modules/agent-base": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
+      "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
+      "dependencies": {
+        "debug": "^4.3.4"
+      },
+      "engines": {
+        "node": ">= 14"
       }
     },
     "node_modules/human-signals": {
@@ -25683,6 +25747,19 @@
         "source-map": "~0.6.1"
       }
     },
+    "node_modules/jest-environment-jsdom/node_modules/https-proxy-agent": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+      "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+      "dev": true,
+      "dependencies": {
+        "agent-base": "6",
+        "debug": "4"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
     "node_modules/jest-environment-jsdom/node_modules/jsdom": {
       "version": "20.0.3",
       "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz",
@@ -25997,9 +26074,9 @@
       }
     },
     "node_modules/jest-preset-angular": {
-      "version": "13.1.4",
-      "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-13.1.4.tgz",
-      "integrity": "sha512-XKeWa8Qt7p37SzlJ85qEXgig06SgkfrzV057X2GSMqfz/HLJmTUjMFkHJKe65ZaQumNQWCcXpxXREr6EfZ9bow==",
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-14.0.0.tgz",
+      "integrity": "sha512-gXGgzuGbpw3MRBMe/NGCu3r2E//GKmhtFveo0XUIXMvQ3je0vcOtK+WYjxtxFTTh2xFgrA/loY5BxBcKia/GaA==",
       "dev": true,
       "dependencies": {
         "bs-logger": "^0.2.6",
@@ -26016,10 +26093,10 @@
         "esbuild": ">=0.13.8"
       },
       "peerDependencies": {
-        "@angular-devkit/build-angular": ">=13.0.0 <18.0.0",
-        "@angular/compiler-cli": ">=13.0.0 <18.0.0",
-        "@angular/core": ">=13.0.0 <18.0.0",
-        "@angular/platform-browser-dynamic": ">=13.0.0 <18.0.0",
+        "@angular-devkit/build-angular": ">=15.0.0 <18.0.0",
+        "@angular/compiler-cli": ">=15.0.0 <18.0.0",
+        "@angular/core": ">=15.0.0 <18.0.0",
+        "@angular/platform-browser-dynamic": ">=15.0.0 <18.0.0",
         "jest": "^29.0.0",
         "typescript": ">=4.4"
       }
@@ -26598,18 +26675,6 @@
         "node": ">= 14"
       }
     },
-    "node_modules/jsdom/node_modules/https-proxy-agent": {
-      "version": "7.0.2",
-      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz",
-      "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==",
-      "dependencies": {
-        "agent-base": "^7.0.2",
-        "debug": "4"
-      },
-      "engines": {
-        "node": ">= 14"
-      }
-    },
     "node_modules/jsdom/node_modules/w3c-xmlserializer": {
       "version": "5.0.0",
       "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
@@ -26776,6 +26841,11 @@
         "node >= 0.2.0"
       ]
     },
+    "node_modules/jsqr": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/jsqr/-/jsqr-1.4.0.tgz",
+      "integrity": "sha512-dxLob7q65Xg2DvstYkRpkYtmKm2sPJ9oFhrhmudT1dZvNFFTlroai3AWSpLey/w5vMcLBXRgOJsbXpdN9HzU/A=="
+    },
     "node_modules/jszip": {
       "version": "3.10.1",
       "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
@@ -26874,15 +26944,15 @@
       }
     },
     "node_modules/koa": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.2.tgz",
-      "integrity": "sha512-VFI2bpJaodz6P7x2uyLiX6RLYpZmOJqNmoCst/Yyd7hQlszyPwG/I9CQJ63nOtKSxpt5M7NH67V6nJL2BwCl7g==",
+      "version": "2.15.0",
+      "resolved": "https://registry.npmjs.org/koa/-/koa-2.15.0.tgz",
+      "integrity": "sha512-KEL/vU1knsoUvfP4MC4/GthpQrY/p6dzwaaGI6Rt4NQuFqkw3qrvsdYF5pz3wOfi7IGTvMPHC9aZIcUKYFNxsw==",
       "dependencies": {
         "accepts": "^1.3.5",
         "cache-content-type": "^1.0.0",
         "content-disposition": "~0.5.2",
         "content-type": "^1.0.4",
-        "cookies": "~0.8.0",
+        "cookies": "~0.9.0",
         "debug": "^4.3.2",
         "delegates": "^1.0.0",
         "depd": "^2.0.0",
@@ -28158,6 +28228,19 @@
         "node": ">= 8"
       }
     },
+    "node_modules/make-fetch-happen/node_modules/https-proxy-agent": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+      "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+      "dev": true,
+      "dependencies": {
+        "agent-base": "6",
+        "debug": "4"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
     "node_modules/make-fetch-happen/node_modules/lru-cache": {
       "version": "7.18.3",
       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
@@ -30198,9 +30281,9 @@
       "integrity": "sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA=="
     },
     "node_modules/node-api-version": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.1.4.tgz",
-      "integrity": "sha512-KGXihXdUChwJAOHO53bv9/vXcLmdUsZ6jIptbvYvkpKfth+r7jw44JkVxQFA3kX5nQjzjmGu1uAu/xNNLNlI5g==",
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.2.0.tgz",
+      "integrity": "sha512-fthTTsi8CxaBXMaBAD7ST2uylwvsnYxh2PfaScwpMhos6KlSFajXQPcM4ogNE1q2s3Lbz9GCGqeIHC+C6OZnKg==",
       "dev": true,
       "dependencies": {
         "semver": "^7.3.5"
@@ -30651,6 +30734,19 @@
         "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
       }
     },
+    "node_modules/npm-registry-fetch/node_modules/https-proxy-agent": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+      "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+      "dev": true,
+      "dependencies": {
+        "agent-base": "6",
+        "debug": "4"
+      },
+      "engines": {
*** 291 LINES SKIPPED ***