git: 3e74614602ed - main - security/bitwarden-cli: update to 2025.9.0

From: Hiroki Tagato <tagattie_at_FreeBSD.org>
Date: Tue, 23 Sep 2025 07:38:26 UTC
The branch main has been updated by tagattie:

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

commit 3e74614602ed3d404a7f9e816110231fb63e1d0d
Author:     Hiroki Tagato <tagattie@FreeBSD.org>
AuthorDate: 2025-09-23 07:24:57 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2025-09-23 07:38:21 +0000

    security/bitwarden-cli: update to 2025.9.0
    
    Changelog: https://github.com/bitwarden/clients/releases/tag/cli-v2025.9.0
    
    Reported by:    GitHub (watch releases)
---
 security/bitwarden-cli/Makefile                    |   12 +-
 security/bitwarden-cli/distinfo                    |   10 +-
 security/bitwarden-cli/files/packagejsons/.npmrc   |    3 +
 .../files/packagejsons/apps/browser/package.json   |   30 +-
 .../files/packagejsons/apps/cli/package.json       |    8 +-
 .../files/packagejsons/apps/desktop/package.json   |   15 +-
 .../files/packagejsons/apps/web/package.json       |   10 +-
 .../files/packagejsons/libs/assets/package.json    |   15 +
 .../files/packagejsons/libs/pricing/package.json   |   21 +
 .../packagejsons/libs/state-internal/package.json  |   11 +
 .../files/packagejsons/package-lock.json           | 1729 +++++++++++++++++---
 .../bitwarden-cli/files/packagejsons/package.json  |   25 +-
 12 files changed, 1622 insertions(+), 267 deletions(-)

diff --git a/security/bitwarden-cli/Makefile b/security/bitwarden-cli/Makefile
index ad018a99d215..f0471f6a1d32 100644
--- a/security/bitwarden-cli/Makefile
+++ b/security/bitwarden-cli/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	bitwarden-cli
 DISTVERSIONPREFIX=	cli-v
-DISTVERSION=	2025.8.0
-PORTREVISION=	1
+DISTVERSION=	2025.9.0
 CATEGORIES=	security
 MASTER_SITES=	https://nodejs.org/dist/v${PKG_NODE_VER}/:node
 DISTFILES=	node-v${PKG_NODE_VER}${EXTRACT_SUFX}:node \
@@ -78,7 +77,7 @@ pre-fetch:
 		${CP} -R ${FILESDIR}/packagejsons/* ${WRKDIR}/node-modules-cache; \
 		cd ${WRKDIR}/node-modules-cache && \
 		${SETENV} HOME=${WRKDIR} \
-			npm ci --ignore-scripts --no-progress --no-audit --no-fund; \
+			npm ci --ignore-scripts --no-progress --no-audit --no-fund --no-update-notifier; \
 		${FIND} ${WRKDIR}/node-modules-cache -type d -exec ${CHMOD} 755 {} ';'; \
 		for dir in `${FIND} -s ${WRKDIR}/node-modules-cache -type d -name node_modules -print | \
 			${GREP} -ve 'node_modules/.*/node_modules'`; do \
@@ -102,11 +101,10 @@ post-extract:
 
 post-patch:
 	# apply FreeBSD patches for node
-	for p in ${PATCHDIR}/node/patch-*;do \
-		${PATCH} -s -p0 -d ${WRKDIR}/node-v${PKG_NODE_VER} < $${p}; \
-	done
+	@${BSDMAKE} PATCHDIR=${FILESDIR}/node \
+		WRKSRC=${WRKDIR}/node-v${PKG_NODE_VER} do-patch
 	# apply node patch from pkg-fetch
-	${PATCH} -s -p1 -d ${WRKDIR}/node-v${PKG_NODE_VER} < \
+	@${PATCH} -s -p1 -d ${WRKDIR}/node-v${PKG_NODE_VER} < \
 		${WRKSRC}/node_modules/@yao-pkg/pkg-fetch/patches/node.v${PKG_NODE_VER}.cpp.patch
 
 pre-build:
diff --git a/security/bitwarden-cli/distinfo b/security/bitwarden-cli/distinfo
index dcd2a2b46914..9e8e1ae6ad20 100644
--- a/security/bitwarden-cli/distinfo
+++ b/security/bitwarden-cli/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1756102426
+TIMESTAMP = 1758610163
 SHA256 (node-v22.15.1.tar.gz) = 38aea029f8818f7783f273fbc70dcf930f9ef54bdd49c5f90c0152caec7a57be
 SIZE (node-v22.15.1.tar.gz) = 100310295
-SHA256 (bitwarden-cli-2025.8.0-node-modules.tar.gz) = 2833a9da9460fedce3e496e0b8dd533a0101a2aab216e06fddddc37f528b3424
-SIZE (bitwarden-cli-2025.8.0-node-modules.tar.gz) = 265668327
-SHA256 (bitwarden-clients-cli-v2025.8.0_GH0.tar.gz) = ce1534f70c0643fdd1036af7b18eb6b85f5210eabd4fcfbb5723c2cef55aa650
-SIZE (bitwarden-clients-cli-v2025.8.0_GH0.tar.gz) = 25899695
+SHA256 (bitwarden-cli-2025.9.0-node-modules.tar.gz) = dd995f5b9fa758b4e76c7b51ce7a29bbebab1cb6be3d1ff83a659369d925e075
+SIZE (bitwarden-cli-2025.9.0-node-modules.tar.gz) = 267011903
+SHA256 (bitwarden-clients-cli-v2025.9.0_GH0.tar.gz) = 4a970c053035550fb5b44fedfbf45dce490f873bc0a397540597a5bc49af022e
+SIZE (bitwarden-clients-cli-v2025.9.0_GH0.tar.gz) = 26819052
diff --git a/security/bitwarden-cli/files/packagejsons/.npmrc b/security/bitwarden-cli/files/packagejsons/.npmrc
index cffe8cdef132..38a7eb153c0a 100644
--- a/security/bitwarden-cli/files/packagejsons/.npmrc
+++ b/security/bitwarden-cli/files/packagejsons/.npmrc
@@ -1 +1,4 @@
 save-exact=true
+# Increase available heap size to avoid running out of memory when compiling.
+# This applies to all npm scripts in this repository.
+node-options=--max-old-space-size=8192
diff --git a/security/bitwarden-cli/files/packagejsons/apps/browser/package.json b/security/bitwarden-cli/files/packagejsons/apps/browser/package.json
index e75d2b235db8..24a53f43f66c 100644
--- a/security/bitwarden-cli/files/packagejsons/apps/browser/package.json
+++ b/security/bitwarden-cli/files/packagejsons/apps/browser/package.json
@@ -1,32 +1,60 @@
 {
   "name": "@bitwarden/browser",
-  "version": "2025.8.0",
+  "version": "2025.9.0",
   "scripts": {
     "build": "npm run build:chrome",
+    "build:bit": "npm run build:bit:chrome",
     "build:chrome": "cross-env BROWSER=chrome MANIFEST_VERSION=3 NODE_OPTIONS=\"--max-old-space-size=8192\" webpack",
+    "build:bit:chrome": "cross-env BROWSER=chrome MANIFEST_VERSION=3 NODE_OPTIONS=\"--max-old-space-size=8192\" webpack -c ../../bitwarden_license/bit-browser/webpack.config.js",
     "build:edge": "cross-env BROWSER=edge MANIFEST_VERSION=3 NODE_OPTIONS=\"--max-old-space-size=8192\" webpack",
+    "build:bit:edge": "cross-env BROWSER=edge MANIFEST_VERSION=3 NODE_OPTIONS=\"--max-old-space-size=8192\" webpack -c ../../bitwarden_license/bit-browser/webpack.config.js",
     "build:firefox": "cross-env BROWSER=firefox NODE_OPTIONS=\"--max-old-space-size=8192\" webpack",
+    "build:bit:firefox": "cross-env BROWSER=firefox NODE_OPTIONS=\"--max-old-space-size=8192\" webpack -c ../../bitwarden_license/bit-browser/webpack.config.js",
     "build:opera": "cross-env BROWSER=opera MANIFEST_VERSION=3 NODE_OPTIONS=\"--max-old-space-size=8192\" webpack",
+    "build:bit:opera": "cross-env BROWSER=opera MANIFEST_VERSION=3 NODE_OPTIONS=\"--max-old-space-size=8192\" webpack -c ../../bitwarden_license/bit-browser/webpack.config.js",
     "build:safari": "cross-env BROWSER=safari NODE_OPTIONS=\"--max-old-space-size=8192\" webpack",
+    "build:bit:safari": "cross-env BROWSER=safari NODE_OPTIONS=\"--max-old-space-size=8192\" webpack -c ../../bitwarden_license/bit-browser/webpack.config.js",
     "build:watch": "npm run build:watch:chrome",
     "build:watch:chrome": "npm run build:chrome -- --watch",
+    "build:bit:watch:chrome": "npm run build:bit:chrome -- --watch",
     "build:watch:edge": "npm run build:edge -- --watch",
+    "build:bit:watch:edge": "npm run build:bit:edge -- --watch",
     "build:watch:firefox": "npm run build:firefox -- --watch",
+    "build:bit:watch:firefox": "npm run build:bit:firefox -- --watch",
     "build:watch:opera": "npm run build:opera -- --watch",
+    "build:bit:watch:opera": "npm run build:bit:opera -- --watch",
     "build:watch:safari": "npm run build:safari -- --watch",
+    "build:bit:watch:safari": "npm run build:bit:safari -- --watch",
+    "build:watch:firefox:mv3": "cross-env MANIFEST_VERSION=3 npm run build:watch:firefox",
+    "build:bit:watch:firefox:mv3": "cross-env MANIFEST_VERSION=3 npm run build:bit:watch:firefox",
+    "build:watch:safari:mv3": "cross-env MANIFEST_VERSION=3 npm run build:watch:safari",
+    "build:bit:watch:safari:mv3": "cross-env MANIFEST_VERSION=3 npm run build:bit:watch:safari",
     "build:prod:chrome": "cross-env NODE_ENV=production npm run build:chrome",
+    "build:bit:prod:chrome": "cross-env NODE_ENV=production npm run build:bit:chrome",
     "build:prod:edge": "cross-env NODE_ENV=production npm run build:edge",
+    "build:bit:prod:edge": "cross-env NODE_ENV=production npm run build:bit:edge",
     "build:prod:firefox": "cross-env NODE_ENV=production npm run build:firefox",
+    "build:bit:prod:firefox": "cross-env NODE_ENV=production npm run build:bit:firefox",
     "build:prod:opera": "cross-env NODE_ENV=production npm run build:opera",
+    "build:bit:prod:opera": "cross-env NODE_ENV=production npm run build:bit:opera",
     "build:prod:safari": "cross-env NODE_ENV=production npm run build:safari",
+    "build:bit:prod:safari": "cross-env NODE_ENV=production npm run build:bit:safari",
     "dist:chrome": "npm run build:prod:chrome && mkdir -p dist && ./scripts/compress.sh dist-chrome.zip",
+    "dist:bit:chrome": "npm run build:bit:prod:chrome && mkdir -p dist && ./scripts/compress.sh bit-dist-chrome.zip",
     "dist:edge": "npm run build:prod:edge && mkdir -p dist && ./scripts/compress.sh dist-edge.zip",
+    "dist:bit:edge": "npm run build:bit:prod:edge && mkdir -p dist && ./scripts/compress.sh bit-dist-edge.zip",
     "dist:firefox": "npm run build:prod:firefox && mkdir -p dist && ./scripts/compress.sh dist-firefox.zip",
+    "dist:bit:firefox": "npm run build:bit:prod:firefox && mkdir -p dist && ./scripts/compress.sh bit-dist-firefox.zip",
     "dist:opera": "npm run build:prod:opera && mkdir -p dist && ./scripts/compress.sh dist-opera.zip",
+    "dist:bit:opera": "npm run build:bit:prod:opera && mkdir -p dist && ./scripts/compress.sh bit-dist-opera.zip",
     "dist:safari": "npm run build:prod:safari && ./scripts/package-safari.ps1",
+    "dist:bit:safari": "npm run build:bit:prod:safari && ./scripts/package-safari.ps1",
     "dist:firefox:mv3": "cross-env MANIFEST_VERSION=3 npm run dist:firefox",
+    "dist:bit:firefox:mv3": "cross-env MANIFEST_VERSION=3 npm run dist:bit:firefox",
     "dist:opera:mv3": "cross-env MANIFEST_VERSION=3 npm run dist:opera",
+    "dist:bit:opera:mv3": "cross-env MANIFEST_VERSION=3 npm run dist:bit:opera",
     "dist:safari:mv3": "cross-env MANIFEST_VERSION=3 npm run dist:safari",
+    "dist:bit:safari:mv3": "cross-env MANIFEST_VERSION=3 npm run dist:bit:safari",
     "test": "jest",
     "test:watch": "jest --watch",
     "test:watch:all": "jest --watchAll",
diff --git a/security/bitwarden-cli/files/packagejsons/apps/cli/package.json b/security/bitwarden-cli/files/packagejsons/apps/cli/package.json
index 4964cd4e4035..e5dbd66ab128 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": "2025.8.0",
+  "version": "2025.9.0",
   "keywords": [
     "bitwarden",
     "password",
@@ -18,14 +18,14 @@
   "license": "SEE LICENSE IN LICENSE.txt",
   "scripts": {
     "clean": "rimraf dist",
-    "build:oss": "cross-env NODE_OPTIONS=\"--max-old-space-size=8192\" webpack",
+    "build:oss": "webpack",
     "build:oss:debug": "npm run build:oss && node --inspect ./build/bw.js",
     "build:oss:watch": "webpack --watch",
     "build:oss:prod": "cross-env NODE_ENV=production webpack",
     "build:oss:prod:watch": "cross-env NODE_ENV=production webpack --watch",
     "debug": "node --inspect ./build/bw.js",
     "publish:npm": "npm run build:oss:prod && npm publish --access public",
-    "build:bit": "cross-env NODE_OPTIONS=\"--max-old-space-size=8192\" webpack -c ../../bitwarden_license/bit-cli/webpack.config.js",
+    "build:bit": "webpack -c ../../bitwarden_license/bit-cli/webpack.config.js",
     "build:bit:debug": "npm run build:bit && node --inspect ./build/bw.js",
     "build:bit:watch": "webpack --watch -c ../../bitwarden_license/bit-cli/webpack.config.js",
     "build:bit:prod": "cross-env NODE_ENV=production npm run build:bit",
@@ -69,7 +69,7 @@
     "browser-hrtime": "1.1.8",
     "chalk": "4.1.2",
     "commander": "11.1.0",
-    "core-js": "3.44.0",
+    "core-js": "3.45.0",
     "form-data": "4.0.4",
     "https-proxy-agent": "7.0.6",
     "inquirer": "8.2.6",
diff --git a/security/bitwarden-cli/files/packagejsons/apps/desktop/package.json b/security/bitwarden-cli/files/packagejsons/apps/desktop/package.json
index 37650c08b955..dd5fb85b4da7 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": "2025.8.0",
+  "version": "2025.9.0",
   "keywords": [
     "bitwarden",
     "password",
@@ -19,10 +19,11 @@
     "postinstall": "electron-rebuild",
     "start": "cross-env ELECTRON_IS_DEV=0 ELECTRON_NO_UPDATER=1 electron ./build",
     "build-native": "cd desktop_native && node build.js",
-    "build": "cross-env NODE_OPTIONS=\"--max-old-space-size=8192\" concurrently -n Main,Rend,Prel -c yellow,cyan \"npm run build:main\" \"npm run build:renderer\" \"npm run build:preload\"",
-    "build:dev": "concurrently -n Main,Rend -c yellow,cyan \"npm run build:main:dev\" \"npm run build:renderer:dev\"",
+    "build": "concurrently -n Main,Rend,Prel -c yellow,cyan \"npm run build:main\" \"npm run build:renderer\" \"npm run build:preload\"",
+    "build:dev": "concurrently -n Main,Rend,Prel -c yellow,cyan \"npm run build:main:dev\" \"npm run build:renderer:dev\" \"npm run build:preload:dev\"",
     "build:preload": "cross-env NODE_ENV=production webpack --config webpack.preload.js",
-    "build:preload:watch": "cross-env NODE_ENV=production webpack --config webpack.preload.js --watch",
+    "build:preload:dev": "cross-env NODE_ENV=development webpack --config webpack.preload.js",
+    "build:preload:watch": "cross-env NODE_ENV=development webpack --config webpack.preload.js --watch",
     "build:macos-extension:mac": "./desktop_native/macos_provider/build.sh && node scripts/build-macos-extension.js mac",
     "build:macos-extension:mas": "./desktop_native/macos_provider/build.sh && node scripts/build-macos-extension.js mas",
     "build:macos-extension:masdev": "./desktop_native/macos_provider/build.sh && node scripts/build-macos-extension.js mas-dev",
@@ -55,15 +56,15 @@
     "dist:mac:with-extension": "npm run build && npm run pack:mac:with-extension",
     "dist:mac:mas": "npm run build && npm run pack:mac:mas",
     "dist:mac:mas:with-extension": "npm run build && npm run pack:mac:mas:with-extension",
-    "dist:mac:masdev": "npm run build && npm run pack:mac:masdev",
-    "dist:mac:masdev:with-extension": "npm run build && npm run pack:mac:masdev:with-extension",
+    "dist:mac:masdev": "npm run build:dev && npm run pack:mac:masdev",
+    "dist:mac:masdev:with-extension": "npm run build:dev && npm run pack:mac:masdev:with-extension",
     "dist:win": "npm run build && npm run pack:win",
     "dist:win:ci": "npm run build && npm run pack:win:ci",
     "publish:lin": "npm run build && npm run clean:dist && electron-builder --linux --x64 -p always",
     "publish:mac": "npm run build && npm run clean:dist && electron-builder --mac -p always",
     "publish:mac:mas": "npm run dist:mac:mas && npm run upload:mas",
     "publish:win": "npm run build && npm run clean:dist && electron-builder --win --x64 --arm64 --ia32 -p always -c.win.signtoolOptions.certificateSubjectName=\"8bit Solutions LLC\"",
-    "publish:win:dev": "npm run build && npm run clean:dist && electron-builder --win --x64 --arm64 --ia32 -p always",
+    "publish:win:dev": "npm run build:dev && npm run clean:dist && electron-builder --win --x64 --arm64 --ia32 -p always",
     "upload:mas": "xcrun altool --upload-app --type osx --file \"$(find ./dist/mas-universal/Bitwarden*.pkg)\" --apiKey $APP_STORE_CONNECT_AUTH_KEY --apiIssuer $APP_STORE_CONNECT_TEAM_ISSUER",
     "test": "jest",
     "test:watch": "jest --watch",
diff --git a/security/bitwarden-cli/files/packagejsons/apps/web/package.json b/security/bitwarden-cli/files/packagejsons/apps/web/package.json
index 73e79d4f5135..551eb1c5e86c 100644
--- a/security/bitwarden-cli/files/packagejsons/apps/web/package.json
+++ b/security/bitwarden-cli/files/packagejsons/apps/web/package.json
@@ -1,11 +1,11 @@
 {
   "name": "@bitwarden/web-vault",
-  "version": "2025.8.0",
+  "version": "2025.9.0",
   "scripts": {
-    "build:oss": "cross-env NODE_OPTIONS=\"--max-old-space-size=8192\" webpack",
-    "build:bit": "cross-env NODE_OPTIONS=\"--max-old-space-size=8192\" webpack -c ../../bitwarden_license/bit-web/webpack.config.js",
-    "build:oss:watch": "cross-env NODE_OPTIONS=\"--max-old-space-size=8192\" webpack serve",
-    "build:bit:watch": "cross-env NODE_OPTIONS=\"--max-old-space-size=8192\" webpack serve -c ../../bitwarden_license/bit-web/webpack.config.js",
+    "build:oss": "webpack",
+    "build:bit": "webpack -c ../../bitwarden_license/bit-web/webpack.config.js",
+    "build:oss:watch": "webpack serve",
+    "build:bit:watch": "webpack serve -c ../../bitwarden_license/bit-web/webpack.config.js",
     "build:bit:dev": "cross-env ENV=development npm run build:bit",
     "build:bit:dev:analyze": "cross-env LOGGING=false webpack -c ../../bitwarden_license/bit-web/webpack.config.js --profile --json > stats.json && npx webpack-bundle-analyzer stats.json build/",
     "build:bit:dev:watch": "cross-env ENV=development NODE_OPTIONS=\"--max-old-space-size=8192\" npm run build:bit:watch",
diff --git a/security/bitwarden-cli/files/packagejsons/libs/assets/package.json b/security/bitwarden-cli/files/packagejsons/libs/assets/package.json
new file mode 100644
index 000000000000..cc5935833bf9
--- /dev/null
+++ b/security/bitwarden-cli/files/packagejsons/libs/assets/package.json
@@ -0,0 +1,15 @@
+{
+  "name": "@bitwarden/assets",
+  "version": "0.0.1",
+  "description": "Assets used in Bitwarden clients",
+  "private": true,
+  "type": "commonjs",
+  "main": "dist/index.js",
+  "types": "dist/index.d.ts",
+  "license": "GPL-3.0",
+  "author": "ui-foundation",
+  "scripts": {
+    "test": "jest"
+  },
+  "sideEffects": false
+}
diff --git a/security/bitwarden-cli/files/packagejsons/libs/pricing/package.json b/security/bitwarden-cli/files/packagejsons/libs/pricing/package.json
new file mode 100644
index 000000000000..9d5ec85c1bc4
--- /dev/null
+++ b/security/bitwarden-cli/files/packagejsons/libs/pricing/package.json
@@ -0,0 +1,21 @@
+{
+  "name": "@bitwarden/pricing",
+  "version": "0.0.0",
+  "description": "Components and services that facilitate the retrieval and display of Bitwarden's pricing.",
+  "keywords": [
+    "bitwarden"
+  ],
+  "author": "Bitwarden Inc.",
+  "homepage": "https://bitwarden.com",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/bitwarden/clients"
+  },
+  "license": "GPL-3.0",
+  "scripts": {
+    "clean": "rimraf dist",
+    "build": "npm run clean && tsc",
+    "build:watch": "npm run clean && tsc -watch"
+  },
+  "private": true
+}
diff --git a/security/bitwarden-cli/files/packagejsons/libs/state-internal/package.json b/security/bitwarden-cli/files/packagejsons/libs/state-internal/package.json
new file mode 100644
index 000000000000..2a6252205987
--- /dev/null
+++ b/security/bitwarden-cli/files/packagejsons/libs/state-internal/package.json
@@ -0,0 +1,11 @@
+{
+  "name": "@bitwarden/state-internal",
+  "version": "0.0.1",
+  "description": "The internal parts of @bitwarden/state that should not be used by other teams.",
+  "private": true,
+  "type": "commonjs",
+  "main": "dist/index.js",
+  "types": "dist/index.d.ts",
+  "license": "GPL-3.0",
+  "author": "platform"
+}
diff --git a/security/bitwarden-cli/files/packagejsons/package-lock.json b/security/bitwarden-cli/files/packagejsons/package-lock.json
index 15f6b1a85187..1b4fe5f40e30 100644
--- a/security/bitwarden-cli/files/packagejsons/package-lock.json
+++ b/security/bitwarden-cli/files/packagejsons/package-lock.json
@@ -23,7 +23,7 @@
         "@angular/platform-browser": "19.2.14",
         "@angular/platform-browser-dynamic": "19.2.14",
         "@angular/router": "19.2.14",
-        "@bitwarden/sdk-internal": "0.2.0-main.242",
+        "@bitwarden/sdk-internal": "0.2.0-main.266",
         "@electron/fuses": "1.8.0",
         "@emotion/css": "11.13.5",
         "@koa/multer": "4.0.0",
@@ -31,18 +31,17 @@
         "@microsoft/signalr": "8.0.7",
         "@microsoft/signalr-protocol-msgpack": "8.0.7",
         "@ng-select/ng-select": "14.9.0",
-        "@nx/devkit": "21.1.2",
-        "@nx/eslint": "21.1.2",
-        "@nx/jest": "21.1.2",
-        "@nx/js": "21.1.2",
+        "@nx/devkit": "21.3.11",
+        "@nx/eslint": "21.3.11",
+        "@nx/jest": "21.3.11",
+        "@nx/js": "21.3.11",
         "big-integer": "1.6.52",
-        "bootstrap": "4.6.0",
         "braintree-web-drop-in": "1.44.0",
         "buffer": "6.0.3",
         "bufferutil": "4.0.9",
         "chalk": "4.1.2",
         "commander": "11.1.0",
-        "core-js": "3.44.0",
+        "core-js": "3.45.0",
         "form-data": "4.0.4",
         "https-proxy-agent": "7.0.6",
         "inquirer": "8.2.6",
@@ -130,9 +129,9 @@
         "chromatic": "13.1.2",
         "concurrently": "9.2.0",
         "copy-webpack-plugin": "13.0.0",
-        "cross-env": "7.0.3",
+        "cross-env": "10.0.0",
         "css-loader": "7.1.2",
-        "electron": "36.4.0",
+        "electron": "36.8.1",
         "electron-builder": "26.0.12",
         "electron-log": "5.4.0",
         "electron-reload": "2.0.0-alpha.1",
@@ -157,7 +156,7 @@
         "json5": "2.2.3",
         "lint-staged": "16.0.0",
         "mini-css-extract-plugin": "2.9.2",
-        "nx": "21.1.2",
+        "nx": "21.3.11",
         "postcss": "8.5.3",
         "postcss-loader": "8.1.1",
         "prettier": "3.6.2",
@@ -192,11 +191,11 @@
     },
     "apps/browser": {
       "name": "@bitwarden/browser",
-      "version": "2025.8.0"
+      "version": "2025.9.0"
     },
     "apps/cli": {
       "name": "@bitwarden/cli",
-      "version": "2025.8.0",
+      "version": "2025.9.0",
       "license": "SEE LICENSE IN LICENSE.txt",
       "dependencies": {
         "@koa/multer": "4.0.0",
@@ -205,7 +204,7 @@
         "browser-hrtime": "1.1.8",
         "chalk": "4.1.2",
         "commander": "11.1.0",
-        "core-js": "3.44.0",
+        "core-js": "3.45.0",
         "form-data": "4.0.4",
         "https-proxy-agent": "7.0.6",
         "inquirer": "8.2.6",
@@ -278,7 +277,7 @@
     },
     "apps/desktop": {
       "name": "@bitwarden/desktop",
-      "version": "2025.8.0",
+      "version": "2025.9.0",
       "hasInstallScript": true,
       "license": "GPL-3.0"
     },
@@ -292,7 +291,7 @@
     },
     "apps/web": {
       "name": "@bitwarden/web-vault",
-      "version": "2025.8.0"
+      "version": "2025.9.0"
     },
     "libs/admin-console": {
       "name": "@bitwarden/admin-console",
@@ -304,6 +303,11 @@
       "version": "0.0.0",
       "license": "GPL-3.0"
     },
+    "libs/assets": {
+      "name": "@bitwarden/assets",
+      "version": "0.0.1",
+      "license": "GPL-3.0"
+    },
     "libs/auth": {
       "name": "@bitwarden/auth",
       "version": "0.0.0",
@@ -388,6 +392,11 @@
       "version": "0.0.0",
       "license": "GPL-3.0"
     },
+    "libs/pricing": {
+      "name": "@bitwarden/pricing",
+      "version": "0.0.0",
+      "license": "GPL-3.0"
+    },
     "libs/serialization": {
       "name": "@bitwarden/serialization",
       "version": "0.0.1",
@@ -398,6 +407,11 @@
       "version": "0.0.1",
       "license": "GPL-3.0"
     },
+    "libs/state-internal": {
+      "name": "@bitwarden/state-internal",
+      "version": "0.0.1",
+      "license": "GPL-3.0"
+    },
     "libs/state-test-utils": {
       "name": "@bitwarden/state-test-utils",
       "version": "0.0.1",
@@ -2839,6 +2853,15 @@
         "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
       }
     },
+    "node_modules/@babel/helper-globals": {
+      "version": "7.28.0",
+      "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+      "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
     "node_modules/@babel/helper-member-expression-to-functions": {
       "version": "7.27.1",
       "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz",
@@ -3030,12 +3053,12 @@
       }
     },
     "node_modules/@babel/parser": {
-      "version": "7.27.5",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz",
-      "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==",
+      "version": "7.28.0",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz",
+      "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==",
       "license": "MIT",
       "dependencies": {
-        "@babel/types": "^7.27.3"
+        "@babel/types": "^7.28.0"
       },
       "bin": {
         "parser": "bin/babel-parser.js"
@@ -4495,33 +4518,33 @@
       }
     },
     "node_modules/@babel/traverse": {
-      "version": "7.27.4",
-      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz",
-      "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==",
+      "version": "7.28.0",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz",
+      "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==",
       "license": "MIT",
       "dependencies": {
         "@babel/code-frame": "^7.27.1",
-        "@babel/generator": "^7.27.3",
-        "@babel/parser": "^7.27.4",
+        "@babel/generator": "^7.28.0",
+        "@babel/helper-globals": "^7.28.0",
+        "@babel/parser": "^7.28.0",
         "@babel/template": "^7.27.2",
-        "@babel/types": "^7.27.3",
-        "debug": "^4.3.1",
-        "globals": "^11.1.0"
+        "@babel/types": "^7.28.0",
+        "debug": "^4.3.1"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/traverse/node_modules/@babel/generator": {
-      "version": "7.27.5",
-      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz",
-      "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==",
+      "version": "7.28.0",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz",
+      "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==",
       "license": "MIT",
       "dependencies": {
-        "@babel/parser": "^7.27.5",
-        "@babel/types": "^7.27.3",
-        "@jridgewell/gen-mapping": "^0.3.5",
-        "@jridgewell/trace-mapping": "^0.3.25",
+        "@babel/parser": "^7.28.0",
+        "@babel/types": "^7.28.0",
+        "@jridgewell/gen-mapping": "^0.3.12",
+        "@jridgewell/trace-mapping": "^0.3.28",
         "jsesc": "^3.0.2"
       },
       "engines": {
@@ -4529,9 +4552,9 @@
       }
     },
     "node_modules/@babel/types": {
-      "version": "7.27.6",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz",
-      "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==",
+      "version": "7.28.2",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz",
+      "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==",
       "license": "MIT",
       "dependencies": {
         "@babel/helper-string-parser": "^7.27.1",
@@ -4555,6 +4578,10 @@
       "resolved": "libs/angular",
       "link": true
     },
+    "node_modules/@bitwarden/assets": {
+      "resolved": "libs/assets",
+      "link": true
+    },
     "node_modules/@bitwarden/auth": {
       "resolved": "libs/auth",
       "link": true
@@ -4659,10 +4686,14 @@
       "resolved": "libs/platform",
       "link": true
     },
+    "node_modules/@bitwarden/pricing": {
+      "resolved": "libs/pricing",
+      "link": true
+    },
     "node_modules/@bitwarden/sdk-internal": {
-      "version": "0.2.0-main.242",
-      "resolved": "https://registry.npmjs.org/@bitwarden/sdk-internal/-/sdk-internal-0.2.0-main.242.tgz",
-      "integrity": "sha512-LFPNAAq9ORVGdvcB3PBhlM3GQZUMf3MhIuYbZxmhAG5SVlvem+sbaolgK3Fnf/8ajVx1IDMNEhfgQkA4mU9uAg==",
+      "version": "0.2.0-main.266",
+      "resolved": "https://registry.npmjs.org/@bitwarden/sdk-internal/-/sdk-internal-0.2.0-main.266.tgz",
+      "integrity": "sha512-2Axa1D9AEkax2ssqahZYHVkk2RdguzLV2bJ6j99AZhh4qjGIYtDvmc5gDh7zhuw7Ig7H3mNpKwCZ/eJgadyH6g==",
       "license": "GPL-3.0",
       "dependencies": {
         "type-fest": "^4.41.0"
@@ -4692,6 +4723,10 @@
       "resolved": "libs/state",
       "link": true
     },
+    "node_modules/@bitwarden/state-internal": {
+      "resolved": "libs/state-internal",
+      "link": true
+    },
     "node_modules/@bitwarden/state-test-utils": {
       "resolved": "libs/state-test-utils",
       "link": true
@@ -6026,6 +6061,13 @@
       "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==",
       "license": "MIT"
     },
+    "node_modules/@epic-web/invariant": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz",
+      "integrity": "sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==",
+      "dev": true,
+      "license": "MIT"
+    },
     "node_modules/@esbuild/aix-ppc64": {
       "version": "0.25.4",
       "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz",
@@ -7188,7 +7230,6 @@
       "version": "8.0.2",
       "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
       "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
-      "dev": true,
       "license": "ISC",
       "dependencies": {
         "string-width": "^5.1.2",
@@ -7206,7 +7247,6 @@
       "version": "6.1.0",
       "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
       "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
-      "dev": true,
       "license": "MIT",
       "engines": {
         "node": ">=12"
@@ -7219,7 +7259,6 @@
       "version": "6.2.1",
       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
       "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
-      "dev": true,
       "license": "MIT",
       "engines": {
         "node": ">=12"
@@ -7232,14 +7271,12 @@
       "version": "9.2.2",
       "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
       "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
-      "dev": true,
       "license": "MIT"
     },
     "node_modules/@isaacs/cliui/node_modules/string-width": {
       "version": "5.1.2",
       "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
       "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "eastasianwidth": "^0.2.0",
@@ -7257,7 +7294,6 @@
       "version": "7.1.0",
       "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
       "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "ansi-regex": "^6.0.1"
@@ -7273,7 +7309,6 @@
       "version": "8.1.0",
       "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
       "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
-      "dev": true,
       "license": "MIT",
       "dependencies": {
         "ansi-styles": "^6.1.0",
@@ -7381,6 +7416,7 @@
       "version": "29.7.0",
       "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
       "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "@jest/types": "^29.6.3",
@@ -7490,10 +7526,20 @@
         "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
       }
     },
+    "node_modules/@jest/diff-sequences": {
+      "version": "30.0.1",
+      "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz",
+      "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==",
+      "license": "MIT",
+      "engines": {
+        "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+      }
+    },
     "node_modules/@jest/environment": {
       "version": "29.7.0",
       "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
       "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "@jest/fake-timers": "^29.7.0",
@@ -7509,6 +7555,7 @@
       "version": "29.7.0",
       "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
       "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "expect": "^29.7.0",
@@ -7522,6 +7569,7 @@
       "version": "29.7.0",
       "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
       "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "jest-get-type": "^29.6.3"
@@ -7534,6 +7582,7 @@
       "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,
       "license": "MIT",
       "dependencies": {
         "@jest/types": "^29.6.3",
@@ -7547,10 +7596,20 @@
         "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
       }
     },
+    "node_modules/@jest/get-type": {
+      "version": "30.0.1",
+      "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.0.1.tgz",
+      "integrity": "sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw==",
+      "license": "MIT",
+      "engines": {
+        "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+      }
+    },
     "node_modules/@jest/globals": {
       "version": "29.7.0",
       "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
       "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "@jest/environment": "^29.7.0",
@@ -7562,10 +7621,33 @@
         "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
       }
     },
+    "node_modules/@jest/pattern": {
+      "version": "30.0.1",
+      "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz",
+      "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==",
+      "license": "MIT",
+      "dependencies": {
+        "@types/node": "*",
+        "jest-regex-util": "30.0.1"
+      },
+      "engines": {
+        "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+      }
+    },
+    "node_modules/@jest/pattern/node_modules/jest-regex-util": {
+      "version": "30.0.1",
+      "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz",
+      "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==",
+      "license": "MIT",
+      "engines": {
+        "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+      }
+    },
     "node_modules/@jest/reporters": {
       "version": "29.7.0",
       "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
       "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "@bcoe/v8-coverage": "^0.2.3",
@@ -7609,6 +7691,7 @@
       "version": "1.1.12",
       "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
       "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "balanced-match": "^1.0.0",
@@ -7620,6 +7703,7 @@
       "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
       "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
       "deprecated": "Glob versions prior to v9 are no longer supported",
+      "dev": true,
       "license": "ISC",
       "dependencies": {
         "fs.realpath": "^1.0.0",
@@ -7640,6 +7724,7 @@
       "version": "3.1.2",
       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
       "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dev": true,
       "license": "ISC",
       "dependencies": {
         "brace-expansion": "^1.1.7"
@@ -7652,6 +7737,7 @@
       "version": "29.6.3",
       "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
       "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+      "devOptional": true,
       "license": "MIT",
       "dependencies": {
         "@sinclair/typebox": "^0.27.8"
@@ -7660,10 +7746,62 @@
         "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
       }
     },
+    "node_modules/@jest/snapshot-utils": {
+      "version": "30.0.5",
+      "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.0.5.tgz",
+      "integrity": "sha512-XcCQ5qWHLvi29UUrowgDFvV4t7ETxX91CbDczMnoqXPOIcZOxyNdSjm6kV5XMc8+HkxfRegU/MUmnTbJRzGrUQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@jest/types": "30.0.5",
+        "chalk": "^4.1.2",
+        "graceful-fs": "^4.2.11",
+        "natural-compare": "^1.4.0"
+      },
+      "engines": {
+        "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+      }
+    },
+    "node_modules/@jest/snapshot-utils/node_modules/@jest/schemas": {
+      "version": "30.0.5",
+      "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz",
+      "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==",
+      "license": "MIT",
+      "dependencies": {
+        "@sinclair/typebox": "^0.34.0"
+      },
+      "engines": {
+        "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+      }
+    },
+    "node_modules/@jest/snapshot-utils/node_modules/@jest/types": {
+      "version": "30.0.5",
+      "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.5.tgz",
+      "integrity": "sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@jest/pattern": "30.0.1",
+        "@jest/schemas": "30.0.5",
+        "@types/istanbul-lib-coverage": "^2.0.6",
+        "@types/istanbul-reports": "^3.0.4",
+        "@types/node": "*",
+        "@types/yargs": "^17.0.33",
+        "chalk": "^4.1.2"
+      },
+      "engines": {
+        "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+      }
+    },
+    "node_modules/@jest/snapshot-utils/node_modules/@sinclair/typebox": {
+      "version": "0.34.38",
+      "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.38.tgz",
+      "integrity": "sha512-HpkxMmc2XmZKhvaKIZZThlHmx1L0I/V1hWK1NubtlFnr6ZqdiOpV72TKudZUNQjZNsyDBay72qFEhEvb+bcwcA==",
+      "license": "MIT"
+    },
     "node_modules/@jest/source-map": {
       "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,
       "license": "MIT",
       "dependencies": {
         "@jridgewell/trace-mapping": "^0.3.18",
@@ -7678,6 +7816,7 @@
       "version": "29.7.0",
       "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
       "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "@jest/console": "^29.7.0",
@@ -7693,6 +7832,7 @@
       "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,
       "license": "MIT",
       "dependencies": {
         "@jest/test-result": "^29.7.0",
@@ -7708,6 +7848,7 @@
       "version": "29.7.0",
       "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
       "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "@babel/core": "^7.11.6",
@@ -7734,12 +7875,14 @@
       "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==",
+      "dev": true,
       "license": "MIT"
     },
     "node_modules/@jest/types": {
       "version": "29.6.3",
       "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
       "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
+      "devOptional": true,
       "license": "MIT",
       "dependencies": {
         "@jest/schemas": "^29.6.3",
@@ -7754,17 +7897,13 @@
       }
     },
     "node_modules/@jridgewell/gen-mapping": {
-      "version": "0.3.8",
-      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
-      "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
+      "version": "0.3.13",
+      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+      "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
       "license": "MIT",
       "dependencies": {
-        "@jridgewell/set-array": "^1.2.1",
-        "@jridgewell/sourcemap-codec": "^1.4.10",
+        "@jridgewell/sourcemap-codec": "^1.5.0",
         "@jridgewell/trace-mapping": "^0.3.24"
-      },
-      "engines": {
-        "node": ">=6.0.0"
       }
     },
     "node_modules/@jridgewell/resolve-uri": {
@@ -7776,15 +7915,6 @@
         "node": ">=6.0.0"
       }
     },
-    "node_modules/@jridgewell/set-array": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
-      "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=6.0.0"
-      }
-    },
     "node_modules/@jridgewell/source-map": {
       "version": "0.3.6",
       "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
@@ -7803,9 +7933,9 @@
       "license": "MIT"
     },
     "node_modules/@jridgewell/trace-mapping": {
-      "version": "0.3.25",
-      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
-      "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+      "version": "0.3.30",
+      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz",
+      "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==",
       "license": "MIT",
       "dependencies": {
         "@jridgewell/resolve-uri": "^3.1.0",
@@ -9190,9 +9320,9 @@
       }
     },
     "node_modules/@nx/devkit": {
-      "version": "21.1.2",
-      "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-21.1.2.tgz",
-      "integrity": "sha512-1dgjwSsNDdp/VXydZnSfzfVwySEB3C9yjzeIw6+3+nRvZfH16a7ggZE7MF5sJTq4d+01hAgIDz3KyvGa6Jf73g==",
+      "version": "21.3.11",
+      "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-21.3.11.tgz",
+      "integrity": "sha512-JOV8TAa9K5+ZwTA/EUi0g5qcKEg5vmi0AyOUsrNUHlv3BgQnwZtPLDDTPPZ+ezq24o6YzgwueZWj3CLEdMHEDg==",
       "license": "MIT",
       "dependencies": {
         "ejs": "^3.1.7",
@@ -9205,7 +9335,7 @@
         "yargs-parser": "21.1.1"
       },
       "peerDependencies": {
-        "nx": "21.1.2"
+        "nx": "21.3.11"
       }
     },
     "node_modules/@nx/devkit/node_modules/ignore": {
@@ -9218,16 +9348,16 @@
*** 2535 LINES SKIPPED ***