Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Jan 2024 04:01:08 GMT
From:      Hiroki Tagato <tagattie@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 43b9a30a5c25 - main - security/bitwarden-cli: update to 2024.1.0
Message-ID:  <202401160401.40G4182b086246@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by tagattie:

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

commit 43b9a30a5c25ddef5490032bdd5bb35bf70c6dc2
Author:     Hiroki Tagato <tagattie@FreeBSD.org>
AuthorDate: 2024-01-16 03:58:24 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2024-01-16 04:00:58 +0000

    security/bitwarden-cli: update to 2024.1.0
    
    While here, modify and host FreeBSD node patch files so that they can
    be cleanly applied to node 18.15.0, which is needed by this port.
    
    Changelog: https://github.com/bitwarden/clients/releases/tag/cli-v2024.1.0
    
    Reported by:    GitHub (watch releases)
---
 security/bitwarden-cli/Makefile                    |    6 +-
 security/bitwarden-cli/distinfo                    |   10 +-
 .../bitwarden-cli/files/node/patch-common.gypi     |   11 +
 ...l_config_archs_linux-elf_no-asm_openssl-cl.gypi |   11 +
 ...nssl_config_archs_linux-elf_no-asm_openssl.gypi |   11 +
 .../patch-deps_openssl_openssl-cl__no__asm.gypi    |   17 +
 .../node/patch-deps_openssl_openssl__no__asm.gypi  |   11 +
 ...h-deps_v8_src_base_platform_platform-freebsd.cc |   13 +
 .../node/patch-deps_v8_src_codegen_arm_cpu-arm.cc  |   18 +
 .../patch-deps_v8_src_codegen_ppc_constants-ppc.h  |   20 +
 .../node/patch-deps_v8_src_libsampler_sampler.cc   |   13 +
 security/bitwarden-cli/files/node/patch-node.gypi  |   12 +
 .../files/node/patch-src_cares__wrap.h             |   11 +
 .../files/node/patch-src_crypto_crypto__util.cc    |   15 +
 .../files/node/patch-tools_v8__gypfiles_v8.gyp     |   11 +
 .../files/packagejsons/apps/browser/package.json   |    2 +-
 .../files/packagejsons/apps/cli/package.json       |    6 +-
 .../files/packagejsons/apps/desktop/package.json   |    2 +-
 .../files/packagejsons/apps/web/package.json       |    3 +-
 .../packagejsons/libs/admin-console/package.json   |   20 +
 .../files/packagejsons/libs/billing/package.json   |   20 +
 .../files/packagejsons/libs/platform/package.json  |   20 +
 .../files/packagejsons/package-lock.json           | 8524 +++++++++-----------
 .../bitwarden-cli/files/packagejsons/package.json  |  148 +-
 ...platform_services_cli-platform-utils.service.ts |   10 +-
 25 files changed, 4310 insertions(+), 4635 deletions(-)

diff --git a/security/bitwarden-cli/Makefile b/security/bitwarden-cli/Makefile
index 495078d023d4..6c8896bdf56a 100644
--- a/security/bitwarden-cli/Makefile
+++ b/security/bitwarden-cli/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	bitwarden-cli
 DISTVERSIONPREFIX=	cli-v
-DISTVERSION=	2023.12.1
+DISTVERSION=	2024.1.0
 CATEGORIES=	security
 MASTER_SITES=	https://nodejs.org/dist/v${PKG_NODE_VER}/:node
 DISTFILES=	node-v${PKG_NODE_VER}${EXTRACT_SUFX}:node \
@@ -49,7 +49,7 @@ PORTDOCS=	CONTRIBUTING.md README.md SECURITY.md
 OPTIONS_DEFINE=	DOCS
 
 PREFETCH_FILE=	${PORTNAME}-${DISTVERSION}-node-modules${EXTRACT_SUFX}
-PREFETCH_TIMESTAMP=	1703830974
+PREFETCH_TIMESTAMP=	61171200
 PKG_NODE_VER=	18.15.0
 PKG_FETCH_VER=	3.5
 PKG_NODE_CONFIGURE_ARGS=--openssl-use-def-ca-store \
@@ -89,7 +89,7 @@ post-extract:
 
 post-patch:
 	# apply FreeBSD patches for node
-	for p in ${.CURDIR:H:H}/www/node${NODEJS_VERSION}/files/patch-*; do \
+	for p in ${PATCHDIR}/node/patch-*;do \
 		${PATCH} -s -p0 -d ${WRKDIR}/node-v${PKG_NODE_VER} < $${p}; \
 	done
 	# apply node patch from pkg-fetch
diff --git a/security/bitwarden-cli/distinfo b/security/bitwarden-cli/distinfo
index 7b2fdfccf7b7..cbcd8bf5ff19 100644
--- a/security/bitwarden-cli/distinfo
+++ b/security/bitwarden-cli/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1703834785
+TIMESTAMP = 1705320120
 SHA256 (node-v18.15.0.tar.gz) = d65c4c3ef3c8815bccda9502081a29458c7c80797db0763f8752f270a824ac2b
 SIZE (node-v18.15.0.tar.gz) = 85359314
-SHA256 (bitwarden-cli-2023.12.1-node-modules.tar.gz) = 075b53dbfad3850e0871919067319165165fa4f85abed3f1394d445dc2de3f79
-SIZE (bitwarden-cli-2023.12.1-node-modules.tar.gz) = 240036250
-SHA256 (bitwarden-clients-cli-v2023.12.1_GH0.tar.gz) = 2490f1b3f9cfb856c73171bcdd2aceb19920a4c308525a7426510383af29791f
-SIZE (bitwarden-clients-cli-v2023.12.1_GH0.tar.gz) = 20068554
+SHA256 (bitwarden-cli-2024.1.0-node-modules.tar.gz) = 0310415b6b065ef00671a8962b3dfc0d00ea4606402193f61929a8ed961431fc
+SIZE (bitwarden-cli-2024.1.0-node-modules.tar.gz) = 253208708
+SHA256 (bitwarden-clients-cli-v2024.1.0_GH0.tar.gz) = 912422df41ac3e2d68a3709a844d4980afb0f209ef58fb0da6769ee852fc1ebb
+SIZE (bitwarden-clients-cli-v2024.1.0_GH0.tar.gz) = 20175952
diff --git a/security/bitwarden-cli/files/node/patch-common.gypi b/security/bitwarden-cli/files/node/patch-common.gypi
new file mode 100644
index 000000000000..8b2e183fe78a
--- /dev/null
+++ b/security/bitwarden-cli/files/node/patch-common.gypi
@@ -0,0 +1,11 @@
+--- common.gypi.orig	2023-03-05 06:42:51 UTC
++++ common.gypi
+@@ -426,7 +426,7 @@
+             'ldflags': [ '-m32' ],
+           }],
+           [ 'target_arch=="ppc64" and OS!="aix"', {
+-            'cflags': [ '-m64', '-mminimal-toc' ],
++            'cflags': [ '-m64' ],
+             'ldflags': [ '-m64' ],
+           }],
+           [ 'target_arch=="s390x" and OS=="linux"', {
diff --git a/security/bitwarden-cli/files/node/patch-deps_openssl_config_archs_linux-elf_no-asm_openssl-cl.gypi b/security/bitwarden-cli/files/node/patch-deps_openssl_config_archs_linux-elf_no-asm_openssl-cl.gypi
new file mode 100644
index 000000000000..00f9e88c1723
--- /dev/null
+++ b/security/bitwarden-cli/files/node/patch-deps_openssl_config_archs_linux-elf_no-asm_openssl-cl.gypi
@@ -0,0 +1,11 @@
+--- deps/openssl/config/archs/linux-elf/no-asm/openssl-cl.gypi.orig	2023-03-05 06:42:52 UTC
++++ deps/openssl/config/archs/linux-elf/no-asm/openssl-cl.gypi
+@@ -13,7 +13,7 @@
+       '-Wall -O3 -fomit-frame-pointer',
+     ],
+     'openssl_ex_libs_linux-elf': [
+-      '-ldl -pthread',
++      '-pthread',
+     ],
+     'openssl_cli_srcs_linux-elf': [
+       'openssl/apps/lib/cmp_mock_srv.c',
diff --git a/security/bitwarden-cli/files/node/patch-deps_openssl_config_archs_linux-elf_no-asm_openssl.gypi b/security/bitwarden-cli/files/node/patch-deps_openssl_config_archs_linux-elf_no-asm_openssl.gypi
new file mode 100644
index 000000000000..b1b6da616bda
--- /dev/null
+++ b/security/bitwarden-cli/files/node/patch-deps_openssl_config_archs_linux-elf_no-asm_openssl.gypi
@@ -0,0 +1,11 @@
+--- deps/openssl/config/archs/linux-elf/no-asm/openssl.gypi.orig	2023-03-05 06:42:52 UTC
++++ deps/openssl/config/archs/linux-elf/no-asm/openssl.gypi
+@@ -977,7 +977,7 @@
+       '-Wall -O3 -fomit-frame-pointer',
+     ],
+     'openssl_ex_libs_linux-elf': [
+-      '-ldl -pthread',
++      '-pthread',
+     ],
+   },
+   'include_dirs': [
diff --git a/security/bitwarden-cli/files/node/patch-deps_openssl_openssl-cl__no__asm.gypi b/security/bitwarden-cli/files/node/patch-deps_openssl_openssl-cl__no__asm.gypi
new file mode 100644
index 000000000000..332406f6182a
--- /dev/null
+++ b/security/bitwarden-cli/files/node/patch-deps_openssl_openssl-cl__no__asm.gypi
@@ -0,0 +1,17 @@
+--- deps/openssl/openssl-cl_no_asm.gypi.orig	2023-03-05 06:42:52 UTC
++++ deps/openssl/openssl-cl_no_asm.gypi
+@@ -1,4 +1,5 @@
+ {
++  'defines': ['OPENSSL_NO_ASM'],
+   'conditions': [
+     ['target_arch=="ppc64" and OS=="aix"', {
+       'includes': ['config/archs/aix64-gcc-as/no-asm/openssl-cl.gypi'],
+@@ -43,7 +44,7 @@
+       'includes': ['config/archs/linux64-riscv64/no-asm/openssl-cl.gypi'],
+     }, {
+       # Other architectures don't use assembly
+-      'includes': ['config/archs/linux-x86_64/no-asm/openssl-cl.gypi'],
++      'includes': ['config/archs/linux-elf/no-asm/openssl-cl.gypi'],
+     }],
+   ],
+ }
diff --git a/security/bitwarden-cli/files/node/patch-deps_openssl_openssl__no__asm.gypi b/security/bitwarden-cli/files/node/patch-deps_openssl_openssl__no__asm.gypi
new file mode 100644
index 000000000000..0ddf35d5dd37
--- /dev/null
+++ b/security/bitwarden-cli/files/node/patch-deps_openssl_openssl__no__asm.gypi
@@ -0,0 +1,11 @@
+--- deps/openssl/openssl_no_asm.gypi.orig	2023-03-05 06:42:52 UTC
++++ deps/openssl/openssl_no_asm.gypi
+@@ -44,7 +44,7 @@
+       'includes': ['config/archs/linux64-riscv64/no-asm/openssl.gypi'],
+     }, {
+       # Other architectures don't use assembly
+-      'includes': ['config/archs/linux-x86_64/no-asm/openssl.gypi'],
++      'includes': ['config/archs/linux-elf/no-asm/openssl.gypi'],
+     }],
+   ],
+ }
diff --git a/security/bitwarden-cli/files/node/patch-deps_v8_src_base_platform_platform-freebsd.cc b/security/bitwarden-cli/files/node/patch-deps_v8_src_base_platform_platform-freebsd.cc
new file mode 100644
index 000000000000..ab72bf609259
--- /dev/null
+++ b/security/bitwarden-cli/files/node/patch-deps_v8_src_base_platform_platform-freebsd.cc
@@ -0,0 +1,13 @@
+--- deps/v8/src/base/platform/platform-freebsd.cc.orig	2023-03-05 06:42:53 UTC
++++ deps/v8/src/base/platform/platform-freebsd.cc
+@@ -82,8 +82,8 @@ std::vector<OS::SharedLibraryAddress> OS::GetSharedLib
+             lib_name = std::string(path);
+           }
+           result.push_back(SharedLibraryAddress(
+-              lib_name, reinterpret_cast<uintptr_t>(map->kve_start),
+-              reinterpret_cast<uintptr_t>(map->kve_end)));
++              lib_name, static_cast<uintptr_t>(map->kve_start),
++              static_cast<uintptr_t>(map->kve_end)));
+         }
+ 
+         start += ssize;
diff --git a/security/bitwarden-cli/files/node/patch-deps_v8_src_codegen_arm_cpu-arm.cc b/security/bitwarden-cli/files/node/patch-deps_v8_src_codegen_arm_cpu-arm.cc
new file mode 100644
index 000000000000..0984a1727804
--- /dev/null
+++ b/security/bitwarden-cli/files/node/patch-deps_v8_src_codegen_arm_cpu-arm.cc
@@ -0,0 +1,18 @@
+--- deps/v8/src/codegen/arm/cpu-arm.cc.orig	2023-03-05 06:42:53 UTC
++++ deps/v8/src/codegen/arm/cpu-arm.cc
+@@ -2,12 +2,15 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
++#include "include/v8config.h"
++
+ // CPU specific code for arm independent of OS goes here.
+ #ifdef __arm__
+ #ifdef __QNXNTO__
+ #include <sys/mman.h>  // for cache flushing.
+ #undef MAP_TYPE
+ #elif V8_OS_FREEBSD
++#include <sys/cdefs.h>
+ #include <machine/sysarch.h>  // for cache flushing
+ #include <sys/types.h>
+ #elif V8_OS_STARBOARD
diff --git a/security/bitwarden-cli/files/node/patch-deps_v8_src_codegen_ppc_constants-ppc.h b/security/bitwarden-cli/files/node/patch-deps_v8_src_codegen_ppc_constants-ppc.h
new file mode 100644
index 000000000000..8837fc763a60
--- /dev/null
+++ b/security/bitwarden-cli/files/node/patch-deps_v8_src_codegen_ppc_constants-ppc.h
@@ -0,0 +1,20 @@
+--- deps/v8/src/codegen/ppc/constants-ppc.h.orig	2023-03-05 06:42:53 UTC
++++ deps/v8/src/codegen/ppc/constants-ppc.h
+@@ -36,7 +36,7 @@
+ #endif
+ 
+ #if !(V8_HOST_ARCH_PPC || V8_HOST_ARCH_PPC64) || !V8_TARGET_ARCH_PPC64 || \
+-    V8_TARGET_LITTLE_ENDIAN || (defined(_CALL_ELF) && _CALL_ELF == 2)
++    (defined(_CALL_ELF) && _CALL_ELF == 2)
+ #define ABI_RETURNS_OBJECT_PAIRS_IN_REGS 1
+ #else
+ #define ABI_RETURNS_OBJECT_PAIRS_IN_REGS 0
+@@ -44,7 +44,7 @@
+ 
+ #if !(V8_HOST_ARCH_PPC || V8_HOST_ARCH_PPC64) || \
+     (V8_TARGET_ARCH_PPC64 &&                     \
+-     (V8_TARGET_LITTLE_ENDIAN || (defined(_CALL_ELF) && _CALL_ELF == 2)))
++     (defined(_CALL_ELF) && _CALL_ELF == 2))
+ #define ABI_CALL_VIA_IP 1
+ #else
+ #define ABI_CALL_VIA_IP 0
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
new file mode 100644
index 000000000000..5868ddd10288
--- /dev/null
+++ b/security/bitwarden-cli/files/node/patch-deps_v8_src_libsampler_sampler.cc
@@ -0,0 +1,13 @@
+--- deps/v8/src/libsampler/sampler.cc.orig	2023-03-05 06:42:53 UTC
++++ deps/v8/src/libsampler/sampler.cc
+@@ -497,6 +497,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]);
++#elif V8_TARGET_ARCH_PPC64
++  state->pc = reinterpret_cast<void*>(mcontext.mc_srr0);
++  state->sp = reinterpret_cast<void*>(mcontext.mc_frame[1]);
++  state->fp = reinterpret_cast<void*>(mcontext.mc_frame[31]);
+ #endif  // V8_HOST_ARCH_*
+ #elif V8_OS_NETBSD
+ #if V8_HOST_ARCH_IA32
diff --git a/security/bitwarden-cli/files/node/patch-node.gypi b/security/bitwarden-cli/files/node/patch-node.gypi
new file mode 100644
index 000000000000..e0656b099ab8
--- /dev/null
+++ b/security/bitwarden-cli/files/node/patch-node.gypi
@@ -0,0 +1,12 @@
+--- node.gypi.orig	2023-03-05 06:42:54 UTC
++++ node.gypi
+@@ -349,6 +349,9 @@
+     [ 'node_use_openssl=="true"', {
+       'defines': [ 'HAVE_OPENSSL=1' ],
+       'conditions': [
++        ['openssl_no_asm==1', {
++          'defines': [ 'OPENSSL_NO_ASM' ],
++        }],
+         [ 'node_shared_openssl=="false"', {
+           'defines': [ 'OPENSSL_API_COMPAT=0x10100000L', ],
+           'dependencies': [
diff --git a/security/bitwarden-cli/files/node/patch-src_cares__wrap.h b/security/bitwarden-cli/files/node/patch-src_cares__wrap.h
new file mode 100644
index 000000000000..bd57f265e511
--- /dev/null
+++ b/security/bitwarden-cli/files/node/patch-src_cares__wrap.h
@@ -0,0 +1,11 @@
+--- src/cares_wrap.h.orig	2023-03-05 06:42:54 UTC
++++ src/cares_wrap.h
+@@ -23,7 +23,7 @@
+ # include <netdb.h>
+ #endif  // __POSIX__
+ 
+-# include <ares_nameser.h>
++# include <arpa/nameser.h>
+ 
+ namespace node {
+ namespace cares_wrap {
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
new file mode 100644
index 000000000000..7fba74345cd6
--- /dev/null
+++ b/security/bitwarden-cli/files/node/patch-src_crypto_crypto__util.cc
@@ -0,0 +1,15 @@
+--- src/crypto/crypto_util.cc.orig	2023-03-05 06:42:54 UTC
++++ src/crypto/crypto_util.cc
+@@ -194,10 +194,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
new file mode 100644
index 000000000000..7e3a0f6a0460
--- /dev/null
+++ b/security/bitwarden-cli/files/node/patch-tools_v8__gypfiles_v8.gyp
@@ -0,0 +1,11 @@
+--- tools/v8_gypfiles/v8.gyp.orig	2023-03-05 06:42:55 UTC
++++ tools/v8_gypfiles/v8.gyp
+@@ -977,7 +977,7 @@
+         }],
+         # Platforms that don't have Compare-And-Swap (CAS) support need to link atomic library
+         # to implement atomic memory access
+-        ['v8_current_cpu in ["mips", "mipsel", "mips64", "mips64el", "ppc", "arm", "riscv64", "loong64"]', {
++        ['v8_current_cpu in ["mips", "mipsel", "mips64", "mips64el", "ppc", "riscv64", "loong64"]', {
+           'link_settings': {
+             'libraries': ['-latomic', ],
+           },
diff --git a/security/bitwarden-cli/files/packagejsons/apps/browser/package.json b/security/bitwarden-cli/files/packagejsons/apps/browser/package.json
index dbb2aec9bf9e..df69eb9af789 100644
--- a/security/bitwarden-cli/files/packagejsons/apps/browser/package.json
+++ b/security/bitwarden-cli/files/packagejsons/apps/browser/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@bitwarden/browser",
-  "version": "2023.12.0",
+  "version": "2024.1.0",
   "scripts": {
     "build": "webpack",
     "build:mv3": "cross-env MANIFEST_VERSION=3 webpack",
diff --git a/security/bitwarden-cli/files/packagejsons/apps/cli/package.json b/security/bitwarden-cli/files/packagejsons/apps/cli/package.json
index 5abc1f427970..fdad4ba991db 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": "2023.12.1",
+  "version": "2024.1.0",
   "keywords": [
     "bitwarden",
     "password",
@@ -57,7 +57,7 @@
     "form-data": "4.0.0",
     "https-proxy-agent": "5.0.1",
     "inquirer": "8.2.6",
-    "jsdom": "22.1.0",
+    "jsdom": "23.0.1",
     "jszip": "3.10.1",
     "koa": "2.14.2",
     "koa-bodyparser": "4.4.1",
@@ -71,7 +71,7 @@
     "papaparse": "5.4.1",
     "proper-lockfile": "4.1.2",
     "rxjs": "7.8.1",
-    "tldts": "6.0.14",
+    "tldts": "6.1.1",
     "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 7c56b6139bf2..8713590629e2 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": "2023.12.0",
+  "version": "2024.1.0",
   "keywords": [
     "bitwarden",
     "password",
diff --git a/security/bitwarden-cli/files/packagejsons/apps/web/package.json b/security/bitwarden-cli/files/packagejsons/apps/web/package.json
index f0d271c291c6..a49a551c3662 100644
--- a/security/bitwarden-cli/files/packagejsons/apps/web/package.json
+++ b/security/bitwarden-cli/files/packagejsons/apps/web/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@bitwarden/web-vault",
-  "version": "2023.12.0",
+  "version": "2024.1.0",
   "scripts": {
     "build:oss": "webpack",
     "build:bit": "webpack -c ../../bitwarden_license/bit-web/webpack.config.js",
@@ -12,6 +12,7 @@
     "build:bit:qa": "cross-env NODE_ENV=production ENV=qa npm run build:bit",
     "build:bit:euprd": "cross-env NODE_ENV=production ENV=euprd npm run build:bit",
     "build:bit:euqa": "cross-env NODE_ENV=production ENV=euqa npm run build:bit",
+    "build:bit:usdev": "cross-env NODE_ENV=production ENV=usdev npm run build:bit",
     "build:bit:cloud": "cross-env NODE_ENV=production ENV=cloud npm run build:bit",
     "build:oss:selfhost:watch": "cross-env ENV=selfhosted npm run build:oss:watch",
     "build:bit:selfhost:watch": "cross-env ENV=selfhosted npm run build:bit:watch",
diff --git a/security/bitwarden-cli/files/packagejsons/libs/admin-console/package.json b/security/bitwarden-cli/files/packagejsons/libs/admin-console/package.json
new file mode 100644
index 000000000000..c319beb8f4cc
--- /dev/null
+++ b/security/bitwarden-cli/files/packagejsons/libs/admin-console/package.json
@@ -0,0 +1,20 @@
+{
+  "name": "@bitwarden/admin-console",
+  "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"
+  }
+}
diff --git a/security/bitwarden-cli/files/packagejsons/libs/billing/package.json b/security/bitwarden-cli/files/packagejsons/libs/billing/package.json
new file mode 100644
index 000000000000..8858cfaa2669
--- /dev/null
+++ b/security/bitwarden-cli/files/packagejsons/libs/billing/package.json
@@ -0,0 +1,20 @@
+{
+  "name": "@bitwarden/billing",
+  "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"
+  }
+}
diff --git a/security/bitwarden-cli/files/packagejsons/libs/platform/package.json b/security/bitwarden-cli/files/packagejsons/libs/platform/package.json
new file mode 100644
index 000000000000..093019b446d9
--- /dev/null
+++ b/security/bitwarden-cli/files/packagejsons/libs/platform/package.json
@@ -0,0 +1,20 @@
+{
+  "name": "@bitwarden/platform",
+  "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"
+  }
+}
diff --git a/security/bitwarden-cli/files/packagejsons/package-lock.json b/security/bitwarden-cli/files/packagejsons/package-lock.json
index ba8701a41052..ddf70a298c5d 100644
--- a/security/bitwarden-cli/files/packagejsons/package-lock.json
+++ b/security/bitwarden-cli/files/packagejsons/package-lock.json
@@ -15,35 +15,35 @@
         "libs/*"
       ],
       "dependencies": {
-        "@angular/animations": "15.2.9",
+        "@angular/animations": "15.2.10",
         "@angular/cdk": "15.2.9",
-        "@angular/common": "15.2.9",
-        "@angular/compiler": "15.2.9",
-        "@angular/core": "15.2.9",
-        "@angular/forms": "15.2.9",
-        "@angular/platform-browser": "15.2.9",
-        "@angular/platform-browser-dynamic": "15.2.9",
-        "@angular/router": "15.2.9",
+        "@angular/common": "15.2.10",
+        "@angular/compiler": "15.2.10",
+        "@angular/core": "15.2.10",
+        "@angular/forms": "15.2.10",
+        "@angular/platform-browser": "15.2.10",
+        "@angular/platform-browser-dynamic": "15.2.10",
+        "@angular/router": "15.2.10",
         "@koa/multer": "3.0.2",
         "@koa/router": "12.0.0",
-        "@microsoft/signalr": "6.0.21",
-        "@microsoft/signalr-protocol-msgpack": "6.0.21",
+        "@microsoft/signalr": "6.0.25",
+        "@microsoft/signalr-protocol-msgpack": "6.0.25",
         "@ng-select/ng-select": "10.0.4",
         "argon2": "0.31.0",
         "argon2-browser": "1.18.0",
         "big-integer": "1.6.51",
         "bootstrap": "4.6.0",
-        "braintree-web-drop-in": "1.40.0",
-        "bufferutil": "4.0.7",
+        "braintree-web-drop-in": "1.41.0",
+        "bufferutil": "4.0.8",
         "chalk": "4.1.2",
         "commander": "7.2.0",
-        "core-js": "3.32.0",
+        "core-js": "3.34.0",
         "duo_web_sdk": "github:duosecurity/duo_web_sdk",
         "form-data": "4.0.0",
         "https-proxy-agent": "5.0.1",
         "inquirer": "8.2.6",
-        "jquery": "3.7.0",
-        "jsdom": "22.1.0",
+        "jquery": "3.7.1",
+        "jsdom": "23.0.1",
         "jszip": "3.10.1",
         "koa": "2.14.2",
         "koa-bodyparser": "4.4.1",
@@ -56,46 +56,49 @@
         "node-fetch": "2.6.12",
         "node-forge": "1.3.1",
         "nord": "0.2.1",
-        "oidc-client-ts": "2.3.0",
+        "oidc-client-ts": "2.4.0",
         "open": "8.4.2",
         "papaparse": "5.4.1",
-        "patch-package": "6.5.1",
+        "patch-package": "8.0.0",
         "popper.js": "1.16.1",
         "proper-lockfile": "4.1.2",
         "qrious": "4.0.2",
         "rxjs": "7.8.1",
         "tabbable": "6.2.0",
-        "tldts": "6.0.14",
-        "utf-8-validate": "5.0.10",
+        "tldts": "6.1.1",
+        "utf-8-validate": "6.0.3",
         "zone.js": "0.12.0",
         "zxcvbn": "4.4.2"
       },
       "devDependencies": {
-        "@angular-devkit/build-angular": "15.2.9",
+        "@angular-devkit/build-angular": "15.2.10",
         "@angular-eslint/eslint-plugin": "15.2.1",
         "@angular-eslint/eslint-plugin-template": "15.2.1",
         "@angular-eslint/template-parser": "15.2.1",
-        "@angular/cli": "15.2.9",
-        "@angular/compiler-cli": "15.2.9",
-        "@angular/elements": "15.2.9",
-        "@compodoc/compodoc": "1.1.21",
-        "@electron/notarize": "1.2.4",
-        "@electron/rebuild": "3.2.13",
-        "@ngtools/webpack": "15.2.9",
-        "@storybook/addon-a11y": "7.3.0",
-        "@storybook/addon-actions": "7.3.0",
-        "@storybook/addon-designs": "7.0.4",
-        "@storybook/addon-essentials": "7.3.0",
-        "@storybook/addon-links": "7.3.0",
-        "@storybook/angular": "7.3.0",
+        "@angular/cli": "15.2.10",
+        "@angular/compiler-cli": "15.2.10",
+        "@angular/elements": "15.2.10",
+        "@compodoc/compodoc": "1.1.23",
+        "@electron/notarize": "2.2.0",
+        "@electron/rebuild": "3.4.1",
+        "@ngtools/webpack": "15.2.10",
+        "@storybook/addon-a11y": "7.6.4",
+        "@storybook/addon-actions": "7.6.4",
+        "@storybook/addon-designs": "7.0.7",
+        "@storybook/addon-essentials": "7.6.4",
+        "@storybook/addon-interactions": "7.6.4",
+        "@storybook/addon-links": "7.6.4",
+        "@storybook/angular": "7.6.4",
+        "@storybook/jest": "0.2.3",
+        "@storybook/testing-library": "0.2.2",
         "@types/argon2-browser": "1.18.1",
         "@types/chrome": "0.0.243",
         "@types/duo_web_sdk": "2.7.1",
         "@types/firefox-webext-browser": "111.0.1",
         "@types/inquirer": "8.2.6",
-        "@types/jest": "29.5.3",
-        "@types/jquery": "3.5.16",
-        "@types/jsdom": "21.1.1",
+        "@types/jest": "29.5.11",
+        "@types/jquery": "3.5.29",
+        "@types/jsdom": "21.1.6",
         "@types/koa": "2.13.8",
         "@types/koa__multer": "2.0.4",
         "@types/koa__router": "12.0.0",
@@ -103,83 +106,82 @@
         "@types/koa-json": "2.0.20",
         "@types/lowdb": "1.0.11",
         "@types/lunr": "2.3.4",
-        "@types/node": "18.17.5",
+        "@types/node": "18.19.2",
         "@types/node-fetch": "2.6.4",
-        "@types/node-forge": "1.3.4",
+        "@types/node-forge": "1.3.10",
         "@types/node-ipc": "9.2.0",
-        "@types/papaparse": "5.3.13",
+        "@types/papaparse": "5.3.14",
         "@types/proper-lockfile": "4.1.2",
-        "@types/react": "16.14.45",
+        "@types/react": "16.14.54",
         "@types/retry": "0.12.2",
-        "@types/zxcvbn": "4.4.1",
-        "@typescript-eslint/eslint-plugin": "5.62.0",
-        "@typescript-eslint/parser": "5.62.0",
+        "@types/zxcvbn": "4.4.4",
+        "@typescript-eslint/eslint-plugin": "6.16.0",
+        "@typescript-eslint/parser": "6.16.0",
         "@webcomponents/custom-elements": "1.6.0",
-        "autoprefixer": "10.4.15",
+        "autoprefixer": "10.4.16",
         "base64-loader": "1.0.0",
         "buffer": "6.0.3",
-        "chromatic": "6.22.0",
+        "chromatic": "10.0.0",
         "clean-webpack-plugin": "4.0.0",
-        "concurrently": "8.2.0",
+        "concurrently": "8.2.2",
         "copy-webpack-plugin": "11.0.0",
         "cross-env": "7.0.3",
         "css-loader": "6.8.1",
-        "del": "6.1.1",
-        "electron": "25.9.1",
+        "electron": "27.2.0",
         "electron-builder": "23.6.0",
-        "electron-log": "5.0.0",
+        "electron-log": "5.0.1",
         "electron-reload": "2.0.0-alpha.1",
         "electron-store": "8.1.0",
-        "electron-updater": "5.3.0",
-        "eslint": "8.47.0",
-        "eslint-config-prettier": "8.10.0",
-        "eslint-import-resolver-typescript": "3.6.0",
-        "eslint-plugin-import": "2.28.0",
+        "electron-updater": "6.1.7",
+        "eslint": "8.56.0",
+        "eslint-config-prettier": "9.1.0",
+        "eslint-import-resolver-typescript": "3.6.1",
+        "eslint-plugin-import": "2.29.1",
         "eslint-plugin-rxjs": "5.0.3",
         "eslint-plugin-rxjs-angular": "2.0.1",
-        "eslint-plugin-storybook": "0.6.13",
+        "eslint-plugin-storybook": "0.6.15",
         "eslint-plugin-tailwindcss": "3.13.0",
         "gulp": "4.0.2",
-        "gulp-filter": "7.0.0",
+        "gulp-filter": "9.0.1",
         "gulp-if": "3.0.0",
-        "gulp-json-editor": "2.5.7",
+        "gulp-json-editor": "2.6.0",
         "gulp-replace": "1.1.4",
-        "gulp-zip": "5.1.0",
+        "gulp-zip": "6.0.0",
         "html-loader": "4.2.0",
         "html-webpack-injector": "1.1.4",
-        "html-webpack-plugin": "5.5.3",
+        "html-webpack-plugin": "5.5.4",
         "husky": "8.0.3",
         "jest-junit": "16.0.0",
         "jest-mock-extended": "3.0.5",
-        "jest-preset-angular": "13.1.1",
-        "lint-staged": "13.3.0",
+        "jest-preset-angular": "13.1.4",
+        "lint-staged": "15.2.0",
         "mini-css-extract-plugin": "2.7.6",
         "node-ipc": "9.2.1",
         "pkg": "vercel/pkg",
-        "postcss": "8.4.31",
+        "postcss": "8.4.32",
         "postcss-loader": "7.3.3",
-        "prettier": "2.8.8",
-        "prettier-plugin-tailwindcss": "0.3.0",
+        "prettier": "3.1.1",
+        "prettier-plugin-tailwindcss": "0.5.10",
         "process": "0.11.10",
         "react": "18.2.0",
         "react-dom": "18.2.0",
         "regedit": "^3.0.3",
         "remark-gfm": "3.0.1",
-        "rimraf": "5.0.1",
-        "sass": "1.65.1",
+        "rimraf": "5.0.5",
+        "sass": "1.69.5",
         "sass-loader": "13.3.2",
-        "storybook": "7.3.0",
+        "storybook": "7.6.4",
         "style-loader": "3.3.3",
-        "tailwindcss": "3.3.3",
+        "tailwindcss": "3.3.5",
         "ts-jest": "29.1.1",
-        "ts-loader": "9.4.4",
+        "ts-loader": "9.5.1",
         "tsconfig-paths-webpack-plugin": "4.1.0",
         "type-fest": "2.19.0",
         "typescript": "4.9.5",
-        "url": "0.11.1",
+        "url": "0.11.3",
         "util": "0.12.5",
-        "wait-on": "7.0.1",
-        "webpack": "5.88.2",
+        "wait-on": "7.2.0",
+        "webpack": "5.89.0",
         "webpack-cli": "5.1.4",
         "webpack-dev-server": "4.15.1",
         "webpack-node-externals": "3.0.0"
@@ -191,11 +193,11 @@
     },
     "apps/browser": {
       "name": "@bitwarden/browser",
-      "version": "2023.12.0"
+      "version": "2024.1.0"
     },
     "apps/cli": {
       "name": "@bitwarden/cli",
-      "version": "2023.12.1",
+      "version": "2024.1.0",
       "license": "GPL-3.0-only",
       "dependencies": {
         "@koa/multer": "3.0.2",
@@ -208,7 +210,7 @@
         "form-data": "4.0.0",
         "https-proxy-agent": "5.0.1",
         "inquirer": "8.2.6",
-        "jsdom": "22.1.0",
+        "jsdom": "23.0.1",
         "jszip": "3.10.1",
         "koa": "2.14.2",
         "koa-bodyparser": "4.4.1",
@@ -222,7 +224,7 @@
         "papaparse": "5.4.1",
         "proper-lockfile": "4.1.2",
         "rxjs": "7.8.1",
-        "tldts": "6.0.14",
+        "tldts": "6.1.1",
         "zxcvbn": "4.4.2"
       },
       "bin": {
@@ -231,7 +233,7 @@
     },
     "apps/desktop": {
       "name": "@bitwarden/desktop",
-      "version": "2023.12.0",
+      "version": "2024.1.0",
       "hasInstallScript": true,
       "license": "GPL-3.0"
     },
@@ -261,7 +263,12 @@
     },
     "apps/web": {
       "name": "@bitwarden/web-vault",
-      "version": "2023.12.0"
+      "version": "2024.1.0"
+    },
+    "libs/admin-console": {
+      "name": "@bitwarden/admin-console",
+      "version": "0.0.0",
+      "license": "GPL-3.0"
     },
     "libs/angular": {
       "name": "@bitwarden/angular",
@@ -273,6 +280,11 @@
       "version": "0.0.0",
       "license": "GPL-3.0"
     },
+    "libs/billing": {
+      "name": "@bitwarden/billing",
+      "version": "0.0.0",
+      "license": "GPL-3.0"
+    },
     "libs/common": {
       "name": "@bitwarden/common",
       "version": "0.0.0",
@@ -307,6 +319,11 @@
         "@bitwarden/common": "file:../common"
       }
     },
+    "libs/platform": {
+      "name": "@bitwarden/platform",
+      "version": "0.0.0",
+      "license": "GPL-3.0"
+    },
     "libs/vault": {
       "name": "@bitwarden/vault",
       "version": "0.0.0",
@@ -321,6 +338,12 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/@adobe/css-tools": {
+      "version": "4.3.2",
+      "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.2.tgz",
+      "integrity": "sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==",
+      "dev": true
+    },
     "node_modules/@aduh95/viz.js": {
       "version": "3.4.0",
       "resolved": "https://registry.npmjs.org/@aduh95/viz.js/-/viz.js-3.4.0.tgz",
@@ -368,15 +391,15 @@
       }
     },
     "node_modules/@angular-devkit/build-angular": {
-      "version": "15.2.9",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-15.2.9.tgz",
-      "integrity": "sha512-djOo2Q22zLrxPccSbINz93hD+pES/nNPoze4Ys/0IdtMlLmxO/YGsA+FG5eNeNAf2jK/JRoNydaYOh7XpGoCzA==",
+      "version": "15.2.10",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-15.2.10.tgz",
+      "integrity": "sha512-3pCPVEJilVwHIJC6Su1/PIEqvFfU1Lxew9yItxX4s6dud8HY+fuKrsDnao4NNMFNqCLqL4el5QbSBKnnpWH1sg==",
       "dev": true,
       "dependencies": {
         "@ampproject/remapping": "2.2.0",
-        "@angular-devkit/architect": "0.1502.9",
-        "@angular-devkit/build-webpack": "0.1502.9",
-        "@angular-devkit/core": "15.2.9",
+        "@angular-devkit/architect": "0.1502.10",
+        "@angular-devkit/build-webpack": "0.1502.10",
+        "@angular-devkit/core": "15.2.10",
         "@babel/core": "7.20.12",
         "@babel/generator": "7.20.14",
         "@babel/helper-annotate-as-pure": "7.18.6",
@@ -388,7 +411,7 @@
         "@babel/runtime": "7.20.13",
         "@babel/template": "7.20.7",
         "@discoveryjs/json-ext": "0.5.7",
-        "@ngtools/webpack": "15.2.9",
+        "@ngtools/webpack": "15.2.10",
         "ansi-colors": "4.1.3",
         "autoprefixer": "10.4.13",
         "babel-loader": "9.1.2",
@@ -415,7 +438,7 @@
         "ora": "5.4.1",
         "parse5-html-rewriting-stream": "7.0.0",
         "piscina": "3.2.0",
-        "postcss": "8.4.21",
+        "postcss": "8.4.31",
         "postcss-loader": "7.0.2",
         "resolve-url-loader": "5.0.0",
         "rxjs": "6.6.7",
@@ -478,12 +501,12 @@
       }
     },
     "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": {
-      "version": "0.1502.9",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1502.9.tgz",
-      "integrity": "sha512-CFn+LbtYeLG7WqO+BBSjogl764StHpwgfJnNAXQ/3UouUktZ92z4lxhUm0PwIPb5k0lILsf81ubcS1vzwoXEEg==",
+      "version": "0.1502.10",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1502.10.tgz",
+      "integrity": "sha512-S8lN73WYCfpEpw1Q41ZcUinw7JfDeSM8LyGs797OVshnW75QcOkOecWj/3CKR23G44IgFrHN6sqtzWxKmMxLig==",
       "dev": true,
       "dependencies": {
-        "@angular-devkit/core": "15.2.9",
+        "@angular-devkit/core": "15.2.10",
         "rxjs": "6.6.7"
       },
       "engines": {
@@ -493,9 +516,9 @@
       }
     },
     "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": {
-      "version": "15.2.9",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.9.tgz",
-      "integrity": "sha512-6u44YJ9tEG2hiWITL1rwA9yP6ot4a3cyN/UOMRkYSa/XO2Gz5/dM3U74E2kwg+P1NcxLXffBWl0rz8/Y/lSZyQ==",
+      "version": "15.2.10",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.10.tgz",
+      "integrity": "sha512-bFPm7wjvfBds9km2rCJxUhzkqe4h3h/199yJtzC1bNvwRr2LMHvtyoQAzftda+gs7Ulqac5wzUEZX/cVV3WrsA==",
       "dev": true,
       "dependencies": {
         "ajv": "8.12.0",
@@ -549,9 +572,9 @@
       }
     },
     "node_modules/@angular-devkit/build-angular/node_modules/@babel/core/node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "dev": true,
       "bin": {
         "semver": "bin/semver.js"
@@ -832,9 +855,9 @@
       }
     },
     "node_modules/@angular-devkit/build-angular/node_modules/ipaddr.js": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
-      "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==",
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz",
+      "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==",
       "dev": true,
       "engines": {
         "node": ">= 10"
@@ -895,9 +918,9 @@
       }
     },
     "node_modules/@angular-devkit/build-angular/node_modules/postcss": {
-      "version": "8.4.21",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
-      "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
+      "version": "8.4.31",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+      "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
       "dev": true,
       "funding": [
         {
@@ -907,10 +930,14 @@
         {
           "type": "tidelift",
           "url": "https://tidelift.com/funding/github/npm/postcss"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
         }
       ],
       "dependencies": {
-        "nanoid": "^3.3.4",
+        "nanoid": "^3.3.6",
         "picocolors": "^1.0.0",
         "source-map-js": "^1.0.2"
       },
@@ -1214,9 +1241,9 @@
       }
     },
     "node_modules/@angular-devkit/build-angular/node_modules/webpack/node_modules/schema-utils": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz",
-      "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==",
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+      "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
       "dev": true,
       "dependencies": {
         "@types/json-schema": "^7.0.8",
@@ -1232,9 +1259,9 @@
       }
     },
     "node_modules/@angular-devkit/build-angular/node_modules/ws": {
-      "version": "8.13.0",
-      "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
-      "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
+      "version": "8.14.2",
+      "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz",
+      "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==",
       "dev": true,
       "engines": {
*** 13425 LINES SKIPPED ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202401160401.40G4182b086246>