From a844b62b64b1bc3db9a47a9b672119d6c37a013f Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Thu, 11 Jul 2024 16:09:35 +0200 Subject: [PATCH 01/31] rpmbuild support for base & user. --- tools/buildutils/build_packages.sh | 32 ++++++++++---- tools/rpmbuild/SPECS/cuttlefish_base.spec | 49 +++++++++++++++++++++ tools/rpmbuild/SPECS/cuttlefish_user.spec | 53 +++++++++++++++++++++++ 3 files changed, 126 insertions(+), 8 deletions(-) create mode 100644 tools/rpmbuild/SPECS/cuttlefish_base.spec create mode 100644 tools/rpmbuild/SPECS/cuttlefish_user.spec diff --git a/tools/buildutils/build_packages.sh b/tools/buildutils/build_packages.sh index 676204a60e..42de276a37 100755 --- a/tools/buildutils/build_packages.sh +++ b/tools/buildutils/build_packages.sh @@ -1,6 +1,7 @@ #!/bin/bash - -set -e -x +REPO_DIR="$(realpath "$(dirname "$0")/../..")" +APT_CMD=$(which apt 2>/dev/null) +DNF_CMD=$(which dnf 2>/dev/null) function install_debuild_dependencies() { echo "Installing debuild dependencies" @@ -22,11 +23,26 @@ function build_package() { popd } -REPO_DIR="$(realpath "$(dirname "$0")/../..")" -INSTALL_BAZEL="$(dirname $0)/installbazel.sh" +function build_spec() { + local specfile="$1" + echo "Installing package dependencies" + sudo dnf builddep --skip-unavailable ${REPO_DIR}/tools/rpmbuild/SPECS/$specfile + echo "Building packages" + rpmbuild \ + --define "_topdir `pwd`/tools/rpmbuild" \ + -v -ba ${REPO_DIR}/tools/rpmbuild/SPECS/$specfile +} -sudo "${INSTALL_BAZEL}" -install_debuild_dependencies +if [[ ! -z ${APT_CMD} ]]; then + INSTALL_BAZEL="$(dirname $0)/installbazel.sh" + sudo "${INSTALL_BAZEL}" + install_debuild_dependencies + build_package "${REPO_DIR}/base" + build_package "${REPO_DIR}/frontend" +elif [[ ! -z ${DNF_CMD} ]]; then + build_spec cuttlefish_base.spec + build_spec cuttlefish_user.spec +else + exit 1; +fi -build_package "${REPO_DIR}/base" -build_package "${REPO_DIR}/frontend" diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec new file mode 100644 index 0000000000..0445f73648 --- /dev/null +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -0,0 +1,49 @@ +Name: cuttlefish_base +Version: 0.9.29 +Release: 1%{?dist} +Summary: Virtual Device for Android host-side utilities + +License: Apache License 2.0 +URL: https://github.com/google/android-cuttlefish +#Source0: cuttlefish_base.tar.gz + +BuildArch: noarch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +BuildRequires: systemd-rpm-macros +#Requires: + +%description + + +%prep +#%%autosetup -v + + +%build + +%install +%define srcpath ../../../base/host/packages/cuttlefish-base + +rm -rf $RPM_BUILD_ROOT +mkdir -p %{buildroot}/etc/NetworkManager/conf.d +mkdir -p %{buildroot}/etc/modules-load.d +mkdir -p %{buildroot}/etc/security/limits.d + +install -m 655 %{srcpath}/etc/NetworkManager/conf.d/99-cuttlefish.conf %{buildroot}/etc/NetworkManager/conf.d/99-cuttlefish.conf +install -m 655 %{srcpath}/etc/modules-load.d/cuttlefish-common.conf %{buildroot}/etc/modules-load.d/cuttlefish-common.conf +install -m 655 %{srcpath}/etc/security/limits.d/1_cuttlefish.conf %{buildroot}/etc/security/limits.d/1_cuttlefish.conf + +%files +/etc/NetworkManager/conf.d/99-cuttlefish.conf +/etc/modules-load.d/cuttlefish-common.conf +/etc/security/limits.d/1_cuttlefish.conf + +#%%license add-license-file-here +#%%doc add-docs-here + + +%changelog +* Thu Jul 11 2024 Martin Zeitler +- Initial version. + diff --git a/tools/rpmbuild/SPECS/cuttlefish_user.spec b/tools/rpmbuild/SPECS/cuttlefish_user.spec new file mode 100644 index 0000000000..76ac490a19 --- /dev/null +++ b/tools/rpmbuild/SPECS/cuttlefish_user.spec @@ -0,0 +1,53 @@ +Name: cuttlefish_user +Version: 0.9.29 +Release: 1%{?dist} +Summary: Virtual Device for Android host-side utilities + +License: Apache License 2.0 +URL: https://github.com/google/android-cuttlefish +#Source0: cuttlefish_frontend.tar.gz + +BuildArch: noarch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +BuildRequires: systemd-rpm-macros +Requires: cuttlefish_base + +%description + + +%prep +#%%autosetup -v + + +%build +cd ../../../frontend +./build-webui.sh + + +%install +%define srcpath ../../../frontend/src/operator/webui/dist/static + +rm -rf $RPM_BUILD_ROOT +mkdir -p %{buildroot}/var/www/local.cuttlefish + +for filename in $(ls %{srcpath}) ; do + echo "Installing: $filename" + install -m 655 %{srcpath}/$filename %{buildroot}/var/www/local.cuttlefish/$filename +done +rm -f %{buildroot}/%{_infodir}/dir + +%files +%define _unpackaged_files_terminate_build 0 +%dir %attr(-, root, root) %{srcpath}/ + +%files +#%%license add-license-file-here +#%%doc add-docs-here + + + +%changelog +* Thu Jul 11 2024 Martin Zeitler +- Initial version. + From 65c41dfa9bf441870cf6ab9700e74b7e37e9f1eb Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Thu, 11 Jul 2024 16:20:19 +0200 Subject: [PATCH 02/31] rpmbuild support for base & user. --- tools/buildutils/build_packages.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/buildutils/build_packages.sh b/tools/buildutils/build_packages.sh index 42de276a37..75cc2b022c 100755 --- a/tools/buildutils/build_packages.sh +++ b/tools/buildutils/build_packages.sh @@ -24,13 +24,13 @@ function build_package() { } function build_spec() { - local specfile="$1" + local specfile="${REPO_DIR}/tools/rpmbuild/SPECS/$1" echo "Installing package dependencies" - sudo dnf builddep --skip-unavailable ${REPO_DIR}/tools/rpmbuild/SPECS/$specfile + sudo dnf builddep --skip-unavailable $specfile echo "Building packages" rpmbuild \ --define "_topdir `pwd`/tools/rpmbuild" \ - -v -ba ${REPO_DIR}/tools/rpmbuild/SPECS/$specfile + -v -ba $specfile } if [[ ! -z ${APT_CMD} ]]; then From 5be7c292fc1553a8961cb797c15ef9d45c2bc01f Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Thu, 11 Jul 2024 18:04:30 +0200 Subject: [PATCH 03/31] rpmbuild support for integration & orchestration. --- tools/buildutils/build_packages.sh | 2 ++ tools/rpmbuild/SPECS/cuttlefish_base.spec | 31 ++++++++++++++++++----- tools/rpmbuild/SPECS/cuttlefish_user.spec | 8 +++--- 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/tools/buildutils/build_packages.sh b/tools/buildutils/build_packages.sh index 75cc2b022c..ca4f9b324c 100755 --- a/tools/buildutils/build_packages.sh +++ b/tools/buildutils/build_packages.sh @@ -42,6 +42,8 @@ if [[ ! -z ${APT_CMD} ]]; then elif [[ ! -z ${DNF_CMD} ]]; then build_spec cuttlefish_base.spec build_spec cuttlefish_user.spec + build_spec cuttlefish_integration.spec + build_spec cuttlefish_orchestration.spec else exit 1; fi diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index 0445f73648..4077bcdb97 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -7,37 +7,54 @@ License: Apache License 2.0 URL: https://github.com/google/android-cuttlefish #Source0: cuttlefish_base.tar.gz -BuildArch: noarch +BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: systemd-rpm-macros -#Requires: +BuildRequires: curl-devel +Requires: adduser, bridge-utils, curl, dnsmasq-base, e2fsprogs, ebtables-legacy / ebtables, f2fs-tools, iproute2, iptables, libarchive-tools / bsdtar, libcurl4, +Requires: libdrm2, libfdt1, libfmt-devel, libgflags-devel, libgl1, libjsoncpp-devel, libprotobuf-devel, libssl-devel, libusb-1.0-0, libwayland-client0, libwayland-server0, +Requires: libx11-6, libxext6, libxml2-devel, libz3-4, lsb-base, net-tools, openssl, python3, util-linux %description %prep -#%%autosetup -v - +%define workdir `pwd` %build +cd ../../../base/cvd +bazel build cuttlefish:cvd --spawn_strategy=local %install -%define srcpath ../../../base/host/packages/cuttlefish-base - rm -rf $RPM_BUILD_ROOT +mkdir -p %{buildroot}/usr/bin +mkdir -p %{buildroot}/usr/lib/cuttlefish-common/bin mkdir -p %{buildroot}/etc/NetworkManager/conf.d mkdir -p %{buildroot}/etc/modules-load.d mkdir -p %{buildroot}/etc/security/limits.d +%define srcpath ../../../base/host/packages/cuttlefish-base install -m 655 %{srcpath}/etc/NetworkManager/conf.d/99-cuttlefish.conf %{buildroot}/etc/NetworkManager/conf.d/99-cuttlefish.conf install -m 655 %{srcpath}/etc/modules-load.d/cuttlefish-common.conf %{buildroot}/etc/modules-load.d/cuttlefish-common.conf install -m 655 %{srcpath}/etc/security/limits.d/1_cuttlefish.conf %{buildroot}/etc/security/limits.d/1_cuttlefish.conf +%define srcpath ../../../base/cvd/bazel-bin +install -m 755 %{srcpath}/cuttlefish/cvd %{buildroot}/usr/lib/cuttlefish-common/bin/cvd + +%define srcpath ../../../base/host/deploy +install -m 655 %{srcpath}/unpack_boot_image.py %{buildroot}/usr/lib/cuttlefish-common/bin/unpack_boot_image.py +install -m 655 %{srcpath}/capability_query.py %{buildroot}/usr/lib/cuttlefish-common/bin/capability_query.py +install -m 655 %{srcpath}/install_zip.sh %{buildroot}/usr/bin/install_zip.sh + + %files /etc/NetworkManager/conf.d/99-cuttlefish.conf /etc/modules-load.d/cuttlefish-common.conf /etc/security/limits.d/1_cuttlefish.conf +/usr/lib/cuttlefish-common/bin/cvd +/usr/lib/cuttlefish-common/bin/unpack_boot_image.py +/usr/lib/cuttlefish-common/bin/capability_query.py +/usr/bin/install_zip.sh #%%license add-license-file-here #%%doc add-docs-here diff --git a/tools/rpmbuild/SPECS/cuttlefish_user.spec b/tools/rpmbuild/SPECS/cuttlefish_user.spec index 76ac490a19..52e37557f9 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_user.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_user.spec @@ -10,7 +10,7 @@ URL: https://github.com/google/android-cuttlefish BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: systemd-rpm-macros +#BuildRequires: Requires: cuttlefish_base %description @@ -26,21 +26,21 @@ cd ../../../frontend %install -%define srcpath ../../../frontend/src/operator/webui/dist/static - rm -rf $RPM_BUILD_ROOT mkdir -p %{buildroot}/var/www/local.cuttlefish +%define srcpath ../../../frontend/src/operator/webui/dist/static for filename in $(ls %{srcpath}) ; do echo "Installing: $filename" install -m 655 %{srcpath}/$filename %{buildroot}/var/www/local.cuttlefish/$filename done -rm -f %{buildroot}/%{_infodir}/dir + %files %define _unpackaged_files_terminate_build 0 %dir %attr(-, root, root) %{srcpath}/ + %files #%%license add-license-file-here #%%doc add-docs-here From 4ae6f827fa7e9124b8cd0dae9fdd7123f1e31e05 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Thu, 11 Jul 2024 18:09:03 +0200 Subject: [PATCH 04/31] rpmbuild support for integration & orchestration. --- .../SPECS/cuttlefish_integration.spec | 53 +++++++++++++++++++ .../SPECS/cuttlefish_orchestration.spec | 37 +++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 tools/rpmbuild/SPECS/cuttlefish_integration.spec create mode 100644 tools/rpmbuild/SPECS/cuttlefish_orchestration.spec diff --git a/tools/rpmbuild/SPECS/cuttlefish_integration.spec b/tools/rpmbuild/SPECS/cuttlefish_integration.spec new file mode 100644 index 0000000000..b6bbd09413 --- /dev/null +++ b/tools/rpmbuild/SPECS/cuttlefish_integration.spec @@ -0,0 +1,53 @@ +Name: cuttlefish_integration +Version: 0.9.29 +Release: 1%{?dist} +Summary: Virtual Device for Android host-side utilities + +License: Apache License 2.0 +URL: https://github.com/google/android-cuttlefish +#Source0: cuttlefish_base.tar.gz + +BuildArch: noarch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +#BuildRequires: +Requires: qemu-kvm, cuttlefish_base + +%description + + +%prep +#%%autosetup -v + + +%build + + +%install +%define srcpath ../../../base/host/packages/cuttlefish-integration + +rm -rf $RPM_BUILD_ROOT +mkdir -p %{buildroot}/etc/default +mkdir -p %{buildroot}/etc/modprobe.d +mkdir -p %{buildroot}/etc/rsyslog.d +mkdir -p %{buildroot}/etc/ssh + +install -m 655 %{srcpath}/etc/default/instance_configs.cfg.template %{buildroot}/etc/default/instance_configs.cfg.template +install -m 655 %{srcpath}/etc/modprobe.d/cuttlefish-integration.conf %{buildroot}/etc/modprobe.d/cuttlefish-integration.conf +install -m 655 %{srcpath}/etc/rsyslog.d/91-cuttlefish.conf %{buildroot}/etc/rsyslog.d/91-cuttlefish.conf +install -m 655 %{srcpath}/etc/ssh/sshd_config.cuttlefish %{buildroot}/etc/ssh/sshd_config.cuttlefish + +%files +/etc/default/instance_configs.cfg.template +/etc/modprobe.d/cuttlefish-integration.conf +/etc/rsyslog.d/91-cuttlefish.conf +/etc/ssh/sshd_config.cuttlefish + +#%%license add-license-file-here +#%%doc add-docs-here + + +%changelog +* Thu Jul 11 2024 Martin Zeitler +- Initial version. + diff --git a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec new file mode 100644 index 0000000000..25a937dadc --- /dev/null +++ b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec @@ -0,0 +1,37 @@ +Name: cuttlefish_orchestration +Version: 0.9.29 +Release: 1%{?dist} +Summary: Virtual Device for Android host-side utilities + +License: Apache License 2.0 +URL: https://github.com/google/android-cuttlefish +#Source0: cuttlefish_base.tar.gz + +BuildArch: noarch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +#BuildRequires: +Requires: cuttlefish_base + +%description + + +%prep +#%%autosetup -v + + +%build + + +%install + + +%files +#%%license add-license-file-here +#%%doc add-docs-here + + +%changelog +* Thu Jul 11 2024 Martin Zeitler +- Initial version. + From 4998344456363d6fa44eb6cc77e635c658c65952 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Thu, 11 Jul 2024 18:28:39 +0200 Subject: [PATCH 05/31] file cuttlefish-host-resources added. --- tools/rpmbuild/SPECS/cuttlefish_base.spec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index 4077bcdb97..1fcf6e4312 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -29,6 +29,7 @@ bazel build cuttlefish:cvd --spawn_strategy=local rm -rf $RPM_BUILD_ROOT mkdir -p %{buildroot}/usr/bin mkdir -p %{buildroot}/usr/lib/cuttlefish-common/bin +mkdir -p %{buildroot}/etc/default mkdir -p %{buildroot}/etc/NetworkManager/conf.d mkdir -p %{buildroot}/etc/modules-load.d mkdir -p %{buildroot}/etc/security/limits.d @@ -38,6 +39,9 @@ install -m 655 %{srcpath}/etc/NetworkManager/conf.d/99-cuttlefish.conf %{buildro install -m 655 %{srcpath}/etc/modules-load.d/cuttlefish-common.conf %{buildroot}/etc/modules-load.d/cuttlefish-common.conf install -m 655 %{srcpath}/etc/security/limits.d/1_cuttlefish.conf %{buildroot}/etc/security/limits.d/1_cuttlefish.conf +%define srcpath ../../../base/debian +install -m 655 %{srcpath}/cuttlefish-base.cuttlefish-host-resources.default %{buildroot}/etc/default/cuttlefish-host-resources + %define srcpath ../../../base/cvd/bazel-bin install -m 755 %{srcpath}/cuttlefish/cvd %{buildroot}/usr/lib/cuttlefish-common/bin/cvd @@ -48,6 +52,7 @@ install -m 655 %{srcpath}/install_zip.sh %{buildroot}/usr/bin/install_zip.sh %files +/etc/default/cuttlefish-host-resources /etc/NetworkManager/conf.d/99-cuttlefish.conf /etc/modules-load.d/cuttlefish-common.conf /etc/security/limits.d/1_cuttlefish.conf From ba8b52fa2bfca69c8618bae35214c588b1a4e620 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Thu, 11 Jul 2024 19:27:29 +0200 Subject: [PATCH 06/31] %post macro added. --- tools/rpmbuild/SPECS/cuttlefish_base.spec | 4 ++++ .../rpmbuild/SPECS/cuttlefish_integration.spec | 18 +++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index 1fcf6e4312..d03ac289af 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -51,6 +51,10 @@ install -m 655 %{srcpath}/capability_query.py %{buildroot}/usr/lib/cuttlefish-co install -m 655 %{srcpath}/install_zip.sh %{buildroot}/usr/bin/install_zip.sh +%post +systemctl restart NetworkManager + + %files /etc/default/cuttlefish-host-resources /etc/NetworkManager/conf.d/99-cuttlefish.conf diff --git a/tools/rpmbuild/SPECS/cuttlefish_integration.spec b/tools/rpmbuild/SPECS/cuttlefish_integration.spec index b6bbd09413..a302421cf1 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_integration.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_integration.spec @@ -17,31 +17,43 @@ Requires: qemu-kvm, cuttlefish_base %prep -#%%autosetup -v %build %install -%define srcpath ../../../base/host/packages/cuttlefish-integration - rm -rf $RPM_BUILD_ROOT mkdir -p %{buildroot}/etc/default mkdir -p %{buildroot}/etc/modprobe.d mkdir -p %{buildroot}/etc/rsyslog.d mkdir -p %{buildroot}/etc/ssh +mkdir -p %{buildroot}/lib/udev/rules.d +mkdir -p %{buildroot}/usr/share/doc/cuttlefish-integration +%define srcpath ../../../base/host/packages/cuttlefish-integration install -m 655 %{srcpath}/etc/default/instance_configs.cfg.template %{buildroot}/etc/default/instance_configs.cfg.template install -m 655 %{srcpath}/etc/modprobe.d/cuttlefish-integration.conf %{buildroot}/etc/modprobe.d/cuttlefish-integration.conf install -m 655 %{srcpath}/etc/rsyslog.d/91-cuttlefish.conf %{buildroot}/etc/rsyslog.d/91-cuttlefish.conf install -m 655 %{srcpath}/etc/ssh/sshd_config.cuttlefish %{buildroot}/etc/ssh/sshd_config.cuttlefish +%define srcpath ../../../base/debian +install -m 655 %{srcpath}/cuttlefish-integration.udev %{buildroot}/lib/udev/rules.d/60-cuttlefish-integration.rules + +# install -m 655 %{srcpath}/usr/share/doc/cuttlefish-integration/changelog.gz %{buildroot}/usr/share/doc/cuttlefish-integration/changelog.gz +# install -m 655 %{srcpath}/usr/share/doc/copyright %{buildroot}/usr/share/doc/copyright + + +%post +udevadm control --reload-rules && udevadm trigger + + %files /etc/default/instance_configs.cfg.template /etc/modprobe.d/cuttlefish-integration.conf /etc/rsyslog.d/91-cuttlefish.conf /etc/ssh/sshd_config.cuttlefish +/lib/udev/rules.d/60-cuttlefish-integration.rules #%%license add-license-file-here #%%doc add-docs-here From ed08c6d85dd581c188e1d322218e838cc45d69a5 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Thu, 11 Jul 2024 19:30:19 +0200 Subject: [PATCH 07/31] *.rpm ignored. --- tools/rpmbuild/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 tools/rpmbuild/.gitignore diff --git a/tools/rpmbuild/.gitignore b/tools/rpmbuild/.gitignore new file mode 100644 index 0000000000..e7a9c1347b --- /dev/null +++ b/tools/rpmbuild/.gitignore @@ -0,0 +1 @@ +*.rpm From 471937df9f51d2b7ee44195295f1d6199fec4997 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Thu, 11 Jul 2024 19:38:55 +0200 Subject: [PATCH 08/31] npm audit fix --- frontend/src/operator/webui/package-lock.json | 823 +++++++++++------- 1 file changed, 508 insertions(+), 315 deletions(-) diff --git a/frontend/src/operator/webui/package-lock.json b/frontend/src/operator/webui/package-lock.json index ea9d21aff7..b03c0d87bb 100644 --- a/frontend/src/operator/webui/package-lock.json +++ b/frontend/src/operator/webui/package-lock.json @@ -226,9 +226,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" @@ -361,12 +361,12 @@ "dev": true }, "node_modules/@angular-devkit/schematics": { - "version": "15.2.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.6.tgz", - "integrity": "sha512-f7VgnAcok7AwR/DhX0ZWskB0rFBo/KsvtIUA2qZSrpKMf8eFiwu03dv/b2mI0vnf+1FBfIQzJvO0ww45zRp6dA==", + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.11.tgz", + "integrity": "sha512-Wfj0FO8lcGqOkg7GTYOGUsAHqTS9GMfGXTAGsM/8g0SZI4kaPy/luZSPFtevpFE5PSR6dyWSIC0GgzfavjhJMg==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.2.6", + "@angular-devkit/core": "15.2.11", "jsonc-parser": "3.2.0", "magic-string": "0.29.0", "ora": "5.4.1", @@ -378,6 +378,32 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.11.tgz", + "integrity": "sha512-zd6QelJ8pOPvz6TsehR0JqixjDjzgEOkKywBJBuwNXY+Nw3MJGayJeWS0UgC+Gk+LoTkpI21RoyaYELkAmD/tw==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "engines": { + "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, "node_modules/@angular-devkit/schematics/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -427,15 +453,15 @@ } }, "node_modules/@angular/cli": { - "version": "15.2.6", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.2.6.tgz", - "integrity": "sha512-wNkQ/qCVbd4pERaGVagKJPifEvjRNY5otwsd4iRVubY/XOcIHcYChUThZwgQdVfNAImfJPMZNrhbGxejuWLA9w==", + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.2.11.tgz", + "integrity": "sha512-fsIMvUWVCZM3qQSKZXR0yHTXxvoNrbs/PDUsGhRjWZrfUDHBCzMmKral5x8onMA/KPU9O3JiolKjiKVwzkudJA==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1502.6", - "@angular-devkit/core": "15.2.6", - "@angular-devkit/schematics": "15.2.6", - "@schematics/angular": "15.2.6", + "@angular-devkit/architect": "0.1502.11", + "@angular-devkit/core": "15.2.11", + "@angular-devkit/schematics": "15.2.11", + "@schematics/angular": "15.2.11", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "3.0.1", @@ -447,7 +473,7 @@ "ora": "5.4.1", "pacote": "15.1.0", "resolve": "1.22.1", - "semver": "7.3.8", + "semver": "7.5.3", "symbol-observable": "4.0.0", "yargs": "17.6.2" }, @@ -460,33 +486,65 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular/cli/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { + "version": "0.1502.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1502.11.tgz", + "integrity": "sha512-+hkG5UjIaKMRdo6SFLNQs+Cv7yAVeN8ijfDwI2z/mp7/otowuSEy+H3Tii195jfJ8TQ+y1B7svnx2D6O7oOYbQ==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "@angular-devkit/core": "15.2.11", + "rxjs": "6.6.7" }, "engines": { - "node": ">=10" + "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" } }, - "node_modules/@angular/cli/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "node_modules/@angular/cli/node_modules/@angular-devkit/core": { + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.11.tgz", + "integrity": "sha512-zd6QelJ8pOPvz6TsehR0JqixjDjzgEOkKywBJBuwNXY+Nw3MJGayJeWS0UgC+Gk+LoTkpI21RoyaYELkAmD/tw==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" }, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular/cli/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" }, "engines": { - "node": ">=10" + "npm": ">=2.0.0" } }, + "node_modules/@angular/cli/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/@angular/common": { "version": "15.2.7", "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.2.7.tgz", @@ -773,9 +831,9 @@ } }, "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" @@ -854,9 +912,9 @@ } }, "node_modules/@babel/helper-compilation-targets/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" @@ -918,9 +976,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider/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" @@ -2097,9 +2155,9 @@ } }, "node_modules/@babel/plugin-transform-runtime/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" @@ -2302,9 +2360,9 @@ } }, "node_modules/@babel/preset-env/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" @@ -4040,13 +4098,13 @@ } }, "node_modules/@schematics/angular": { - "version": "15.2.6", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.2.6.tgz", - "integrity": "sha512-OcBUvVAxZEMBX+fi0ytybeAdmStra+GwtlvipS70yOxcAgJ84ZrnZGN7a072cCVQcq7AgqUfssnyqCx1wu+yCg==", + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.2.11.tgz", + "integrity": "sha512-z38f9abwfzUGe9TEIggf3igpVf/ylmSlHy1jydAxXbeKv24ejg8m5dYBPH2/MvgUFP6tjHdxjKD56DnOdyKl3g==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.2.6", - "@angular-devkit/schematics": "15.2.6", + "@angular-devkit/core": "15.2.11", + "@angular-devkit/schematics": "15.2.11", "jsonc-parser": "3.2.0" }, "engines": { @@ -4055,6 +4113,50 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.11.tgz", + "integrity": "sha512-zd6QelJ8pOPvz6TsehR0JqixjDjzgEOkKywBJBuwNXY+Nw3MJGayJeWS0UgC+Gk+LoTkpI21RoyaYELkAmD/tw==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "engines": { + "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@schematics/angular/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@schematics/angular/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/@sigstore/protobuf-specs": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", @@ -4065,9 +4167,9 @@ } }, "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "dev": true }, "node_modules/@tootallnate/once": { @@ -4161,9 +4263,9 @@ "dev": true }, "node_modules/@types/cors": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", - "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", "dev": true, "dependencies": { "@types/node": "*" @@ -5070,9 +5172,9 @@ } }, "node_modules/babel-plugin-polyfill-corejs2/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" @@ -5174,13 +5276,13 @@ } }, "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dev": true, "dependencies": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -5188,7 +5290,7 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.1", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -5240,12 +5342,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -5749,9 +5851,9 @@ ] }, "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, "engines": { "node": ">= 0.6" @@ -6376,9 +6478,9 @@ } }, "node_modules/engine.io": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz", - "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", + "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", "dev": true, "dependencies": { "@types/cookie": "^0.4.1", @@ -6389,17 +6491,17 @@ "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.11.0" + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1" }, "engines": { - "node": ">=10.0.0" + "node": ">=10.2.0" } }, "node_modules/engine.io-parser": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", - "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", "dev": true, "engines": { "node": ">=10.0.0" @@ -6728,9 +6830,9 @@ } }, "node_modules/eslint-plugin-node/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" @@ -7245,17 +7347,17 @@ } }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -7293,9 +7395,9 @@ "dev": true }, "node_modules/express/node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "dev": true, "engines": { "node": ">= 0.6" @@ -7472,9 +7574,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -7578,9 +7680,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", - "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true, "funding": [ { @@ -8520,10 +8622,23 @@ "node": ">=8" } }, - "node_modules/ip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", - "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "dev": true }, "node_modules/ipaddr.js": { @@ -8759,9 +8874,9 @@ } }, "node_modules/istanbul-lib-instrument/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" @@ -8901,6 +9016,12 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -9282,9 +9403,9 @@ } }, "node_modules/less/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "optional": true, "bin": { @@ -9530,9 +9651,9 @@ } }, "node_modules/make-dir/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" @@ -11511,9 +11632,9 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "dependencies": { "bytes": "3.1.2", @@ -11664,9 +11785,9 @@ } }, "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" @@ -12156,9 +12277,9 @@ } }, "node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -12498,35 +12619,37 @@ } }, "node_modules/socket.io": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", - "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==", + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", + "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", "dev": true, "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", + "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.4.1", + "engine.io": "~6.5.2", "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.1" + "socket.io-parser": "~4.2.4" }, "engines": { - "node": ">=10.0.0" + "node": ">=10.2.0" } }, "node_modules/socket.io-adapter": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", - "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", + "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", "dev": true, "dependencies": { - "ws": "~8.11.0" + "debug": "~4.3.4", + "ws": "~8.17.1" } }, "node_modules/socket.io-parser": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.3.tgz", - "integrity": "sha512-JMafRntWVO2DCJimKsRTh/wnqVvO4hrfwOqtO7f+uzwsQMuxO6VwImtYxaQ+ieoyshWOTJyV0fA21lccEXRPpQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dev": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", @@ -12548,16 +12671,16 @@ } }, "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dev": true, "dependencies": { - "ip": "^2.0.0", + "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.13.0", + "node": ">= 10.0.0", "npm": ">= 3.0.0" } }, @@ -12879,14 +13002,14 @@ } }, "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -12919,6 +13042,15 @@ "node": ">=8" } }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/terser": { "version": "5.16.3", "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz", @@ -13668,9 +13800,9 @@ } }, "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", "dev": true, "dependencies": { "colorette": "^2.0.10", @@ -13690,27 +13822,6 @@ "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/webpack-dev-server/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==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/webpack-merge": { "version": "5.8.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", @@ -13932,16 +14043,16 @@ } }, "node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -14169,9 +14280,9 @@ }, "dependencies": { "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 } } @@ -14271,18 +14382,31 @@ } }, "@angular-devkit/schematics": { - "version": "15.2.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.6.tgz", - "integrity": "sha512-f7VgnAcok7AwR/DhX0ZWskB0rFBo/KsvtIUA2qZSrpKMf8eFiwu03dv/b2mI0vnf+1FBfIQzJvO0ww45zRp6dA==", + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.11.tgz", + "integrity": "sha512-Wfj0FO8lcGqOkg7GTYOGUsAHqTS9GMfGXTAGsM/8g0SZI4kaPy/luZSPFtevpFE5PSR6dyWSIC0GgzfavjhJMg==", "dev": true, "requires": { - "@angular-devkit/core": "15.2.6", + "@angular-devkit/core": "15.2.11", "jsonc-parser": "3.2.0", "magic-string": "0.29.0", "ora": "5.4.1", "rxjs": "6.6.7" }, "dependencies": { + "@angular-devkit/core": { + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.11.tgz", + "integrity": "sha512-zd6QelJ8pOPvz6TsehR0JqixjDjzgEOkKywBJBuwNXY+Nw3MJGayJeWS0UgC+Gk+LoTkpI21RoyaYELkAmD/tw==", + "dev": true, + "requires": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + } + }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -14318,15 +14442,15 @@ } }, "@angular/cli": { - "version": "15.2.6", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.2.6.tgz", - "integrity": "sha512-wNkQ/qCVbd4pERaGVagKJPifEvjRNY5otwsd4iRVubY/XOcIHcYChUThZwgQdVfNAImfJPMZNrhbGxejuWLA9w==", + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.2.11.tgz", + "integrity": "sha512-fsIMvUWVCZM3qQSKZXR0yHTXxvoNrbs/PDUsGhRjWZrfUDHBCzMmKral5x8onMA/KPU9O3JiolKjiKVwzkudJA==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1502.6", - "@angular-devkit/core": "15.2.6", - "@angular-devkit/schematics": "15.2.6", - "@schematics/angular": "15.2.6", + "@angular-devkit/architect": "0.1502.11", + "@angular-devkit/core": "15.2.11", + "@angular-devkit/schematics": "15.2.11", + "@schematics/angular": "15.2.11", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "3.0.1", @@ -14338,28 +14462,48 @@ "ora": "5.4.1", "pacote": "15.1.0", "resolve": "1.22.1", - "semver": "7.3.8", + "semver": "7.5.3", "symbol-observable": "4.0.0", "yargs": "17.6.2" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "@angular-devkit/architect": { + "version": "0.1502.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1502.11.tgz", + "integrity": "sha512-+hkG5UjIaKMRdo6SFLNQs+Cv7yAVeN8ijfDwI2z/mp7/otowuSEy+H3Tii195jfJ8TQ+y1B7svnx2D6O7oOYbQ==", "dev": true, "requires": { - "yallist": "^4.0.0" + "@angular-devkit/core": "15.2.11", + "rxjs": "6.6.7" } }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "@angular-devkit/core": { + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.11.tgz", + "integrity": "sha512-zd6QelJ8pOPvz6TsehR0JqixjDjzgEOkKywBJBuwNXY+Nw3MJGayJeWS0UgC+Gk+LoTkpI21RoyaYELkAmD/tw==", "dev": true, "requires": { - "lru-cache": "^6.0.0" + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, @@ -14549,9 +14693,9 @@ }, "dependencies": { "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 } } @@ -14613,9 +14757,9 @@ }, "dependencies": { "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 } } @@ -14661,9 +14805,9 @@ }, "dependencies": { "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 } } @@ -15454,9 +15598,9 @@ }, "dependencies": { "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 } } @@ -15610,9 +15754,9 @@ }, "dependencies": { "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 } } @@ -17012,14 +17156,44 @@ } }, "@schematics/angular": { - "version": "15.2.6", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.2.6.tgz", - "integrity": "sha512-OcBUvVAxZEMBX+fi0ytybeAdmStra+GwtlvipS70yOxcAgJ84ZrnZGN7a072cCVQcq7AgqUfssnyqCx1wu+yCg==", + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.2.11.tgz", + "integrity": "sha512-z38f9abwfzUGe9TEIggf3igpVf/ylmSlHy1jydAxXbeKv24ejg8m5dYBPH2/MvgUFP6tjHdxjKD56DnOdyKl3g==", "dev": true, "requires": { - "@angular-devkit/core": "15.2.6", - "@angular-devkit/schematics": "15.2.6", + "@angular-devkit/core": "15.2.11", + "@angular-devkit/schematics": "15.2.11", "jsonc-parser": "3.2.0" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.11.tgz", + "integrity": "sha512-zd6QelJ8pOPvz6TsehR0JqixjDjzgEOkKywBJBuwNXY+Nw3MJGayJeWS0UgC+Gk+LoTkpI21RoyaYELkAmD/tw==", + "dev": true, + "requires": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } } }, "@sigstore/protobuf-specs": { @@ -17029,9 +17203,9 @@ "dev": true }, "@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "dev": true }, "@tootallnate/once": { @@ -17112,9 +17286,9 @@ "dev": true }, "@types/cors": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", - "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", "dev": true, "requires": { "@types/node": "*" @@ -17819,9 +17993,9 @@ }, "dependencies": { "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 } } @@ -17893,13 +18067,13 @@ } }, "body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dev": true, "requires": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -17907,7 +18081,7 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.1", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -17957,12 +18131,12 @@ } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } }, "browserslist": { @@ -18327,9 +18501,9 @@ } }, "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true }, "convert-source-map": { @@ -18805,9 +18979,9 @@ } }, "engine.io": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz", - "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", + "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", "dev": true, "requires": { "@types/cookie": "^0.4.1", @@ -18818,14 +18992,14 @@ "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.11.0" + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1" } }, "engine.io-parser": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", - "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", "dev": true }, "enhanced-resolve": { @@ -19278,9 +19452,9 @@ } }, "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 } } @@ -19432,17 +19606,17 @@ } }, "express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dev": true, "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -19477,9 +19651,9 @@ "dev": true }, "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "dev": true }, "debug": { @@ -19617,9 +19791,9 @@ } }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "requires": { "to-regex-range": "^5.0.1" @@ -19704,9 +19878,9 @@ "dev": true }, "follow-redirects": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", - "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true }, "forwarded": { @@ -20413,11 +20587,23 @@ } } }, - "ip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", - "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", - "dev": true + "ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "requires": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + } + } }, "ipaddr.js": { "version": "2.0.1", @@ -20580,9 +20766,9 @@ }, "dependencies": { "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 } } @@ -20694,6 +20880,12 @@ "esprima": "^4.0.0" } }, + "jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true + }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -20975,9 +21167,9 @@ "optional": true }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "optional": true }, @@ -21173,9 +21365,9 @@ }, "dependencies": { "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 } } @@ -22645,9 +22837,9 @@ "dev": true }, "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "requires": { "bytes": "3.1.2", @@ -22746,9 +22938,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true }, "type-fest": { @@ -23122,9 +23314,9 @@ } }, "semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -23402,32 +23594,34 @@ "dev": true }, "socket.io": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", - "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==", + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", + "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", "dev": true, "requires": { "accepts": "~1.3.4", "base64id": "~2.0.0", + "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.4.1", + "engine.io": "~6.5.2", "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.1" + "socket.io-parser": "~4.2.4" } }, "socket.io-adapter": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", - "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", + "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", "dev": true, "requires": { - "ws": "~8.11.0" + "debug": "~4.3.4", + "ws": "~8.17.1" } }, "socket.io-parser": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.3.tgz", - "integrity": "sha512-JMafRntWVO2DCJimKsRTh/wnqVvO4hrfwOqtO7f+uzwsQMuxO6VwImtYxaQ+ieoyshWOTJyV0fA21lccEXRPpQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dev": true, "requires": { "@socket.io/component-emitter": "~3.1.0", @@ -23446,12 +23640,12 @@ } }, "socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dev": true, "requires": { - "ip": "^2.0.0", + "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" } }, @@ -23695,14 +23889,14 @@ "dev": true }, "tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -23727,6 +23921,12 @@ } } } + }, + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true } } }, @@ -24298,9 +24498,9 @@ }, "dependencies": { "webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", "dev": true, "requires": { "colorette": "^2.0.10", @@ -24309,13 +24509,6 @@ "range-parser": "^1.2.1", "schema-utils": "^4.0.0" } - }, - "ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true, - "requires": {} } } }, @@ -24445,9 +24638,9 @@ } }, "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, "requires": {} }, From d14d1ecfc452f2c1acc4c8b0cb1cef3b9802e968 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Thu, 11 Jul 2024 20:15:22 +0200 Subject: [PATCH 09/31] dependencies updated. --- tools/rpmbuild/SPECS/cuttlefish_base.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index d03ac289af..d3f47d73f3 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -11,9 +11,9 @@ BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: curl-devel -Requires: adduser, bridge-utils, curl, dnsmasq-base, e2fsprogs, ebtables-legacy / ebtables, f2fs-tools, iproute2, iptables, libarchive-tools / bsdtar, libcurl4, -Requires: libdrm2, libfdt1, libfmt-devel, libgflags-devel, libgl1, libjsoncpp-devel, libprotobuf-devel, libssl-devel, libusb-1.0-0, libwayland-client0, libwayland-server0, -Requires: libx11-6, libxext6, libxml2-devel, libz3-4, lsb-base, net-tools, openssl, python3, util-linux +Requires: bridge-utils, curl, dnsmasq, e2fsprogs, ebtables, iptables, bsdtar, libcurl, libdrm, fmt-devel, gflags-devel, mesa-libGL, jsoncpp-devel, protobuf-devel, openssl-devel, libusb, libXext, libxml2-devel, redhat-lsb-core, net-tools, openssl, python3, util-linux +Requires: wayland-utils +#Requires: f2fs-tools, libfdt1, libx11-6, libz3-4 %description From f4e58bbb0be4db6cfb333d4c25b3eefe823391c1 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Thu, 11 Jul 2024 20:28:30 +0200 Subject: [PATCH 10/31] group cvdnetwork being added. --- tools/rpmbuild/SPECS/cuttlefish_base.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index d3f47d73f3..8ad51b8bf2 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -52,6 +52,7 @@ install -m 655 %{srcpath}/install_zip.sh %{buildroot}/usr/bin/install_zip.sh %post +getent group cvdnetwork || groupadd cvdnetwork systemctl restart NetworkManager From 5f07d21ff2f1f506b3ea93527f40fca837510fca Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Thu, 11 Jul 2024 20:58:04 +0200 Subject: [PATCH 11/31] missing files added; some fixes. --- tools/rpmbuild/SPECS/cuttlefish_base.spec | 9 +++++++-- tools/rpmbuild/SPECS/cuttlefish_integration.spec | 1 + tools/rpmbuild/SPECS/cuttlefish_user.spec | 12 ++++++------ 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index 8ad51b8bf2..2147340f2d 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -33,6 +33,7 @@ mkdir -p %{buildroot}/etc/default mkdir -p %{buildroot}/etc/NetworkManager/conf.d mkdir -p %{buildroot}/etc/modules-load.d mkdir -p %{buildroot}/etc/security/limits.d +mkdir -p %{buildroot}/lib/udev/rules.d/ %define srcpath ../../../base/host/packages/cuttlefish-base install -m 655 %{srcpath}/etc/NetworkManager/conf.d/99-cuttlefish.conf %{buildroot}/etc/NetworkManager/conf.d/99-cuttlefish.conf @@ -46,13 +47,16 @@ install -m 655 %{srcpath}/cuttlefish-base.cuttlefish-host-resources.default %{bu install -m 755 %{srcpath}/cuttlefish/cvd %{buildroot}/usr/lib/cuttlefish-common/bin/cvd %define srcpath ../../../base/host/deploy +install -m 655 %{srcpath}/install_zip.sh %{buildroot}/usr/bin/install_zip.sh install -m 655 %{srcpath}/unpack_boot_image.py %{buildroot}/usr/lib/cuttlefish-common/bin/unpack_boot_image.py install -m 655 %{srcpath}/capability_query.py %{buildroot}/usr/lib/cuttlefish-common/bin/capability_query.py -install -m 655 %{srcpath}/install_zip.sh %{buildroot}/usr/bin/install_zip.sh +%define srcpath ../../../base/debian +install -m 655 %{srcpath}/cuttlefish-integration.udev %{buildroot}/lib/udev/rules.d/60-cuttlefish-integration.rules %post getent group cvdnetwork || groupadd cvdnetwork +udevadm control --reload-rules && udevadm trigger systemctl restart NetworkManager @@ -62,9 +66,10 @@ systemctl restart NetworkManager /etc/modules-load.d/cuttlefish-common.conf /etc/security/limits.d/1_cuttlefish.conf /usr/lib/cuttlefish-common/bin/cvd +/usr/bin/install_zip.sh /usr/lib/cuttlefish-common/bin/unpack_boot_image.py /usr/lib/cuttlefish-common/bin/capability_query.py -/usr/bin/install_zip.sh +/lib/udev/rules.d/60-cuttlefish-integration.rules #%%license add-license-file-here #%%doc add-docs-here diff --git a/tools/rpmbuild/SPECS/cuttlefish_integration.spec b/tools/rpmbuild/SPECS/cuttlefish_integration.spec index a302421cf1..4a02a0792e 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_integration.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_integration.spec @@ -45,6 +45,7 @@ install -m 655 %{srcpath}/cuttlefish-integration.udev %{buildroot}/lib/udev/rule %post +getent group cvdnetwork || groupadd cvdnetwork udevadm control --reload-rules && udevadm trigger diff --git a/tools/rpmbuild/SPECS/cuttlefish_user.spec b/tools/rpmbuild/SPECS/cuttlefish_user.spec index 52e37557f9..bc682169b6 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_user.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_user.spec @@ -31,22 +31,22 @@ mkdir -p %{buildroot}/var/www/local.cuttlefish %define srcpath ../../../frontend/src/operator/webui/dist/static for filename in $(ls %{srcpath}) ; do - echo "Installing: $filename" install -m 655 %{srcpath}/$filename %{buildroot}/var/www/local.cuttlefish/$filename done %files -%define _unpackaged_files_terminate_build 0 -%dir %attr(-, root, root) %{srcpath}/ +/var/www/local.cuttlefish/index.html +/var/www/local.cuttlefish/3rdpartylicenses.txt +/var/www/local.cuttlefish/main.* +/var/www/local.cuttlefish/polyfills.* +/var/www/local.cuttlefish/runtime.* +/var/www/local.cuttlefish/styles.* - -%files #%%license add-license-file-here #%%doc add-docs-here - %changelog * Thu Jul 11 2024 Martin Zeitler - Initial version. From d6f3baec0cef302683ab651d8dcdc45fe91f27b5 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Thu, 11 Jul 2024 21:00:28 +0200 Subject: [PATCH 12/31] dependencies updated. --- tools/rpmbuild/SPECS/cuttlefish_base.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index 2147340f2d..7386a0f4b7 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -11,7 +11,8 @@ BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: curl-devel -Requires: bridge-utils, curl, dnsmasq, e2fsprogs, ebtables, iptables, bsdtar, libcurl, libdrm, fmt-devel, gflags-devel, mesa-libGL, jsoncpp-devel, protobuf-devel, openssl-devel, libusb, libXext, libxml2-devel, redhat-lsb-core, net-tools, openssl, python3, util-linux +Requires: bridge-utils, curl, dnsmasq, e2fsprogs, ebtables, iptables, bsdtar, libcurl, libdrm, mesa-libGL, libusb, libXext, redhat-lsb-core, net-tools, openssl, python3, util-linux +Requires: fmt-devel, gflags-devel, jsoncpp-devel, protobuf-devel, openssl-devel, libxml2-devel Requires: wayland-utils #Requires: f2fs-tools, libfdt1, libx11-6, libz3-4 From af59d1cb3bcc8734a27ce1f3f49254139c6798e0 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Thu, 11 Jul 2024 23:53:18 +0200 Subject: [PATCH 13/31] building for x85_64. --- .../SPECS/cuttlefish_integration.spec | 2 +- .../SPECS/cuttlefish_orchestration.spec | 12 ++++++---- tools/rpmbuild/SPECS/cuttlefish_user.spec | 24 ++++++++++++------- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/tools/rpmbuild/SPECS/cuttlefish_integration.spec b/tools/rpmbuild/SPECS/cuttlefish_integration.spec index 4a02a0792e..9b2600080b 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_integration.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_integration.spec @@ -7,7 +7,7 @@ License: Apache License 2.0 URL: https://github.com/google/android-cuttlefish #Source0: cuttlefish_base.tar.gz -BuildArch: noarch +BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) #BuildRequires: diff --git a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec index 25a937dadc..17222a24fd 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec @@ -5,9 +5,8 @@ Summary: Virtual Device for Android host-side utilities License: Apache License 2.0 URL: https://github.com/google/android-cuttlefish -#Source0: cuttlefish_base.tar.gz -BuildArch: noarch +BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) #BuildRequires: @@ -17,16 +16,21 @@ Requires: cuttlefish_base %prep -#%%autosetup -v %build %install - +rm -rf $RPM_BUILD_ROOT +mkdir -p %{buildroot}/etc/default +mkdir -p %{buildroot}/etc/init.d +mkdir -p %{buildroot}/etc/sudoers.d +mkdir -p %{buildroot}/usr/bin +mkdir -p %{buildroot}/usr/share/doc/cuttlefish-orchestration %files + #%%license add-license-file-here #%%doc add-docs-here diff --git a/tools/rpmbuild/SPECS/cuttlefish_user.spec b/tools/rpmbuild/SPECS/cuttlefish_user.spec index bc682169b6..0e3488f3e3 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_user.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_user.spec @@ -7,7 +7,7 @@ License: Apache License 2.0 URL: https://github.com/google/android-cuttlefish #Source0: cuttlefish_frontend.tar.gz -BuildArch: noarch +BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) #BuildRequires: @@ -27,21 +27,27 @@ cd ../../../frontend %install rm -rf $RPM_BUILD_ROOT -mkdir -p %{buildroot}/var/www/local.cuttlefish +mkdir -p %{buildroot}/etc/default +mkdir -p %{buildroot}/etc/init.d +mkdir -p %{buildroot}/usr/bin +mkdir -p %{buildroot}/usr/lib/cuttlefish-common/bin +mkdir -p %{buildroot}/usr/share/cuttlefish-common/operator/intercept +mkdir -p %{buildroot}/usr/share/cuttlefish-common/operator/static +mkdir -p %{buildroot}/usr/share/doc/cuttlefish-user %define srcpath ../../../frontend/src/operator/webui/dist/static for filename in $(ls %{srcpath}) ; do - install -m 655 %{srcpath}/$filename %{buildroot}/var/www/local.cuttlefish/$filename + install -m 655 %{srcpath}/$filename %{buildroot}/usr/share/cuttlefish-common/operator/static/$filename done %files -/var/www/local.cuttlefish/index.html -/var/www/local.cuttlefish/3rdpartylicenses.txt -/var/www/local.cuttlefish/main.* -/var/www/local.cuttlefish/polyfills.* -/var/www/local.cuttlefish/runtime.* -/var/www/local.cuttlefish/styles.* +/usr/share/cuttlefish-common/operator/static/index.html +/usr/share/cuttlefish-common/operator/static/3rdpartylicenses.txt +/usr/share/cuttlefish-common/operator/static/main.* +/usr/share/cuttlefish-common/operator/static/polyfills.* +/usr/share/cuttlefish-common/operator/static/runtime.* +/usr/share/cuttlefish-common/operator/static/styles.* #%%license add-license-file-here #%%doc add-docs-here From 21cae7f88f88d51a27eca0c2bc2da237da330b58 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Fri, 12 Jul 2024 00:08:26 +0200 Subject: [PATCH 14/31] building for x85_64. --- tools/rpmbuild/SPECS/cuttlefish_base.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index 7386a0f4b7..add4601384 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -11,7 +11,7 @@ BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: curl-devel -Requires: bridge-utils, curl, dnsmasq, e2fsprogs, ebtables, iptables, bsdtar, libcurl, libdrm, mesa-libGL, libusb, libXext, redhat-lsb-core, net-tools, openssl, python3, util-linux +Requires: bridge-utils, curl, dnsmasq, e2fsprogs, ebtables, iptables, bsdtar, libcurl, libdrm, mesa-libGL, libusb, libXext, lsb_release, net-tools, openssl, python3, util-linux Requires: fmt-devel, gflags-devel, jsoncpp-devel, protobuf-devel, openssl-devel, libxml2-devel Requires: wayland-utils #Requires: f2fs-tools, libfdt1, libx11-6, libz3-4 From 5f456ce8f46242b47fac6b8c6e52aa67c6b1defd Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Fri, 12 Jul 2024 13:08:10 +0200 Subject: [PATCH 15/31] %post install script improved. --- tools/rpmbuild/SPECS/cuttlefish_base.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index add4601384..fe21002057 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -56,11 +56,11 @@ install -m 655 %{srcpath}/capability_query.py %{buildroot}/usr/lib/cuttlefish-co install -m 655 %{srcpath}/cuttlefish-integration.udev %{buildroot}/lib/udev/rules.d/60-cuttlefish-integration.rules %post -getent group cvdnetwork || groupadd cvdnetwork +ln -s /usr/lib/cuttlefish-common/bin/cvd /usr/bin/cvd +getent group cvdnetwork > /dev/null 2>&1 || addgroup --system cvdnetwork udevadm control --reload-rules && udevadm trigger systemctl restart NetworkManager - %files /etc/default/cuttlefish-host-resources /etc/NetworkManager/conf.d/99-cuttlefish.conf From 6a9c2b812a608f0dfac438b52180ed21c00ae2b1 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Fri, 12 Jul 2024 13:48:24 +0200 Subject: [PATCH 16/31] package names adjusted. --- tools/rpmbuild/SPECS/cuttlefish_base.spec | 22 +++++++++++++++---- .../SPECS/cuttlefish_integration.spec | 4 ++-- .../SPECS/cuttlefish_orchestration.spec | 6 ++--- tools/rpmbuild/SPECS/cuttlefish_user.spec | 6 ++--- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index fe21002057..ac40d40227 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -1,11 +1,10 @@ -Name: cuttlefish_base +Name: cuttlefish-base Version: 0.9.29 Release: 1%{?dist} Summary: Virtual Device for Android host-side utilities License: Apache License 2.0 URL: https://github.com/google/android-cuttlefish -#Source0: cuttlefish_base.tar.gz BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -31,10 +30,12 @@ rm -rf $RPM_BUILD_ROOT mkdir -p %{buildroot}/usr/bin mkdir -p %{buildroot}/usr/lib/cuttlefish-common/bin mkdir -p %{buildroot}/etc/default +mkdir -p %{buildroot}/etc/rc.d/init.d mkdir -p %{buildroot}/etc/NetworkManager/conf.d mkdir -p %{buildroot}/etc/modules-load.d mkdir -p %{buildroot}/etc/security/limits.d mkdir -p %{buildroot}/lib/udev/rules.d/ +mkdir -p %{buildroot}/usr/share/doc/cuttlefish-base %define srcpath ../../../base/host/packages/cuttlefish-base install -m 655 %{srcpath}/etc/NetworkManager/conf.d/99-cuttlefish.conf %{buildroot}/etc/NetworkManager/conf.d/99-cuttlefish.conf @@ -43,6 +44,8 @@ install -m 655 %{srcpath}/etc/security/limits.d/1_cuttlefish.conf %{buildroot}/e %define srcpath ../../../base/debian install -m 655 %{srcpath}/cuttlefish-base.cuttlefish-host-resources.default %{buildroot}/etc/default/cuttlefish-host-resources +install -m 655 %{srcpath}/cuttlefish-base.cuttlefish-host-resources.init %{buildroot}/etc/rc.d/init.d/cuttlefish-host-resources + %define srcpath ../../../base/cvd/bazel-bin install -m 755 %{srcpath}/cuttlefish/cvd %{buildroot}/usr/lib/cuttlefish-common/bin/cvd @@ -54,15 +57,26 @@ install -m 655 %{srcpath}/capability_query.py %{buildroot}/usr/lib/cuttlefish-co %define srcpath ../../../base/debian install -m 655 %{srcpath}/cuttlefish-integration.udev %{buildroot}/lib/udev/rules.d/60-cuttlefish-integration.rules +install -m 655 %{srcpath}/cuttlefish-integration.udev %{buildroot}/lib/udev/rules.d/60-cuttlefish-integration.rules + %post -ln -s /usr/lib/cuttlefish-common/bin/cvd /usr/bin/cvd -getent group cvdnetwork > /dev/null 2>&1 || addgroup --system cvdnetwork +ln -sf /usr/lib/cuttlefish-common/bin/cvd /usr/bin/cvd +getent group cvdnetwork > /dev/null 2>&1 || groupadd --system cvdnetwork +udevadm control --reload-rules && udevadm trigger +systemctl restart NetworkManager + +%preun +rm /usr/bin/cvd + +%postun udevadm control --reload-rules && udevadm trigger systemctl restart NetworkManager +groupdel cvdnetwork %files /etc/default/cuttlefish-host-resources +/etc/rc.d/init.d/cuttlefish-host-resources /etc/NetworkManager/conf.d/99-cuttlefish.conf /etc/modules-load.d/cuttlefish-common.conf /etc/security/limits.d/1_cuttlefish.conf diff --git a/tools/rpmbuild/SPECS/cuttlefish_integration.spec b/tools/rpmbuild/SPECS/cuttlefish_integration.spec index 9b2600080b..5884097518 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_integration.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_integration.spec @@ -1,4 +1,4 @@ -Name: cuttlefish_integration +Name: cuttlefish-integration Version: 0.9.29 Release: 1%{?dist} Summary: Virtual Device for Android host-side utilities @@ -11,7 +11,7 @@ BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) #BuildRequires: -Requires: qemu-kvm, cuttlefish_base +Requires: qemu-kvm, cuttlefish-base %description diff --git a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec index 17222a24fd..6ccb7aeef5 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec @@ -1,4 +1,4 @@ -Name: cuttlefish_orchestration +Name: cuttlefish-orchestration Version: 0.9.29 Release: 1%{?dist} Summary: Virtual Device for Android host-side utilities @@ -10,7 +10,7 @@ BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) #BuildRequires: -Requires: cuttlefish_base +Requires: cuttlefish-base %description @@ -24,7 +24,7 @@ Requires: cuttlefish_base %install rm -rf $RPM_BUILD_ROOT mkdir -p %{buildroot}/etc/default -mkdir -p %{buildroot}/etc/init.d +mkdir -p %{buildroot}/etc/rc.d/init.d mkdir -p %{buildroot}/etc/sudoers.d mkdir -p %{buildroot}/usr/bin mkdir -p %{buildroot}/usr/share/doc/cuttlefish-orchestration diff --git a/tools/rpmbuild/SPECS/cuttlefish_user.spec b/tools/rpmbuild/SPECS/cuttlefish_user.spec index 0e3488f3e3..97ac49916e 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_user.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_user.spec @@ -1,4 +1,4 @@ -Name: cuttlefish_user +Name: cuttlefish-user Version: 0.9.29 Release: 1%{?dist} Summary: Virtual Device for Android host-side utilities @@ -11,7 +11,7 @@ BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) #BuildRequires: -Requires: cuttlefish_base +Requires: cuttlefish-base %description @@ -28,7 +28,7 @@ cd ../../../frontend %install rm -rf $RPM_BUILD_ROOT mkdir -p %{buildroot}/etc/default -mkdir -p %{buildroot}/etc/init.d +mkdir -p %{buildroot}/etc/rc.d/init.d mkdir -p %{buildroot}/usr/bin mkdir -p %{buildroot}/usr/lib/cuttlefish-common/bin mkdir -p %{buildroot}/usr/share/cuttlefish-common/operator/intercept From ea29436f8b769132d7ede77fd9297c4fd7b37a5c Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Tue, 16 Jul 2024 20:50:05 +0200 Subject: [PATCH 17/31] dependencies updated. --- tools/rpmbuild/SPECS/cuttlefish_base.spec | 10 +++--- .../SPECS/cuttlefish_orchestration.spec | 2 +- tools/rpmbuild/SPECS/cuttlefish_user.spec | 31 ++++++++++++++++++- 3 files changed, 35 insertions(+), 8 deletions(-) diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index ac40d40227..075be979c3 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -9,11 +9,11 @@ URL: https://github.com/google/android-cuttlefish BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: curl-devel -Requires: bridge-utils, curl, dnsmasq, e2fsprogs, ebtables, iptables, bsdtar, libcurl, libdrm, mesa-libGL, libusb, libXext, lsb_release, net-tools, openssl, python3, util-linux +BuildRequires: curl-devel, openssl-devel, protobuf-devel, protobuf-compiler +Requires: redhat-lsb-core, ebtables-legacy, iptables-legacy, bridge-utils, curl, dnsmasq, e2fsprogs, ebtables, iptables, bsdtar, libcurl, libdrm, mesa-libGL, libusb, libXext, net-tools, openssl, python3, util-linux Requires: fmt-devel, gflags-devel, jsoncpp-devel, protobuf-devel, openssl-devel, libxml2-devel Requires: wayland-utils -#Requires: f2fs-tools, libfdt1, libx11-6, libz3-4 +#Requires: f2fs-tools, libfdt1, libx11-6, libz3-4 %description @@ -23,6 +23,7 @@ Requires: wayland-utils %build cd ../../../base/cvd +bazel query ... bazel build cuttlefish:cvd --spawn_strategy=local %install @@ -46,7 +47,6 @@ install -m 655 %{srcpath}/etc/security/limits.d/1_cuttlefish.conf %{buildroot}/e install -m 655 %{srcpath}/cuttlefish-base.cuttlefish-host-resources.default %{buildroot}/etc/default/cuttlefish-host-resources install -m 655 %{srcpath}/cuttlefish-base.cuttlefish-host-resources.init %{buildroot}/etc/rc.d/init.d/cuttlefish-host-resources - %define srcpath ../../../base/cvd/bazel-bin install -m 755 %{srcpath}/cuttlefish/cvd %{buildroot}/usr/lib/cuttlefish-common/bin/cvd @@ -57,8 +57,6 @@ install -m 655 %{srcpath}/capability_query.py %{buildroot}/usr/lib/cuttlefish-co %define srcpath ../../../base/debian install -m 655 %{srcpath}/cuttlefish-integration.udev %{buildroot}/lib/udev/rules.d/60-cuttlefish-integration.rules -install -m 655 %{srcpath}/cuttlefish-integration.udev %{buildroot}/lib/udev/rules.d/60-cuttlefish-integration.rules - %post ln -sf /usr/lib/cuttlefish-common/bin/cvd /usr/bin/cvd diff --git a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec index 6ccb7aeef5..2074e1a414 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec @@ -10,7 +10,7 @@ BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) #BuildRequires: -Requires: cuttlefish-base +Requires: nginx, openssl, bash, systemd-journal-remote, cuttlefish-base, cuttlefish-user %description diff --git a/tools/rpmbuild/SPECS/cuttlefish_user.spec b/tools/rpmbuild/SPECS/cuttlefish_user.spec index 97ac49916e..19fc3fb905 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_user.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_user.spec @@ -11,7 +11,7 @@ BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) #BuildRequires: -Requires: cuttlefish-base +Requires: openssl, cuttlefish-base %description @@ -24,6 +24,9 @@ Requires: cuttlefish-base cd ../../../frontend ./build-webui.sh +cd ../base/cvd +bazel query ... +bazel build cuttlefish:cuttlefish_common --spawn_strategy=local %install rm -rf $RPM_BUILD_ROOT @@ -40,8 +43,31 @@ for filename in $(ls %{srcpath}) ; do install -m 655 %{srcpath}/$filename %{buildroot}/usr/share/cuttlefish-common/operator/static/$filename done +%define srcpath ../../../frontend/src/host_orchestrator/host_orchestrator +for filename in $(ls %{srcpath}) ; do + install -m 655 %{srcpath}/$filename %{buildroot}/usr/lib/cuttlefish-common/bin/$filename +done + +%define srcpath ../../../frontend/src/operator/operator +for filename in $(ls %{srcpath}) ; do + install -m 655 %{srcpath}/$filename %{buildroot}/usr/lib/cuttlefish-common/bin/$filename +done + +%define srcpath ../../../frontend/src/operator/intercept +for filename in $(ls %{srcpath}) ; do + install -m 655 %{srcpath}/$filename %{buildroot}/usr/share/cuttlefish-common/operator/$filename +done + +%define srcpath ../../../frontend/src/operator/webui/dist/static +for filename in $(ls %{srcpath}) ; do + install -m 655 %{srcpath}/$filename %{buildroot}/usr/share/cuttlefish-common/operator/static/$filename +done + %files +/usr/bin/cvd_host_orchestrator +/usr/lib/cuttlefish-common/bin/host_orchestrator +/usr/lib/cuttlefish-common/bin/orchestrator /usr/share/cuttlefish-common/operator/static/index.html /usr/share/cuttlefish-common/operator/static/3rdpartylicenses.txt /usr/share/cuttlefish-common/operator/static/main.* @@ -49,6 +75,9 @@ done /usr/share/cuttlefish-common/operator/static/runtime.* /usr/share/cuttlefish-common/operator/static/styles.* +#/usr/share/doc/cuttlefish-user/changelog.gz +#/usr/share/doc/cuttlefish-user/copyright + #%%license add-license-file-here #%%doc add-docs-here From 9182d8964efa6d5a00d36d5cdcdd62538cd62a82 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Tue, 16 Jul 2024 22:14:28 +0200 Subject: [PATCH 18/31] package scripts added. --- base/rhel/cuttlefish.service | 17 +++++++++++ tools/rpmbuild/SPECS/cuttlefish_base.spec | 13 ++++++-- .../SPECS/cuttlefish_orchestration.spec | 30 +++++++++++++++++++ tools/rpmbuild/SPECS/cuttlefish_user.spec | 9 ++++++ 4 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 base/rhel/cuttlefish.service diff --git a/base/rhel/cuttlefish.service b/base/rhel/cuttlefish.service new file mode 100644 index 0000000000..c5903af257 --- /dev/null +++ b/base/rhel/cuttlefish.service @@ -0,0 +1,17 @@ +[Unit] +Description=Cuttlefish Host Resources +After=syslog.target network.target +Requires: libvirtd.service +StartLimitIntervalSec=0 + +[Service] +Type=simple +Restart=always +RestartSec=1 +ExecStart=/etc/rc.d/init.d/cuttlefish-host-resources start +StandardOutput=/var/log/cuttlefish_output.log +StandardError=/var/log/cuttlefish_error.log + +[Install] +WantedBy=multi-user.target + diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index 075be979c3..9a3460b3f4 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -10,10 +10,10 @@ BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: curl-devel, openssl-devel, protobuf-devel, protobuf-compiler -Requires: redhat-lsb-core, ebtables-legacy, iptables-legacy, bridge-utils, curl, dnsmasq, e2fsprogs, ebtables, iptables, bsdtar, libcurl, libdrm, mesa-libGL, libusb, libXext, net-tools, openssl, python3, util-linux +Requires: redhat-lsb-core, ebtables-legacy, iptables-legacy, bridge-utils, dnsmasq, libfdt, curl, e2fsprogs, ebtables, iptables, bsdtar, libcurl, libdrm, mesa-libGL, libusb, libXext, net-tools, openssl, python3, util-linux Requires: fmt-devel, gflags-devel, jsoncpp-devel, protobuf-devel, openssl-devel, libxml2-devel Requires: wayland-utils -#Requires: f2fs-tools, libfdt1, libx11-6, libz3-4 +#Requires: f2fs-tools, libx11-6, libz3-4 %description @@ -35,6 +35,7 @@ mkdir -p %{buildroot}/etc/rc.d/init.d mkdir -p %{buildroot}/etc/NetworkManager/conf.d mkdir -p %{buildroot}/etc/modules-load.d mkdir -p %{buildroot}/etc/security/limits.d +mkdir -p %{buildroot}/lib/systemd/system mkdir -p %{buildroot}/lib/udev/rules.d/ mkdir -p %{buildroot}/usr/share/doc/cuttlefish-base @@ -47,6 +48,9 @@ install -m 655 %{srcpath}/etc/security/limits.d/1_cuttlefish.conf %{buildroot}/e install -m 655 %{srcpath}/cuttlefish-base.cuttlefish-host-resources.default %{buildroot}/etc/default/cuttlefish-host-resources install -m 655 %{srcpath}/cuttlefish-base.cuttlefish-host-resources.init %{buildroot}/etc/rc.d/init.d/cuttlefish-host-resources +%define srcpath ../../../base/rhel +install -m 655 %{srcpath}/cuttlefish.service %{buildroot}/lib/systemd/system/cuttlefish.service + %define srcpath ../../../base/cvd/bazel-bin install -m 755 %{srcpath}/cuttlefish/cvd %{buildroot}/usr/lib/cuttlefish-common/bin/cvd @@ -63,8 +67,10 @@ ln -sf /usr/lib/cuttlefish-common/bin/cvd /usr/bin/cvd getent group cvdnetwork > /dev/null 2>&1 || groupadd --system cvdnetwork udevadm control --reload-rules && udevadm trigger systemctl restart NetworkManager +systemctl start cuttlefish %preun +systemctl stop cuttlefish rm /usr/bin/cvd %postun @@ -78,8 +84,9 @@ groupdel cvdnetwork /etc/NetworkManager/conf.d/99-cuttlefish.conf /etc/modules-load.d/cuttlefish-common.conf /etc/security/limits.d/1_cuttlefish.conf -/usr/lib/cuttlefish-common/bin/cvd /usr/bin/install_zip.sh +/lib/systemd/system/cuttlefish.service +/usr/lib/cuttlefish-common/bin/cvd /usr/lib/cuttlefish-common/bin/unpack_boot_image.py /usr/lib/cuttlefish-common/bin/capability_query.py /lib/udev/rules.d/60-cuttlefish-integration.rules diff --git a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec index 2074e1a414..764182e0b5 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec @@ -24,17 +24,47 @@ Requires: nginx, openssl, bash, systemd-journal-remote, cuttlefish-base, c %install rm -rf $RPM_BUILD_ROOT mkdir -p %{buildroot}/etc/default +mkdir -p %{buildroot}/etc/nginx/conf.d mkdir -p %{buildroot}/etc/rc.d/init.d mkdir -p %{buildroot}/etc/sudoers.d mkdir -p %{buildroot}/usr/bin mkdir -p %{buildroot}/usr/share/doc/cuttlefish-orchestration +%define srcpath ../../../frontend/host/packages/cuttlefish-orchestration +install -m 655 %{srcpath}/etc/nginx/conf.d/cuttlefish-orchestration.conf %{buildroot}/etc/nginx/conf.d/cuttlefish-orchestration.conf +install -m 655 %{srcpath}/etc/sudoers.d/etc/sudoers.d/cuttlefish-orchestration %{buildroot}/etc/sudoers.d/cuttlefish-orchestration + + %files +/etc/nginx/conf.d/cuttlefish-orchestration.conf +/etc/sudoers.d/cuttlefish-orchestration #%%license add-license-file-here #%%doc add-docs-here +%post +if ! getent passwd _cvd-executor > /dev/null 2>&1 then + adduser --system --disabled-password --disabled-login --home /var/empty \ + --no-create-home --quiet --force-badname --group _cvd-executor + # The cvdnetwork group is created by cuttlefish-base + usermod -a -G cvdnetwork,kvm _cvd-executor +fi + +# Reload nginx having the orchestration configuration +service nginx reload + +%preun +systemctl stop cuttlefish +rm /usr/bin/cvd + +%postun +userdel _cvd-executor +groupdel _cvd-executor + +# Reload nginx without the orchestration configuration +service nginx reload + %changelog * Thu Jul 11 2024 Martin Zeitler - Initial version. diff --git a/tools/rpmbuild/SPECS/cuttlefish_user.spec b/tools/rpmbuild/SPECS/cuttlefish_user.spec index 19fc3fb905..649577b57b 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_user.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_user.spec @@ -81,6 +81,15 @@ done #%%license add-license-file-here #%%doc add-docs-here +%post +if ! getent passwd _cutf-operator > /dev/null 2>&1 then + # The cvdnetwork group is created by cuttlefish-base + adduser --system --disabled-password --disabled-login --home /var/empty \ + --no-create-home --quiet --force-badname --ingroup cvdnetwork _cutf-operator +fi + +%postun +userdel _cutf-operator %changelog * Thu Jul 11 2024 Martin Zeitler From e5ba90483d4e4e232bb68ececc4fdbcf1202351e Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Tue, 16 Jul 2024 23:59:28 +0200 Subject: [PATCH 19/31] package scripts added. --- tools/rpmbuild/SPECS/cuttlefish_base.spec | 5 +- .../SPECS/cuttlefish_orchestration.spec | 24 ++++---- tools/rpmbuild/SPECS/cuttlefish_user.spec | 57 ++++++++++--------- 3 files changed, 44 insertions(+), 42 deletions(-) diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index 9a3460b3f4..71395b8931 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -23,7 +23,6 @@ Requires: wayland-utils %build cd ../../../base/cvd -bazel query ... bazel build cuttlefish:cvd --spawn_strategy=local %install @@ -67,10 +66,10 @@ ln -sf /usr/lib/cuttlefish-common/bin/cvd /usr/bin/cvd getent group cvdnetwork > /dev/null 2>&1 || groupadd --system cvdnetwork udevadm control --reload-rules && udevadm trigger systemctl restart NetworkManager -systemctl start cuttlefish +# systemctl start cuttlefish %preun -systemctl stop cuttlefish +# systemctl stop cuttlefish rm /usr/bin/cvd %postun diff --git a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec index 764182e0b5..275151c29c 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec @@ -32,7 +32,7 @@ mkdir -p %{buildroot}/usr/share/doc/cuttlefish-orchestration %define srcpath ../../../frontend/host/packages/cuttlefish-orchestration install -m 655 %{srcpath}/etc/nginx/conf.d/cuttlefish-orchestration.conf %{buildroot}/etc/nginx/conf.d/cuttlefish-orchestration.conf -install -m 655 %{srcpath}/etc/sudoers.d/etc/sudoers.d/cuttlefish-orchestration %{buildroot}/etc/sudoers.d/cuttlefish-orchestration +install -m 655 %{srcpath}/etc/sudoers.d/cuttlefish-orchestration %{buildroot}/etc/sudoers.d/cuttlefish-orchestration %files @@ -44,26 +44,28 @@ install -m 655 %{srcpath}/etc/sudoers.d/etc/sudoers.d/cuttlefish-orchestration % %post -if ! getent passwd _cvd-executor > /dev/null 2>&1 then - adduser --system --disabled-password --disabled-login --home /var/empty \ - --no-create-home --quiet --force-badname --group _cvd-executor - # The cvdnetwork group is created by cuttlefish-base +# The cvdnetwork group is created by cuttlefish-base +if ! getent passwd _cvd-executor > /dev/null 2>&1; then + adduser --system --home /var/empty --no-create-home _cvd-executor + # getent group _cvd-executor || groupadd _cvd-executor usermod -a -G cvdnetwork,kvm _cvd-executor fi # Reload nginx having the orchestration configuration -service nginx reload +# service nginx reload %preun -systemctl stop cuttlefish -rm /usr/bin/cvd + %postun -userdel _cvd-executor -groupdel _cvd-executor +if getent passwd _cvd-executor > /dev/null 2>&1; then + userdel _cvd-executor + groupdel _cvd-executor +fi + # Reload nginx without the orchestration configuration -service nginx reload +# service nginx reload %changelog * Thu Jul 11 2024 Martin Zeitler diff --git a/tools/rpmbuild/SPECS/cuttlefish_user.spec b/tools/rpmbuild/SPECS/cuttlefish_user.spec index 649577b57b..4aef5728bb 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_user.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_user.spec @@ -10,7 +10,7 @@ URL: https://github.com/google/android-cuttlefish BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -#BuildRequires: +BuildRequires: golang-bin Requires: openssl, cuttlefish-base %description @@ -25,38 +25,30 @@ cd ../../../frontend ./build-webui.sh cd ../base/cvd -bazel query ... bazel build cuttlefish:cuttlefish_common --spawn_strategy=local +cd ../../frontend/src/host_orchestrator +go build + +cd ../operator +go build + %install rm -rf $RPM_BUILD_ROOT mkdir -p %{buildroot}/etc/default mkdir -p %{buildroot}/etc/rc.d/init.d mkdir -p %{buildroot}/usr/bin mkdir -p %{buildroot}/usr/lib/cuttlefish-common/bin -mkdir -p %{buildroot}/usr/share/cuttlefish-common/operator/intercept +mkdir -p %{buildroot}/usr/share/cuttlefish-common/operator/intercept/js mkdir -p %{buildroot}/usr/share/cuttlefish-common/operator/static mkdir -p %{buildroot}/usr/share/doc/cuttlefish-user -%define srcpath ../../../frontend/src/operator/webui/dist/static -for filename in $(ls %{srcpath}) ; do - install -m 655 %{srcpath}/$filename %{buildroot}/usr/share/cuttlefish-common/operator/static/$filename -done -%define srcpath ../../../frontend/src/host_orchestrator/host_orchestrator -for filename in $(ls %{srcpath}) ; do - install -m 655 %{srcpath}/$filename %{buildroot}/usr/lib/cuttlefish-common/bin/$filename -done - -%define srcpath ../../../frontend/src/operator/operator -for filename in $(ls %{srcpath}) ; do - install -m 655 %{srcpath}/$filename %{buildroot}/usr/lib/cuttlefish-common/bin/$filename -done - -%define srcpath ../../../frontend/src/operator/intercept -for filename in $(ls %{srcpath}) ; do - install -m 655 %{srcpath}/$filename %{buildroot}/usr/share/cuttlefish-common/operator/$filename -done +%define srcpath ../../../frontend/src +install -m 655 %{srcpath}/host_orchestrator/host_orchestrator %{buildroot}/usr/lib/cuttlefish-common/bin/host_orchestrator +install -m 655 %{srcpath}/operator/operator %{buildroot}/usr/lib/cuttlefish-common/bin/operator +install -m 655 %{srcpath}/operator/intercept/js/server_connector.d.ts %{buildroot}/usr/share/cuttlefish-common/operator/intercept/js/server_connector.d.ts +install -m 655 %{srcpath}//operator/intercept/js/server_connector.js %{buildroot}/usr/share/cuttlefish-common/operator/intercept/js/server_connector.js %define srcpath ../../../frontend/src/operator/webui/dist/static for filename in $(ls %{srcpath}) ; do @@ -65,9 +57,12 @@ done %files -/usr/bin/cvd_host_orchestrator /usr/lib/cuttlefish-common/bin/host_orchestrator -/usr/lib/cuttlefish-common/bin/orchestrator +/usr/lib/cuttlefish-common/bin/operator + +/usr/share/cuttlefish-common/operator/intercept/js/server_connector.d.ts +/usr/share/cuttlefish-common/operator/intercept/js/server_connector.js + /usr/share/cuttlefish-common/operator/static/index.html /usr/share/cuttlefish-common/operator/static/3rdpartylicenses.txt /usr/share/cuttlefish-common/operator/static/main.* @@ -82,14 +77,20 @@ done #%%doc add-docs-here %post -if ! getent passwd _cutf-operator > /dev/null 2>&1 then - # The cvdnetwork group is created by cuttlefish-base - adduser --system --disabled-password --disabled-login --home /var/empty \ - --no-create-home --quiet --force-badname --ingroup cvdnetwork _cutf-operator +ln -sf /usr/lib/cuttlefish-common/bin/host_orchestrator /usr/bin/cvd_host_orchestrator +# The cvdnetwork group is created by cuttlefish-base +if ! getent passwd _cutf-operator > /dev/null 2>&1; then + adduser --system --home /var/empty --no-create-home --gid cvdnetwork _cutf-operator fi +%preun +rm /usr/bin/cvd_host_orchestrator + %postun -userdel _cutf-operator +if getent passwd _cutf-operator > /dev/null 2>&1; then + userdel _cutf-operator +fi + %changelog * Thu Jul 11 2024 Martin Zeitler From ddbabb61b01ed5deb84546402f4dcf02f4d99f4c Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Wed, 17 Jul 2024 00:48:54 +0200 Subject: [PATCH 20/31] package scripts added. --- tools/rpmbuild/SPECS/cuttlefish_base.spec | 11 ++++++++--- tools/rpmbuild/SPECS/cuttlefish_integration.spec | 10 ++++++++++ tools/rpmbuild/SPECS/cuttlefish_orchestration.spec | 9 +++------ tools/rpmbuild/SPECS/cuttlefish_user.spec | 5 +---- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index 71395b8931..b876b02119 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -21,10 +21,12 @@ Requires: wayland-utils %prep %define workdir `pwd` + %build cd ../../../base/cvd bazel build cuttlefish:cvd --spawn_strategy=local + %install rm -rf $RPM_BUILD_ROOT mkdir -p %{buildroot}/usr/bin @@ -66,16 +68,19 @@ ln -sf /usr/lib/cuttlefish-common/bin/cvd /usr/bin/cvd getent group cvdnetwork > /dev/null 2>&1 || groupadd --system cvdnetwork udevadm control --reload-rules && udevadm trigger systemctl restart NetworkManager -# systemctl start cuttlefish + %preun -# systemctl stop cuttlefish rm /usr/bin/cvd + %postun udevadm control --reload-rules && udevadm trigger systemctl restart NetworkManager -groupdel cvdnetwork +if getent group cvdnetwork > /dev/null 2>&1 ; then + groupdel cvdnetwork +fi + %files /etc/default/cuttlefish-host-resources diff --git a/tools/rpmbuild/SPECS/cuttlefish_integration.spec b/tools/rpmbuild/SPECS/cuttlefish_integration.spec index 5884097518..7d681bba73 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_integration.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_integration.spec @@ -59,6 +59,16 @@ udevadm control --reload-rules && udevadm trigger #%%license add-license-file-here #%%doc add-docs-here +%post +systemctl restart systemd-modules-load.service +systemctl reload rsyslog.service + +%preun + + +%postun +systemctl restart systemd-modules-load.service +systemctl reload rsyslog.service %changelog * Thu Jul 11 2024 Martin Zeitler diff --git a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec index 275151c29c..c90a345d44 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec @@ -45,14 +45,13 @@ install -m 655 %{srcpath}/etc/sudoers.d/cuttlefish-orchestration %{buildroot}/et %post # The cvdnetwork group is created by cuttlefish-base -if ! getent passwd _cvd-executor > /dev/null 2>&1; then +if ! getent passwd _cvd-executor > /dev/null 2>&1 ; then adduser --system --home /var/empty --no-create-home _cvd-executor - # getent group _cvd-executor || groupadd _cvd-executor usermod -a -G cvdnetwork,kvm _cvd-executor fi # Reload nginx having the orchestration configuration -# service nginx reload +systemctl try-reload-or-restart nginx.service %preun @@ -60,12 +59,10 @@ fi %postun if getent passwd _cvd-executor > /dev/null 2>&1; then userdel _cvd-executor - groupdel _cvd-executor fi - # Reload nginx without the orchestration configuration -# service nginx reload +systemctl try-reload-or-restart nginx.service %changelog * Thu Jul 11 2024 Martin Zeitler diff --git a/tools/rpmbuild/SPECS/cuttlefish_user.spec b/tools/rpmbuild/SPECS/cuttlefish_user.spec index 4aef5728bb..9e52e73175 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_user.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_user.spec @@ -24,9 +24,6 @@ Requires: openssl, cuttlefish-base cd ../../../frontend ./build-webui.sh -cd ../base/cvd -bazel build cuttlefish:cuttlefish_common --spawn_strategy=local - cd ../../frontend/src/host_orchestrator go build @@ -79,7 +76,7 @@ done %post ln -sf /usr/lib/cuttlefish-common/bin/host_orchestrator /usr/bin/cvd_host_orchestrator # The cvdnetwork group is created by cuttlefish-base -if ! getent passwd _cutf-operator > /dev/null 2>&1; then +if ! getent passwd _cutf-operator > /dev/null 2>&1 ; then adduser --system --home /var/empty --no-create-home --gid cvdnetwork _cutf-operator fi From ab91abc3c785353a2be4b2ed4f1e8443e01ba249 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Wed, 17 Jul 2024 00:52:52 +0200 Subject: [PATCH 21/31] default init-script info header added. --- .../cuttlefish-base.cuttlefish-host-resources.init | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/base/debian/cuttlefish-base.cuttlefish-host-resources.init b/base/debian/cuttlefish-base.cuttlefish-host-resources.init index bd384595dd..c4485b7263 100755 --- a/base/debian/cuttlefish-base.cuttlefish-host-resources.init +++ b/base/debian/cuttlefish-base.cuttlefish-host-resources.init @@ -28,6 +28,16 @@ # Make sure calls to this script get redirected to systemctl when # using systemd +### BEGIN INIT INFO +# Provides: cuttlefish-host-resources +# Required-Start: $syslog +# Required-Stop: $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start daemon at boot time +# Description: Enable service provided by daemon. +### END INIT INFO + # some system may not support bridge type by default modprobe bridge From ebeb6245c4f8b879b3898995afa66198ec55bd8d Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Wed, 17 Jul 2024 00:58:39 +0200 Subject: [PATCH 22/31] package scripts added. --- tools/rpmbuild/SPECS/cuttlefish_integration.spec | 5 ----- tools/rpmbuild/SPECS/cuttlefish_user.spec | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/tools/rpmbuild/SPECS/cuttlefish_integration.spec b/tools/rpmbuild/SPECS/cuttlefish_integration.spec index 7d681bba73..64130e4d7e 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_integration.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_integration.spec @@ -44,11 +44,6 @@ install -m 655 %{srcpath}/cuttlefish-integration.udev %{buildroot}/lib/udev/rule # install -m 655 %{srcpath}/usr/share/doc/copyright %{buildroot}/usr/share/doc/copyright -%post -getent group cvdnetwork || groupadd cvdnetwork -udevadm control --reload-rules && udevadm trigger - - %files /etc/default/instance_configs.cfg.template /etc/modprobe.d/cuttlefish-integration.conf diff --git a/tools/rpmbuild/SPECS/cuttlefish_user.spec b/tools/rpmbuild/SPECS/cuttlefish_user.spec index 9e52e73175..f5cc1fc937 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_user.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_user.spec @@ -24,7 +24,7 @@ Requires: openssl, cuttlefish-base cd ../../../frontend ./build-webui.sh -cd ../../frontend/src/host_orchestrator +cd src/host_orchestrator go build cd ../operator From dcaf16f58f065a3fa1df6524c55c71a883100037 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Wed, 17 Jul 2024 01:43:54 +0200 Subject: [PATCH 23/31] package scripts added. --- base/debian/cuttlefish-base.cuttlefish-host-resources.init | 7 ++++++- base/rhel/cuttlefish.service | 4 +--- tools/rpmbuild/SPECS/cuttlefish_base.spec | 5 ++++- tools/rpmbuild/SPECS/cuttlefish_orchestration.spec | 2 +- tools/rpmbuild/SPECS/cuttlefish_user.spec | 6 +++--- 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/base/debian/cuttlefish-base.cuttlefish-host-resources.init b/base/debian/cuttlefish-base.cuttlefish-host-resources.init index c4485b7263..ed644d17f3 100755 --- a/base/debian/cuttlefish-base.cuttlefish-host-resources.init +++ b/base/debian/cuttlefish-base.cuttlefish-host-resources.init @@ -363,7 +363,12 @@ case "$1" in # Nothing to do; we reread configuration on each invocation ;; status) - rh_status + # command `rh_status` may not be available. + if command -v rh_status > /dev/null ; then + rh_status + else + systemctl status cuttlefish.service + fi ;; shutdown) stop diff --git a/base/rhel/cuttlefish.service b/base/rhel/cuttlefish.service index c5903af257..e443466836 100644 --- a/base/rhel/cuttlefish.service +++ b/base/rhel/cuttlefish.service @@ -1,7 +1,7 @@ [Unit] Description=Cuttlefish Host Resources After=syslog.target network.target -Requires: libvirtd.service +Requires=libvirtd.service StartLimitIntervalSec=0 [Service] @@ -9,8 +9,6 @@ Type=simple Restart=always RestartSec=1 ExecStart=/etc/rc.d/init.d/cuttlefish-host-resources start -StandardOutput=/var/log/cuttlefish_output.log -StandardError=/var/log/cuttlefish_error.log [Install] WantedBy=multi-user.target diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index b876b02119..951cbd568a 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -68,15 +68,18 @@ ln -sf /usr/lib/cuttlefish-common/bin/cvd /usr/bin/cvd getent group cvdnetwork > /dev/null 2>&1 || groupadd --system cvdnetwork udevadm control --reload-rules && udevadm trigger systemctl restart NetworkManager - +systemctl daemon-reload +systemctl start cuttlefish %preun +systemctl stop cuttlefish rm /usr/bin/cvd %postun udevadm control --reload-rules && udevadm trigger systemctl restart NetworkManager +systemctl daemon-reload if getent group cvdnetwork > /dev/null 2>&1 ; then groupdel cvdnetwork fi diff --git a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec index c90a345d44..24e99fe58f 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec @@ -46,7 +46,7 @@ install -m 655 %{srcpath}/etc/sudoers.d/cuttlefish-orchestration %{buildroot}/et %post # The cvdnetwork group is created by cuttlefish-base if ! getent passwd _cvd-executor > /dev/null 2>&1 ; then - adduser --system --home /var/empty --no-create-home _cvd-executor + adduser --system --shell /sbin/nologin --home /var/empty --no-create-home _cvd-executor usermod -a -G cvdnetwork,kvm _cvd-executor fi diff --git a/tools/rpmbuild/SPECS/cuttlefish_user.spec b/tools/rpmbuild/SPECS/cuttlefish_user.spec index f5cc1fc937..0a6f554a85 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_user.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_user.spec @@ -42,8 +42,8 @@ mkdir -p %{buildroot}/usr/share/doc/cuttlefish-user %define srcpath ../../../frontend/src -install -m 655 %{srcpath}/host_orchestrator/host_orchestrator %{buildroot}/usr/lib/cuttlefish-common/bin/host_orchestrator -install -m 655 %{srcpath}/operator/operator %{buildroot}/usr/lib/cuttlefish-common/bin/operator +install -m 755 %{srcpath}/host_orchestrator/host_orchestrator %{buildroot}/usr/lib/cuttlefish-common/bin/host_orchestrator +install -m 755 %{srcpath}/operator/operator %{buildroot}/usr/lib/cuttlefish-common/bin/operator install -m 655 %{srcpath}/operator/intercept/js/server_connector.d.ts %{buildroot}/usr/share/cuttlefish-common/operator/intercept/js/server_connector.d.ts install -m 655 %{srcpath}//operator/intercept/js/server_connector.js %{buildroot}/usr/share/cuttlefish-common/operator/intercept/js/server_connector.js @@ -77,7 +77,7 @@ done ln -sf /usr/lib/cuttlefish-common/bin/host_orchestrator /usr/bin/cvd_host_orchestrator # The cvdnetwork group is created by cuttlefish-base if ! getent passwd _cutf-operator > /dev/null 2>&1 ; then - adduser --system --home /var/empty --no-create-home --gid cvdnetwork _cutf-operator + adduser --system --shell /sbin/nologin --home /var/empty --no-create-home --gid cvdnetwork _cutf-operator fi %preun From 6ff8942de29c824e1cc00b2a67713fe94e778124 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Wed, 17 Jul 2024 01:45:48 +0200 Subject: [PATCH 24/31] npm audit fix (reverted from commit 471937df9f51d2b7ee44195295f1d6199fec4997) --- frontend/src/operator/webui/package-lock.json | 823 +++++++----------- 1 file changed, 315 insertions(+), 508 deletions(-) diff --git a/frontend/src/operator/webui/package-lock.json b/frontend/src/operator/webui/package-lock.json index b03c0d87bb..ea9d21aff7 100644 --- a/frontend/src/operator/webui/package-lock.json +++ b/frontend/src/operator/webui/package-lock.json @@ -226,9 +226,9 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -361,12 +361,12 @@ "dev": true }, "node_modules/@angular-devkit/schematics": { - "version": "15.2.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.11.tgz", - "integrity": "sha512-Wfj0FO8lcGqOkg7GTYOGUsAHqTS9GMfGXTAGsM/8g0SZI4kaPy/luZSPFtevpFE5PSR6dyWSIC0GgzfavjhJMg==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.6.tgz", + "integrity": "sha512-f7VgnAcok7AwR/DhX0ZWskB0rFBo/KsvtIUA2qZSrpKMf8eFiwu03dv/b2mI0vnf+1FBfIQzJvO0ww45zRp6dA==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.2.11", + "@angular-devkit/core": "15.2.6", "jsonc-parser": "3.2.0", "magic-string": "0.29.0", "ora": "5.4.1", @@ -378,32 +378,6 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { - "version": "15.2.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.11.tgz", - "integrity": "sha512-zd6QelJ8pOPvz6TsehR0JqixjDjzgEOkKywBJBuwNXY+Nw3MJGayJeWS0UgC+Gk+LoTkpI21RoyaYELkAmD/tw==", - "dev": true, - "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, "node_modules/@angular-devkit/schematics/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -453,15 +427,15 @@ } }, "node_modules/@angular/cli": { - "version": "15.2.11", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.2.11.tgz", - "integrity": "sha512-fsIMvUWVCZM3qQSKZXR0yHTXxvoNrbs/PDUsGhRjWZrfUDHBCzMmKral5x8onMA/KPU9O3JiolKjiKVwzkudJA==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.2.6.tgz", + "integrity": "sha512-wNkQ/qCVbd4pERaGVagKJPifEvjRNY5otwsd4iRVubY/XOcIHcYChUThZwgQdVfNAImfJPMZNrhbGxejuWLA9w==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1502.11", - "@angular-devkit/core": "15.2.11", - "@angular-devkit/schematics": "15.2.11", - "@schematics/angular": "15.2.11", + "@angular-devkit/architect": "0.1502.6", + "@angular-devkit/core": "15.2.6", + "@angular-devkit/schematics": "15.2.6", + "@schematics/angular": "15.2.6", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "3.0.1", @@ -473,7 +447,7 @@ "ora": "5.4.1", "pacote": "15.1.0", "resolve": "1.22.1", - "semver": "7.5.3", + "semver": "7.3.8", "symbol-observable": "4.0.0", "yargs": "17.6.2" }, @@ -486,65 +460,33 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { - "version": "0.1502.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1502.11.tgz", - "integrity": "sha512-+hkG5UjIaKMRdo6SFLNQs+Cv7yAVeN8ijfDwI2z/mp7/otowuSEy+H3Tii195jfJ8TQ+y1B7svnx2D6O7oOYbQ==", + "node_modules/@angular/cli/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.2.11", - "rxjs": "6.6.7" + "yallist": "^4.0.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">=10" } }, - "node_modules/@angular/cli/node_modules/@angular-devkit/core": { - "version": "15.2.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.11.tgz", - "integrity": "sha512-zd6QelJ8pOPvz6TsehR0JqixjDjzgEOkKywBJBuwNXY+Nw3MJGayJeWS0UgC+Gk+LoTkpI21RoyaYELkAmD/tw==", + "node_modules/@angular/cli/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" + "lru-cache": "^6.0.0" }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@angular/cli/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "npm": ">=2.0.0" + "node": ">=10" } }, - "node_modules/@angular/cli/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/@angular/common": { "version": "15.2.7", "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.2.7.tgz", @@ -831,9 +773,9 @@ } }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -912,9 +854,9 @@ } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -976,9 +918,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -2155,9 +2097,9 @@ } }, "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -2360,9 +2302,9 @@ } }, "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -4098,13 +4040,13 @@ } }, "node_modules/@schematics/angular": { - "version": "15.2.11", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.2.11.tgz", - "integrity": "sha512-z38f9abwfzUGe9TEIggf3igpVf/ylmSlHy1jydAxXbeKv24ejg8m5dYBPH2/MvgUFP6tjHdxjKD56DnOdyKl3g==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.2.6.tgz", + "integrity": "sha512-OcBUvVAxZEMBX+fi0ytybeAdmStra+GwtlvipS70yOxcAgJ84ZrnZGN7a072cCVQcq7AgqUfssnyqCx1wu+yCg==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.2.11", - "@angular-devkit/schematics": "15.2.11", + "@angular-devkit/core": "15.2.6", + "@angular-devkit/schematics": "15.2.6", "jsonc-parser": "3.2.0" }, "engines": { @@ -4113,50 +4055,6 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { - "version": "15.2.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.11.tgz", - "integrity": "sha512-zd6QelJ8pOPvz6TsehR0JqixjDjzgEOkKywBJBuwNXY+Nw3MJGayJeWS0UgC+Gk+LoTkpI21RoyaYELkAmD/tw==", - "dev": true, - "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@schematics/angular/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@schematics/angular/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/@sigstore/protobuf-specs": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", @@ -4167,9 +4065,9 @@ } }, "node_modules/@socket.io/component-emitter": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", - "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", "dev": true }, "node_modules/@tootallnate/once": { @@ -4263,9 +4161,9 @@ "dev": true }, "node_modules/@types/cors": { - "version": "2.8.17", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", - "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "version": "2.8.13", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", + "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", "dev": true, "dependencies": { "@types/node": "*" @@ -5172,9 +5070,9 @@ } }, "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -5276,13 +5174,13 @@ } }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dev": true, "dependencies": { "bytes": "3.1.2", - "content-type": "~1.0.5", + "content-type": "~1.0.4", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -5290,7 +5188,7 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.2", + "raw-body": "2.5.1", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -5342,12 +5240,12 @@ } }, "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { - "fill-range": "^7.1.1" + "fill-range": "^7.0.1" }, "engines": { "node": ">=8" @@ -5851,9 +5749,9 @@ ] }, "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", "dev": true, "engines": { "node": ">= 0.6" @@ -6478,9 +6376,9 @@ } }, "node_modules/engine.io": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", - "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz", + "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==", "dev": true, "dependencies": { "@types/cookie": "^0.4.1", @@ -6491,17 +6389,17 @@ "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.17.1" + "engine.io-parser": "~5.0.3", + "ws": "~8.11.0" }, "engines": { - "node": ">=10.2.0" + "node": ">=10.0.0" } }, "node_modules/engine.io-parser": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", - "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", + "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", "dev": true, "engines": { "node": ">=10.0.0" @@ -6830,9 +6728,9 @@ } }, "node_modules/eslint-plugin-node/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -7347,17 +7245,17 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -7395,9 +7293,9 @@ "dev": true }, "node_modules/express/node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "dev": true, "engines": { "node": ">= 0.6" @@ -7574,9 +7472,9 @@ } }, "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -7680,9 +7578,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "dev": true, "funding": [ { @@ -8622,23 +8520,10 @@ "node": ">=8" } }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dev": true, - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/ip-address/node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "node_modules/ip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", + "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", "dev": true }, "node_modules/ipaddr.js": { @@ -8874,9 +8759,9 @@ } }, "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -9016,12 +8901,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true - }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -9403,9 +9282,9 @@ } }, "node_modules/less/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "optional": true, "bin": { @@ -9651,9 +9530,9 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -11632,9 +11511,9 @@ } }, "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dev": true, "dependencies": { "bytes": "3.1.2", @@ -11785,9 +11664,9 @@ } }, "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" @@ -12277,9 +12156,9 @@ } }, "node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -12619,37 +12498,35 @@ } }, "node_modules/socket.io": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", - "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", + "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==", "dev": true, "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", - "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.5.2", + "engine.io": "~6.4.1", "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.4" + "socket.io-parser": "~4.2.1" }, "engines": { - "node": ">=10.2.0" + "node": ">=10.0.0" } }, "node_modules/socket.io-adapter": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", - "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", "dev": true, "dependencies": { - "debug": "~4.3.4", - "ws": "~8.17.1" + "ws": "~8.11.0" } }, "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.3.tgz", + "integrity": "sha512-JMafRntWVO2DCJimKsRTh/wnqVvO4hrfwOqtO7f+uzwsQMuxO6VwImtYxaQ+ieoyshWOTJyV0fA21lccEXRPpQ==", "dev": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", @@ -12671,16 +12548,16 @@ } }, "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dev": true, "dependencies": { - "ip-address": "^9.0.5", + "ip": "^2.0.0", "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.0.0", + "node": ">= 10.13.0", "npm": ">= 3.0.0" } }, @@ -13002,14 +12879,14 @@ } }, "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", + "minipass": "^4.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -13042,15 +12919,6 @@ "node": ">=8" } }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/terser": { "version": "5.16.3", "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz", @@ -13800,9 +13668,9 @@ } }, "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", "dev": true, "dependencies": { "colorette": "^2.0.10", @@ -13822,6 +13690,27 @@ "webpack": "^4.0.0 || ^5.0.0" } }, + "node_modules/webpack-dev-server/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==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/webpack-merge": { "version": "5.8.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", @@ -14043,16 +13932,16 @@ } }, "node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -14280,9 +14169,9 @@ }, "dependencies": { "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -14382,31 +14271,18 @@ } }, "@angular-devkit/schematics": { - "version": "15.2.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.11.tgz", - "integrity": "sha512-Wfj0FO8lcGqOkg7GTYOGUsAHqTS9GMfGXTAGsM/8g0SZI4kaPy/luZSPFtevpFE5PSR6dyWSIC0GgzfavjhJMg==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.6.tgz", + "integrity": "sha512-f7VgnAcok7AwR/DhX0ZWskB0rFBo/KsvtIUA2qZSrpKMf8eFiwu03dv/b2mI0vnf+1FBfIQzJvO0ww45zRp6dA==", "dev": true, "requires": { - "@angular-devkit/core": "15.2.11", + "@angular-devkit/core": "15.2.6", "jsonc-parser": "3.2.0", "magic-string": "0.29.0", "ora": "5.4.1", "rxjs": "6.6.7" }, "dependencies": { - "@angular-devkit/core": { - "version": "15.2.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.11.tgz", - "integrity": "sha512-zd6QelJ8pOPvz6TsehR0JqixjDjzgEOkKywBJBuwNXY+Nw3MJGayJeWS0UgC+Gk+LoTkpI21RoyaYELkAmD/tw==", - "dev": true, - "requires": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - } - }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -14442,15 +14318,15 @@ } }, "@angular/cli": { - "version": "15.2.11", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.2.11.tgz", - "integrity": "sha512-fsIMvUWVCZM3qQSKZXR0yHTXxvoNrbs/PDUsGhRjWZrfUDHBCzMmKral5x8onMA/KPU9O3JiolKjiKVwzkudJA==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.2.6.tgz", + "integrity": "sha512-wNkQ/qCVbd4pERaGVagKJPifEvjRNY5otwsd4iRVubY/XOcIHcYChUThZwgQdVfNAImfJPMZNrhbGxejuWLA9w==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1502.11", - "@angular-devkit/core": "15.2.11", - "@angular-devkit/schematics": "15.2.11", - "@schematics/angular": "15.2.11", + "@angular-devkit/architect": "0.1502.6", + "@angular-devkit/core": "15.2.6", + "@angular-devkit/schematics": "15.2.6", + "@schematics/angular": "15.2.6", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "3.0.1", @@ -14462,48 +14338,28 @@ "ora": "5.4.1", "pacote": "15.1.0", "resolve": "1.22.1", - "semver": "7.5.3", + "semver": "7.3.8", "symbol-observable": "4.0.0", "yargs": "17.6.2" }, "dependencies": { - "@angular-devkit/architect": { - "version": "0.1502.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1502.11.tgz", - "integrity": "sha512-+hkG5UjIaKMRdo6SFLNQs+Cv7yAVeN8ijfDwI2z/mp7/otowuSEy+H3Tii195jfJ8TQ+y1B7svnx2D6O7oOYbQ==", - "dev": true, - "requires": { - "@angular-devkit/core": "15.2.11", - "rxjs": "6.6.7" - } - }, - "@angular-devkit/core": { - "version": "15.2.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.11.tgz", - "integrity": "sha512-zd6QelJ8pOPvz6TsehR0JqixjDjzgEOkKywBJBuwNXY+Nw3MJGayJeWS0UgC+Gk+LoTkpI21RoyaYELkAmD/tw==", + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "requires": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" + "yallist": "^4.0.0" } }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { - "tslib": "^1.9.0" + "lru-cache": "^6.0.0" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true } } }, @@ -14693,9 +14549,9 @@ }, "dependencies": { "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -14757,9 +14613,9 @@ }, "dependencies": { "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -14805,9 +14661,9 @@ }, "dependencies": { "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -15598,9 +15454,9 @@ }, "dependencies": { "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -15754,9 +15610,9 @@ }, "dependencies": { "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -17156,44 +17012,14 @@ } }, "@schematics/angular": { - "version": "15.2.11", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.2.11.tgz", - "integrity": "sha512-z38f9abwfzUGe9TEIggf3igpVf/ylmSlHy1jydAxXbeKv24ejg8m5dYBPH2/MvgUFP6tjHdxjKD56DnOdyKl3g==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.2.6.tgz", + "integrity": "sha512-OcBUvVAxZEMBX+fi0ytybeAdmStra+GwtlvipS70yOxcAgJ84ZrnZGN7a072cCVQcq7AgqUfssnyqCx1wu+yCg==", "dev": true, "requires": { - "@angular-devkit/core": "15.2.11", - "@angular-devkit/schematics": "15.2.11", + "@angular-devkit/core": "15.2.6", + "@angular-devkit/schematics": "15.2.6", "jsonc-parser": "3.2.0" - }, - "dependencies": { - "@angular-devkit/core": { - "version": "15.2.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.11.tgz", - "integrity": "sha512-zd6QelJ8pOPvz6TsehR0JqixjDjzgEOkKywBJBuwNXY+Nw3MJGayJeWS0UgC+Gk+LoTkpI21RoyaYELkAmD/tw==", - "dev": true, - "requires": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - } - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "@sigstore/protobuf-specs": { @@ -17203,9 +17029,9 @@ "dev": true }, "@socket.io/component-emitter": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", - "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", "dev": true }, "@tootallnate/once": { @@ -17286,9 +17112,9 @@ "dev": true }, "@types/cors": { - "version": "2.8.17", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", - "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "version": "2.8.13", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", + "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", "dev": true, "requires": { "@types/node": "*" @@ -17993,9 +17819,9 @@ }, "dependencies": { "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -18067,13 +17893,13 @@ } }, "body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dev": true, "requires": { "bytes": "3.1.2", - "content-type": "~1.0.5", + "content-type": "~1.0.4", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -18081,7 +17907,7 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.2", + "raw-body": "2.5.1", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -18131,12 +17957,12 @@ } }, "braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "fill-range": "^7.1.1" + "fill-range": "^7.0.1" } }, "browserslist": { @@ -18501,9 +18327,9 @@ } }, "content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", "dev": true }, "convert-source-map": { @@ -18979,9 +18805,9 @@ } }, "engine.io": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", - "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz", + "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==", "dev": true, "requires": { "@types/cookie": "^0.4.1", @@ -18992,14 +18818,14 @@ "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.17.1" + "engine.io-parser": "~5.0.3", + "ws": "~8.11.0" } }, "engine.io-parser": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", - "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", + "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", "dev": true }, "enhanced-resolve": { @@ -19452,9 +19278,9 @@ } }, "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -19606,17 +19432,17 @@ } }, "express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -19651,9 +19477,9 @@ "dev": true }, "cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "dev": true }, "debug": { @@ -19791,9 +19617,9 @@ } }, "fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { "to-regex-range": "^5.0.1" @@ -19878,9 +19704,9 @@ "dev": true }, "follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "dev": true }, "forwarded": { @@ -20587,23 +20413,11 @@ } } }, - "ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dev": true, - "requires": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "dependencies": { - "sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true - } - } + "ip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", + "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", + "dev": true }, "ipaddr.js": { "version": "2.0.1", @@ -20766,9 +20580,9 @@ }, "dependencies": { "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -20880,12 +20694,6 @@ "esprima": "^4.0.0" } }, - "jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true - }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -21167,9 +20975,9 @@ "optional": true }, "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "optional": true }, @@ -21365,9 +21173,9 @@ }, "dependencies": { "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -22837,9 +22645,9 @@ "dev": true }, "raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dev": true, "requires": { "bytes": "3.1.2", @@ -22938,9 +22746,9 @@ } }, "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "type-fest": { @@ -23314,9 +23122,9 @@ } }, "semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -23594,34 +23402,32 @@ "dev": true }, "socket.io": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", - "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", + "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==", "dev": true, "requires": { "accepts": "~1.3.4", "base64id": "~2.0.0", - "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.5.2", + "engine.io": "~6.4.1", "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.4" + "socket.io-parser": "~4.2.1" } }, "socket.io-adapter": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", - "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", "dev": true, "requires": { - "debug": "~4.3.4", - "ws": "~8.17.1" + "ws": "~8.11.0" } }, "socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.3.tgz", + "integrity": "sha512-JMafRntWVO2DCJimKsRTh/wnqVvO4hrfwOqtO7f+uzwsQMuxO6VwImtYxaQ+ieoyshWOTJyV0fA21lccEXRPpQ==", "dev": true, "requires": { "@socket.io/component-emitter": "~3.1.0", @@ -23640,12 +23446,12 @@ } }, "socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dev": true, "requires": { - "ip-address": "^9.0.5", + "ip": "^2.0.0", "smart-buffer": "^4.2.0" } }, @@ -23889,14 +23695,14 @@ "dev": true }, "tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", + "minipass": "^4.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -23921,12 +23727,6 @@ } } } - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true } } }, @@ -24498,9 +24298,9 @@ }, "dependencies": { "webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", "dev": true, "requires": { "colorette": "^2.0.10", @@ -24509,6 +24309,13 @@ "range-parser": "^1.2.1", "schema-utils": "^4.0.0" } + }, + "ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true, + "requires": {} } } }, @@ -24638,9 +24445,9 @@ } }, "ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, "requires": {} }, From f090410d8ad0a9cf9f6536c7d2d1e8d97b05b7d4 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Wed, 17 Jul 2024 02:44:54 +0200 Subject: [PATCH 25/31] package scripts added. --- tools/rpmbuild/SPECS/cuttlefish_base.spec | 16 ++++++---- .../SPECS/cuttlefish_integration.spec | 12 +++---- .../SPECS/cuttlefish_orchestration.spec | 32 +++++++++++++++---- tools/rpmbuild/SPECS/cuttlefish_user.spec | 22 ++++++------- 4 files changed, 49 insertions(+), 33 deletions(-) diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index 951cbd568a..013667501b 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -1,22 +1,27 @@ Name: cuttlefish-base Version: 0.9.29 Release: 1%{?dist} -Summary: Virtual Device for Android host-side utilities +Summary: Cuttlefish Android Virtual Device companion package License: Apache License 2.0 -URL: https://github.com/google/android-cuttlefish +URL: https://github.com/google/android-cuttlefish BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: curl-devel, openssl-devel, protobuf-devel, protobuf-compiler -Requires: redhat-lsb-core, ebtables-legacy, iptables-legacy, bridge-utils, dnsmasq, libfdt, curl, e2fsprogs, ebtables, iptables, bsdtar, libcurl, libdrm, mesa-libGL, libusb, libXext, net-tools, openssl, python3, util-linux + +Requires: shadow-utils, redhat-lsb-core, ebtables-legacy, iproute, iptables-legacy, bridge-utils, dnsmasq, libfdt, e2fsprogs, ebtables, iptables, bsdtar +Requires: libcurl, libdrm, mesa-libGL, libusb, libXext, net-tools, openssl, python3, util-linux, curl >= 7.63.0, glibc >= 2.34, libgcc >= 3.0, libstdc++ >= 11 Requires: fmt-devel, gflags-devel, jsoncpp-devel, protobuf-devel, openssl-devel, libxml2-devel -Requires: wayland-utils #Requires: f2fs-tools, libx11-6, libz3-4 +# libwayland-client0, libwayland-server0 +Requires: wayland-utils -%description +%description +Cuttlefish Android Virtual Device companion package +Contains set of tools and binaries required to boot up and manage Cuttlefish Android Virtual Device that are used in all deployments. %prep %define workdir `pwd` @@ -38,7 +43,6 @@ mkdir -p %{buildroot}/etc/modules-load.d mkdir -p %{buildroot}/etc/security/limits.d mkdir -p %{buildroot}/lib/systemd/system mkdir -p %{buildroot}/lib/udev/rules.d/ -mkdir -p %{buildroot}/usr/share/doc/cuttlefish-base %define srcpath ../../../base/host/packages/cuttlefish-base install -m 655 %{srcpath}/etc/NetworkManager/conf.d/99-cuttlefish.conf %{buildroot}/etc/NetworkManager/conf.d/99-cuttlefish.conf diff --git a/tools/rpmbuild/SPECS/cuttlefish_integration.spec b/tools/rpmbuild/SPECS/cuttlefish_integration.spec index 64130e4d7e..b76b36c371 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_integration.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_integration.spec @@ -1,11 +1,10 @@ Name: cuttlefish-integration Version: 0.9.29 Release: 1%{?dist} -Summary: Virtual Device for Android host-side utilities +Summary: Contains the host signaling server supporting multi-device flows over WebRTC. License: Apache License 2.0 -URL: https://github.com/google/android-cuttlefish -#Source0: cuttlefish_base.tar.gz +URL: https://github.com/google/android-cuttlefish BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -14,7 +13,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: qemu-kvm, cuttlefish-base %description - +Cuttlefish Android Virtual Device companion package +Contains the host signaling server supporting multi-device flows over WebRTC. %prep @@ -29,7 +29,6 @@ mkdir -p %{buildroot}/etc/modprobe.d mkdir -p %{buildroot}/etc/rsyslog.d mkdir -p %{buildroot}/etc/ssh mkdir -p %{buildroot}/lib/udev/rules.d -mkdir -p %{buildroot}/usr/share/doc/cuttlefish-integration %define srcpath ../../../base/host/packages/cuttlefish-integration install -m 655 %{srcpath}/etc/default/instance_configs.cfg.template %{buildroot}/etc/default/instance_configs.cfg.template @@ -40,9 +39,6 @@ install -m 655 %{srcpath}/etc/ssh/sshd_config.cuttlefish %{buildroot}/etc/ssh/ss %define srcpath ../../../base/debian install -m 655 %{srcpath}/cuttlefish-integration.udev %{buildroot}/lib/udev/rules.d/60-cuttlefish-integration.rules -# install -m 655 %{srcpath}/usr/share/doc/cuttlefish-integration/changelog.gz %{buildroot}/usr/share/doc/cuttlefish-integration/changelog.gz -# install -m 655 %{srcpath}/usr/share/doc/copyright %{buildroot}/usr/share/doc/copyright - %files /etc/default/instance_configs.cfg.template diff --git a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec index 24e99fe58f..ea3659b2f1 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_orchestration.spec @@ -1,34 +1,43 @@ Name: cuttlefish-orchestration Version: 0.9.29 Release: 1%{?dist} -Summary: Virtual Device for Android host-side utilities +Summary: Contains the host orchestrator. License: Apache License 2.0 -URL: https://github.com/google/android-cuttlefish +URL: https://github.com/google/android-cuttlefish BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -#BuildRequires: -Requires: nginx, openssl, bash, systemd-journal-remote, cuttlefish-base, cuttlefish-user +BuildRequires: openssl +Requires: cuttlefish-base, cuttlefish-user, shadow-utils, bash, openssl, nginx, systemd-journal-remote %description - +Cuttlefish Android Virtual Device companion package +Contains the host orchestrator. %prep %build +cd ../../../frontend +if [ ! -d .sslcert ]; then + ./gen_ssl_cert.sh -o .sslcert +fi + %install rm -rf $RPM_BUILD_ROOT +mkdir -p %{buildroot}/etc/cuttlefish-orchestration/ssl/cert mkdir -p %{buildroot}/etc/default mkdir -p %{buildroot}/etc/nginx/conf.d mkdir -p %{buildroot}/etc/rc.d/init.d mkdir -p %{buildroot}/etc/sudoers.d -mkdir -p %{buildroot}/usr/bin -mkdir -p %{buildroot}/usr/share/doc/cuttlefish-orchestration + +%define srcpath ../../../frontend/.sslcert +install -m 655 %{srcpath}/cert.pem %{buildroot}/etc/cuttlefish-orchestration/ssl/cert/cert.pem +install -m 655 %{srcpath}/key.pem %{buildroot}/etc/cuttlefish-orchestration/ssl/cert/key.pem %define srcpath ../../../frontend/host/packages/cuttlefish-orchestration install -m 655 %{srcpath}/etc/nginx/conf.d/cuttlefish-orchestration.conf %{buildroot}/etc/nginx/conf.d/cuttlefish-orchestration.conf @@ -36,6 +45,8 @@ install -m 655 %{srcpath}/etc/sudoers.d/cuttlefish-orchestration %{buildroot}/et %files +/etc/cuttlefish-orchestration/ssl/cert/cert.pem +/etc/cuttlefish-orchestration/ssl/cert/key.pem /etc/nginx/conf.d/cuttlefish-orchestration.conf /etc/sudoers.d/cuttlefish-orchestration @@ -44,6 +55,8 @@ install -m 655 %{srcpath}/etc/sudoers.d/cuttlefish-orchestration %{buildroot}/et %post +ln -sf /usr/lib/cuttlefish-common/bin/cvd /usr/bin/fetch_cvd + # The cvdnetwork group is created by cuttlefish-base if ! getent passwd _cvd-executor > /dev/null 2>&1 ; then adduser --system --shell /sbin/nologin --home /var/empty --no-create-home _cvd-executor @@ -53,10 +66,15 @@ fi # Reload nginx having the orchestration configuration systemctl try-reload-or-restart nginx.service + %preun %postun +if [ -f /usr/bin/fetch_cvd ]; then + rm /usr/bin/fetch_cvd +fi + if getent passwd _cvd-executor > /dev/null 2>&1; then userdel _cvd-executor fi diff --git a/tools/rpmbuild/SPECS/cuttlefish_user.spec b/tools/rpmbuild/SPECS/cuttlefish_user.spec index 0a6f554a85..4f0165ef46 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_user.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_user.spec @@ -1,32 +1,30 @@ Name: cuttlefish-user Version: 0.9.29 Release: 1%{?dist} -Summary: Virtual Device for Android host-side utilities +Summary: Contains the host signaling server supporting multi-device flows over WebRTC. License: Apache License 2.0 -URL: https://github.com/google/android-cuttlefish -#Source0: cuttlefish_frontend.tar.gz +URL: https://github.com/google/android-cuttlefish BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: golang-bin -Requires: openssl, cuttlefish-base +Requires: cuttlefish-base, openssl, shadow-utils %description +Cuttlefish Android Virtual Device companion package +Contains the host signaling server supporting multi-device flows over WebRTC. %prep -#%%autosetup -v %build cd ../../../frontend ./build-webui.sh - cd src/host_orchestrator go build - cd ../operator go build @@ -38,7 +36,6 @@ mkdir -p %{buildroot}/usr/bin mkdir -p %{buildroot}/usr/lib/cuttlefish-common/bin mkdir -p %{buildroot}/usr/share/cuttlefish-common/operator/intercept/js mkdir -p %{buildroot}/usr/share/cuttlefish-common/operator/static -mkdir -p %{buildroot}/usr/share/doc/cuttlefish-user %define srcpath ../../../frontend/src @@ -67,21 +64,22 @@ done /usr/share/cuttlefish-common/operator/static/runtime.* /usr/share/cuttlefish-common/operator/static/styles.* -#/usr/share/doc/cuttlefish-user/changelog.gz -#/usr/share/doc/cuttlefish-user/copyright - #%%license add-license-file-here #%%doc add-docs-here %post ln -sf /usr/lib/cuttlefish-common/bin/host_orchestrator /usr/bin/cvd_host_orchestrator + # The cvdnetwork group is created by cuttlefish-base if ! getent passwd _cutf-operator > /dev/null 2>&1 ; then adduser --system --shell /sbin/nologin --home /var/empty --no-create-home --gid cvdnetwork _cutf-operator fi %preun -rm /usr/bin/cvd_host_orchestrator +if [ -f /usr/bin/cvd_host_orchestrator ]; then + rm /usr/bin/cvd_host_orchestrator +fi + %postun if getent passwd _cutf-operator > /dev/null 2>&1; then From 4484903f9cff23a8fb434b7eceaa2cd24670945a Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Wed, 17 Jul 2024 02:55:51 +0200 Subject: [PATCH 26/31] package scripts added. --- tools/rpmbuild/SPECS/cuttlefish_base.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index 013667501b..faebfd6c46 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -1,7 +1,7 @@ Name: cuttlefish-base Version: 0.9.29 Release: 1%{?dist} -Summary: Cuttlefish Android Virtual Device companion package +Summary: Cuttlefish Android Virtual Device License: Apache License 2.0 URL: https://github.com/google/android-cuttlefish @@ -20,7 +20,7 @@ Requires: wayland-utils %description -Cuttlefish Android Virtual Device companion package +Cuttlefish Android Virtual Device Contains set of tools and binaries required to boot up and manage Cuttlefish Android Virtual Device that are used in all deployments. %prep From 8871e570756a4ccb4352dfcce7a1ca1970c60f48 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Wed, 17 Jul 2024 18:47:49 +0200 Subject: [PATCH 27/31] restored "set -e -x". --- tools/buildutils/build_packages.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/buildutils/build_packages.sh b/tools/buildutils/build_packages.sh index ca4f9b324c..9b17605d98 100755 --- a/tools/buildutils/build_packages.sh +++ b/tools/buildutils/build_packages.sh @@ -1,7 +1,10 @@ #!/bin/bash REPO_DIR="$(realpath "$(dirname "$0")/../..")" -APT_CMD=$(which apt 2>/dev/null) -DNF_CMD=$(which dnf 2>/dev/null) +# one `which` statements will always produce an error. +APT_CMD=`which apt 2> /dev/null` +DNF_CMD=`which dnf 2> /dev/null` + +set -e -x function install_debuild_dependencies() { echo "Installing debuild dependencies" From d46d58d2d947b48d1cd7b5488bab244457c2a72f Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Wed, 17 Jul 2024 18:55:12 +0200 Subject: [PATCH 28/31] restored "set -e -x" (now split). --- tools/buildutils/build_packages.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/buildutils/build_packages.sh b/tools/buildutils/build_packages.sh index 9b17605d98..e81b84661f 100755 --- a/tools/buildutils/build_packages.sh +++ b/tools/buildutils/build_packages.sh @@ -1,10 +1,13 @@ #!/bin/bash + +set -x + REPO_DIR="$(realpath "$(dirname "$0")/../..")" -# one `which` statements will always produce an error. +# one `which` statement will always produce an error. APT_CMD=`which apt 2> /dev/null` DNF_CMD=`which dnf 2> /dev/null` -set -e -x +set -e function install_debuild_dependencies() { echo "Installing debuild dependencies" From afb5ab205c112c447410787ba8fd16be8c76714a Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Wed, 17 Jul 2024 19:00:35 +0200 Subject: [PATCH 29/31] dependencies updated. --- tools/rpmbuild/SPECS/cuttlefish_base.spec | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tools/rpmbuild/SPECS/cuttlefish_base.spec b/tools/rpmbuild/SPECS/cuttlefish_base.spec index faebfd6c46..3b914d4b05 100644 --- a/tools/rpmbuild/SPECS/cuttlefish_base.spec +++ b/tools/rpmbuild/SPECS/cuttlefish_base.spec @@ -8,11 +8,12 @@ URL: https://github.com/google/android-cuttlefish BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - BuildRequires: curl-devel, openssl-devel, protobuf-devel, protobuf-compiler -Requires: shadow-utils, redhat-lsb-core, ebtables-legacy, iproute, iptables-legacy, bridge-utils, dnsmasq, libfdt, e2fsprogs, ebtables, iptables, bsdtar -Requires: libcurl, libdrm, mesa-libGL, libusb, libXext, net-tools, openssl, python3, util-linux, curl >= 7.63.0, glibc >= 2.34, libgcc >= 3.0, libstdc++ >= 11 +Requires: shadow-utils, redhat-lsb-core, ebtables-legacy, iproute +Requires: iptables-legacy, bridge-utils, dnsmasq, libfdt, e2fsprogs, ebtables, iptables, bsdtar +Requires: libcurl, libdrm, mesa-libGL, libusb, libXext, net-tools, openssl, python3, util-linux +Requires: curl >= 7.63.0, glibc >= 2.34, libgcc >= 3.0, libstdc++ >= 11 Requires: fmt-devel, gflags-devel, jsoncpp-devel, protobuf-devel, openssl-devel, libxml2-devel #Requires: f2fs-tools, libx11-6, libz3-4 # libwayland-client0, libwayland-server0 @@ -21,7 +22,8 @@ Requires: wayland-utils %description Cuttlefish Android Virtual Device -Contains set of tools and binaries required to boot up and manage Cuttlefish Android Virtual Device that are used in all deployments. +Contains set of tools and binaries required to boot up and manage +Cuttlefish Android Virtual Device that are used in all deployments. %prep %define workdir `pwd` From 4238336a7fc097e720f26aad65eac566664d4fb6 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Wed, 17 Jul 2024 19:12:45 +0200 Subject: [PATCH 30/31] restored "set -e -x"; APT/DNF check replaced. --- tools/buildutils/build_packages.sh | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/tools/buildutils/build_packages.sh b/tools/buildutils/build_packages.sh index e81b84661f..f8648adf42 100755 --- a/tools/buildutils/build_packages.sh +++ b/tools/buildutils/build_packages.sh @@ -1,13 +1,8 @@ #!/bin/bash -set -x +set -e -x REPO_DIR="$(realpath "$(dirname "$0")/../..")" -# one `which` statement will always produce an error. -APT_CMD=`which apt 2> /dev/null` -DNF_CMD=`which dnf 2> /dev/null` - -set -e function install_debuild_dependencies() { echo "Installing debuild dependencies" @@ -34,23 +29,22 @@ function build_spec() { echo "Installing package dependencies" sudo dnf builddep --skip-unavailable $specfile echo "Building packages" - rpmbuild \ - --define "_topdir `pwd`/tools/rpmbuild" \ - -v -ba $specfile + rpmbuild --define "_topdir `pwd`/tools/rpmbuild" -v -ba $specfile } -if [[ ! -z ${APT_CMD} ]]; then - INSTALL_BAZEL="$(dirname $0)/installbazel.sh" - sudo "${INSTALL_BAZEL}" - install_debuild_dependencies - build_package "${REPO_DIR}/base" - build_package "${REPO_DIR}/frontend" -elif [[ ! -z ${DNF_CMD} ]]; then +if [[ -f /bin/dnf ]]; then build_spec cuttlefish_base.spec build_spec cuttlefish_user.spec build_spec cuttlefish_integration.spec build_spec cuttlefish_orchestration.spec + exit 0 else - exit 1; + INSTALL_BAZEL="$(dirname $0)/installbazel.sh" + sudo "${INSTALL_BAZEL}" + install_debuild_dependencies + build_package "${REPO_DIR}/base" + build_package "${REPO_DIR}/frontend" + exit 0 fi +exit 1 From a309274e80775c4be4cc010e52067c0fe934fb5f Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Wed, 17 Jul 2024 20:25:59 +0200 Subject: [PATCH 31/31] rpmbuild directory structure added. --- tools/rpmbuild/BUILD/.gitkeep | 0 tools/rpmbuild/BUILDROOT/.gitkeep | 0 tools/rpmbuild/RPMS/.gitkeep | 0 tools/rpmbuild/SRPMS/.gitkeep | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 tools/rpmbuild/BUILD/.gitkeep create mode 100644 tools/rpmbuild/BUILDROOT/.gitkeep create mode 100644 tools/rpmbuild/RPMS/.gitkeep create mode 100644 tools/rpmbuild/SRPMS/.gitkeep diff --git a/tools/rpmbuild/BUILD/.gitkeep b/tools/rpmbuild/BUILD/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/rpmbuild/BUILDROOT/.gitkeep b/tools/rpmbuild/BUILDROOT/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/rpmbuild/RPMS/.gitkeep b/tools/rpmbuild/RPMS/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/rpmbuild/SRPMS/.gitkeep b/tools/rpmbuild/SRPMS/.gitkeep new file mode 100644 index 0000000000..e69de29bb2