git: c20a9ffdb5f5 - main - security/bitwarden-cli: update to 2025.4.0

From: Hiroki Tagato <tagattie_at_FreeBSD.org>
Date: Sun, 18 May 2025 02:51:38 UTC
The branch main has been updated by tagattie:

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

commit c20a9ffdb5f53890b7551548200e7ce9b1702504
Author:     Hiroki Tagato <tagattie@FreeBSD.org>
AuthorDate: 2025-05-18 02:50:15 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2025-05-18 02:51:32 +0000

    security/bitwarden-cli: update to 2025.4.0
    
    Changelog:
    - https://github.com/bitwarden/clients/releases/tag/cli-v2025.1.2
    - https://github.com/bitwarden/clients/releases/tag/cli-v2025.1.3
    - https://github.com/bitwarden/clients/releases/tag/cli-v2025.2.0
    - https://github.com/bitwarden/clients/releases/tag/cli-v2025.3.0
    - https://github.com/bitwarden/clients/releases/tag/cli-v2025.4.0
    
    Reported by:    GitHub (watch releases)
---
 security/bitwarden-cli/Makefile                    |     7 +-
 security/bitwarden-cli/distinfo                    |    14 +-
 .../bitwarden-cli/files/node/patch-common.gypi     |     6 +-
 .../bitwarden-cli/files/node/patch-configure.py    |     4 +-
 .../node/patch-deps_v8_src_base_small-vector.h     |    10 +
 .../node/patch-deps_v8_src_inspector_string-16.cc  |    31 -
 .../node/patch-deps_v8_src_inspector_string-16.h   |    47 -
 ...-deps_v8_src_inspector_v8-string-conversions.cc |    29 -
 ...h-deps_v8_src_inspector_v8-string-conversions.h |    21 -
 .../node/patch-deps_v8_src_libsampler_sampler.cc   |     4 +-
 ...inspector__protocol_crdtp_test__platform__v8.cc |    22 -
 security/bitwarden-cli/files/node/patch-node.gypi  |     4 +-
 .../files/node/patch-src_crypto_crypto__util.cc    |    15 -
 .../files/node/patch-tools_v8__gypfiles_v8.gyp     |     4 +-
 security/bitwarden-cli/files/packagejsons/.npmrc   |     1 +
 .../files/packagejsons/apps/browser/package.json   |    34 +-
 .../src/autofill/content/components/package.json   |     7 +
 .../files/packagejsons/apps/cli/package.json       |    26 +-
 .../files/packagejsons/apps/desktop/package.json   |    11 +-
 .../files/packagejsons/apps/web/package.json       |    10 +-
 .../files/packagejsons/libs/auth/package.json      |     5 -
 .../files/packagejsons/libs/common/package.json    |     3 +-
 .../files/packagejsons/libs/importer/package.json  |     5 -
 .../libs/key-management-ui/package.json            |    21 +
 .../packagejsons/libs/key-management/package.json  |     8 +-
 .../files/packagejsons/libs/node/package.json      |     3 -
 .../packagejsons/libs/tools/card/package.json      |     4 -
 .../vault-export/vault-export-core/package.json    |     4 -
 .../vault-export/vault-export-ui/package.json      |     7 -
 .../libs/tools/generator/components/package.json   |     4 -
 .../libs/tools/generator/core/package.json         |     3 -
 .../generator/extensions/history/package.json      |     4 -
 .../tools/generator/extensions/legacy/package.json |     6 -
 .../generator/extensions/navigation/package.json   |     4 -
 .../libs/tools/send/send-ui/package.json           |     4 -
 .../files/packagejsons/libs/ui/common/package.json |    23 +
 .../files/packagejsons/package-lock.json           | 13474 ++++++++++++-------
 .../bitwarden-cli/files/packagejsons/package.json  |   156 +-
 ...platform_services_cli-platform-utils.service.ts |     6 +-
 39 files changed, 8904 insertions(+), 5147 deletions(-)

diff --git a/security/bitwarden-cli/Makefile b/security/bitwarden-cli/Makefile
index da1f30c1f2b3..8c3f36bd9b50 100644
--- a/security/bitwarden-cli/Makefile
+++ b/security/bitwarden-cli/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	bitwarden-cli
 DISTVERSIONPREFIX=	cli-v
-DISTVERSION=	2024.12.0
-PORTREVISION=	1
+DISTVERSION=	2025.4.0
 CATEGORIES=	security
 MASTER_SITES=	https://nodejs.org/dist/v${PKG_NODE_VER}/:node
 DISTFILES=	node-v${PKG_NODE_VER}${EXTRACT_SUFX}:node \
@@ -31,7 +30,7 @@ RUN_DEPENDS=	xdg-open:devel/xdg-utils \
 		ca_root_nss>0:security/ca_root_nss
 TEST_DEPENDS=	npm:www/npm${NODEJS_SUFFIX}
 
-USES=		gmake localbase:ldflags nodejs:20,build pkgconfig \
+USES=		gmake localbase:ldflags nodejs:22,build pkgconfig \
 		python:build ssl
 
 USE_GITHUB=	yes
@@ -51,7 +50,7 @@ OPTIONS_DEFINE=	DOCS
 
 PREFETCH_FILE=	${PORTNAME}-${DISTVERSION}-node-modules${EXTRACT_SUFX}
 PREFETCH_TIMESTAMP=	61171200
-PKG_NODE_VER=	20.18.0
+PKG_NODE_VER=	22.10.0
 PKG_FETCH_VER=	3.5
 PKG_NODE_CONFIGURE_ARGS=--openssl-use-def-ca-store \
 			--shared-brotli \
diff --git a/security/bitwarden-cli/distinfo b/security/bitwarden-cli/distinfo
index 96ccc5f0d027..ce6c02ca8cb6 100644
--- a/security/bitwarden-cli/distinfo
+++ b/security/bitwarden-cli/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1735297746
-SHA256 (node-v20.18.0.tar.gz) = c0819f8fc5038584d24c22002aeffd23f2d4a6fd6b337b30c502cbe4a659720c
-SIZE (node-v20.18.0.tar.gz) = 88616002
-SHA256 (bitwarden-cli-2024.12.0-node-modules.tar.gz) = f0f9f09a8643d24f311eebb1d80cb3ca9f3262e87b58778deb4950f43b6cf831
-SIZE (bitwarden-cli-2024.12.0-node-modules.tar.gz) = 196504067
-SHA256 (bitwarden-clients-cli-v2024.12.0_GH0.tar.gz) = e0bd25b6be3fe5d8f97a8c3a030bb0a7bd7a01d14403414438ba93b891c30690
-SIZE (bitwarden-clients-cli-v2024.12.0_GH0.tar.gz) = 23995637
+TIMESTAMP = 1747523921
+SHA256 (node-v22.10.0.tar.gz) = 42e4ab4ce34383488185cef6f06f8d1267bf91ebc5c6596fc3786efb0f8b5aaa
+SIZE (node-v22.10.0.tar.gz) = 96921636
+SHA256 (bitwarden-cli-2025.4.0-node-modules.tar.gz) = 68c6e17f347c86280a229a5cd5241d5fd541292c181c979ca2960bb1a23626e3
+SIZE (bitwarden-cli-2025.4.0-node-modules.tar.gz) = 219633743
+SHA256 (bitwarden-clients-cli-v2025.4.0_GH0.tar.gz) = daaf409b10a4334e4467159923dddc6d8322c4ce70ef7c37a38b760c4bf28eef
+SIZE (bitwarden-clients-cli-v2025.4.0_GH0.tar.gz) = 24964580
diff --git a/security/bitwarden-cli/files/node/patch-common.gypi b/security/bitwarden-cli/files/node/patch-common.gypi
index 5dbb6214c2a1..9bf22808351f 100644
--- a/security/bitwarden-cli/files/node/patch-common.gypi
+++ b/security/bitwarden-cli/files/node/patch-common.gypi
@@ -1,6 +1,6 @@
---- common.gypi.orig	2024-10-03 09:20:49 UTC
+--- common.gypi.orig	2024-10-16 14:36:50 UTC
 +++ common.gypi
-@@ -489,7 +489,7 @@
+@@ -521,7 +521,7 @@
                  'ldflags': [ '-m32' ],
                }],
                [ 'host_arch=="ppc64" and OS not in "aix os400"', {
@@ -9,7 +9,7 @@
                  'ldflags': [ '-m64' ],
                }],
                [ 'host_arch=="s390x" and OS=="linux"', {
-@@ -513,7 +513,7 @@
+@@ -545,7 +545,7 @@
                  'ldflags': [ '-m32' ],
                }],
                [ 'target_arch=="ppc64" and OS not in "aix os400"', {
diff --git a/security/bitwarden-cli/files/node/patch-configure.py b/security/bitwarden-cli/files/node/patch-configure.py
index 7d44850721fc..11a8cdf9caf6 100644
--- a/security/bitwarden-cli/files/node/patch-configure.py
+++ b/security/bitwarden-cli/files/node/patch-configure.py
@@ -1,6 +1,6 @@
---- configure.py.orig	2024-10-03 09:20:49 UTC
+--- configure.py.orig	2024-10-16 14:36:50 UTC
 +++ configure.py
-@@ -1829,7 +1829,7 @@ def configure_intl(o):
+@@ -1876,7 +1876,7 @@ def configure_intl(o):
    elif with_intl == 'system-icu':
      # ICU from pkg-config.
      o['variables']['v8_enable_i18n_support'] = 1
diff --git a/security/bitwarden-cli/files/node/patch-deps_v8_src_base_small-vector.h b/security/bitwarden-cli/files/node/patch-deps_v8_src_base_small-vector.h
new file mode 100644
index 000000000000..3d84721f6dcb
--- /dev/null
+++ b/security/bitwarden-cli/files/node/patch-deps_v8_src_base_small-vector.h
@@ -0,0 +1,10 @@
+--- deps/v8/src/base/small-vector.h.orig	2024-10-16 14:36:54 UTC
++++ deps/v8/src/base/small-vector.h
+@@ -22,7 +22,6 @@ class SmallVector {
+ class SmallVector {
+   // Currently only support trivially copyable and trivially destructible data
+   // types, as it uses memcpy to copy elements and never calls destructors.
+-  ASSERT_TRIVIALLY_COPYABLE(T);
+   static_assert(std::is_trivially_destructible<T>::value);
+ 
+  public:
diff --git a/security/bitwarden-cli/files/node/patch-deps_v8_src_inspector_string-16.cc b/security/bitwarden-cli/files/node/patch-deps_v8_src_inspector_string-16.cc
deleted file mode 100644
index 7e0ccb4b8b4b..000000000000
--- a/security/bitwarden-cli/files/node/patch-deps_v8_src_inspector_string-16.cc
+++ /dev/null
@@ -1,31 +0,0 @@
---- deps/v8/src/inspector/string-16.cc.orig	2024-08-21 12:35:26 UTC
-+++ deps/v8/src/inspector/string-16.cc
-@@ -27,7 +27,7 @@ bool isSpaceOrNewLine(UChar c) {
-   return isASCII(c) && c <= ' ' && (c == ' ' || (c <= 0xD && c >= 0x9));
- }
- 
--int64_t charactersToInteger(const UChar* characters, size_t length,
-+int64_t charactersToInteger(const uint16_t* characters, size_t length,
-                             bool* ok = nullptr) {
-   std::vector<char> buffer;
-   buffer.reserve(length + 1);
-@@ -50,6 +50,8 @@ String16::String16(const UChar* characters, size_t siz
- 
- String16::String16(const UChar* characters, size_t size)
-     : m_impl(characters, size) {}
-+String16::String16(const uint16_t* characters, size_t size)
-+    : m_impl(reinterpret_cast<const UChar*>(characters), size) {}
- 
- String16::String16(const UChar* characters) : m_impl(characters) {}
- 
-@@ -239,6 +241,10 @@ String16 String16::fromUTF16LE(const UChar* stringStar
-   // No need to do anything on little endian machines.
-   return String16(stringStart, length);
- #endif  // V8_TARGET_BIG_ENDIAN
-+}
-+
-+String16 String16::fromUTF16LE(const uint16_t* stringStart, size_t length) {
-+  return fromUTF16LE(reinterpret_cast<const UChar*>(stringStart), length);
- }
- 
- std::string String16::utf8() const {
diff --git a/security/bitwarden-cli/files/node/patch-deps_v8_src_inspector_string-16.h b/security/bitwarden-cli/files/node/patch-deps_v8_src_inspector_string-16.h
deleted file mode 100644
index 15c3a6e84068..000000000000
--- a/security/bitwarden-cli/files/node/patch-deps_v8_src_inspector_string-16.h
+++ /dev/null
@@ -1,47 +0,0 @@
---- deps/v8/src/inspector/string-16.h.orig	2024-08-21 12:35:26 UTC
-+++ deps/v8/src/inspector/string-16.h
-@@ -6,6 +6,7 @@
- #define V8_INSPECTOR_STRING_16_H_
- 
- #include <stdint.h>
-+#include <uchar.h>
- 
- #include <cctype>
- #include <climits>
-@@ -17,7 +18,7 @@ namespace v8_inspector {
- 
- namespace v8_inspector {
- 
--using UChar = uint16_t;
-+using UChar = char16_t;
- 
- class String16 {
-  public:
-@@ -27,6 +28,7 @@ class String16 {
-   String16(const String16&) V8_NOEXCEPT = default;
-   String16(String16&&) V8_NOEXCEPT = default;
-   String16(const UChar* characters, size_t size);
-+  String16(const uint16_t* characters, size_t size);
-   V8_EXPORT String16(const UChar* characters);
-   V8_EXPORT String16(const char* characters);
-   String16(const char* characters, size_t size);
-@@ -48,7 +50,9 @@ class String16 {
-   int toInteger(bool* ok = nullptr) const;
-   std::pair<size_t, size_t> getTrimmedOffsetAndLength() const;
-   String16 stripWhiteSpace() const;
--  const UChar* characters16() const { return m_impl.c_str(); }
-+  const uint16_t* characters16() const {
-+    return reinterpret_cast<const uint16_t*>(m_impl.c_str());
-+  }
-   size_t length() const { return m_impl.length(); }
-   bool isEmpty() const { return !m_impl.length(); }
-   UChar operator[](size_t index) const { return m_impl[index]; }
-@@ -77,6 +81,8 @@ class String16 {
-   // Instantiates a String16 in native endianness from UTF16 LE.
-   // On Big endian architectures, byte order needs to be flipped.
-   V8_EXPORT static String16 fromUTF16LE(const UChar* stringStart,
-+                                        size_t length);
-+  V8_EXPORT static String16 fromUTF16LE(const uint16_t* stringStart,
-                                         size_t length);
- 
-   std::size_t hash() const {
diff --git a/security/bitwarden-cli/files/node/patch-deps_v8_src_inspector_v8-string-conversions.cc b/security/bitwarden-cli/files/node/patch-deps_v8_src_inspector_v8-string-conversions.cc
deleted file mode 100644
index 0598c40f98da..000000000000
--- a/security/bitwarden-cli/files/node/patch-deps_v8_src_inspector_v8-string-conversions.cc
+++ /dev/null
@@ -1,29 +0,0 @@
---- deps/v8/src/inspector/v8-string-conversions.cc.orig	2024-08-21 12:35:26 UTC
-+++ deps/v8/src/inspector/v8-string-conversions.cc
-@@ -12,7 +12,7 @@ namespace {
- 
- namespace v8_inspector {
- namespace {
--using UChar = uint16_t;
-+using UChar = char16_t;
- using UChar32 = uint32_t;
- 
- bool isASCII(UChar c) { return !(c & ~0x7F); }
-@@ -386,7 +386,7 @@ std::basic_string<UChar> UTF8ToUTF16(const char* strin
- 
- std::basic_string<UChar> UTF8ToUTF16(const char* stringStart, size_t length) {
-   if (!stringStart || !length) return std::basic_string<UChar>();
--  std::vector<uint16_t> buffer(length);
-+  std::vector<UChar> buffer(length);
-   UChar* bufferStart = buffer.data();
- 
-   UChar* bufferCurrent = bufferStart;
-@@ -395,7 +395,7 @@ std::basic_string<UChar> UTF8ToUTF16(const char* strin
-                          reinterpret_cast<const char*>(stringStart + length),
-                          &bufferCurrent, bufferCurrent + buffer.size(), nullptr,
-                          true) != conversionOK)
--    return std::basic_string<uint16_t>();
-+    return std::basic_string<UChar>();
-   size_t utf16Length = bufferCurrent - bufferStart;
-   return std::basic_string<UChar>(bufferStart, bufferStart + utf16Length);
- }
diff --git a/security/bitwarden-cli/files/node/patch-deps_v8_src_inspector_v8-string-conversions.h b/security/bitwarden-cli/files/node/patch-deps_v8_src_inspector_v8-string-conversions.h
deleted file mode 100644
index 7395fd13692e..000000000000
--- a/security/bitwarden-cli/files/node/patch-deps_v8_src_inspector_v8-string-conversions.h
+++ /dev/null
@@ -1,21 +0,0 @@
---- deps/v8/src/inspector/v8-string-conversions.h.orig	2024-08-21 12:35:26 UTC
-+++ deps/v8/src/inspector/v8-string-conversions.h
-@@ -5,14 +5,16 @@
- #ifndef V8_INSPECTOR_V8_STRING_CONVERSIONS_H_
- #define V8_INSPECTOR_V8_STRING_CONVERSIONS_H_
- 
-+#include <uchar.h>
-+
- #include <cstdint>
- #include <string>
- 
- // Conversion routines between UT8 and UTF16, used by string-16.{h,cc}. You may
- // want to use string-16.h directly rather than these.
- namespace v8_inspector {
--std::basic_string<uint16_t> UTF8ToUTF16(const char* stringStart, size_t length);
--std::string UTF16ToUTF8(const uint16_t* stringStart, size_t length);
-+std::basic_string<char16_t> UTF8ToUTF16(const char* stringStart, size_t length);
-+std::string UTF16ToUTF8(const char16_t* stringStart, size_t length);
- }  // namespace v8_inspector
- 
- #endif  // V8_INSPECTOR_V8_STRING_CONVERSIONS_H_
diff --git a/security/bitwarden-cli/files/node/patch-deps_v8_src_libsampler_sampler.cc b/security/bitwarden-cli/files/node/patch-deps_v8_src_libsampler_sampler.cc
index 238c9d32205e..cae51cc50639 100644
--- a/security/bitwarden-cli/files/node/patch-deps_v8_src_libsampler_sampler.cc
+++ b/security/bitwarden-cli/files/node/patch-deps_v8_src_libsampler_sampler.cc
@@ -1,6 +1,6 @@
---- deps/v8/src/libsampler/sampler.cc.orig	2024-02-13 21:43:31 UTC
+--- deps/v8/src/libsampler/sampler.cc.orig	2024-10-16 14:36:54 UTC
 +++ deps/v8/src/libsampler/sampler.cc
-@@ -511,6 +511,10 @@ void SignalHandler::FillRegisterState(void* context, R
+@@ -513,6 +513,10 @@ void SignalHandler::FillRegisterState(void* context, R
    state->pc = reinterpret_cast<void*>(mcontext.__gregs[_REG_PC]);
    state->sp = reinterpret_cast<void*>(mcontext.__gregs[_REG_SP]);
    state->fp = reinterpret_cast<void*>(mcontext.__gregs[_REG_FP]);
diff --git a/security/bitwarden-cli/files/node/patch-deps_v8_third__party_inspector__protocol_crdtp_test__platform__v8.cc b/security/bitwarden-cli/files/node/patch-deps_v8_third__party_inspector__protocol_crdtp_test__platform__v8.cc
deleted file mode 100644
index 810a29c2782a..000000000000
--- a/security/bitwarden-cli/files/node/patch-deps_v8_third__party_inspector__protocol_crdtp_test__platform__v8.cc
+++ /dev/null
@@ -1,22 +0,0 @@
---- deps/v8/third_party/inspector_protocol/crdtp/test_platform_v8.cc.orig	2024-08-21 12:35:28 UTC
-+++ deps/v8/third_party/inspector_protocol/crdtp/test_platform_v8.cc
-@@ -11,13 +11,16 @@ std::string UTF16ToUTF8(span<uint16_t> in) {
- namespace v8_crdtp {
- 
- std::string UTF16ToUTF8(span<uint16_t> in) {
--  return v8_inspector::UTF16ToUTF8(in.data(), in.size());
-+  return v8_inspector::UTF16ToUTF8(reinterpret_cast<const char16_t*>(in.data()),
-+                                   in.size());
- }
- 
- std::vector<uint16_t> UTF8ToUTF16(span<uint8_t> in) {
--  std::basic_string<uint16_t> utf16 = v8_inspector::UTF8ToUTF16(
-+  std::basic_string<char16_t> utf16 = v8_inspector::UTF8ToUTF16(
-       reinterpret_cast<const char*>(in.data()), in.size());
--  return std::vector<uint16_t>(utf16.begin(), utf16.end());
-+  return std::vector<uint16_t>(
-+      reinterpret_cast<const uint16_t*>(utf16.data()),
-+      reinterpret_cast<const uint16_t*>(utf16.data()) + utf16.size());
- }
- 
- }  // namespace v8_crdtp
diff --git a/security/bitwarden-cli/files/node/patch-node.gypi b/security/bitwarden-cli/files/node/patch-node.gypi
index 99e4d1d89cae..fde0e67aec64 100644
--- a/security/bitwarden-cli/files/node/patch-node.gypi
+++ b/security/bitwarden-cli/files/node/patch-node.gypi
@@ -1,6 +1,6 @@
---- node.gypi.orig	2024-10-03 09:20:53 UTC
+--- node.gypi.orig	2024-10-16 14:36:58 UTC
 +++ node.gypi
-@@ -354,6 +354,9 @@
+@@ -358,6 +358,9 @@
      [ 'node_use_openssl=="true"', {
        'defines': [ 'HAVE_OPENSSL=1' ],
        'conditions': [
diff --git a/security/bitwarden-cli/files/node/patch-src_crypto_crypto__util.cc b/security/bitwarden-cli/files/node/patch-src_crypto_crypto__util.cc
deleted file mode 100644
index 69e6fc687aec..000000000000
--- a/security/bitwarden-cli/files/node/patch-src_crypto_crypto__util.cc
+++ /dev/null
@@ -1,15 +0,0 @@
---- src/crypto/crypto_util.cc.orig	2024-02-13 21:43:33 UTC
-+++ src/crypto/crypto_util.cc
-@@ -205,10 +205,12 @@ void InitCryptoOnce() {
-   // No-op with OPENSSL_NO_COMP builds of OpenSSL.
-   sk_SSL_COMP_zero(SSL_COMP_get_compression_methods());
- 
-+#if OPENSSL_VERSION_MAJOR < 3
- #ifndef OPENSSL_NO_ENGINE
-   ERR_load_ENGINE_strings();
-   ENGINE_load_builtin_engines();
- #endif  // !OPENSSL_NO_ENGINE
-+#endif
- }
- 
- void GetFipsCrypto(const FunctionCallbackInfo<Value>& args) {
diff --git a/security/bitwarden-cli/files/node/patch-tools_v8__gypfiles_v8.gyp b/security/bitwarden-cli/files/node/patch-tools_v8__gypfiles_v8.gyp
index aa5e5a520ca7..d857e98f0d0a 100644
--- a/security/bitwarden-cli/files/node/patch-tools_v8__gypfiles_v8.gyp
+++ b/security/bitwarden-cli/files/node/patch-tools_v8__gypfiles_v8.gyp
@@ -1,6 +1,6 @@
---- tools/v8_gypfiles/v8.gyp.orig	2024-08-21 12:35:32 UTC
+--- tools/v8_gypfiles/v8.gyp.orig	2024-10-16 14:36:59 UTC
 +++ tools/v8_gypfiles/v8.gyp
-@@ -1095,7 +1095,7 @@
+@@ -1245,7 +1245,7 @@
          }],
          # Platforms that don't have Compare-And-Swap (CAS) support need to link atomic library
          # to implement atomic memory access
diff --git a/security/bitwarden-cli/files/packagejsons/.npmrc b/security/bitwarden-cli/files/packagejsons/.npmrc
new file mode 100644
index 000000000000..cffe8cdef132
--- /dev/null
+++ b/security/bitwarden-cli/files/packagejsons/.npmrc
@@ -0,0 +1 @@
+save-exact=true
diff --git a/security/bitwarden-cli/files/packagejsons/apps/browser/package.json b/security/bitwarden-cli/files/packagejsons/apps/browser/package.json
index 647847db4578..9ed3c807c11c 100644
--- a/security/bitwarden-cli/files/packagejsons/apps/browser/package.json
+++ b/security/bitwarden-cli/files/packagejsons/apps/browser/package.json
@@ -1,35 +1,35 @@
 {
   "name": "@bitwarden/browser",
-  "version": "2024.12.0",
+  "version": "2025.4.0",
   "scripts": {
     "build": "npm run build:chrome",
-    "build:chrome": "cross-env BROWSER=chrome MANIFEST_VERSION=3 webpack",
-    "build:edge": "cross-env BROWSER=edge webpack",
-    "build:firefox": "cross-env BROWSER=firefox webpack",
-    "build:opera": "cross-env BROWSER=opera webpack",
-    "build:safari": "cross-env BROWSER=safari webpack",
+    "build:chrome": "cross-env BROWSER=chrome MANIFEST_VERSION=3 NODE_OPTIONS=\"--max-old-space-size=8192\" webpack",
+    "build:edge": "cross-env BROWSER=edge MANIFEST_VERSION=3 NODE_OPTIONS=\"--max-old-space-size=8192\" webpack",
+    "build:firefox": "cross-env BROWSER=firefox NODE_OPTIONS=\"--max-old-space-size=8192\" webpack",
+    "build:opera": "cross-env BROWSER=opera MANIFEST_VERSION=3 NODE_OPTIONS=\"--max-old-space-size=8192\" webpack",
+    "build:safari": "cross-env BROWSER=safari NODE_OPTIONS=\"--max-old-space-size=8192\" webpack",
     "build:watch": "npm run build:watch:chrome",
     "build:watch:chrome": "npm run build:chrome -- --watch",
     "build:watch:edge": "npm run build:edge -- --watch",
     "build:watch:firefox": "npm run build:firefox -- --watch",
     "build:watch:opera": "npm run build:opera -- --watch",
     "build:watch:safari": "npm run build:safari -- --watch",
-    "build:prod:chrome": "cross-env NODE_ENV=production NODE_OPTIONS=\"--max-old-space-size=4096\" npm run build:chrome",
-    "build:prod:edge": "cross-env NODE_ENV=production NODE_OPTIONS=\"--max-old-space-size=4096\" npm run build:edge",
-    "build:prod:firefox": "cross-env NODE_ENV=production NODE_OPTIONS=\"--max-old-space-size=4096\" npm run build:firefox",
-    "build:prod:opera": "cross-env NODE_ENV=production NODE_OPTIONS=\"--max-old-space-size=4096\" npm run build:opera",
-    "build:prod:safari": "cross-env NODE_ENV=production NODE_OPTIONS=\"--max-old-space-size=4096\" npm run build:safari",
-    "dist:chrome": "npm run build:prod:chrome && mkdir -p dist && ./scripts/compress.ps1 dist-chrome.zip",
-    "dist:edge": "npm run build:prod:edge && mkdir -p dist && ./scripts/compress.ps1 dist-edge.zip",
-    "dist:firefox": "npm run build:prod:firefox && mkdir -p dist && ./scripts/compress.ps1 dist-firefox.zip",
-    "dist:opera": "npm run build:prod:opera && mkdir -p dist && ./scripts/compress.ps1 dist-opera.zip",
+    "build:prod:chrome": "cross-env NODE_ENV=production npm run build:chrome",
+    "build:prod:edge": "cross-env NODE_ENV=production npm run build:edge",
+    "build:prod:firefox": "cross-env NODE_ENV=production npm run build:firefox",
+    "build:prod:opera": "cross-env NODE_ENV=production npm run build:opera",
+    "build:prod:safari": "cross-env NODE_ENV=production npm run build:safari",
+    "dist:chrome": "npm run build:prod:chrome && mkdir -p dist && ./scripts/compress.sh dist-chrome.zip",
+    "dist:edge": "npm run build:prod:edge && mkdir -p dist && ./scripts/compress.sh dist-edge.zip",
+    "dist:firefox": "npm run build:prod:firefox && mkdir -p dist && ./scripts/compress.sh dist-firefox.zip",
+    "dist:opera": "npm run build:prod:opera && mkdir -p dist && ./scripts/compress.sh dist-opera.zip",
     "dist:safari": "npm run build:prod:safari && ./scripts/package-safari.ps1",
-    "dist:edge:mv3": "cross-env MANIFEST_VERSION=3 npm run dist:edge",
     "dist:firefox:mv3": "cross-env MANIFEST_VERSION=3 npm run dist:firefox",
     "dist:opera:mv3": "cross-env MANIFEST_VERSION=3 npm run dist:opera",
     "dist:safari:mv3": "cross-env MANIFEST_VERSION=3 npm run dist:safari",
     "test": "jest",
     "test:watch": "jest --watch",
-    "test:watch:all": "jest --watchAll"
+    "test:watch:all": "jest --watchAll",
+    "test:clearCache": "jest --clear-cache"
   }
 }
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
new file mode 100644
index 000000000000..8dbe9e7f516c
--- /dev/null
+++ b/security/bitwarden-cli/files/packagejsons/apps/browser/src/autofill/content/components/package.json
@@ -0,0 +1,7 @@
+{
+  "name": "@bitwarden/lit-components",
+  "version": "2025.1.1",
+  "scripts": {
+    "storybook:lit": "storybook dev -p 6006 -c ./.lit-storybook"
+  }
+}
diff --git a/security/bitwarden-cli/files/packagejsons/apps/cli/package.json b/security/bitwarden-cli/files/packagejsons/apps/cli/package.json
index 16ad1c851911..1bf6a1d41a10 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.12.0",
+  "version": "2025.4.0",
   "keywords": [
     "bitwarden",
     "password",
@@ -18,30 +18,38 @@
   "license": "SEE LICENSE IN LICENSE.txt",
   "scripts": {
     "clean": "rimraf dist",
-    "build:oss": "webpack",
+    "build:oss": "cross-env NODE_OPTIONS=\"--max-old-space-size=8192\" 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": "webpack -c ../../bitwarden_license/bit-cli/webpack.config.js",
+    "build:bit": "cross-env NODE_OPTIONS=\"--max-old-space-size=8192\" 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",
     "build:bit:prod:watch": "cross-env NODE_ENV=production npm run build:bit:watch",
     "dist:oss:win": "npm run build:oss:prod && npm run clean && npm run package:oss:win",
     "dist:oss:mac": "npm run build:oss:prod && npm run clean && npm run package:oss:mac",
+    "dist:oss:mac-arm64": "npm run build:oss:prod && npm run clean && npm run package:oss:mac-arm64",
     "dist:oss:lin": "npm run build:oss:prod && npm run clean && npm run package:oss:lin",
+    "dist:oss:lin-arm64": "npm run build:oss:prod && npm run clean && npm run package:oss:lin-arm64",
     "dist:bit:win": "npm run build:bit:prod && npm run clean && npm run package:bit:win",
     "dist:bit:mac": "npm run build:bit:prod && npm run clean && npm run package:bit:mac",
+    "dist:bit:mac-arm64": "npm run build:bit:prod && npm run clean && npm run package:bit:mac-arm64",
     "dist:bit:lin": "npm run build:bit:prod && npm run clean && npm run package:bit:lin",
+    "dist:bit:lin-arm64": "npm run build:bit:prod && npm run clean && npm run package:bit:lin-arm64",
     "package:oss:win": "pkg . --targets win-x64 --output ./dist/oss/windows/bw.exe",
     "package:oss:mac": "pkg . --targets macos-x64 --output ./dist/oss/macos/bw",
+    "package:oss:mac-arm64": "pkg . --targets macos-arm64 --output ./dist/oss/macos-arm64/bw",
     "package:oss:lin": "pkg . --targets linux-x64 --output ./dist/oss/linux/bw",
+    "package:oss:lin-arm64": "pkg . --targets linux-arm64 --output ./dist/oss/linux-arm64/bw",
     "package:bit:win": "pkg . --targets win-x64 --output ./dist/bit/windows/bw.exe",
     "package:bit:mac": "pkg . --targets macos-x64 --output ./dist/bit/macos/bw",
+    "package:bit:mac-arm64": "pkg . --targets macos-arm64 --output ./dist/bit/macos-arm64/bw",
     "package:bit:lin": "pkg . --targets linux-x64 --output ./dist/bit/linux/bw",
+    "package:bit:lin-arm64": "pkg . --targets linux-arm64 --output ./dist/bit/linux-arm64/bw",
     "test": "jest",
     "test:watch": "jest --watch",
     "test:watch:all": "jest --watchAll"
@@ -63,12 +71,12 @@
     "browser-hrtime": "1.1.8",
     "chalk": "4.1.2",
     "commander": "11.1.0",
-    "form-data": "4.0.0",
-    "https-proxy-agent": "7.0.5",
+    "form-data": "4.0.1",
+    "https-proxy-agent": "7.0.6",
     "inquirer": "8.2.6",
-    "jsdom": "25.0.1",
+    "jsdom": "26.0.0",
     "jszip": "3.10.1",
-    "koa": "2.15.3",
+    "koa": "2.16.1",
     "koa-bodyparser": "4.4.1",
     "koa-json": "2.0.2",
     "lowdb": "1.0.0",
@@ -77,10 +85,10 @@
     "node-fetch": "2.6.12",
     "node-forge": "1.3.1",
     "open": "8.4.2",
-    "papaparse": "5.4.1",
+    "papaparse": "5.5.2",
     "proper-lockfile": "4.1.2",
     "rxjs": "7.8.1",
-    "tldts": "6.1.64",
+    "tldts": "6.1.77",
     "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 54feb7df9e66..9f442da47a19 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.12.0",
+  "version": "2025.4.2",
   "keywords": [
     "bitwarden",
     "password",
@@ -19,11 +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": "concurrently -n Main,Rend,Prel -c yellow,cyan \"npm run build:main\" \"npm run build:renderer\" \"npm run build:preload\"",
+    "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: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:macos-extension": "node scripts/build-macos-extension.js",
+    "build:macos-extension": "./desktop_native/macos_provider/build.sh && node scripts/build-macos-extension.js",
     "build:main": "cross-env NODE_ENV=production webpack --config webpack.main.js",
     "build:main:dev": "npm run build-native && cross-env NODE_ENV=development webpack --config webpack.main.js",
     "build:main:watch": "npm run build-native && cross-env NODE_ENV=development webpack --config webpack.main.js --watch",
@@ -35,7 +35,8 @@
     "clean:dist": "rimraf ./dist",
     "pack:dir": "npm run clean:dist && electron-builder --dir -p never",
     "pack:lin:flatpak": "npm run clean:dist && electron-builder --dir -p never && flatpak-builder  --repo=build/.repo build/.flatpak  ./resources/com.bitwarden.desktop.devel.yaml --install-deps-from=flathub --force-clean &&  flatpak build-bundle ./build/.repo/ ./dist/com.bitwarden.desktop.flatpak com.bitwarden.desktop",
-    "pack:lin": "npm run clean:dist && electron-builder --linux --x64 -p never",
+    "pack:lin": "npm run clean:dist && electron-builder --linux --x64 -p never && export SNAP_FILE=$(realpath ./dist/bitwarden_*.snap) && unsquashfs -d ./dist/tmp-snap/ $SNAP_FILE && mkdir -p ./dist/tmp-snap/meta/polkit/ && cp ./resources/com.bitwarden.desktop.policy  ./dist/tmp-snap/meta/polkit/polkit.com.bitwarden.desktop.policy && rm $SNAP_FILE && snapcraft pack ./dist/tmp-snap/ && mv ./*.snap ./dist/ && rm -rf ./dist/tmp-snap/",
+    "pack:lin:arm64": "npm run clean:dist && electron-builder --dir -p never && tar -czvf ./dist/bitwarden_desktop_arm64.tar.gz -C ./dist/linux-arm64-unpacked/ .",
     "pack:mac": "npm run clean:dist && electron-builder --mac --universal -p never",
     "pack:mac:arm64": "npm run clean:dist && electron-builder --mac --arm64 -p never",
     "pack:mac:mas": "npm run clean:dist && electron-builder --mac mas --universal -p never",
@@ -45,9 +46,11 @@
     "pack:win:ci": "npm run clean:dist && electron-builder --win --x64 --arm64 --ia32 -p never",
     "dist:dir": "npm run build && npm run pack:dir",
     "dist:lin": "npm run build && npm run pack:lin",
+    "dist:lin:arm64": "npm run build && npm run pack:lin:arm64",
     "dist:mac": "npm run build && npm run pack:mac",
     "dist:mac:mas": "npm run build && npm run pack:mac:mas",
     "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: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",
diff --git a/security/bitwarden-cli/files/packagejsons/apps/web/package.json b/security/bitwarden-cli/files/packagejsons/apps/web/package.json
index f9d6647a1a28..e65848602e91 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": "2024.12.0",
+  "version": "2025.4.1",
   "scripts": {
-    "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: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: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/auth/package.json b/security/bitwarden-cli/files/packagejsons/libs/auth/package.json
index 3a915d727b1c..52c1be63f817 100644
--- a/security/bitwarden-cli/files/packagejsons/libs/auth/package.json
+++ b/security/bitwarden-cli/files/packagejsons/libs/auth/package.json
@@ -16,10 +16,5 @@
     "clean": "rimraf dist",
     "build": "npm run clean && tsc",
     "build:watch": "npm run clean && tsc -watch"
-  },
-  "dependencies": {
-    "@bitwarden/angular": "file:../angular",
-    "@bitwarden/common": "file:../common",
-    "@bitwarden/components": "file:../components"
   }
 }
diff --git a/security/bitwarden-cli/files/packagejsons/libs/common/package.json b/security/bitwarden-cli/files/packagejsons/libs/common/package.json
index 5e0f5ae20c6d..ad2771e2fffd 100644
--- a/security/bitwarden-cli/files/packagejsons/libs/common/package.json
+++ b/security/bitwarden-cli/files/packagejsons/libs/common/package.json
@@ -15,6 +15,7 @@
   "scripts": {
     "clean": "rimraf dist",
     "build": "npm run clean && tsc",
-    "build:watch": "npm run clean && tsc -watch"
+    "build:watch": "npm run clean && tsc -watch",
+    "test": "jest"
   }
 }
diff --git a/security/bitwarden-cli/files/packagejsons/libs/importer/package.json b/security/bitwarden-cli/files/packagejsons/libs/importer/package.json
index 85adcadeee92..eb2588b6340e 100644
--- a/security/bitwarden-cli/files/packagejsons/libs/importer/package.json
+++ b/security/bitwarden-cli/files/packagejsons/libs/importer/package.json
@@ -16,10 +16,5 @@
     "clean": "rimraf dist",
     "build": "npm run clean && tsc",
     "build:watch": "npm run clean && tsc -watch"
-  },
-  "dependencies": {
-    "@bitwarden/common": "file:../common",
-    "@bitwarden/vault-export-core": "file:../tools/export/vault-export/vault-export-core",
-    "@bitwarden/admin-console-common": "file:../admin-console/src/common"
   }
 }
diff --git a/security/bitwarden-cli/files/packagejsons/libs/key-management-ui/package.json b/security/bitwarden-cli/files/packagejsons/libs/key-management-ui/package.json
new file mode 100644
index 000000000000..9a05bf07c63b
--- /dev/null
+++ b/security/bitwarden-cli/files/packagejsons/libs/key-management-ui/package.json
@@ -0,0 +1,21 @@
+{
+  "name": "@bitwarden/key-management-ui",
+  "version": "0.0.0",
+  "description": "Common code used across Bitwarden JavaScript projects.",
+  "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",
+    "test": "jest"
+  }
+}
diff --git a/security/bitwarden-cli/files/packagejsons/libs/key-management/package.json b/security/bitwarden-cli/files/packagejsons/libs/key-management/package.json
index 083386cbc81d..6751163e6e87 100644
--- a/security/bitwarden-cli/files/packagejsons/libs/key-management/package.json
+++ b/security/bitwarden-cli/files/packagejsons/libs/key-management/package.json
@@ -15,11 +15,7 @@
   "scripts": {
     "clean": "rimraf dist",
     "build": "npm run clean && tsc",
-    "build:watch": "npm run clean && tsc -watch"
-  },
-  "dependencies": {
-    "@bitwarden/angular": "file:../angular",
-    "@bitwarden/common": "file:../common",
-    "@bitwarden/components": "file:../components"
+    "build:watch": "npm run clean && tsc -watch",
+    "test": "jest"
   }
 }
diff --git a/security/bitwarden-cli/files/packagejsons/libs/node/package.json b/security/bitwarden-cli/files/packagejsons/libs/node/package.json
index cbc7ec2c0570..823913c997d3 100644
--- a/security/bitwarden-cli/files/packagejsons/libs/node/package.json
+++ b/security/bitwarden-cli/files/packagejsons/libs/node/package.json
@@ -16,8 +16,5 @@
     "clean": "rimraf dist",
     "build": "npm run clean && tsc",
     "build:watch": "npm run clean && tsc -watch"
-  },
-  "dependencies": {
-    "@bitwarden/common": "file:../common"
   }
 }
diff --git a/security/bitwarden-cli/files/packagejsons/libs/tools/card/package.json b/security/bitwarden-cli/files/packagejsons/libs/tools/card/package.json
index 904429ba745c..06351f1b46ad 100644
--- a/security/bitwarden-cli/files/packagejsons/libs/tools/card/package.json
+++ b/security/bitwarden-cli/files/packagejsons/libs/tools/card/package.json
@@ -16,9 +16,5 @@
     "clean": "rimraf dist",
     "build": "npm run clean && tsc",
     "build:watch": "npm run clean && tsc -watch"
-  },
-  "dependencies": {
-    "@bitwarden/common": "file:../../../common",
-    "@bitwarden/components": "file:../../../components"
   }
 }
diff --git a/security/bitwarden-cli/files/packagejsons/libs/tools/export/vault-export/vault-export-core/package.json b/security/bitwarden-cli/files/packagejsons/libs/tools/export/vault-export/vault-export-core/package.json
index 07289ae223ea..c7fcd26d8847 100644
--- a/security/bitwarden-cli/files/packagejsons/libs/tools/export/vault-export/vault-export-core/package.json
+++ b/security/bitwarden-cli/files/packagejsons/libs/tools/export/vault-export/vault-export-core/package.json
@@ -16,9 +16,5 @@
     "clean": "rimraf dist",
     "build": "npm run clean && tsc",
     "build:watch": "npm run clean && tsc -watch"
-  },
-  "dependencies": {
-    "@bitwarden/common": "file:../../../../common",
-    "@bitwarden/admin-console-common": "file:../../../../admin-console/src/common"
   }
 }
diff --git a/security/bitwarden-cli/files/packagejsons/libs/tools/export/vault-export/vault-export-ui/package.json b/security/bitwarden-cli/files/packagejsons/libs/tools/export/vault-export/vault-export-ui/package.json
index 62df08c527a0..4dc5e3251241 100644
--- a/security/bitwarden-cli/files/packagejsons/libs/tools/export/vault-export/vault-export-ui/package.json
+++ b/security/bitwarden-cli/files/packagejsons/libs/tools/export/vault-export/vault-export-ui/package.json
@@ -16,12 +16,5 @@
     "clean": "rimraf dist",
     "build": "npm run clean && tsc",
     "build:watch": "npm run clean && tsc -watch"
-  },
-  "dependencies": {
-    "@bitwarden/common": "file:../../../../common",
-    "@bitwarden/angular": "file:../../../../angular",
-    "@bitwarden/auth": "file:../../../../auth",
-    "@bitwarden/vault-export-core": "file:../vault-export-core",
-    "@bitwarden/admin-console-common": "file:../../../../admin-console/src/common"
   }
 }
diff --git a/security/bitwarden-cli/files/packagejsons/libs/tools/generator/components/package.json b/security/bitwarden-cli/files/packagejsons/libs/tools/generator/components/package.json
index e900b317a90e..be4bbbe4ae89 100644
--- a/security/bitwarden-cli/files/packagejsons/libs/tools/generator/components/package.json
+++ b/security/bitwarden-cli/files/packagejsons/libs/tools/generator/components/package.json
@@ -16,9 +16,5 @@
     "clean": "rimraf dist",
     "build": "npm run clean && tsc",
     "build:watch": "npm run clean && tsc -watch"
-  },
-  "dependencies": {
-    "@bitwarden/common": "file:../../../common",
-    "@bitwarden/generator-core": "file:../core"
   }
 }
diff --git a/security/bitwarden-cli/files/packagejsons/libs/tools/generator/core/package.json b/security/bitwarden-cli/files/packagejsons/libs/tools/generator/core/package.json
index 020adab18905..23ef352f9a61 100644
--- a/security/bitwarden-cli/files/packagejsons/libs/tools/generator/core/package.json
+++ b/security/bitwarden-cli/files/packagejsons/libs/tools/generator/core/package.json
@@ -16,8 +16,5 @@
     "clean": "rimraf dist",
     "build": "npm run clean && tsc",
     "build:watch": "npm run clean && tsc -watch"
-  },
-  "dependencies": {
-    "@bitwarden/common": "file:../../../common"
   }
 }
diff --git a/security/bitwarden-cli/files/packagejsons/libs/tools/generator/extensions/history/package.json b/security/bitwarden-cli/files/packagejsons/libs/tools/generator/extensions/history/package.json
index 00342fe435ac..5941d675536e 100644
--- a/security/bitwarden-cli/files/packagejsons/libs/tools/generator/extensions/history/package.json
+++ b/security/bitwarden-cli/files/packagejsons/libs/tools/generator/extensions/history/package.json
@@ -16,9 +16,5 @@
     "clean": "rimraf dist",
     "build": "npm run clean && tsc",
     "build:watch": "npm run clean && tsc -watch"
-  },
-  "dependencies": {
-    "@bitwarden/common": "file:../../../common",
-    "@bitwarden/generator-core": "file:../../core"
   }
 }
diff --git a/security/bitwarden-cli/files/packagejsons/libs/tools/generator/extensions/legacy/package.json b/security/bitwarden-cli/files/packagejsons/libs/tools/generator/extensions/legacy/package.json
index 0a257c67a492..151f48d5aba1 100644
--- a/security/bitwarden-cli/files/packagejsons/libs/tools/generator/extensions/legacy/package.json
+++ b/security/bitwarden-cli/files/packagejsons/libs/tools/generator/extensions/legacy/package.json
@@ -16,11 +16,5 @@
     "clean": "rimraf dist",
     "build": "npm run clean && tsc",
     "build:watch": "npm run clean && tsc -watch"
-  },
-  "dependencies": {
-    "@bitwarden/common": "file:../../../common",
-    "@bitwarden/generator-core": "file:../../core",
-    "@bitwarden/generator-history": "file:../history",
-    "@bitwarden/generator-navigation": "file:../navigation"
   }
 }
diff --git a/security/bitwarden-cli/files/packagejsons/libs/tools/generator/extensions/navigation/package.json b/security/bitwarden-cli/files/packagejsons/libs/tools/generator/extensions/navigation/package.json
index c929f46ed0f4..61b6d2b8da3f 100644
--- a/security/bitwarden-cli/files/packagejsons/libs/tools/generator/extensions/navigation/package.json
+++ b/security/bitwarden-cli/files/packagejsons/libs/tools/generator/extensions/navigation/package.json
@@ -16,9 +16,5 @@
     "clean": "rimraf dist",
     "build": "npm run clean && tsc",
     "build:watch": "npm run clean && tsc -watch"
-  },
-  "dependencies": {
-    "@bitwarden/common": "file:../../../common",
-    "@bitwarden/generator-core": "file:../../core"
   }
 }
diff --git a/security/bitwarden-cli/files/packagejsons/libs/tools/send/send-ui/package.json b/security/bitwarden-cli/files/packagejsons/libs/tools/send/send-ui/package.json
index 4ffa4db0bdba..98f7e0ca27e8 100644
--- a/security/bitwarden-cli/files/packagejsons/libs/tools/send/send-ui/package.json
+++ b/security/bitwarden-cli/files/packagejsons/libs/tools/send/send-ui/package.json
@@ -16,9 +16,5 @@
     "clean": "rimraf dist",
     "build": "npm run clean && tsc",
     "build:watch": "npm run clean && tsc -watch"
-  },
-  "dependencies": {
-    "@bitwarden/common": "file:../../../common",
-    "@bitwarden/components": "file:../../../components"
   }
 }
diff --git a/security/bitwarden-cli/files/packagejsons/libs/ui/common/package.json b/security/bitwarden-cli/files/packagejsons/libs/ui/common/package.json
new file mode 100644
index 000000000000..4ea0f8aed771
--- /dev/null
+++ b/security/bitwarden-cli/files/packagejsons/libs/ui/common/package.json
@@ -0,0 +1,23 @@
+{
+  "name": "@bitwarden/ui-common",
+  "version": "0.0.0",
+  "description": "Low-level utilities for Angular applications",
+  "keywords": [
+    "bitwarden"
+  ],
+  "author": "Bitwarden Inc.",
+  "homepage": "https://bitwarden.com",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/bitwarden/clients"
+  },
+  "license": "GPL-3.0",
+  "exports": {
+    ".": {
+      "import": "./src/index.ts"
+    },
+    "./setup-jest": {
+      "import": "./src/setup-jest.ts"
+    }
+  }
+}
diff --git a/security/bitwarden-cli/files/packagejsons/package-lock.json b/security/bitwarden-cli/files/packagejsons/package-lock.json
index 36b494c00c0e..3e16fd7ba684 100644
--- a/security/bitwarden-cli/files/packagejsons/package-lock.json
+++ b/security/bitwarden-cli/files/packagejsons/package-lock.json
@@ -12,55 +12,55 @@
       "workspaces": [
         "apps/*",
         "apps/desktop/desktop_native/napi",
-        "libs/*"
+        "libs/**/*"
       ],
       "dependencies": {
-        "@angular/animations": "17.3.12",
-        "@angular/cdk": "17.3.10",
-        "@angular/common": "17.3.12",
-        "@angular/compiler": "17.3.12",
-        "@angular/core": "17.3.12",
-        "@angular/forms": "17.3.12",
-        "@angular/platform-browser": "17.3.12",
-        "@angular/platform-browser-dynamic": "17.3.12",
-        "@angular/router": "17.3.12",
-        "@bitwarden/sdk-internal": "0.2.0-main.3",
+        "@angular/animations": "18.2.13",
+        "@angular/cdk": "18.2.14",
+        "@angular/common": "18.2.13",
+        "@angular/compiler": "18.2.13",
+        "@angular/core": "18.2.13",
+        "@angular/forms": "18.2.13",
+        "@angular/platform-browser": "18.2.13",
+        "@angular/platform-browser-dynamic": "18.2.13",
+        "@angular/router": "18.2.13",
+        "@bitwarden/sdk-internal": "0.2.0-main.137",
         "@electron/fuses": "1.8.0",
+        "@emotion/css": "11.13.5",
         "@koa/multer": "3.0.2",
         "@koa/router": "13.1.0",
         "@microsoft/signalr": "8.0.7",
         "@microsoft/signalr-protocol-msgpack": "8.0.7",
-        "@ng-select/ng-select": "12.0.7",
+        "@ng-select/ng-select": "13.9.1",
         "argon2": "0.41.1",
         "argon2-browser": "1.18.0",
         "big-integer": "1.6.52",
         "bootstrap": "4.6.0",
-        "braintree-web-drop-in": "1.43.0",
+        "braintree-web-drop-in": "1.44.0",
         "buffer": "6.0.3",
-        "bufferutil": "4.0.8",
+        "bufferutil": "4.0.9",
         "chalk": "4.1.2",
         "commander": "11.1.0",
-        "core-js": "3.39.0",
-        "form-data": "4.0.0",
-        "https-proxy-agent": "7.0.5",
+        "core-js": "3.40.0",
+        "form-data": "4.0.1",
+        "https-proxy-agent": "7.0.6",
         "inquirer": "8.2.6",
         "jquery": "3.7.1",
-        "jsdom": "25.0.1",
+        "jsdom": "26.0.0",
         "jszip": "3.10.1",
-        "koa": "2.15.3",
+        "koa": "2.16.1",
         "koa-bodyparser": "4.4.1",
         "koa-json": "2.0.2",
+        "lit": "3.2.1",
         "lowdb": "1.0.0",
         "lunr": "2.3.9",
         "multer": "1.4.5-lts.1",
-        "ngx-infinite-scroll": "17.0.1",
-        "ngx-toastr": "18.0.0",
+        "ngx-toastr": "19.0.0",
         "node-fetch": "2.6.12",
         "node-forge": "1.3.1",
-        "nord": "0.2.1",
         "oidc-client-ts": "2.4.1",
         "open": "8.4.2",
-        "papaparse": "5.4.1",
+        "papaparse": "5.5.2",
         "patch-package": "8.0.0",
         "popper.js": "1.16.1",
         "proper-lockfile": "4.1.2",
@@ -68,37 +68,36 @@
         "qrious": "4.0.2",
         "rxjs": "7.8.1",
         "tabbable": "6.2.0",
-        "tldts": "6.1.64",
+        "tldts": "6.1.77",
         "utf-8-validate": "6.0.5",
         "zone.js": "0.14.10",
         "zxcvbn": "4.4.2"
*** 20244 LINES SKIPPED ***