git: 8706f99c734f - main - security/bitwarden-cli: Update to 2026.3.0

From: Hiroki Tagato <tagattie_at_FreeBSD.org>
Date: Fri, 17 Apr 2026 12:40:19 UTC
The branch main has been updated by tagattie:

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

commit 8706f99c734f46c4fbd5cd83369b96fc05aaa476
Author:     Hiroki Tagato <tagattie@FreeBSD.org>
AuthorDate: 2026-04-17 12:26:22 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2026-04-17 12:40:09 +0000

    security/bitwarden-cli: Update to 2026.3.0
    
    Changelog: https://github.com/bitwarden/clients/releases/tag/cli-v2026.3.0
    
    Reported by:    GitHub (watch releases)
---
 security/bitwarden-cli/Makefile                    |    3 +-
 security/bitwarden-cli/distinfo                    |   10 +-
 .../files/packagejsons/apps/browser/package.json   |    2 +-
 .../src/autofill/content/components/package.json   |    4 +-
 .../files/packagejsons/apps/cli/package.json       |    4 +-
 .../apps/desktop/desktop_native/napi/package.json  |    2 +-
 .../files/packagejsons/apps/desktop/package.json   |    2 +-
 .../files/packagejsons/apps/web/package.json       |    2 +-
 .../files/packagejsons/libs/unlock/package.json    |   11 +
 .../files/packagejsons/package-lock.json           | 2859 ++++++++++++--------
 .../bitwarden-cli/files/packagejsons/package.json  |   69 +-
 ...platform_services_cli-platform-utils.service.ts |    4 +-
 12 files changed, 1757 insertions(+), 1215 deletions(-)

diff --git a/security/bitwarden-cli/Makefile b/security/bitwarden-cli/Makefile
index bac0a0af9213..c4352a8516b4 100644
--- a/security/bitwarden-cli/Makefile
+++ b/security/bitwarden-cli/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	bitwarden-cli
 DISTVERSIONPREFIX=	cli-v
-DISTVERSION=	2026.2.0
-PORTREVISION=	3
+DISTVERSION=	2026.3.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 6af74207ca7d..25da0489239e 100644
--- a/security/bitwarden-cli/distinfo
+++ b/security/bitwarden-cli/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1773496477
+TIMESTAMP = 1776417245
 SHA256 (node-v22.15.1.tar.gz) = 38aea029f8818f7783f273fbc70dcf930f9ef54bdd49c5f90c0152caec7a57be
 SIZE (node-v22.15.1.tar.gz) = 100310295
-SHA256 (bitwarden-cli-2026.2.0-node-modules.tar.gz) = c7d07076728e206489d47171f7ac71bbfb73a9d3d73eb0a7950078e1e29209ee
-SIZE (bitwarden-cli-2026.2.0-node-modules.tar.gz) = 341263274
-SHA256 (bitwarden-clients-cli-v2026.2.0_GH0.tar.gz) = ba42bd84e6d0e18e714eb2db0764bbcf78d45e7be1581ba6e05e333e4b6dded8
-SIZE (bitwarden-clients-cli-v2026.2.0_GH0.tar.gz) = 36788150
+SHA256 (bitwarden-cli-2026.3.0-node-modules.tar.gz) = 7d5a9e0b50e44560d2565c455265963257ce3de830c253726db788f279cae7fd
+SIZE (bitwarden-cli-2026.3.0-node-modules.tar.gz) = 344922772
+SHA256 (bitwarden-clients-cli-v2026.3.0_GH0.tar.gz) = 85554eade98e3cb972d4fb66d6687f752d7a78af4a4824a2668960f5258af62e
+SIZE (bitwarden-clients-cli-v2026.3.0_GH0.tar.gz) = 37342961
diff --git a/security/bitwarden-cli/files/packagejsons/apps/browser/package.json b/security/bitwarden-cli/files/packagejsons/apps/browser/package.json
index fa3da23991e3..453e2aca448f 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": "2026.2.0",
+  "version": "2026.3.0",
   "scripts": {
     "build": "npm run build:chrome",
     "build:bit": "npm run build:bit:chrome",
diff --git a/security/bitwarden-cli/files/packagejsons/apps/browser/src/autofill/content/components/package.json b/security/bitwarden-cli/files/packagejsons/apps/browser/src/autofill/content/components/package.json
index 8dbe9e7f516c..eb9ff08844de 100644
--- a/security/bitwarden-cli/files/packagejsons/apps/browser/src/autofill/content/components/package.json
+++ b/security/bitwarden-cli/files/packagejsons/apps/browser/src/autofill/content/components/package.json
@@ -2,6 +2,8 @@
   "name": "@bitwarden/lit-components",
   "version": "2025.1.1",
   "scripts": {
-    "storybook:lit": "storybook dev -p 6006 -c ./.lit-storybook"
+    "storybook:lit": "storybook dev -p 6006 -c ./.lit-storybook",
+    "storybook:lit:combined": "storybook dev -p 6007 -c ./.lit-storybook --no-open",
+    "storybook:build-lit:ci": "storybook build -c ./.lit-storybook --webpack-stats-json"
   }
 }
diff --git a/security/bitwarden-cli/files/packagejsons/apps/cli/package.json b/security/bitwarden-cli/files/packagejsons/apps/cli/package.json
index a5b3a00ec4e4..40bbec033628 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": "2026.2.0",
+  "version": "2026.3.0",
   "keywords": [
     "bitwarden",
     "password",
@@ -64,7 +64,7 @@
   },
   "dependencies": {
     "@koa/multer": "4.0.0",
-    "@koa/router": "15.2.0",
+    "@koa/router": "15.3.0",
     "big-integer": "1.6.52",
     "browser-hrtime": "1.1.8",
     "chalk": "4.1.2",
diff --git a/security/bitwarden-cli/files/packagejsons/apps/desktop/desktop_native/napi/package.json b/security/bitwarden-cli/files/packagejsons/apps/desktop/desktop_native/napi/package.json
index 0717bfd53eaa..c9fdd90e9e9f 100644
--- a/security/bitwarden-cli/files/packagejsons/apps/desktop/desktop_native/napi/package.json
+++ b/security/bitwarden-cli/files/packagejsons/apps/desktop/desktop_native/napi/package.json
@@ -9,7 +9,7 @@
   "author": "",
   "license": "GPL-3.0",
   "devDependencies": {
-    "@napi-rs/cli": "3.2.0"
+    "@napi-rs/cli": "3.5.1"
   },
   "napi": {
     "binaryName": "desktop_napi",
diff --git a/security/bitwarden-cli/files/packagejsons/apps/desktop/package.json b/security/bitwarden-cli/files/packagejsons/apps/desktop/package.json
index 5718c752a7c4..c0da69b565ec 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": "2026.2.1",
+  "version": "2026.3.1",
   "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 844ac1f12b53..36c171834e01 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": "2026.2.1",
+  "version": "2026.3.1",
   "scripts": {
     "build:oss": "webpack",
     "build:bit": "webpack -c ../../bitwarden_license/bit-web/webpack.config.js",
diff --git a/security/bitwarden-cli/files/packagejsons/libs/unlock/package.json b/security/bitwarden-cli/files/packagejsons/libs/unlock/package.json
new file mode 100644
index 000000000000..f98da8683d0b
--- /dev/null
+++ b/security/bitwarden-cli/files/packagejsons/libs/unlock/package.json
@@ -0,0 +1,11 @@
+{
+  "name": "@bitwarden/unlock",
+  "version": "0.0.1",
+  "description": "Unlock the account of a user",
+  "private": true,
+  "type": "commonjs",
+  "main": "index.js",
+  "types": "index.d.ts",
+  "license": "GPL-3.0",
+  "author": "key-management"
+}
diff --git a/security/bitwarden-cli/files/packagejsons/package-lock.json b/security/bitwarden-cli/files/packagejsons/package-lock.json
index 9e49890e060b..7e3804b409d1 100644
--- a/security/bitwarden-cli/files/packagejsons/package-lock.json
+++ b/security/bitwarden-cli/files/packagejsons/package-lock.json
@@ -14,29 +14,31 @@
         "libs/**/*"
       ],
       "dependencies": {
-        "@angular/animations": "20.3.16",
+        "@angular/animations": "20.3.18",
         "@angular/cdk": "20.2.14",
-        "@angular/common": "20.3.16",
-        "@angular/compiler": "20.3.16",
-        "@angular/core": "20.3.16",
-        "@angular/forms": "20.3.16",
-        "@angular/platform-browser": "20.3.16",
-        "@angular/platform-browser-dynamic": "20.3.16",
-        "@angular/router": "20.3.16",
-        "@bitwarden/commercial-sdk-internal": "0.2.0-hotfix.20260302",
-        "@bitwarden/sdk-internal": "0.2.0-hotfix.20260302",
+        "@angular/common": "20.3.18",
+        "@angular/compiler": "20.3.18",
+        "@angular/core": "20.3.18",
+        "@angular/forms": "20.3.18",
+        "@angular/platform-browser": "20.3.18",
+        "@angular/platform-browser-dynamic": "20.3.18",
+        "@angular/router": "20.3.18",
+        "@bitwarden/commercial-sdk-internal": "0.2.0-main.622",
+        "@bitwarden/sdk-internal": "0.2.0-main.622",
         "@electron/fuses": "1.8.0",
         "@emotion/css": "11.13.5",
         "@koa/multer": "4.0.0",
-        "@koa/router": "15.2.0",
-        "@microsoft/signalr": "8.0.7",
-        "@microsoft/signalr-protocol-msgpack": "8.0.7",
+        "@koa/router": "15.3.0",
+        "@microsoft/signalr": "10.0.0",
+        "@microsoft/signalr-protocol-msgpack": "10.0.0",
         "@ng-select/ng-select": "20.7.0",
         "big-integer": "1.6.52",
         "braintree-web-drop-in": "1.46.0",
         "buffer": "6.0.3",
         "bufferutil": "4.1.0",
         "chalk": "4.1.2",
+        "chart.js": "4.5.1",
+        "chartjs-adapter-date-fns": "3.0.0",
         "commander": "14.0.0",
         "core-js": "3.48.0",
         "form-data": "4.0.4",
@@ -54,7 +56,7 @@
         "ngx-toastr": "19.1.0",
         "node-fetch": "2.7.0",
         "node-forge": "1.3.2",
-        "oidc-client-ts": "2.4.1",
+        "oidc-client-ts": "2.5.0",
         "open": "8.4.2",
         "papaparse": "5.5.3",
         "proper-lockfile": "4.1.2",
@@ -62,7 +64,7 @@
         "qrious": "4.0.2",
         "rxjs": "7.8.1",
         "semver": "7.7.3",
-        "tabbable": "6.3.0",
+        "tabbable": "6.4.0",
         "tldts": "7.0.22",
         "ts-node": "10.9.2",
         "utf-8-validate": "6.0.5",
@@ -74,20 +76,20 @@
         "@angular-devkit/build-angular": "20.3.12",
         "@angular-eslint/schematics": "20.7.0",
         "@angular/cli": "20.3.12",
-        "@angular/compiler-cli": "20.3.16",
+        "@angular/compiler-cli": "20.3.18",
         "@babel/core": "7.28.5",
         "@babel/preset-env": "7.28.5",
         "@compodoc/compodoc": "1.1.32",
         "@electron/notarize": "3.0.1",
-        "@electron/rebuild": "4.0.1",
+        "@electron/rebuild": "4.0.3",
         "@eslint/compat": "2.0.0",
         "@lit-labs/signals": "0.2.0",
         "@ngtools/webpack": "20.3.12",
-        "@nx/devkit": "21.6.10",
-        "@nx/eslint": "21.6.10",
-        "@nx/jest": "21.6.10",
-        "@nx/js": "21.6.10",
-        "@nx/webpack": "21.6.10",
+        "@nx/devkit": "22.5.4",
+        "@nx/eslint": "22.5.4",
+        "@nx/jest": "22.5.4",
+        "@nx/js": "22.5.4",
+        "@nx/webpack": "22.5.4",
         "@storybook/addon-a11y": "9.1.16",
         "@storybook/addon-designs": "9.0.0-next.3",
         "@storybook/addon-docs": "9.1.16",
@@ -111,18 +113,18 @@
         "@types/node": "22.19.7",
         "@types/node-fetch": "2.6.13",
         "@types/node-forge": "1.3.14",
-        "@types/papaparse": "5.5.0",
+        "@types/papaparse": "5.5.2",
         "@types/proper-lockfile": "4.1.4",
         "@types/retry": "0.12.5",
         "@types/zxcvbn": "4.4.5",
-        "@typescript-eslint/rule-tester": "8.31.0",
-        "@typescript-eslint/utils": "8.31.0",
+        "@typescript-eslint/rule-tester": "8.57.0",
+        "@typescript-eslint/utils": "8.57.0",
         "@webcomponents/custom-elements": "1.6.0",
         "@yao-pkg/pkg": "6.5.1",
         "angular-eslint": "20.7.0",
         "autoprefixer": "10.4.22",
         "axe-playwright": "2.2.2",
-        "babel-loader": "9.2.1",
+        "babel-loader": "10.0.0",
         "base64-loader": "1.0.0",
         "browserslist": "4.28.1",
         "chromatic": "13.3.4",
@@ -155,7 +157,7 @@
         "json5": "2.2.3",
         "lint-staged": "16.0.0",
         "mini-css-extract-plugin": "2.9.4",
-        "nx": "21.6.10",
+        "nx": "22.5.4",
         "path-browserify": "1.0.1",
         "postcss": "8.5.6",
         "postcss-loader": "8.2.0",
@@ -166,15 +168,15 @@
         "rimraf": "6.1.2",
         "sass": "1.95.1",
         "sass-loader": "16.0.6",
-        "storybook": "9.1.17",
+        "storybook": "9.1.19",
         "style-loader": "4.0.0",
         "tailwindcss": "3.4.18",
         "ts-jest": "29.4.6",
         "ts-loader": "9.5.4",
         "tsconfig-paths-webpack-plugin": "4.2.0",
         "type-fest": "2.19.0",
-        "typescript": "5.8.3",
-        "typescript-eslint": "8.31.0",
+        "typescript": "5.9.3",
+        "typescript-eslint": "8.57.0",
         "typescript-strict-plugin": "2.4.4",
         "url": "0.11.4",
         "util": "0.12.5",
@@ -191,15 +193,15 @@
     },
     "apps/browser": {
       "name": "@bitwarden/browser",
-      "version": "2026.2.0"
+      "version": "2026.3.0"
     },
     "apps/cli": {
       "name": "@bitwarden/cli",
-      "version": "2026.2.0",
+      "version": "2026.3.0",
       "license": "SEE LICENSE IN LICENSE.txt",
       "dependencies": {
         "@koa/multer": "4.0.0",
-        "@koa/router": "15.2.0",
+        "@koa/router": "15.3.0",
         "big-integer": "1.6.52",
         "browser-hrtime": "1.1.8",
         "chalk": "4.1.2",
@@ -232,7 +234,7 @@
     },
     "apps/desktop": {
       "name": "@bitwarden/desktop",
-      "version": "2026.2.1",
+      "version": "2026.3.1",
       "hasInstallScript": true,
       "license": "GPL-3.0"
     },
@@ -241,211 +243,12 @@
       "version": "0.1.0",
       "license": "GPL-3.0",
       "devDependencies": {
-        "@napi-rs/cli": "3.2.0"
-      }
-    },
-    "apps/desktop/node_modules/@inquirer/confirm": {
-      "version": "5.1.21",
-      "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz",
-      "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@inquirer/core": "^10.3.2",
-        "@inquirer/type": "^3.0.10"
-      },
-      "engines": {
-        "node": ">=18"
-      },
-      "peerDependencies": {
-        "@types/node": ">=18"
-      },
-      "peerDependenciesMeta": {
-        "@types/node": {
-          "optional": true
-        }
-      }
-    },
-    "apps/desktop/node_modules/@inquirer/prompts": {
-      "version": "7.10.1",
-      "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.10.1.tgz",
-      "integrity": "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@inquirer/checkbox": "^4.3.2",
-        "@inquirer/confirm": "^5.1.21",
-        "@inquirer/editor": "^4.2.23",
-        "@inquirer/expand": "^4.0.23",
-        "@inquirer/input": "^4.3.1",
-        "@inquirer/number": "^3.0.23",
-        "@inquirer/password": "^4.0.23",
-        "@inquirer/rawlist": "^4.1.11",
-        "@inquirer/search": "^3.2.2",
-        "@inquirer/select": "^4.4.2"
-      },
-      "engines": {
-        "node": ">=18"
-      },
-      "peerDependencies": {
-        "@types/node": ">=18"
-      },
-      "peerDependenciesMeta": {
-        "@types/node": {
-          "optional": true
-        }
-      }
-    },
-    "apps/desktop/node_modules/@napi-rs/cli": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/@napi-rs/cli/-/cli-3.2.0.tgz",
-      "integrity": "sha512-heyXt/9OBPv/WrTFW2+PxIMzH6MCeqP9ZsvOg0LN6pLngBnszcxFsdhCAh5I6sddzQsvru53zj59GUzvmpWk8Q==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@inquirer/prompts": "^7.8.4",
-        "@napi-rs/cross-toolchain": "^1.0.3",
-        "@napi-rs/wasm-tools": "^1.0.1",
-        "@octokit/rest": "^22.0.0",
-        "clipanion": "^4.0.0-rc.4",
-        "colorette": "^2.0.20",
-        "debug": "^4.4.1",
-        "emnapi": "^1.5.0",
-        "es-toolkit": "^1.39.10",
-        "find-up": "^7.0.0",
-        "js-yaml": "^4.1.0",
-        "semver": "^7.7.2",
-        "typanion": "^3.14.0"
-      },
-      "bin": {
-        "napi": "dist/cli.js",
-        "napi-raw": "cli.mjs"
-      },
-      "engines": {
-        "node": ">= 16"
-      },
-      "funding": {
-        "type": "github",
-        "url": "https://github.com/sponsors/Brooooooklyn"
-      },
-      "peerDependencies": {
-        "@emnapi/runtime": "^1.1.0",
-        "emnapi": "^1.1.0"
-      },
-      "peerDependenciesMeta": {
-        "@emnapi/runtime": {
-          "optional": true
-        },
-        "emnapi": {
-          "optional": true
-        }
-      }
-    },
-    "apps/desktop/node_modules/find-up": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz",
-      "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "locate-path": "^7.2.0",
-        "path-exists": "^5.0.0",
-        "unicorn-magic": "^0.1.0"
-      },
-      "engines": {
-        "node": ">=18"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "apps/desktop/node_modules/js-yaml": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
-      "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "argparse": "^2.0.1"
-      },
-      "bin": {
-        "js-yaml": "bin/js-yaml.js"
-      }
-    },
-    "apps/desktop/node_modules/locate-path": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
-      "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "p-locate": "^6.0.0"
-      },
-      "engines": {
-        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "apps/desktop/node_modules/p-limit": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
-      "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "yocto-queue": "^1.0.0"
-      },
-      "engines": {
-        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "apps/desktop/node_modules/p-locate": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
-      "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "p-limit": "^4.0.0"
-      },
-      "engines": {
-        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "apps/desktop/node_modules/path-exists": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
-      "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-      }
-    },
-    "apps/desktop/node_modules/yocto-queue": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz",
-      "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=12.20"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
+        "@napi-rs/cli": "3.5.1"
       }
     },
     "apps/web": {
       "name": "@bitwarden/web-vault",
-      "version": "2026.2.1"
+      "version": "2026.3.1"
     },
     "libs/admin-console": {
       "name": "@bitwarden/admin-console",
@@ -637,6 +440,11 @@
       "version": "0.0.0",
       "license": "GPL-3.0"
     },
+    "libs/unlock": {
+      "name": "@bitwarden/unlock",
+      "version": "0.0.1",
+      "license": "GPL-3.0"
+    },
     "libs/user-core": {
       "name": "@bitwarden/user-core",
       "version": "0.0.0",
@@ -1248,23 +1056,6 @@
         "postcss": "^8.1.0"
       }
     },
-    "node_modules/@angular-devkit/build-angular/node_modules/babel-loader": {
-      "version": "10.0.0",
-      "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-10.0.0.tgz",
-      "integrity": "sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "find-up": "^5.0.0"
-      },
-      "engines": {
-        "node": "^18.20.0 || ^20.10.0 || >=22.0.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.12.0",
-        "webpack": ">=5.61.0"
-      }
-    },
     "node_modules/@angular-devkit/build-angular/node_modules/chalk": {
       "version": "5.6.2",
       "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
@@ -2162,9 +1953,9 @@
       }
     },
     "node_modules/@angular/animations": {
-      "version": "20.3.16",
-      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.3.16.tgz",
-      "integrity": "sha512-N83/GFY5lKNyWgPV3xHHy2rb3/eP1ZLzSVI+dmMVbf3jbqwY1YPQcMiAG8UDzaILY1Dkus91kWLF8Qdr3nHAzg==",
+      "version": "20.3.18",
+      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.3.18.tgz",
+      "integrity": "sha512-XFxgSyjfs0SRD2vQVFJljmM4z9nTvUoI8TRqSre/+l8D2FgzD5pG67Aj2BgDgpSFAUkIcI37G48ijK7a3ZZ3WA==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -2173,7 +1964,7 @@
         "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
       },
       "peerDependencies": {
-        "@angular/core": "20.3.16"
+        "@angular/core": "20.3.18"
       }
     },
     "node_modules/@angular/build": {
@@ -2586,9 +2377,9 @@
       }
     },
     "node_modules/@angular/common": {
-      "version": "20.3.16",
-      "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.3.16.tgz",
-      "integrity": "sha512-GRAziNlntwdnJy3F+8zCOvDdy7id0gITjDnM6P9+n2lXvtDuBLGJKU3DWBbvxcCjtD6JK/g/rEX5fbCxbUHkQQ==",
+      "version": "20.3.18",
+      "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.3.18.tgz",
+      "integrity": "sha512-M62oQbSTRmnGavIVCwimoadg/PDWadgNhactMm9fgH0eM9rx+iWBAYJk4VufO0bwOhysFpRZpJgXlFjOifz/Jw==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -2597,14 +2388,14 @@
         "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
       },
       "peerDependencies": {
-        "@angular/core": "20.3.16",
+        "@angular/core": "20.3.18",
         "rxjs": "^6.5.3 || ^7.4.0"
       }
     },
     "node_modules/@angular/compiler": {
-      "version": "20.3.16",
-      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.3.16.tgz",
-      "integrity": "sha512-Pt9Ms9GwTThgzdxWBwMfN8cH1JEtQ2DK5dc2yxYtPSaD+WKmG9AVL1PrzIYQEbaKcWk2jxASUHpEWSlNiwo8uw==",
+      "version": "20.3.18",
+      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.3.18.tgz",
+      "integrity": "sha512-AaP/LCiDNcYmF135EEozjyR04NRBT38ZfBHQwjhgwiBBTejmvcpHwJaHSkraLpZqZzE4BQqqmgiQ1EJqxEwLVA==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -2614,9 +2405,9 @@
       }
     },
     "node_modules/@angular/compiler-cli": {
-      "version": "20.3.16",
-      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.3.16.tgz",
-      "integrity": "sha512-l3xF/fXfJAl/UrNnH9Ufkr79myjMgXdHq1mmmph2UnpeqilRB1b8lC9sLBV9MipQHVn3dwocxMIvtrcryfOaXw==",
+      "version": "20.3.18",
+      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.3.18.tgz",
+      "integrity": "sha512-zsoEgLgnblmRbi47YwMghKirJ8IBKJ3+I8TxLBRIBrhx+KHFp+6oeDeLyu9H+djdyk88zexVd09wzR/YK73F0g==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -2637,7 +2428,7 @@
         "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
       },
       "peerDependencies": {
-        "@angular/compiler": "20.3.16",
+        "@angular/compiler": "20.3.18",
         "typescript": ">=5.8 <6.0"
       },
       "peerDependenciesMeta": {
@@ -2823,9 +2614,9 @@
       }
     },
     "node_modules/@angular/core": {
-      "version": "20.3.16",
-      "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.3.16.tgz",
-      "integrity": "sha512-KSFPKvOmWWLCJBbEO+CuRUXfecX2FRuO0jNi9c54ptXMOPHlK1lIojUnyXmMNzjdHgRug8ci9qDuftvC2B7MKg==",
+      "version": "20.3.18",
+      "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.3.18.tgz",
+      "integrity": "sha512-B+NQQngd/aDbcfW0zGLis3wTLDeHTeTYMl/mGKQH+HwdPaRCKI1wEtaXaOYVJXkP2FeThocPevB8gLwNlPQUUw==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -2834,7 +2625,7 @@
         "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
       },
       "peerDependencies": {
-        "@angular/compiler": "20.3.16",
+        "@angular/compiler": "20.3.18",
         "rxjs": "^6.5.3 || ^7.4.0",
         "zone.js": "~0.15.0"
       },
@@ -2848,9 +2639,9 @@
       }
     },
     "node_modules/@angular/forms": {
-      "version": "20.3.16",
-      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.3.16.tgz",
-      "integrity": "sha512-1yzbXpExTqATpVcqA3wGrq4ACFIP3mRxA4pbso5KoJU+/4JfzNFwLsDaFXKpm5uxwchVnj8KM2vPaDOkvtp7NA==",
+      "version": "20.3.18",
+      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.3.18.tgz",
+      "integrity": "sha512-x6/99LfxolyZIFUL3Wr0OrtuXHEDwEz/rwx+WzE7NL+n35yO40t3kp0Sn5uMFwI94i91QZJmXHltMpZhrVLuYg==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -2859,16 +2650,16 @@
         "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
       },
       "peerDependencies": {
-        "@angular/common": "20.3.16",
-        "@angular/core": "20.3.16",
-        "@angular/platform-browser": "20.3.16",
+        "@angular/common": "20.3.18",
+        "@angular/core": "20.3.18",
+        "@angular/platform-browser": "20.3.18",
         "rxjs": "^6.5.3 || ^7.4.0"
       }
     },
     "node_modules/@angular/platform-browser": {
-      "version": "20.3.16",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.3.16.tgz",
-      "integrity": "sha512-YsrLS6vyS77i4pVHg4gdSBW74qvzHjpQRTVQ5Lv/OxIjJdYYYkMmjNalCNgy1ZuyY6CaLIB11ccxhrNnxfKGOQ==",
+      "version": "20.3.18",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.3.18.tgz",
+      "integrity": "sha512-q6s5rEN1yYazpHYp+k4pboXRzMsRB9auzTRBEhyXSGYxqzrnn3qHN0DqgsLC9WAdyhCgnIEMFA8kRT+W277DqQ==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -2877,9 +2668,9 @@
         "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
       },
       "peerDependencies": {
-        "@angular/animations": "20.3.16",
-        "@angular/common": "20.3.16",
-        "@angular/core": "20.3.16"
+        "@angular/animations": "20.3.18",
+        "@angular/common": "20.3.18",
+        "@angular/core": "20.3.18"
       },
       "peerDependenciesMeta": {
         "@angular/animations": {
@@ -2888,9 +2679,9 @@
       }
     },
     "node_modules/@angular/platform-browser-dynamic": {
-      "version": "20.3.16",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.3.16.tgz",
-      "integrity": "sha512-5mECCV9YeKH6ue239GXRTGeDSd/eTbM1j8dDejhm5cGnPBhTxRw4o+GgSrWTYtb6VmIYdwUGBTC+wCBphiaQ2A==",
+      "version": "20.3.18",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.3.18.tgz",
+      "integrity": "sha512-NyTobOGYVzGmPmtI+3lxMzxi0TbLq4SRNQ2ENEJAt6k2JnMmHBm483ppLRAM47nGlDdiraW0IX93EtYYNkiK3g==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -2899,16 +2690,16 @@
         "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
       },
       "peerDependencies": {
-        "@angular/common": "20.3.16",
-        "@angular/compiler": "20.3.16",
-        "@angular/core": "20.3.16",
-        "@angular/platform-browser": "20.3.16"
+        "@angular/common": "20.3.18",
+        "@angular/compiler": "20.3.18",
+        "@angular/core": "20.3.18",
+        "@angular/platform-browser": "20.3.18"
       }
     },
     "node_modules/@angular/router": {
-      "version": "20.3.16",
-      "resolved": "https://registry.npmjs.org/@angular/router/-/router-20.3.16.tgz",
-      "integrity": "sha512-e1LiQFZaajKqc00cY5FboIrWJZSMnZ64GDp5R0UejritYrqorQQQNOqP1W85BMuY2owibMmxVfX+dJg/Mc8PuQ==",
+      "version": "20.3.18",
+      "resolved": "https://registry.npmjs.org/@angular/router/-/router-20.3.18.tgz",
+      "integrity": "sha512-3CWejsEYr+ze+ktvWN/qHdyq5WLrj96QZpGYJyxh1pchIcpMPE9MmLpdjf0CUrWYB7g/85u0Geq/xsz72JrGng==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -2917,9 +2708,9 @@
         "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
       },
       "peerDependencies": {
-        "@angular/common": "20.3.16",
-        "@angular/core": "20.3.16",
-        "@angular/platform-browser": "20.3.16",
+        "@angular/common": "20.3.18",
+        "@angular/core": "20.3.18",
+        "@angular/platform-browser": "20.3.18",
         "rxjs": "^6.5.3 || ^7.4.0"
       }
     },
@@ -4941,21 +4732,24 @@
       "link": true
     },
     "node_modules/@bitwarden/commercial-sdk-internal": {
-      "version": "0.2.0-hotfix.20260302",
-      "resolved": "https://registry.npmjs.org/@bitwarden/commercial-sdk-internal/-/commercial-sdk-internal-0.2.0-hotfix.20260302.tgz",
-      "integrity": "sha512-zFdcyCagnGaZYhmMAXZYRj6hEP8OVjJwJhUzfnWS+ycXgqDpnMph6CFNAbi7VN2XzoOCIe1X4tnhDT55ERGuOg==",
+      "version": "0.2.0-main.622",
+      "resolved": "https://registry.npmjs.org/@bitwarden/commercial-sdk-internal/-/commercial-sdk-internal-0.2.0-main.622.tgz",
+      "integrity": "sha512-kr51gx+DCnHA38groPva0b3jF76Z9M1t24qGM4cfyR0zjwkz9/EKcZk3LiOiA9gooUVdoUfZkw39K5IeY854pg==",
       "license": "BITWARDEN SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT",
       "dependencies": {
-        "type-fest": "^4.41.0"
+        "type-fest": "^5.0.0"
       }
     },
     "node_modules/@bitwarden/commercial-sdk-internal/node_modules/type-fest": {
-      "version": "4.41.0",
-      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
-      "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
+      "version": "5.4.4",
+      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.4.4.tgz",
+      "integrity": "sha512-JnTrzGu+zPV3aXIUhnyWJj4z/wigMsdYajGLIYakqyOW1nPllzXEJee0QQbHj+CTIQtXGlAjuK0UY+2xTyjVAw==",
       "license": "(MIT OR CC0-1.0)",
+      "dependencies": {
+        "tagged-tag": "^1.0.0"
+      },
       "engines": {
-        "node": ">=16"
+        "node": ">=20"
       },
       "funding": {
         "url": "https://github.com/sponsors/sindresorhus"
@@ -5046,21 +4840,24 @@
       "link": true
     },
     "node_modules/@bitwarden/sdk-internal": {
-      "version": "0.2.0-hotfix.20260302",
-      "resolved": "https://registry.npmjs.org/@bitwarden/sdk-internal/-/sdk-internal-0.2.0-hotfix.20260302.tgz",
-      "integrity": "sha512-pQK2CiOVVVWVMCXvV4UG2o0bJRfdk4lj22Qh8ZZVwV7ihQdk4IBUBxbqDKLBa4pArotIAh2pAnlb5f3cq0wP+w==",
+      "version": "0.2.0-main.622",
+      "resolved": "https://registry.npmjs.org/@bitwarden/sdk-internal/-/sdk-internal-0.2.0-main.622.tgz",
+      "integrity": "sha512-T/okEZLAXqsKsTooKAwGohnV1/+o5zY5G2CJyhfrvxHjUlszmqIvOMfIBiP+vO7Rq5qzSr8N9IsqYZQVi4LUMA==",
       "license": "GPL-3.0",
       "dependencies": {
-        "type-fest": "^4.41.0"
+        "type-fest": "^5.0.0"
       }
     },
     "node_modules/@bitwarden/sdk-internal/node_modules/type-fest": {
-      "version": "4.41.0",
-      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
-      "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
+      "version": "5.4.4",
+      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.4.4.tgz",
+      "integrity": "sha512-JnTrzGu+zPV3aXIUhnyWJj4z/wigMsdYajGLIYakqyOW1nPllzXEJee0QQbHj+CTIQtXGlAjuK0UY+2xTyjVAw==",
       "license": "(MIT OR CC0-1.0)",
+      "dependencies": {
+        "tagged-tag": "^1.0.0"
+      },
       "engines": {
-        "node": ">=16"
+        "node": ">=20"
       },
       "funding": {
         "url": "https://github.com/sponsors/sindresorhus"
@@ -5102,6 +4899,10 @@
       "resolved": "libs/ui/common",
       "link": true
     },
+    "node_modules/@bitwarden/unlock": {
+      "resolved": "libs/unlock",
+      "link": true
+    },
     "node_modules/@bitwarden/user-core": {
       "resolved": "libs/user-core",
       "link": true
@@ -5178,7 +4979,7 @@
       "version": "2.9.0",
       "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.9.0.tgz",
       "integrity": "sha512-rnJenoStJ8nvmt9Gzye8nkYd6V22xUAnu4086ER7h1zJ508vStko4pMvDeQ446ilDTFpV5wnoc5YS7XvMwwMqA==",
-      "dev": true,
+      "devOptional": true,
       "license": "(Apache-2.0 AND BSD-3-Clause)"
     },
     "node_modules/@compodoc/compodoc": {
@@ -6355,14 +6156,13 @@
       }
     },
     "node_modules/@electron/rebuild": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-4.0.1.tgz",
-      "integrity": "sha512-iMGXb6Ib7H/Q3v+BKZJoETgF9g6KMNZVbsO4b7Dmpgb5qTFqyFTzqW9F3TOSHdybv2vKYKzSS9OiZL+dcJb+1Q==",
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-4.0.3.tgz",
+      "integrity": "sha512-u9vpTHRMkOYCs/1FLiSVAFZ7FbjsXK+bQuzviJZa+lG7BHZl1nz52/IcGvwa3sk80/fc3llutBkbCq10Vh8WQA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
         "@malept/cross-spawn-promise": "^2.0.0",
-        "chalk": "^4.0.0",
         "debug": "^4.1.1",
         "detect-libc": "^2.0.1",
         "got": "^11.7.0",
@@ -6373,7 +6173,7 @@
         "ora": "^5.1.0",
         "read-binary-file-arch": "^1.0.6",
         "semver": "^7.3.5",
-        "tar": "^6.0.5",
+        "tar": "^7.5.6",
         "yargs": "^17.0.1"
       },
       "bin": {
@@ -6383,10 +6183,33 @@
         "node": ">=22.12.0"
       }
     },
+    "node_modules/@electron/rebuild/node_modules/chownr": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
+      "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@electron/rebuild/node_modules/minizlib": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz",
+      "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "minipass": "^7.1.2"
+      },
+      "engines": {
+        "node": ">= 18"
+      }
+    },
     "node_modules/@electron/rebuild/node_modules/node-abi": {
-      "version": "4.14.0",
-      "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-4.14.0.tgz",
-      "integrity": "sha512-E4n91K4Nk1Rch2KzD+edU2bfZTP4W42GypAUDXU4vu1A+4u9PvUNDkGI0dXbsy8ZeF3WGj0SD/uHxnXD/sW+3w==",
+      "version": "4.26.0",
+      "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-4.26.0.tgz",
+      "integrity": "sha512-8QwIZqikRvDIkXS2S93LjzhsSPJuIbfaMETWH+Bx8oOT9Sa9UsUtBFQlc3gBNd1+QINjaTloitXr1W3dQLi9Iw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -6396,6 +6219,33 @@
         "node": ">=22.12.0"
       }
     },
+    "node_modules/@electron/rebuild/node_modules/tar": {
+      "version": "7.5.9",
+      "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.9.tgz",
+      "integrity": "sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "dependencies": {
+        "@isaacs/fs-minipass": "^4.0.0",
+        "chownr": "^3.0.0",
+        "minipass": "^7.1.2",
+        "minizlib": "^3.1.0",
+        "yallist": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@electron/rebuild/node_modules/yallist": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
+      "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
+      "dev": true,
+      "license": "BlueOak-1.0.0",
+      "engines": {
+        "node": ">=18"
+      }
+    },
     "node_modules/@electron/universal": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-2.0.1.tgz",
@@ -6585,7 +6435,6 @@
       "cpu": [
         "ppc64"
       ],
-      "dev": true,
       "license": "MIT",
       "optional": true,
       "os": [
@@ -6602,7 +6451,6 @@
       "cpu": [
         "arm"
       ],
-      "dev": true,
       "license": "MIT",
       "optional": true,
       "os": [
@@ -6619,7 +6467,6 @@
       "cpu": [
         "arm64"
*** 4656 LINES SKIPPED ***