diff --git a/.docs/content/0.armonik/0.index.md b/.docs/content/0.armonik/0.index.md new file mode 100644 index 000000000..8397db1ac --- /dev/null +++ b/.docs/content/0.armonik/0.index.md @@ -0,0 +1 @@ +# ArmoniK diff --git a/.docs/content/0.armonik/_dir.yml b/.docs/content/0.armonik/_dir.yml new file mode 100644 index 000000000..ecea6d2c3 --- /dev/null +++ b/.docs/content/0.armonik/_dir.yml @@ -0,0 +1,2 @@ +title: ArmoniK +navigation.icon: ph:house-duotone diff --git a/.docs/content/0.armonik/components/0.scaling/1.keda.md b/.docs/content/0.armonik/components/0.scaling/1.keda.md new file mode 100644 index 000000000..e69de29bb diff --git a/.docs/content/0.armonik/components/0.scaling/_dir.yml b/.docs/content/0.armonik/components/0.scaling/_dir.yml new file mode 100644 index 000000000..92061d4fd --- /dev/null +++ b/.docs/content/0.armonik/components/0.scaling/_dir.yml @@ -0,0 +1,2 @@ +title: Scaling +navigation.icon: ph:arrows-out-duotone diff --git a/.docs/content/0.armonik/components/1.storage/1.apache-activemq.md b/.docs/content/0.armonik/components/1.storage/1.apache-activemq.md new file mode 100644 index 000000000..274c295a3 --- /dev/null +++ b/.docs/content/0.armonik/components/1.storage/1.apache-activemq.md @@ -0,0 +1,11 @@ +# Apache ActiveMQ + +## Description + +Apache ActiveMQ is a message broker. It provides various features like queuing, point-to-point, publish-subscribe, clustering, and JMS. + +::alert{type="info"} +You can learn more about ActiveMQ [on the official website](https://activemq.apache.org/). +:: + +## Usage in ArmoniK diff --git a/.docs/content/0.armonik/components/1.storage/2.mongodb.md b/.docs/content/0.armonik/components/1.storage/2.mongodb.md new file mode 100644 index 000000000..36e591acb --- /dev/null +++ b/.docs/content/0.armonik/components/1.storage/2.mongodb.md @@ -0,0 +1,11 @@ +# MongoDB + +## Description + +MongoDB is a document database with the scalability and flexibility that you want with the querying and indexing that you need. + +::alert{type="info"} +You can learn more about MongoDB [on the official website](https://www.mongodb.com/). +:: + +## Usage in ArmoniK diff --git a/.docs/content/0.armonik/components/1.storage/3.redis.md b/.docs/content/0.armonik/components/1.storage/3.redis.md new file mode 100644 index 000000000..2d6114361 --- /dev/null +++ b/.docs/content/0.armonik/components/1.storage/3.redis.md @@ -0,0 +1,11 @@ +# Redis + +## Description + +Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. + +::alert{type="info"} +You can learn more about Redis [on the official website](https://redis.io/). +:: + +## Usage in ArmoniK diff --git a/.docs/content/0.armonik/components/1.storage/_dir.yml b/.docs/content/0.armonik/components/1.storage/_dir.yml new file mode 100644 index 000000000..f66a14407 --- /dev/null +++ b/.docs/content/0.armonik/components/1.storage/_dir.yml @@ -0,0 +1,2 @@ +title: Storage +navigation.icon: ph:database-duotone diff --git a/.docs/content/0.armonik/components/2.monitoring/1.seq.md b/.docs/content/0.armonik/components/2.monitoring/1.seq.md new file mode 100644 index 000000000..aac3d8ec7 --- /dev/null +++ b/.docs/content/0.armonik/components/2.monitoring/1.seq.md @@ -0,0 +1,11 @@ +# SEQ + +## Description + +SEQ is a log management tool that collects, indexes, and visualizes log data from any source. + +::alert{type="info"} +You can learn more about SEQ [on the official website](https://datalust.co/seq). +:: + +## Usage in ArmoniK diff --git a/.docs/content/0.armonik/components/2.monitoring/2.grafana.md b/.docs/content/0.armonik/components/2.monitoring/2.grafana.md new file mode 100644 index 000000000..32844f917 --- /dev/null +++ b/.docs/content/0.armonik/components/2.monitoring/2.grafana.md @@ -0,0 +1,11 @@ +# Grafana + +## Description + +Grafana is an open source, feature rich metrics dashboard and graph editor for Graphite, Elasticsearch, OpenTSDB, Prometheus and InfluxDB. + +::alert{type="info"} +You can learn more about Grafana [on the official website](https://grafana.com/). +:: + +## Usage in ArmoniK diff --git a/.docs/content/0.armonik/components/2.monitoring/3.prometheus.md b/.docs/content/0.armonik/components/2.monitoring/3.prometheus.md new file mode 100644 index 000000000..b1832eef0 --- /dev/null +++ b/.docs/content/0.armonik/components/2.monitoring/3.prometheus.md @@ -0,0 +1,11 @@ +# Prometheus + +## Description + +Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud. Since its inception in 2012, many companies and organizations have adopted Prometheus, and the project has a very active developer and user community. It is now a standalone open source project and maintained independently of any company. + +::alert{type="info"} +You can learn more about Prometheus [on the official website](https://prometheus.io/). +:: + +## Usage in ArmoniK diff --git a/.docs/content/0.armonik/components/2.monitoring/4.metrics-exporter.md b/.docs/content/0.armonik/components/2.monitoring/4.metrics-exporter.md new file mode 100644 index 000000000..d161b7dfa --- /dev/null +++ b/.docs/content/0.armonik/components/2.monitoring/4.metrics-exporter.md @@ -0,0 +1,11 @@ +# Metrics exporter + +## Description + +Metrics exporter is a tool that collects metrics from ArmoniK components and exposes them to Prometheus. + +::alert{type="info"} +You can learn more about metrics exporter [on the official website](https://prometheus.io/docs/instrumenting/exporters/). +:: + +## Usage in ArmoniK diff --git a/.docs/content/0.armonik/components/2.monitoring/5.metrics-server.md b/.docs/content/0.armonik/components/2.monitoring/5.metrics-server.md new file mode 100644 index 000000000..735dd69e2 --- /dev/null +++ b/.docs/content/0.armonik/components/2.monitoring/5.metrics-server.md @@ -0,0 +1,11 @@ +# Metrics server + +## Description + +Metrics server is a tool that collects metrics from Kubernetes components and exposes them to Prometheus. + +::alert{type="info"} +You can learn more about metrics server [on the official website](https://kubernetes.io/docs/tasks/debug/debug-cluster/resource-metrics-pipeline/#metrics-server).``` +:: + +## Usage in ArmoniK diff --git a/.docs/content/0.armonik/components/2.monitoring/6.node-exporter.md b/.docs/content/0.armonik/components/2.monitoring/6.node-exporter.md new file mode 100644 index 000000000..cf2827426 --- /dev/null +++ b/.docs/content/0.armonik/components/2.monitoring/6.node-exporter.md @@ -0,0 +1,11 @@ +# Node exporter + +## Description + +Node exporter is a tool that collects metrics from Kubernetes nodes and exposes them to Prometheus. + +::alert{type="info"} +You can learn more about node exporter [on the official website](https://prometheus.io/docs/guides/node-exporter/). +:: + +## Usage in ArmoniK diff --git a/.docs/content/0.armonik/components/2.monitoring/7.fluent-bit.md b/.docs/content/0.armonik/components/2.monitoring/7.fluent-bit.md new file mode 100644 index 000000000..cbb3e0307 --- /dev/null +++ b/.docs/content/0.armonik/components/2.monitoring/7.fluent-bit.md @@ -0,0 +1,11 @@ +# Fluentbit + +## Description + +Fluentbit is a log collector that can be used to collect logs from containers and forward them to a log aggregator. It is a lightweight alternative to Fluentd. + +::alert{type="info"} +You can learn more about Fluentbit [on the official website](https://fluentbit.io/). +:: + +## Usage in ArmoniK diff --git a/.docs/content/0.armonik/components/2.monitoring/_dir.yml b/.docs/content/0.armonik/components/2.monitoring/_dir.yml new file mode 100644 index 000000000..947cf0e2a --- /dev/null +++ b/.docs/content/0.armonik/components/2.monitoring/_dir.yml @@ -0,0 +1,2 @@ +title: Monitoring +navigation.icon: ph:chart-bar-duotone diff --git a/.docs/content/0.armonik/components/3.armonik/1.control-plane.md b/.docs/content/0.armonik/components/3.armonik/1.control-plane.md new file mode 100644 index 000000000..2a6fcb9c0 --- /dev/null +++ b/.docs/content/0.armonik/components/3.armonik/1.control-plane.md @@ -0,0 +1,9 @@ +# Controle Plane + +## Description + +::alert{type="info"} +You can learn more about the Control Plane [on the official documentation](https://aneoconsulting.github.io/ArmoniK.Core/). +:: + +## Usage in ArmoniK diff --git a/.docs/content/0.armonik/components/3.armonik/2.compute-plane/1.polling-agent.md b/.docs/content/0.armonik/components/3.armonik/2.compute-plane/1.polling-agent.md new file mode 100644 index 000000000..0795a3538 --- /dev/null +++ b/.docs/content/0.armonik/components/3.armonik/2.compute-plane/1.polling-agent.md @@ -0,0 +1,5 @@ +# Polling agent + +## Description + +## Usage in ArmoniK diff --git a/.docs/content/0.armonik/components/3.armonik/2.compute-plane/2.workers.md b/.docs/content/0.armonik/components/3.armonik/2.compute-plane/2.workers.md new file mode 100644 index 000000000..ee2cf36b5 --- /dev/null +++ b/.docs/content/0.armonik/components/3.armonik/2.compute-plane/2.workers.md @@ -0,0 +1,5 @@ +# Workers + +## Description + +## Usage in ArmoniK diff --git a/.docs/content/0.armonik/components/3.armonik/3.ingress.md b/.docs/content/0.armonik/components/3.armonik/3.ingress.md new file mode 100644 index 000000000..ddc6530e7 --- /dev/null +++ b/.docs/content/0.armonik/components/3.armonik/3.ingress.md @@ -0,0 +1,11 @@ +# Ingress + +## Description + +Ingress is a Kubernetes resource that exposes HTTP and HTTPS routes from outside the cluster to services within the cluster. + +::alert{type="info"} +You can learn more about Ingress [on the official documentation](https://kubernetes.io/docs/concepts/services-networking/ingress/) or in the [Nginx documentation](https://docs.nginx.com/nginx-ingress-controller/). +:: + +## Usage in ArmoniK diff --git a/.docs/content/0.armonik/components/3.armonik/4.admin-gui.md b/.docs/content/0.armonik/components/3.armonik/4.admin-gui.md new file mode 100644 index 000000000..77e44905d --- /dev/null +++ b/.docs/content/0.armonik/components/3.armonik/4.admin-gui.md @@ -0,0 +1,9 @@ +# Admin Gui + +## Description + +::alert{type="info"} +You can learn more about Admin Gui [on the official documentation](https://aneoconsulting.github.io/ArmoniK.Admin.GUI/). +:: + +## Usage in ArmoniK diff --git a/.docs/content/0.armonik/components/3.armonik/_dir.yml b/.docs/content/0.armonik/components/3.armonik/_dir.yml new file mode 100644 index 000000000..349caf7fa --- /dev/null +++ b/.docs/content/0.armonik/components/3.armonik/_dir.yml @@ -0,0 +1,2 @@ +title: ArmoniK +navigation.icon: ph:cpu-duotone diff --git a/.docs/content/0.armonik/components/_dir.yml b/.docs/content/0.armonik/components/_dir.yml new file mode 100644 index 000000000..727d37a87 --- /dev/null +++ b/.docs/content/0.armonik/components/_dir.yml @@ -0,0 +1,2 @@ +title: Components +navigation.icon: ph:bounding-box-duotone diff --git a/.docs/content/0.index.md b/.docs/content/0.index.md index 57292b50a..4b3a607c8 100644 --- a/.docs/content/0.index.md +++ b/.docs/content/0.index.md @@ -9,7 +9,7 @@ main.fluid: false --- cta: - Get Started - - /guide + - /armonik secondary: - Open on GitHub → - https://github.com/aneoconsulting/ArmoniK @@ -21,3 +21,5 @@ ArmoniK #description The high throughput compute grid project using Kubernetes :: + + diff --git a/.docs/content/1.guide/_dir.yml b/.docs/content/1.guide/_dir.yml deleted file mode 100644 index d7a342b50..000000000 --- a/.docs/content/1.guide/_dir.yml +++ /dev/null @@ -1,2 +0,0 @@ -title: Guide -navigation.icon: heroicons:book-open diff --git a/.docs/content/1.installation/0.index.md b/.docs/content/1.installation/0.index.md new file mode 100644 index 000000000..74cf44056 --- /dev/null +++ b/.docs/content/1.installation/0.index.md @@ -0,0 +1,11 @@ +# Installation + +ArmoniK can be installed on Linux **locally**, on an **on-premise** cluster or on a cluster in a **cloud provider**. + +::alert{type="info"} +- **Local** installation is **only for development purpose**. It is not recommended to use it in production. +- **On-premise** installation is **recommended for production** purpose. +- **Cloud** installation is **recommended for production** purpose. +:: + + diff --git a/.docs/content/1.installation/1.linux/0.prerequisites.md b/.docs/content/1.installation/1.linux/0.prerequisites.md new file mode 100644 index 000000000..2542222ae --- /dev/null +++ b/.docs/content/1.installation/1.linux/0.prerequisites.md @@ -0,0 +1,120 @@ + + +# Prerequisites + +In order to install ArmoniK locally or on-premise, you must have a few of things installed on your machine. + +## Installation + +You can easily install all of them using the [ArmoniK prerequisites installer](https://github.com/aneoconsulting/ArmoniK/tree/main/infrastructure/utils/scripts/installation/pre-requisites-installer.sh) from the root repository. + +```bash +./infrastructure/utils/scripts/installation/prerequisites-installer.sh +``` + +::alert{type="info"} +Please, read the script before running it and make sure to have Docker Desktop disabled if you are on Windows. +:: + +::alert{type="warning"} +We do not recommend you to manually install the pre-requisites for compatibility reasons. If you want to install them manually, please follow the prerequisites installer script. +:: + +## Programs + +### Make + +ArmoniK uses Make to run commands. You must have Make installed on your machine. You can follow the [official documentation](https://www.gnu.org/software/make/) to install Make on your machine. + +::alert{type="info"} +What is Make? Make is a build automation tool that automatically builds executable programs and libraries from source code by reading files called Makefiles which specify how to derive the target program. [Read more](https://en.wikipedia.org/wiki/Make_(software)). +:: + +### JQ + +ArmoniK uses JQ to parse JSON. You must have JQ installed on your machine. You can follow the [official documentation](https://stedolan.github.io/jq/download/) to install JQ on your machine. + +::alert{type="info"} +What is JQ? jq is a lightweight and flexible command-line JSON processor. It is used for pretty-printing JSON data, extracting specific data from JSON documents, reformatting JSON documents, and more. [Read more](https://stedolan.github.io/jq/). +:: + +### Python3 + +ArmoniK uses Python3 to run scripts. You must have Python3 installed on your machine. You can follow the [official documentation](https://www.python.org/downloads/) to install Python3 on your machine. + +::alert{type="info"} +What is Python3? Python is an interpreted, high-level and general-purpose programming language. Python's design philosophy emphasizes code readability with its notable use of significant whitespace. Its language constructs and object-oriented approach aim to help programmers write clear, logical code for small and large-scale projects. [Read more](https://en.wikipedia.org/wiki/Python_(programming_language)). +:: + +#### HCL2 + +ArmoniK uses HCL2 to parse Terraform files. You must have HCL2 installed on your machine. You can follow the [official documentation](https://pypi.org/project/python-hcl2/) to install HCL2 on your machine. + +::alert{type="info"} +What is HCL2? HCL is a configuration language created by HashiCorp. It is used by several HashiCorp products, including Terraform, Nomad, and Consul. [Read more](https://en.wikipedia.org/wiki/HCL_(programming_language)). +:: + +#### jsonpath-ng + +ArmoniK uses jsonpath-ng to parse JSON. You must have jsonpath-ng installed on your machine. You can follow the [official documentation](https://pypi.org/project/jsonpath-ng/) to install jsonpath-ng on your machine. + +::alert{type="info"} +What is jsonpath-ng? jsonpath-ng is a Python implementation of JSONPath. [Read more](https://pypi.org/project/jsonpath-ng/). +:: + +### Terraform + +ArmoniK uses Terraform to deploy infrastructure. You must have Terraform installed on your machine. You can follow the [official documentation](https://learn.hashicorp.com/tutorials/terraform/install-cli) to install Terraform on your machine. + +::alert{type="info"} +What is Terraform? Terraform is an open-source infrastructure as code software tool created by HashiCorp. Users define and provide data center infrastructure using a declarative configuration language known as HashiCorp Configuration Language, or optionally JSON. Terraform can manage existing and popular service providers as well as custom in-house solutions. [Read more](https://en.wikipedia.org/wiki/Terraform_(software)). +:: + +### Docker + +ArmoniK uses Docker to run containers. You must have Docker installed on your machine. You can follow the [official documentation](https://docs.docker.com/engine/install/) to install Docker on your machine. + +::alert{type="info"} +What is Docker? Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels. All containers are run by a single operating-system kernel and are thus more lightweight than virtual machines. [Read more](https://en.wikipedia.org/wiki/Docker_(software)). +:: + +### Helm + +ArmoniK uses Helm to deploy applications. You must have Helm installed on your machine. You can follow the [official documentation](https://helm.sh/docs/intro/install/) to install Helm on your machine. + +::alert{type="info"} +What is Helm? Helm is a package manager for Kubernetes that allows developers and operators to more easily package, configure, and deploy applications and services onto Kubernetes clusters. [Read more](https://en.wikipedia.org/wiki/Helm_(software)). +:: + +### Kubernetes + +::alert{type="danger"} +If you plan to install **ArmoniK for development purposes**, you must install [K3s](#k3s) instead of Kubernetes. +:: + +ArmoniK uses Kubernetes to orchestrate containers. You must have Kubernetes installed on your machine. You can follow the [official documentation](https://kubernetes.io/releases/download/) to install Kubernetes on your machine. + +::alert{type="info"} +What is Kubernetes? Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery. [Read more](https://en.wikipedia.org/wiki/Kubernetes). +:: + +### K3s + +::alert{type="info"} +If you plan to use **ArmoniK for production purposes**, you must install [Kubernetes](#kubernetes) instead of K3s. +:: + +ArmoniK uses K3s as it uses Kubernetes but for development environment. + + +::alert{type="info"} +What is K3s? K3s is a lightweight Kubernetes distribution built for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances. [Read more](https://k3s.io/). +:: + +### Kubectl + +ArmoniK uses Kubectl to manage Kubernetes. You must have Kubectl installed on your machine. You can follow the [official documentation](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/) to install Kubectl on your machine. + +::alert{type="info"} +What is Kubectl? Kubectl is a command-line tool for controlling Kubernetes clusters. [Read more](https://kubernetes.io/docs/reference/kubectl/overview/). +:: diff --git a/.docs/content/1.installation/1.linux/1.installation.md b/.docs/content/1.installation/1.linux/1.installation.md new file mode 100644 index 000000000..d4f4bc40c --- /dev/null +++ b/.docs/content/1.installation/1.linux/1.installation.md @@ -0,0 +1,169 @@ +# Installation + +Now that prerequisites are installed, you can install ArmoniK. In order to do that, we provide a script to deploy all the infrastructure in one command. + +::alert{type="info"} + +This installation will not enable authentification nor authorization. You can find more information about this in the [authentication and authorization]() section. +:: + +## Setup environment variables + +Before running the script, you must set environment variables. + +From the root of the repository: + +```bash +cd infrastructure/quick-deploy/localhost +``` + +Then, you can set environment variables in the file `envvars.sh`: + +```bash +source envvars.sh +``` + +::alert{type="info"} +Please, read the file `envvars.sh` before running it. +:: + + +## Deploy + +Create data directory: + +```bash +mkdir -p "${ARMONIK_SHARED_HOST_PATH}" +``` + +::alert{type="danger"} +If you don't create the data directory, the deployment will failed when the compute plane will try to mount the shared directory. +:: + +::alert{type="info"} +You can find why your pod doesn't start using `kubectl describe pod -n armonik`. +:: + +Finally, you can run the script to deploy ArmoniK on your local machine: + +```bash +make deploy-all +``` + +Now, you take a coffee and wait for the end of the deployment. :coffee: + +You will easily recognize the end of the deployment when you see the following message: + +```hsl +armonik = { + "admin_api_url" = "http://:5000/api" + "admin_app_url" = "http://:5000/admin" + "admin_old_url" = "http://:5000/old-admin" + "control_plane_url" = "http://:5001" + "grafana_url" = "http://:5000/grafana/" + "seq_web_url" = "http://:5000/seq/" +} + +``` + +You can also deploy each resource independently: + +```bash +make deploy-keda +``` + +```bash +make deploy-metrics-server +``` + +```bash +make deploy-storage +``` + +```bash +make deploy-monitoring +``` + +```bash +make deploy-armonik +``` + +::alert{type="info"} +The order matters because top level resources depend on the bottom level resources. +:: + +## Destroy + +To destroy all the infrastructure, you can run the following command: + +```bash +make destroy-all +``` + +::alert{type="warning"} +To reinstall, you must restart from [setup environment variables](#setup-environment-variables). +:: + +You can also destroy each resource independently: + +```bash +make destroy-armonik +``` + +```bash +make destroy-monitoring +``` + +```bash +make destroy-storage +``` + +```bash +make destroy-metrics-server +``` + +```bash +make destroy-keda +``` + +::alert{type="info"} +The order matters. You must destroy the resources in the reverse order of the deployment. +:: + +## Clean + +To clean all the generated files from the deployment, you can run the following command: + +```bash +make clean-all +``` + +::alert{type="warning"} +To reinstall, you must restart from [setup environment variables](#setup-environment-variables). +:: + +You can also clean each resource independently: + +```bash +make clean-armonik +``` + +```bash +make clean-monitoring +``` + +```bash +make clean-storage +``` + +```bash +make clean-metrics-server +``` + +```bash +make clean-keda +``` + +::alert{type="info"} +The order matters. You must clean the resources in the reverse order of the deployment. +:: diff --git a/.docs/content/1.installation/1.linux/2.verify-installation.md b/.docs/content/1.installation/1.linux/2.verify-installation.md new file mode 100644 index 000000000..63616d9ae --- /dev/null +++ b/.docs/content/1.installation/1.linux/2.verify-installation.md @@ -0,0 +1,82 @@ +# Verify Installation + +After [installing ArmoniK](./1.installation.md), it is time to execute some simple tests to check that everything is working as expected. In order to do that, the ArmoniK team is providing three simple tests to verify that the deployment went well. + +## Seq + +First of all, you can try to connect to the log server [Seq](https://datalust.co/) to check that it is working correctly. + +You can find the Seq URL printed on your console after the deployment. + +::alert{type="info"} +You can also retrieve the `seq.web_url` from the Terraform outputs `monitoring/generated/monitoring-output.json`. The default port is `8080` but the ip address can be different depending on your machine. +:: + +Example: + +```bash +http://:8080 +``` + + +No credentials are required to connect to Seq by default. Also, connexion is not encrypted by default (no HTTPS) but you can enable it. + +## Admin GUI + +You can also try to connect to the [ArmoniK Admin GUI](https://aneoconsulting.github.io/ArmoniK.Admin.GUI/) to check that it is working correctly. + +You can find the Admin GUI URL printed on your console after the deployment. + + +::alert{type="info"} +You can also retrieve the `armonik.admin_gui_url` from the Terraform outputs `armonik/generated/armonik-output.json`. The default port is `5000` but the ip address can be different depending on your machine. +:: + +Example: + +```bash +http://:5000 +``` + +## Samples + + +There are three scripts that can be used in order to verify the installation of ArmoniK : + +* [Symphony Like](https://github.com/aneoconsulting/ArmoniK.Samples/tree/main/tools/tests/symphony_like.sh) +* [Symphony Like End to End](https://github.com/aneoconsulting/ArmoniK.Samples/tree/main/tools/tests/symphony_endToendTests.sh). + +::alert{type="info"} + +You can read more about samples in their [dedicated documentation](https://aneoconsulting.github.io/ArmoniK.Samples/). +:: + +### Install Samples + +::alert{type="info"} +You can find more information about samples in their [dedicated documentation](https://aneoconsulting.github.io/ArmoniK.Samples/). +:: + +Before executing the samples, you must clone [ArmoniK.Samples](https://github.com/aneoconsulting/ArmoniK.Samples) into a folder name `Source` from the root repository of ArmoniK: + +```bash +git clone https://github.com/aneoconsulting/ArmoniK.Samples.git ./Source/ArmoniK.Samples/ +``` + +### Execute Samples + + +- Execute [tools/tests/symphony_like.sh](https://github.com/aneoconsulting/ArmoniK/blob/main/tools/tests/symphony_like.sh) from the **root** repository: + ```bash + tools/tests/symphony_like.sh + ``` + +- Execute [tools/tests/symphony_endToendTests.sh](https://github.com/aneoconsulting/ArmoniK/blob/main/tools/tests/symphony_endToendTests.sh) from the **root** + repository: + ```bash + tools/tests/symphony_endToendTests.sh + ``` + +::alert{type="info"} +You can check the logs using Seq. +:: diff --git a/.docs/content/1.installation/1.linux/_dir.yml b/.docs/content/1.installation/1.linux/_dir.yml new file mode 100644 index 000000000..89389f323 --- /dev/null +++ b/.docs/content/1.installation/1.linux/_dir.yml @@ -0,0 +1,2 @@ +title: Linux +navigation.icon: vscode-icons:folder-type-linux diff --git a/.docs/content/1.installation/2.windows/0.installation-using-wsl2.md b/.docs/content/1.installation/2.windows/0.installation-using-wsl2.md new file mode 100644 index 000000000..e14358673 --- /dev/null +++ b/.docs/content/1.installation/2.windows/0.installation-using-wsl2.md @@ -0,0 +1,84 @@ +# Installation using WSL2 + +::alert{type="warning"} +This installation method is not recommended for production environments. +:: + +ArmoniK can be installed on Windows 10 and 11 using the [Windows Subsystem for Linux](https://learn.microsoft.com/en-us/windows/wsl/install). The following instructions will guide you through the installation process. + +::alert{type="info"} +You can read more about WSL2 on the [Microsoft documentation](https://learn.microsoft.com/en-us/windows/wsl/compare-versions). +:: + +## Install WSL2 + +::alert{type="warning"} +You must stop Docker Desktop before installing WSL2. Removing Docker Desktop is not required but recommended. +:: + +To install WSL2, open the Windows Store and install the [Windows Subsystem for Linux](https://www.microsoft.com/store/productId/9P9TQF7MRM4R) application. + +::alert{type="info"} +If you are unable to use the store version, please refer to the [Microsoft documentation](https://learn.microsoft.com/en-us/windows/wsl/install). Please, **install WSL2 (not WSL1)**. We do not support WSL1. +:: + +## Install Ubuntu LTS + +::alert{type="warning"} +Currently, the LTS is the version 22.04. For Linux 20.04, please refer to the [WSL2 and Genie](./1.installation-using-wsl2-and-genie.md) installation method. +:: + +Then you can install the Ubuntu distribution from the Windows Store. We recommend you to [install the latest LTS version](https://www.microsoft.com/store/productId/9PDXGNCFSCZV). + +You can also install Ubuntu LTS manually by following the instructions. + +```powershell +wsl --install -d Ubuntu +``` + +::alert{type="info"} +You can read more about Ubuntu on the [Microsoft documentation](https://learn.microsoft.com/en-us/windows/wsl/install-manual#step-6---install-your-linux-distribution-of-choice). +:: + +Once the installation is complete, verify the version of Ubuntu: + +```powershell +wsl -l -v +``` + +You should see something like this: + +```powershell + NAME STATE VERSION +* Ubuntu Running 2 +# or Ubuntu-22.04 depending if you install the LTS or a specific version +``` + +You can set the default WSL2 distro by using the following command: + +```powershell +wsl --set-default Ubuntu # or Ubuntu-22.04 depending if you install the LTS or a specific version +``` + +Then, you can start your Ubuntu distribution: + +```powershell +wsl -d Ubuntu # or Ubuntu-22.04 depending if you install the LTS or a specific version +``` + +Finally, you can update your packages: + +```bash +sudo apt update && sudo apt upgrade -y +``` + +## Configure WSL2 + +Then, you have 2 options to continue the installation: + +- [WSL2 and systemd](./1.wsl2-with-systemd.md) +- [WSL2 and Genie](./2.wsl2-with-genie.md) + +::alert{type="info"} +In order to have Docker and Kubernetes, we need to use `systemd`. WSL2 supports `systemd`natively but it is not enabled by default. You can also use `Genie` to enable `systemd` but it is not recommended. +:: diff --git a/.docs/content/1.installation/2.windows/1.wsl2-with-systemd.md b/.docs/content/1.installation/2.windows/1.wsl2-with-systemd.md new file mode 100644 index 000000000..4f06dd901 --- /dev/null +++ b/.docs/content/1.installation/2.windows/1.wsl2-with-systemd.md @@ -0,0 +1,64 @@ +# WSL2 with systemd + +::alert{type="warning"} +This installation method is not recommended for production environments. +:: + +This installation will use the new `systemd` support of WSL2. You must verify that your Windows version is compatible with `systemd` support (WSL: Version 0.67.6 and above). If you are using an older version, you can use [Genie](./2.wsl2-with-genie.md). + +::alert{type="info"} +You must have installed WSL2 and Ubuntu LTS (22.04 or above) before continuing. If you haven't, please refer to the [WSL2 installation](./0.installation-using-wsl2.md) method. +:: + +## Enable `systemd` support + +Then, you will need to enable `systemd` support. In fact, ArmoniK uses Kubernetes which requires `systemd`. + +To enable `systemd` support, you must start your Ubuntu distribution and add these lines to the `/etc/wsl.conf` file (you will need sudo privileges): + +```bash +[boot] +systemd=true +``` + +::alert{type="info"} +Read more about `systemd` support on the [Microsoft documentation](https://devblogs.microsoft.com/commandline/systemd-support-is-now-available-in-wsl/). +:: + +Then you must restart your Ubuntu distribution in order to apply the changes. + +```powershell +wsl --shutdown +``` + +Then, restart your Ubuntu distribution. + +```powershell +wsl -d Ubuntu # Or Ubuntu-22.04 depending if you install the LTS or a specific version +``` + +Don't forget to verify that `systemd` is enabled: + +```bash +systemctl +``` + +To finish, update your packages: + +```bash +sudo apt update && sudo apt upgrade -y +``` + +## Install ArmoniK + +::alert{type="warning"} +Be careful, you must enable `systemd` support before installing ArmoniK. +:: + +First, clone the ArmoniK repository (inside your home directory from WSL2 Ubuntu distribution): + +```bash +git clone https://github.com/aneoconsulting/ArmoniK.git +``` + +Then, you can install ArmoniK following the [Linux installation instructions](../1.linux/0.prerequisites.md). diff --git a/.docs/content/1.installation/2.windows/2.wsl2-with-genie.md b/.docs/content/1.installation/2.windows/2.wsl2-with-genie.md new file mode 100644 index 000000000..076eb0dd1 --- /dev/null +++ b/.docs/content/1.installation/2.windows/2.wsl2-with-genie.md @@ -0,0 +1,100 @@ +# WSL2 with genie + +::alert{type="warning"} +This installation method is not recommended for production environments. +:: + +This installation will use [`genie`](https://github.com/arkane-systems/genie). Genie is a tool which gives you a way to run systemd as pid 1. The usage of this tool will disable some Windows goodies within your Ubuntu distribution. + +::alert{type="warning"} +We do not recommend to use this installation method, even for development environment since WSL2 support natively `systemd`. We recommend to use [WSL2 with systemd](./1.wsl2-with-systemd.md). +:: + +::alert{type="info"} +You must have installed WSL2 and Ubuntu before continuing. If you haven't, please refer to the [WSL2 installation](./0.installation-using-wsl2.md) method. +:: + +## Install genie + +To install `genie`: + +```bash +./infrastructure/utils/scripts/installation/install-genie.sh +``` + +::alert{type="info"} +Please, read the script `install-genie.sh` before executing it. +:: + +Finally, in order to avoid some issues, you need to mask some services. + +```bash +sudo systemctl disable getty@tty1.service multipathd.service multipathd.socket ssh.service +sudo systemctl mask systemd-remount-fs.service +``` + +::alert{type="info"} +You can find more information about this issue on the [genie documentation](https://github.com/arkane-systems/genie#warning-timing-out). This setup works for the version of Genie installed with our script but could vary with other versions. +:: + +Then, you need to exit your Ubuntu distribution and restart it. + +```bash +exit +``` + +```powershell +wsl --shutdown +``` + +::alert{type="warning"} +Please, do not start a WSL2 session with native `systemd` in parallel of `genie`. This will cause some issues with k3s when you will try to install it. +:: + +## Start session + +Because `genie` must be started as PID 1, you need to start a session with `genie`. + +```bash +wsl genie -s +``` + +`-s` is used to initialize the bottle (if necessary), and run a shell in it. You can find more options on the [genie documentation](https://github.com/arkane-systems/genie#usage). + +::alert{type="info"} +You could also use `wsl genie -i` to initialize `genie` prior to starting a session. +:: + +::alert{type="info"} +If you have multiple WSL2 installations, you can specify the distribution name with `wsl -d genie -s`. +:: + +::alert{type="warning"} +Starting a WSL2 session with `wsl` alone will not create the session within the `genie` namespace, and thus services like Docker or Kubernetes will not behave as expected. **Be careful**. +:: + +When starting your session, you could see this : + +```text +Waiting for systemd....!!!!!!!!!!!!! +``` + +Because some services will start before `systemd`, you will see this message. You can ignore it. To start faster, you can hit `ctrl + c` to stop the waiting and re-run the command `wsl genie -s`. + +::alert{type="info"} +You can find more information about this issue on the [genie documentation](https://github.com/arkane-systems/genie#warning-timing-out) +:: + +## Install ArmoniK + +::alert{type="warning"} +Be careful, you must enable `genie` support before installing ArmoniK. +:: + +First, clone the ArmoniK repository (inside your home directory from WSL2 Ubuntu distribution): + +```bash +git clone https://github.com/aneoconsulting/ArmoniK.git +``` + +Then, you can install ArmoniK following the [Linux installation instructions](../1.linux/0.prerequisites.md). diff --git a/.docs/content/1.installation/2.windows/3.useful-commands-for-wsl2.md b/.docs/content/1.installation/2.windows/3.useful-commands-for-wsl2.md new file mode 100644 index 000000000..7262a9ff6 --- /dev/null +++ b/.docs/content/1.installation/2.windows/3.useful-commands-for-wsl2.md @@ -0,0 +1,46 @@ +# Useful commands for WSL2 + +- To verify the WSL version: + ```powershell + wsl --list --verbose + ``` + +- To view installed distro list: + ```powershell + wsl --list + ``` + +- To change the default distro: + ```powershell + wsl --set-default + ``` + +- To launch a distro: + ```powershell + wsl -d + ``` + +- To launch the default distro: + ```powershell + wsl + ``` + +- To launch a distro with a specific user: + ```powershell + wsl -d -u + ``` + +- To launch a command in a distro: + ```powershell + wsl -d -e + ``` + +- To lanch a distro in a specific directory: + ```powershell + wsl -d -w + ``` + +- To uninstall a distro: + ```powershell + wsl --unregister + ``` diff --git a/.docs/content/1.installation/2.windows/4.installation.md b/.docs/content/1.installation/2.windows/4.installation.md new file mode 100644 index 000000000..80e6e63ab --- /dev/null +++ b/.docs/content/1.installation/2.windows/4.installation.md @@ -0,0 +1,5 @@ +# Installation on Windows + +::alert{type="warning"} +Currently, ArmoniK is only available on Linux. But you can use [WSL2 to install ArmoniK](./0.installation-using-wsl2.md) on Windows. +:: diff --git a/.docs/content/1.installation/2.windows/_dir.yml b/.docs/content/1.installation/2.windows/_dir.yml new file mode 100644 index 000000000..33fd20e6b --- /dev/null +++ b/.docs/content/1.installation/2.windows/_dir.yml @@ -0,0 +1,2 @@ +title: Windows +navigation.icon: vscode-icons:folder-type-windows diff --git a/.docs/content/2.installation/2.aws/_dir.yml b/.docs/content/1.installation/3.aws/_dir.yml similarity index 100% rename from .docs/content/2.installation/2.aws/_dir.yml rename to .docs/content/1.installation/3.aws/_dir.yml diff --git a/.docs/content/2.installation/2.aws/aws_k3s_deploy.md b/.docs/content/1.installation/3.aws/aws_k3s_deploy.md similarity index 100% rename from .docs/content/2.installation/2.aws/aws_k3s_deploy.md rename to .docs/content/1.installation/3.aws/aws_k3s_deploy.md diff --git a/.docs/content/2.installation/2.aws/aws_kubeadm_deploy.md b/.docs/content/1.installation/3.aws/aws_kubeadm_deploy.md similarity index 100% rename from .docs/content/2.installation/2.aws/aws_kubeadm_deploy.md rename to .docs/content/1.installation/3.aws/aws_kubeadm_deploy.md diff --git a/.docs/content/1.installation/_dir.yml b/.docs/content/1.installation/_dir.yml new file mode 100644 index 000000000..8c6a47591 --- /dev/null +++ b/.docs/content/1.installation/_dir.yml @@ -0,0 +1,2 @@ +title: Installation +navigation.icon: ph:download-duotone diff --git a/.docs/content/1.guide/0.index.md b/.docs/content/2.guide/0.index.md similarity index 93% rename from .docs/content/1.guide/0.index.md rename to .docs/content/2.guide/0.index.md index a98657ab7..912126b77 100644 --- a/.docs/content/1.guide/0.index.md +++ b/.docs/content/2.guide/0.index.md @@ -1,3 +1,5 @@ + + # **ArmoniK** documentation _ArmoniK_ is a high throughput compute grid project using Kubernetes. diff --git a/.docs/content/1.guide/ClientLargeTasksDiagram.md b/.docs/content/2.guide/ClientLargeTasksDiagram.md similarity index 94% rename from .docs/content/1.guide/ClientLargeTasksDiagram.md rename to .docs/content/2.guide/ClientLargeTasksDiagram.md index 5697cd432..7ad43c048 100644 --- a/.docs/content/1.guide/ClientLargeTasksDiagram.md +++ b/.docs/content/2.guide/ClientLargeTasksDiagram.md @@ -1,39 +1,17 @@ # ClientLargeTasks State Diagram -```mermaid + stateDiagram-v2 - [*] --> GrpcStreamOpened - - GrpcStreamOpened --> OpenedSession:InitRequest - GrpcStreamOpened --> Error:* - - - OpenedSession --> OpenedTask:InitTaskRequest_taskRequestHeader - OpenedSession --> GrpcStreamClosed:InitTaskRequest_RequestEnd - OpenedSession --> Error:* - - - OpenedTask --> PayloadTransfert:DataChunk_bytes - OpenedTask --> Error:* - - - PayloadTransfert --> PayloadTransfert:DataChunk_bytes - PayloadTransfert --> OpenedSession:DataChunk_dataComplete - PayloadTransfert --> Error:* - - - Error --> GrpcStreamClosed - GrpcStreamClosed --> [*] -``` + diff --git a/.docs/content/1.guide/Happy-Flow-Diagram-Sequence.md b/.docs/content/2.guide/Happy-Flow-Diagram-Sequence.md similarity index 98% rename from .docs/content/1.guide/Happy-Flow-Diagram-Sequence.md rename to .docs/content/2.guide/Happy-Flow-Diagram-Sequence.md index 78b448954..9799c9897 100644 --- a/.docs/content/1.guide/Happy-Flow-Diagram-Sequence.md +++ b/.docs/content/2.guide/Happy-Flow-Diagram-Sequence.md @@ -1,4 +1,4 @@ -```mermaid + sequenceDiagram #title ArmoniK Happy Flow Sequence Client-->>Client:Generate GUID for session @@ -7,17 +7,14 @@ sequenceDiagram Submitter->>SessionTable:Create session document Submitter->>Client:Session OK deactivate Client - Client->>Submitter:Get Service Configuration activate Client Submitter->>Client:Service Configuration deactivate Client - Client-->>Client:Generate GUID for TaskId activate Client Client->>Submitter:Create Task activate Submitter - Submitter->>TaskTable:Get default task options activate Submitter Submitter->>PayloadStorage:Store task payload @@ -25,78 +22,52 @@ sequenceDiagram Submitter->>ResultTable:Create Result Document Submitter-->>Submitter:Wait all Task creation calls deactivate Submitter - #TODO : check order of next 2 lines Submitter->>Queue:Send TaskId Submitter->>TaskTable:Update Task Status = submitted deactivate Submitter - Submitter->>Client:Task created deactivate Client - Client->>Submitter:WaitForResultAvailability activate Client activate Submitter - Submitter->>ResultTable:Get Result Metadata Submitter->>Submitter:Get OwnerTaskId from Result Metadata Submitter->>TaskTable:Poll until OwnerTaskId is completed activate Submitter - PollingAgent->>Queue:Get TaskId - #Check Preconditions PollingAgent->>TaskTable:Get task meta-data PollingAgent-->>PollingAgent:Handle bad status PollingAgent->>ResultTable:Check data dependencies availability PollingAgent->>SessionTable:Check Session Cancellation - PollingAgent->>DispatchTable:Acquire dispatch - DispatchTable->>PollingAgent:Get dispatch Handler - PollingAgent-->>PollingAgent:Check Retry Number - PollingAgent->>TaskTable:Update Task Status = Dispatched - #Data Prefetch PollingAgent->>PayloadStorage:Payload retrieval - PollingAgent->>PollingAgent:Wait for Worker Availability - #Process PollingAgent->>TaskTable:Update Task Status = Processing - PollingAgent->>Worker:Send Compute Request and open stream - Worker->>PollingAgent:[Optional] Submit Subtask - Worker->>PollingAgent:Send Results - PollingAgent->>ResultStorage:Send Result - PollingAgent->>ResultTable:Send Result Availability - PollingAgent->>Worker: Acknowledge - Worker->>PollingAgent:Send Output (OK vs Error) and close stream - PollingAgent->>DispatchTable:Finalize Dispatch **with output metadata**. - PollingAgent->>TaskTable:Update Status = Completed - PollingAgent->>Queue:Release message - deactivate Submitter Submitter->>ResultTable:Check if Result is available - Submitter->>Client:ResultAvailable deactivate Submitter deactivate Client - Client->>Submitter:Get Result activate Client Submitter->>ResultStorage:Get Result Submitter->>Client:Result deactivate Client -``` \ No newline at end of file + diff --git a/.docs/content/1.guide/Partitionning.md b/.docs/content/2.guide/Partitionning.md similarity index 98% rename from .docs/content/1.guide/Partitionning.md rename to .docs/content/2.guide/Partitionning.md index 2c720df26..4d0f7aeef 100644 --- a/.docs/content/1.guide/Partitionning.md +++ b/.docs/content/2.guide/Partitionning.md @@ -1,3 +1,5 @@ + + # **ArmoniK Partitioning Configuration Guide** This guide aims to present the setup and usage of the partitions within ArmoniK. @@ -197,4 +199,4 @@ var createTaskReply = await submitterClient.CreateTasksAsync( ); ``` -**Warning:** It is an error to set the `PartitionId` to `null`. \ No newline at end of file +**Warning:** It is an error to set the `PartitionId` to `null`. diff --git a/.docs/content/1.guide/PollingAgentClientDiagram.md b/.docs/content/2.guide/PollingAgentClientDiagram.md similarity index 97% rename from .docs/content/1.guide/PollingAgentClientDiagram.md rename to .docs/content/2.guide/PollingAgentClientDiagram.md index 5e7e3ff9b..026904e62 100644 --- a/.docs/content/1.guide/PollingAgentClientDiagram.md +++ b/.docs/content/2.guide/PollingAgentClientDiagram.md @@ -2,7 +2,7 @@ ## Client -```mermaid + stateDiagram-v2 [*] --> GrpcStreamOpened GrpcStreamOpened --> SendComputeRequest:ComputeRequest @@ -10,7 +10,6 @@ stateDiagram-v2 SCR_PayloadTransfert : PayloadTransfert SCR_Dependencies : Dependencies SCR_DataTransfert : DataTransfert - [*] --> SCR_PayloadTransfert:InitRequest SCR_PayloadTransfert --> SCR_PayloadTransfert:DataChunk_bytes SCR_PayloadTransfert --> SCR_Dependencies:DataChunk_dataComplete @@ -20,7 +19,6 @@ stateDiagram-v2 SCR_Dependencies --> [*] } SendComputeRequest --> Listening:InitData_last_data - Listening --> GrpcStreamClosed:rcv_Output Listening --> ResultReception:rcv_Result Listening --> SmallTaskReception:rcv_CreateSmallTaskRequest @@ -28,24 +26,19 @@ stateDiagram-v2 Listening --> ResourceRequestReception:rcv_DataRequest(resource) Listening --> CommonDataRequestReception:rcv_DataRequest(common_data) Listening --> DirectDataRequestReception:rcv_DataRequest(direct_data) - state ResultReception { [*] --> ResultTransfert:rcv_Init ResultTransfert --> ResultTransfert:rcv_DataChunk_bytes ResultTransfert -->[*] : rcv_DataChunk_dataComplete } ResultReception-->Listening - - state SmallTaskReception { [*] --> CreateSmallTaskRequest CreateSmallTaskRequest --> [*] } SmallTaskReception --> Listening - state LargeTaskReception { LT_PayloadTransfert : PayloadTransfert - [*] --> OpenedTaskSession:rcv_InitTaskRequest_taskRequestHeader OpenedTaskSession --> [*]:rcv_InitTaskRequest_RequestEnd OpenedTaskSession --> LT_PayloadTransfert:rcv_DataChunk_bytes @@ -53,24 +46,20 @@ stateDiagram-v2 LT_PayloadTransfert --> OpenedTaskSession:rcv_DataChunk_dataComplete } LargeTaskReception --> Listening - state ResourceRequestReception { [*] --> ResourceRequestNotImplementedException ResourceRequestNotImplementedException --> [*] } ResourceRequestReception --> Listening - state CommonDataRequestReception { [*] --> CommonDataRequestNotImplementedException CommonDataRequestNotImplementedException --> [*] } CommonDataRequestReception --> Listening - state DirectDataRequestReception { [*] --> DirectDataRequestNotImplementedException DirectDataRequestNotImplementedException --> [*] } DirectDataRequestReception --> Listening - GrpcStreamClosed --> [*] -``` + diff --git a/.docs/content/2.guide/_dir.yml b/.docs/content/2.guide/_dir.yml new file mode 100644 index 000000000..695a8d89a --- /dev/null +++ b/.docs/content/2.guide/_dir.yml @@ -0,0 +1,2 @@ +title: Guide +navigation.icon: ph:book-bookmark-duotone diff --git a/.docs/content/1.guide/authentication-configuration-guide.md b/.docs/content/2.guide/authentication-configuration-guide.md similarity index 100% rename from .docs/content/1.guide/authentication-configuration-guide.md rename to .docs/content/2.guide/authentication-configuration-guide.md diff --git a/.docs/content/1.guide/debug.md b/.docs/content/2.guide/debug.md similarity index 92% rename from .docs/content/1.guide/debug.md rename to .docs/content/2.guide/debug.md index 83eee71f9..184eeacfb 100644 --- a/.docs/content/1.guide/debug.md +++ b/.docs/content/2.guide/debug.md @@ -1,3 +1,5 @@ + + # Debug Informations to save the day ## Debug C# container with Visual Studio Code @@ -15,4 +17,4 @@ curl -sSL https://aka.ms/getvsdbgsh | /bin/sh /dev/stdin -v latest -l /vsdbg ### Sources [https://www.hanselman.com/blog/remote-debugging-a-net-core-linux-app-in-wsl2-from-visual-studio-on-windows](https://www.hanselman.com/blog/remote-debugging-a-net-core-linux-app-in-wsl2-from-visual-studio-on-windows) [https://code.visualstudio.com/docs/remote/attach-container](https://code.visualstudio.com/docs/remote/attach-container) -[https://okteto.com/blog/remote-kubernetes-development/](https://okteto.com/blog/remote-kubernetes-development/) \ No newline at end of file +[https://okteto.com/blog/remote-kubernetes-development/](https://okteto.com/blog/remote-kubernetes-development/) diff --git a/.docs/content/1.guide/image-versions.md b/.docs/content/2.guide/image-versions.md similarity index 100% rename from .docs/content/1.guide/image-versions.md rename to .docs/content/2.guide/image-versions.md diff --git a/.docs/content/1.guide/nice-charts-howto.md b/.docs/content/2.guide/nice-charts-howto.md similarity index 90% rename from .docs/content/1.guide/nice-charts-howto.md rename to .docs/content/2.guide/nice-charts-howto.md index 49aba0310..011eeb618 100644 --- a/.docs/content/1.guide/nice-charts-howto.md +++ b/.docs/content/2.guide/nice-charts-howto.md @@ -1,3 +1,5 @@ + + [Mermaid](https://mermaid-js.github.io/mermaid/#/) is a JavaScript based diagramming and charting tool. Recently, github added support to render mermaid code directly into the web browser. For example the code @@ -45,13 +47,12 @@ stateDiagram will be rendered as -```mermaid + stateDiagram direction LR [*] --> State1 State1 --> [*]: A happy transition State1 --> State2 - %% This is how you declare composite states state State2 { [*] --> task_ready @@ -60,18 +61,15 @@ stateDiagram } State2 --> State2 note left of State2 : A happy note - %% This is how you make forks state fork_state <> State2 --> fork_state fork_state --> fork1 fork_state --> fork2 - %% and how to merge them state join_state <> fork1 --> join_state fork2 --> join_state - %% And this how specify concurrency state State3 { [*]-->async1 @@ -80,9 +78,9 @@ stateDiagram -- [*]-->async3 } - join_state --> State3 State3 --> [*] -``` + + You can use [this live editor](https://mermaid.live) -to produce your charts and then just put them into a markdown file in your repository. Have fun :) \ No newline at end of file +to produce your charts and then just put them into a markdown file in your repository. Have fun :) diff --git a/.docs/content/1.guide/using-seq.md b/.docs/content/2.guide/using-seq.md similarity index 98% rename from .docs/content/1.guide/using-seq.md rename to .docs/content/2.guide/using-seq.md index f254568a5..1b44ce0cd 100644 --- a/.docs/content/1.guide/using-seq.md +++ b/.docs/content/2.guide/using-seq.md @@ -1,3 +1,5 @@ + + # Configure Seq If you want to access outside your kubernetes cluster, you have to configure seq to make it accessible from outside. diff --git a/.docs/content/2.installation/0.index.md b/.docs/content/2.installation/0.index.md deleted file mode 100644 index 1068474b4..000000000 --- a/.docs/content/2.installation/0.index.md +++ /dev/null @@ -1,29 +0,0 @@ -# Kubernetes installation - -Hereafter we describe the instructions to install Kubernetes on an onpremise cluster. We present two examples of Kubernetes on Linux cluster machines: - -## [AWS and K3s installation](xref:aws_k3s_deploy) - -Installation using K3s as kubernetes implementation. - -## [AWS and kubeadm installation](xref:aws_kubeadm_deploy) - -Installation using kubeadm. - -# ArmoniK installation - -## Single server installation (developement only) - -These documentations are giving indications on how to create a first time environment for a developer and/or a test plateform. This is not the documentation that should be used to deploy on a the cloud or on-premise cluster. - -### [Windows Subsytem Linux Installation](xref:all_in_one_deploy_powershell) - -Process to install ArmoniK using WSL on windows. - -### [Ubuntu Linux 18.04 and 20.04 Installation](xref:all_in_one_deploy_linux) - -Step by step documentation to install ArmoniK and its prerequisites on a Linux system (single server). This documentation can be used as a base to install ArmoniK on another Linux distribution. - -## [How-To test ArmoniK installation](Tests/simple_tests.md) - -Some simple test to validate ArmoniK installation diff --git a/.docs/content/2.installation/1.local/_dir.yml b/.docs/content/2.installation/1.local/_dir.yml deleted file mode 100644 index 33b862315..000000000 --- a/.docs/content/2.installation/1.local/_dir.yml +++ /dev/null @@ -1,2 +0,0 @@ -title: Local Deployment -navigation.icon: vscode-icons:default-folder diff --git a/.docs/content/2.installation/1.local/all-in-one-deploy-linux.md b/.docs/content/2.installation/1.local/all-in-one-deploy-linux.md deleted file mode 100644 index 2babd4998..000000000 --- a/.docs/content/2.installation/1.local/all-in-one-deploy-linux.md +++ /dev/null @@ -1,176 +0,0 @@ ---- -uid: all_in_one_deploy_linux ---- - -# Ubuntu Linux 18.04 and 20.04 deployment - -Hereafter, You have instructions to deploy ArmoniK on dev/test environment upon your local machine with a simple deploy -script [deploy-dev-test-infra.sh] located in ArmoniK directory `infrastructure/utils/scripts/`. - -The infrastructure is composed of: - -* Storage: - * [ActiveMQ](https://activemq.apache) - * [MongoDB](https://www.mongodb.com/) - * [Redis](https://redis.com/) -* Monitoring: - * [Seq](https://datalust.co/) server for structured log data of ArmoniK. - * [Grafana](https://grafana.com/) - * [Prometheus](https://prometheus.io/) -* ArmoniK: - * Control plane - * Compute plane: polling agent and workers - -# Prerequisites - -The following software or tool should be installed upon your local Linux machine: - -* [Docker](https://docs.docker.com/engine/install/) -* [GNU make](https://www.gnu.org/software/make/) -* [JQ](https://stedolan.github.io/jq/download/) -* [Kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/) -* [Python](https://docs.python-guide.org/starting/install3/linux/) version 3 - * [hcl2](https://pypi.org/project/python-hcl2/) - * [jsonpath-ng](https://pypi.org/project/jsonpath-ng/) -* [Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli) - -# Install Kubernetes - -You must have a Kubernetes on your local machine to install ArmoniK. If not, You can follow instructions in one of the following documentation [Install Kubernetes on dev/test local machine](k3s.md). - -# Script bash all-in-one - -From the **root** of the repository, position yourself in directory `infrastructure/utils/scripts/` after cloning the [ArmoniK](https://github.com/aneoconsulting/ArmoniK) repository: - -```bash -cd infrastructure/utils/scripts -``` - -- To see the usage command: - ```bash - ./deploy-dev-test-infra.sh -h - ``` -- To deploy for the first time all infrastructure: - ```bash - ./deploy-dev-test-infra.sh -m deploy-all - ``` -- To redeploy all infrastructure: - ```bash - ./deploy-dev-test-infra.sh -m redeploy-all - ``` -- To destroy all infrastructure: - ```bash - ./deploy-dev-test-infra.sh -m destroy-all - ``` -- To clean and delete all generated files from all deployment: - ```bash - ./deploy-dev-test-infra.sh -m clean-all - ``` - -If You want to deploy each resource independently: - -- To deploy storage: - ```bash - ./deploy-dev-test-infra.sh -m deploy-storage - ``` -- To deploy monitoring: - ```bash - ./deploy-dev-test-infra.sh -m deploy-monitoring - ``` -- To deploy armonik: - ```bash - ./deploy-dev-test-infra.sh -m deploy-armonik - ``` - -If You want to redeploy each resource independently: - -- To redeploy storage: - ```bash - ./deploy-dev-test-infra.sh -m redeploy-storage - ``` -- To redeploy monitoring: - ```bash - ./deploy-dev-test-infra.sh -m redeploy-monitoring - ``` -- To redeploy armonik: - ```bash - ./deploy-dev-test-infra.sh -m redeploy-armonik - ``` - -If You want to destroy each resource independently: - -- To destroy storage: - ```bash - ./deploy-dev-test-infra.sh -m destroy-storage - ``` -- To destroy monitoring: - ```bash - ./deploy-dev-test-infra.sh -m destroy-monitoring - ``` -- To destroy armonik: - ```bash - ./deploy-dev-test-infra.sh -m destroy-armonik - ``` - -If You want to clean and delete generated files from each deployment independently: - -- To clean storage: - ```bash - ./deploy-dev-test-infra.sh -m clean-storage - ``` -- To clean monitoring: - ```bash - ./deploy-dev-test-infra.sh -m clean-monitoring - ``` -- To clean armonik: - ```bash - ./deploy-dev-test-infra.sh -m clean-armonik - ``` - -If You want to deploy on specific Kubernetes namespace, You execute the following command: - -```bash -./deploy-dev-test-infra.sh -m deploy-all --namespace -``` - -If the `host_path` for shared storage for ArmoniK workers is not `${HOME}/data`, You can deploy the infrastructure as -follows: - -```bash -./deploy-dev-test-infra.sh -m deploy-all --host-path -``` - -If You have a NFS filesystem as shared storage for ArmoniK workers, You deploy the infrastructure as follows: - -```bash -./deploy-dev-test-infra.sh \ - -m deploy-all \ - --host-path \ - --nfs-server-ip \ - --shared-storage-type NFS -``` - -If You change container image and/or tag of control plane, polling agent, worker or metrics exporter: - -```bash -./deploy-dev-test-infra.sh \ - -m deploy-all \ - --control-plane-image \ - --polling-agent-image \ - --worker-image \ - --metrics-exporter-image \ - --core-tag \ - --worker-tag -``` - -where `--core-tag ` allows to update the container tag for ArmoniK Core (control plane, polling agent and -metrics exporter). - -If You change the max or min replicas in the HPA of the compute plane: - -```bash -./deploy-dev-test-infra.sh \ - -m deploy-all \ - --hpa-min-replicas \ - --hpa-max-replicas -``` \ No newline at end of file diff --git a/.docs/content/2.installation/1.local/all-in-one-deploy-powershell.md b/.docs/content/2.installation/1.local/all-in-one-deploy-powershell.md deleted file mode 100644 index 807c9e118..000000000 --- a/.docs/content/2.installation/1.local/all-in-one-deploy-powershell.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -uid: all_in_one_deploy_powershell ---- - -# ArmoniK installation on Windows Subsytem Linux - -## Pre-requirements - -There are two pre-requisites to be able to use the script to install and test ArmoniK -on windows: - -* Windows Subsystem Linux version 2 (WSL2) -* Powershell Core 7 or greater -* Git to access ArmoniK repository - -To install this two requirements (of not already available on your system): - -* [WSL2](https://docs.microsoft.com/en-us/windows/wsl/install) -* [Powershell Core 7](https://docs.microsoft.com/fr-fr/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.2) -* [Git](https://git-scm.com) - -Another solution, at least for the Powershell and Git installation is to use the [chocolatey package manager](http://chocolatey.org/). - -In addition, for a standalone ArmoniK instance in WSL2 to be able to work, Docker Desktop on Windows should be *deactivated*. If it is not the case the script installing ArmoniK will stop. - -When all the requirement are available. It is possible to clone ArmoniK repository and using the powershell script to install a WSL2 version and launch some tests. - -## Cloning ArmoniK repository - -To clone ArmoniK go to the directory where you want to clone it. If we want to clone it in the main directory of the user: - -```powershell -cd c:\Users\$env:username -git clone https://github.com/aneoconsulting/ArmoniK.git -``` - -when the project is cloned, go to the directory: - -```pwsh -cd C:\Users\$env:username\ArmoniK\ArmoniK\infrastructure\utils\scripts -``` - -and start the script from a powershell (_pwsh_) terminal: - -```pwsh -.\armonik_dev_environment.ps1 -``` - -![start script](~/images/installations/wsl_armonik1.png) - -This will open a new terminal where the Ubuntu linux image configuration (user and password) will be done: - -![wsl ubuntu configuration2](~/images/installations/wsl_armonik2.png) - -You need to quit this new terminal (`exit` command or close the window). -The script is asking for the username and the password used in the Linux image and will be necessary to continue the script. - -![wsl ubuntu configuration](~/images/installations/wsl_armonik3.png) - -The last question will concern the ArmoniK branch that you want to use in this deployment: - -![ArmoniK branch choice](~/images/installations/wsl_armonik4.png) - -After answering these questions, the installation will be done in the following steps: - -1. Installation of the system dependencies in the WSL ubuntu using the script `ubuntu_requirements.sh` -2. Systemd installation. Step only needed on WSL and only possible with the Ubuntu distribution for now. -3. ArmoniK requirement installation -4. ArmoniK installation from the source -5. Run ArmoniK tests - -In theory, a new tabulation will open in your default webrowser to access to the logs with [seq](https://datalust.co/). - -## Connection to the WSL - -It is possible to access at anytime to the WSL Ubuntu by using the following command (after systemd installation): - -```powershell -wsl genie -s -``` - - - - - diff --git a/.docs/content/2.installation/1.local/k3s.md b/.docs/content/2.installation/1.local/k3s.md deleted file mode 100644 index 0e8f41587..000000000 --- a/.docs/content/2.installation/1.local/k3s.md +++ /dev/null @@ -1,25 +0,0 @@ -# Local Docker and Kubernetes installation - -Instructions to install Docker and Kubernetes on local Linux machine - -You can use [K3s Lightweight Kubernetes](https://rancher.com/docs/k3s/latest/en/) on Linux OS. - -## Install Docker - -To install Docker, you can follow the instructions presented [here](https://docs.docker.com/engine/install/) for each distribution. - -## Install Kubernetes - -Install K3s as follows: - -```bash -curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644 --docker --write-kubeconfig ~/.kube/config -``` - -## Uninstall Kubernetes - -To uninstall k3s on your local machine or a VM, use the following command: - -```bash -/usr/local/bin/k3s-uninstall.sh -``` \ No newline at end of file diff --git a/.docs/content/2.installation/_dir.yml b/.docs/content/2.installation/_dir.yml deleted file mode 100644 index 7b32cfd23..000000000 --- a/.docs/content/2.installation/_dir.yml +++ /dev/null @@ -1,2 +0,0 @@ -title: Installation -navigation.icon: heroicons:arrow-down-on-square diff --git a/.docs/content/2.installation/simple_tests.md b/.docs/content/2.installation/simple_tests.md deleted file mode 100644 index 553b7b4fc..000000000 --- a/.docs/content/2.installation/simple_tests.md +++ /dev/null @@ -1,114 +0,0 @@ -# Simple tests - -After installing **Armonik**, it is time to execute some simple test to check that everything is working as expected. **ArmoniK** team is providing three simple tests to verify that the deployment wen well. - -## Seq webserver - -The first tests suggested is to validate that the log server ([Seq](https://datalust.co/)) did start correctly. - -After the deployment, you can connect to the Seq webserver by using `seq.web_url` retrieved from the Terraform outputs `monitoring/generated/monitoring-output.json`, example: - -```bash -http://192.168.1.13:8080 -``` - -or: - -```bash -http://localhost:8080 -``` - -where `Username: admin` and `Password: admin`: - -![Seq authentication](~/images/Tests/seq_auth.png) - -## Tests - -### Scripts of tests - -You have three scripts for testing ArmoniK : - -* [tools/tests/symphony_like.sh](https://github.com/aneoconsulting/ArmoniK.Samples/tree/main/tools/tests/symphony_like.sh) -* [tools/tests/datasynapse_like.sh](https://github.com/aneoconsulting/ArmoniK.Samples/tree/main/tools/tests/datasynapse_like.sh) -* [tools/tests/symphony_endToendTests.sh](https://github.com/aneoconsulting/ArmoniK.Samples/tree/main/tools/tests/symphony_endToendTests.sh). - -The following commands in these scripts allow to retrieve the endpoint URL of ArmoniK control plane: - -```bash -export CPIP=$(kubectl get svc control-plane -n armonik -o custom-columns="IP:.spec.clusterIP" --no-headers=true) -export CPPort=$(kubectl get svc control-plane -n armonik -o custom-columns="PORT:.spec.ports[*].port" --no-headers=true) -export Grpc__Endpoint=http://$CPIP:$CPPort -``` - -or You can replace them by the `armonik.control_plane_url` retrieved from Terraform -outputs `armonik/generated/armonik-output.json`, example: - -```bash -export Grpc__Endpoint=http://192.168.1.13:5001 -``` - -### Launch tests - -Before executing the tests, You must download source codes of Samples from the **root** repository: - -```bash -git submodule update --init --recursive -``` - -**and:** - -```bash -git clone https://github.com/aneoconsulting/ArmoniK.Extensions.Csharp.git source/ArmoniK.Extensions.Csharp -``` - -**then:** - -- Execute [tools/tests/symphony_like.sh](https://github.com/aneoconsulting/ArmoniK/blob/main/tools/tests/symphony_like.sh) from the **root** repository: - ```bash - tools/tests/symphony_like.sh - ``` - -- Execute [tools/tests/datasynapse_like.sh](https://github.com/aneoconsulting/ArmoniK/blob/main/tools/tests/datasynapse_like.sh) from the **root** repository: - ```bash - tools/tests/datasynapse_like.sh - ``` - -- Execute [tools/tests/symphony_endToendTests.sh](https://github.com/aneoconsulting/ArmoniK/blob/main/tools/tests/symphony_endToendTests.sh) from the **root** - repository: - ```bash - tools/tests/symphony_endToendTests.sh - ``` - -You can follow logs on Seq webserver: - -![Seq Logs](~/images/Tests/seq.png) - -## Clean-up - -To delete all resources created in Kubernetes, You can execute the following all-in-one command: - -```bash -make destroy-all -``` - -or execute the following commands in this order: - -```bash -make destroy-armonik -make destroy-monitoring -make destroy-storage -``` - -To clean-up and delete all generated files, You execute: - -```bash -make clean-all -``` - -or: - -```bash -make clean-armonik -make clean-monitoring -make clean-aws-storage -``` diff --git a/.docs/package.json b/.docs/package.json index 9bcc6d6c7..58c591915 100644 --- a/.docs/package.json +++ b/.docs/package.json @@ -9,10 +9,10 @@ "preview": "nuxi preview" }, "dependencies": { - "@aneoconsultingfr/armonik-docs-theme": "^0.6.0", - "nuxt": "^3.3.1", - "rollup": "3.18.0", - "mermaid": "^10.0.0" + "@aneoconsultingfr/armonik-docs-theme": "^0.6.3", + "mermaid": "^10.1.0", + "nuxt": "^3.4.1", + "rollup": "3.18.0" }, - "packageManager": "pnpm@8.1.0" + "packageManager": "pnpm@8.2.0" } diff --git a/.docs/pnpm-lock.yaml b/.docs/pnpm-lock.yaml index 67414140d..724b68316 100644 --- a/.docs/pnpm-lock.yaml +++ b/.docs/pnpm-lock.yaml @@ -2,14 +2,14 @@ lockfileVersion: '6.0' dependencies: '@aneoconsultingfr/armonik-docs-theme': - specifier: ^0.6.0 - version: 0.6.0(@unhead/vue@1.1.23)(postcss@8.4.21)(typescript@4.9.5)(vue@3.2.47) + specifier: ^0.6.3 + version: 0.6.3(@types/node@18.15.11)(@unhead/vue@1.1.25)(postcss@8.4.21)(react-dom@16.14.0)(react@16.14.0)(typescript@5.0.4)(vue@3.2.47) mermaid: - specifier: ^10.0.0 - version: 10.0.0 + specifier: ^10.1.0 + version: 10.1.0(react-dom@16.14.0)(react@16.14.0) nuxt: - specifier: ^3.3.1 - version: 3.3.1(rollup@3.18.0)(typescript@4.9.5) + specifier: ^3.4.1 + version: 3.4.1(@types/node@18.15.11)(rollup@3.18.0)(typescript@5.0.4) rollup: specifier: 3.18.0 version: 3.18.0 @@ -24,13 +24,13 @@ packages: '@jridgewell/trace-mapping': 0.3.17 dev: false - /@aneoconsultingfr/armonik-docs-theme@0.6.0(@unhead/vue@1.1.23)(postcss@8.4.21)(typescript@4.9.5)(vue@3.2.47): - resolution: {integrity: sha512-KUObjNBMF9H8VDOTr8U4qXgb72u3Fe8mE6Soy5vrzaBSm3LCfWPP1Lc0ZdnGLqo+17lqFx24MMoTxtpJkO4puQ==} + /@aneoconsultingfr/armonik-docs-theme@0.6.3(@types/node@18.15.11)(@unhead/vue@1.1.25)(postcss@8.4.21)(react-dom@16.14.0)(react@16.14.0)(typescript@5.0.4)(vue@3.2.47): + resolution: {integrity: sha512-1WumnCVWGHPih1bb+8le8HGfUmU0fH0OVqQqVeY3GVuqz3/3R2mBj8F6mxyzspHZkwaG5lZahzyDo0/Vab/1LQ==} dependencies: - '@nuxt-themes/docus': 1.9.9(nuxt@3.3.1)(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47) - mermaid: 10.0.0 - nuxt: 3.3.1(rollup@3.18.0)(typescript@4.9.5) - nuxt-seo-kit: 1.3.6(@unhead/vue@1.1.23)(rollup@3.18.0)(vue@3.2.47) + '@nuxt-themes/docus': 1.10.1(nuxt@3.4.1)(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47) + mermaid: 10.1.0(react-dom@16.14.0)(react@16.14.0) + nuxt: 3.4.1(@types/node@18.15.11)(rollup@3.18.0)(typescript@5.0.4) + nuxt-seo-kit: 1.3.6(@unhead/vue@1.1.25)(rollup@3.18.0)(vue@3.2.47) rollup: 3.18.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -51,6 +51,8 @@ packages: - meow - optionator - postcss + - react + - react-dom - sass - stylelint - stylus @@ -76,25 +78,32 @@ packages: '@babel/highlight': 7.18.6 dev: false - /@babel/compat-data@7.21.0: - resolution: {integrity: sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==} + /@babel/code-frame@7.21.4: + resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + dev: false + + /@babel/compat-data@7.21.4: + resolution: {integrity: sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==} engines: {node: '>=6.9.0'} dev: false - /@babel/core@7.21.0: - resolution: {integrity: sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==} + /@babel/core@7.21.4: + resolution: {integrity: sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.21.1 - '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.21.0) + '@babel/code-frame': 7.21.4 + '@babel/generator': 7.21.4 + '@babel/helper-compilation-targets': 7.21.4(@babel/core@7.21.4) '@babel/helper-module-transforms': 7.21.2 '@babel/helpers': 7.21.0 - '@babel/parser': 7.21.2 + '@babel/parser': 7.21.4 '@babel/template': 7.20.7 - '@babel/traverse': 7.21.2 - '@babel/types': 7.21.2 + '@babel/traverse': 7.21.4 + '@babel/types': 7.21.4 convert-source-map: 1.9.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -104,11 +113,11 @@ packages: - supports-color dev: false - /@babel/generator@7.21.1: - resolution: {integrity: sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==} + /@babel/generator@7.21.4: + resolution: {integrity: sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.21.4 '@jridgewell/gen-mapping': 0.3.2 '@jridgewell/trace-mapping': 0.3.17 jsesc: 2.5.2 @@ -118,30 +127,30 @@ packages: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.21.4 dev: false - /@babel/helper-compilation-targets@7.20.7(@babel/core@7.21.0): - resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} + /@babel/helper-compilation-targets@7.21.4(@babel/core@7.21.4): + resolution: {integrity: sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.21.0 - '@babel/core': 7.21.0 + '@babel/compat-data': 7.21.4 + '@babel/core': 7.21.4 '@babel/helper-validator-option': 7.21.0 browserslist: 4.21.5 lru-cache: 5.1.1 semver: 6.3.0 dev: false - /@babel/helper-create-class-features-plugin@7.21.0(@babel/core@7.21.0): + /@babel/helper-create-class-features-plugin@7.21.0(@babel/core@7.21.4): resolution: {integrity: sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.0 + '@babel/core': 7.21.4 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.21.0 @@ -164,28 +173,28 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.20.7 - '@babel/types': 7.21.2 + '@babel/types': 7.21.4 dev: false /@babel/helper-hoist-variables@7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.21.4 dev: false /@babel/helper-member-expression-to-functions@7.21.0: resolution: {integrity: sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.21.4 dev: false /@babel/helper-module-imports@7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.21.4 dev: false /@babel/helper-module-transforms@7.21.2: @@ -198,8 +207,8 @@ packages: '@babel/helper-split-export-declaration': 7.18.6 '@babel/helper-validator-identifier': 7.19.1 '@babel/template': 7.20.7 - '@babel/traverse': 7.21.2 - '@babel/types': 7.21.2 + '@babel/traverse': 7.21.4 + '@babel/types': 7.21.4 transitivePeerDependencies: - supports-color dev: false @@ -208,7 +217,7 @@ packages: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.21.4 dev: false /@babel/helper-plugin-utils@7.20.2: @@ -224,8 +233,8 @@ packages: '@babel/helper-member-expression-to-functions': 7.21.0 '@babel/helper-optimise-call-expression': 7.18.6 '@babel/template': 7.20.7 - '@babel/traverse': 7.21.2 - '@babel/types': 7.21.2 + '@babel/traverse': 7.21.4 + '@babel/types': 7.21.4 transitivePeerDependencies: - supports-color dev: false @@ -234,21 +243,21 @@ packages: resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.21.4 dev: false /@babel/helper-skip-transparent-expression-wrappers@7.20.0: resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.21.4 dev: false /@babel/helper-split-export-declaration@7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.21.4 dev: false /@babel/helper-string-parser@7.19.4: @@ -271,8 +280,8 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.20.7 - '@babel/traverse': 7.21.2 - '@babel/types': 7.21.2 + '@babel/traverse': 7.21.4 + '@babel/types': 7.21.4 transitivePeerDependencies: - supports-color dev: false @@ -291,45 +300,53 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.21.2 + '@babel/types': 7.21.4 + dev: false + + /@babel/parser@7.21.4: + resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.21.4 dev: false - /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.21.0): + /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.21.4): resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.0 + '@babel/core': 7.21.4 '@babel/helper-plugin-utils': 7.20.2 dev: false - /@babel/plugin-syntax-typescript@7.20.0(@babel/core@7.21.0): + /@babel/plugin-syntax-typescript@7.20.0(@babel/core@7.21.4): resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.0 + '@babel/core': 7.21.4 '@babel/helper-plugin-utils': 7.20.2 dev: false - /@babel/plugin-transform-typescript@7.21.0(@babel/core@7.21.0): + /@babel/plugin-transform-typescript@7.21.0(@babel/core@7.21.4): resolution: {integrity: sha512-xo///XTPp3mDzTtrqXoBlK9eiAYW3wv9JXglcn/u1bi60RW11dEUxIgA8cbnDhutS1zacjMRmAwxE0gMklLnZg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.0 - '@babel/helper-create-class-features-plugin': 7.21.0(@babel/core@7.21.0) + '@babel/core': 7.21.4 + '@babel/helper-create-class-features-plugin': 7.21.0(@babel/core@7.21.4) '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.21.0) + '@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.21.4) transitivePeerDependencies: - supports-color dev: false - /@babel/standalone@7.21.2: - resolution: {integrity: sha512-ySP/TJcyqMJVg1M/lmnPVi6L+F+IJpQ4+0lqtf723LERbk1N8/0JgLgm346cRAzfHaoXkLq/M/mJBd2uo25RBA==} + /@babel/standalone@7.21.4: + resolution: {integrity: sha512-Rw4nGqH/iyVeYxARKcz7iGP+njkPsVqJ45TmXMONoGoxooWjXCAs+CUcLeAZdBGCLqgaPvHKCYvIaDT2Iq+KfA==} engines: {node: '>=6.9.0'} dev: false @@ -337,31 +354,31 @@ packages: resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.18.6 - '@babel/parser': 7.21.2 - '@babel/types': 7.21.2 + '@babel/code-frame': 7.21.4 + '@babel/parser': 7.21.4 + '@babel/types': 7.21.4 dev: false - /@babel/traverse@7.21.2: - resolution: {integrity: sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==} + /@babel/traverse@7.21.4: + resolution: {integrity: sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.21.1 + '@babel/code-frame': 7.21.4 + '@babel/generator': 7.21.4 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.21.0 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.21.2 - '@babel/types': 7.21.2 + '@babel/parser': 7.21.4 + '@babel/types': 7.21.4 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: false - /@babel/types@7.21.2: - resolution: {integrity: sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==} + /@babel/types@7.21.4: + resolution: {integrity: sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.19.4 @@ -404,17 +421,8 @@ packages: engines: {node: ^14 || ^16 || >=18} dev: false - /@esbuild/android-arm64@0.16.17: - resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@esbuild/android-arm64@0.17.12: - resolution: {integrity: sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA==} + /@esbuild/android-arm64@0.17.17: + resolution: {integrity: sha512-jaJ5IlmaDLFPNttv0ofcwy/cfeY4bh/n705Tgh+eLObbGtQBK3EPAu+CzL95JVE4nFAliyrnEu0d32Q5foavqg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -422,8 +430,8 @@ packages: dev: false optional: true - /@esbuild/android-arm@0.16.17: - resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} + /@esbuild/android-arm@0.17.17: + resolution: {integrity: sha512-E6VAZwN7diCa3labs0GYvhEPL2M94WLF8A+czO8hfjREXxba8Ng7nM5VxV+9ihNXIY1iQO1XxUU4P7hbqbICxg==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -431,17 +439,8 @@ packages: dev: false optional: true - /@esbuild/android-arm@0.17.12: - resolution: {integrity: sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@esbuild/android-x64@0.16.17: - resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} + /@esbuild/android-x64@0.17.17: + resolution: {integrity: sha512-446zpfJ3nioMC7ASvJB1pszHVskkw4u/9Eu8s5yvvsSDTzYh4p4ZIRj0DznSl3FBF0Z/mZfrKXTtt0QCoFmoHA==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -449,17 +448,8 @@ packages: dev: false optional: true - /@esbuild/android-x64@0.17.12: - resolution: {integrity: sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@esbuild/darwin-arm64@0.16.17: - resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} + /@esbuild/darwin-arm64@0.17.17: + resolution: {integrity: sha512-m/gwyiBwH3jqfUabtq3GH31otL/0sE0l34XKpSIqR7NjQ/XHQ3lpmQHLHbG8AHTGCw8Ao059GvV08MS0bhFIJQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -467,17 +457,8 @@ packages: dev: false optional: true - /@esbuild/darwin-arm64@0.17.12: - resolution: {integrity: sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@esbuild/darwin-x64@0.16.17: - resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} + /@esbuild/darwin-x64@0.17.17: + resolution: {integrity: sha512-4utIrsX9IykrqYaXR8ob9Ha2hAY2qLc6ohJ8c0CN1DR8yWeMrTgYFjgdeQ9LIoTOfLetXjuCu5TRPHT9yKYJVg==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -485,26 +466,8 @@ packages: dev: false optional: true - /@esbuild/darwin-x64@0.17.12: - resolution: {integrity: sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@esbuild/freebsd-arm64@0.16.17: - resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /@esbuild/freebsd-arm64@0.17.12: - resolution: {integrity: sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ==} + /@esbuild/freebsd-arm64@0.17.17: + resolution: {integrity: sha512-4PxjQII/9ppOrpEwzQ1b0pXCsFLqy77i0GaHodrmzH9zq2/NEhHMAMJkJ635Ns4fyJPFOlHMz4AsklIyRqFZWA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -512,8 +475,8 @@ packages: dev: false optional: true - /@esbuild/freebsd-x64@0.16.17: - resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} + /@esbuild/freebsd-x64@0.17.17: + resolution: {integrity: sha512-lQRS+4sW5S3P1sv0z2Ym807qMDfkmdhUYX30GRBURtLTrJOPDpoU0kI6pVz1hz3U0+YQ0tXGS9YWveQjUewAJw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -521,17 +484,8 @@ packages: dev: false optional: true - /@esbuild/freebsd-x64@0.17.12: - resolution: {integrity: sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-arm64@0.16.17: - resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} + /@esbuild/linux-arm64@0.17.17: + resolution: {integrity: sha512-2+pwLx0whKY1/Vqt8lyzStyda1v0qjJ5INWIe+d8+1onqQxHLLi3yr5bAa4gvbzhZqBztifYEu8hh1La5+7sUw==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -539,17 +493,8 @@ packages: dev: false optional: true - /@esbuild/linux-arm64@0.17.12: - resolution: {integrity: sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-arm@0.16.17: - resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} + /@esbuild/linux-arm@0.17.17: + resolution: {integrity: sha512-biDs7bjGdOdcmIk6xU426VgdRUpGg39Yz6sT9Xp23aq+IEHDb/u5cbmu/pAANpDB4rZpY/2USPhCA+w9t3roQg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -557,26 +502,8 @@ packages: dev: false optional: true - /@esbuild/linux-arm@0.17.12: - resolution: {integrity: sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-ia32@0.16.17: - resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-ia32@0.17.12: - resolution: {integrity: sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw==} + /@esbuild/linux-ia32@0.17.17: + resolution: {integrity: sha512-IBTTv8X60dYo6P2t23sSUYym8fGfMAiuv7PzJ+0LcdAndZRzvke+wTVxJeCq4WgjppkOpndL04gMZIFvwoU34Q==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -584,17 +511,8 @@ packages: dev: false optional: true - /@esbuild/linux-loong64@0.16.17: - resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-loong64@0.17.12: - resolution: {integrity: sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA==} + /@esbuild/linux-loong64@0.17.17: + resolution: {integrity: sha512-WVMBtcDpATjaGfWfp6u9dANIqmU9r37SY8wgAivuKmgKHE+bWSuv0qXEFt/p3qXQYxJIGXQQv6hHcm7iWhWjiw==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -602,17 +520,8 @@ packages: dev: false optional: true - /@esbuild/linux-mips64el@0.16.17: - resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-mips64el@0.17.12: - resolution: {integrity: sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA==} + /@esbuild/linux-mips64el@0.17.17: + resolution: {integrity: sha512-2kYCGh8589ZYnY031FgMLy0kmE4VoGdvfJkxLdxP4HJvWNXpyLhjOvxVsYjYZ6awqY4bgLR9tpdYyStgZZhi2A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -620,8 +529,8 @@ packages: dev: false optional: true - /@esbuild/linux-ppc64@0.16.17: - resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} + /@esbuild/linux-ppc64@0.17.17: + resolution: {integrity: sha512-KIdG5jdAEeAKogfyMTcszRxy3OPbZhq0PPsW4iKKcdlbk3YE4miKznxV2YOSmiK/hfOZ+lqHri3v8eecT2ATwQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -629,26 +538,8 @@ packages: dev: false optional: true - /@esbuild/linux-ppc64@0.17.12: - resolution: {integrity: sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-riscv64@0.16.17: - resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-riscv64@0.17.12: - resolution: {integrity: sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA==} + /@esbuild/linux-riscv64@0.17.17: + resolution: {integrity: sha512-Cj6uWLBR5LWhcD/2Lkfg2NrkVsNb2sFM5aVEfumKB2vYetkA/9Uyc1jVoxLZ0a38sUhFk4JOVKH0aVdPbjZQeA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -656,8 +547,8 @@ packages: dev: false optional: true - /@esbuild/linux-s390x@0.16.17: - resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} + /@esbuild/linux-s390x@0.17.17: + resolution: {integrity: sha512-lK+SffWIr0XsFf7E0srBjhpkdFVJf3HEgXCwzkm69kNbRar8MhezFpkIwpk0qo2IOQL4JE4mJPJI8AbRPLbuOQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -665,17 +556,8 @@ packages: dev: false optional: true - /@esbuild/linux-s390x@0.17.12: - resolution: {integrity: sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-x64@0.16.17: - resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} + /@esbuild/linux-x64@0.17.17: + resolution: {integrity: sha512-XcSGTQcWFQS2jx3lZtQi7cQmDYLrpLRyz1Ns1DzZCtn898cWfm5Icx/DEWNcTU+T+tyPV89RQtDnI7qL2PObPg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -683,17 +565,8 @@ packages: dev: false optional: true - /@esbuild/linux-x64@0.17.12: - resolution: {integrity: sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/netbsd-x64@0.16.17: - resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} + /@esbuild/netbsd-x64@0.17.17: + resolution: {integrity: sha512-RNLCDmLP5kCWAJR+ItLM3cHxzXRTe4N00TQyQiimq+lyqVqZWGPAvcyfUBM0isE79eEZhIuGN09rAz8EL5KdLA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -701,17 +574,8 @@ packages: dev: false optional: true - /@esbuild/netbsd-x64@0.17.12: - resolution: {integrity: sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: false - optional: true - - /@esbuild/openbsd-x64@0.16.17: - resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} + /@esbuild/openbsd-x64@0.17.17: + resolution: {integrity: sha512-PAXswI5+cQq3Pann7FNdcpSUrhrql3wKjj3gVkmuz6OHhqqYxKvi6GgRBoaHjaG22HV/ZZEgF9TlS+9ftHVigA==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -719,26 +583,8 @@ packages: dev: false optional: true - /@esbuild/openbsd-x64@0.17.12: - resolution: {integrity: sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: false - optional: true - - /@esbuild/sunos-x64@0.16.17: - resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: false - optional: true - - /@esbuild/sunos-x64@0.17.12: - resolution: {integrity: sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg==} + /@esbuild/sunos-x64@0.17.17: + resolution: {integrity: sha512-V63egsWKnx/4V0FMYkr9NXWrKTB5qFftKGKuZKFIrAkO/7EWLFnbBZNM1CvJ6Sis+XBdPws2YQSHF1Gqf1oj/Q==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -746,8 +592,8 @@ packages: dev: false optional: true - /@esbuild/win32-arm64@0.16.17: - resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} + /@esbuild/win32-arm64@0.17.17: + resolution: {integrity: sha512-YtUXLdVnd6YBSYlZODjWzH+KzbaubV0YVd6UxSfoFfa5PtNJNaW+1i+Hcmjpg2nEe0YXUCNF5bkKy1NnBv1y7Q==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -755,17 +601,8 @@ packages: dev: false optional: true - /@esbuild/win32-arm64@0.17.12: - resolution: {integrity: sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@esbuild/win32-ia32@0.16.17: - resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} + /@esbuild/win32-ia32@0.17.17: + resolution: {integrity: sha512-yczSLRbDdReCO74Yfc5tKG0izzm+lPMYyO1fFTcn0QNwnKmc3K+HdxZWLGKg4pZVte7XVgcFku7TIZNbWEJdeQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -773,26 +610,8 @@ packages: dev: false optional: true - /@esbuild/win32-ia32@0.17.12: - resolution: {integrity: sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@esbuild/win32-x64@0.16.17: - resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@esbuild/win32-x64@0.17.12: - resolution: {integrity: sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw==} + /@esbuild/win32-x64@0.17.17: + resolution: {integrity: sha512-FNZw7H3aqhF9OyRQbDDnzUApDXfC1N6fgBhkqEO2jvYCJ+DxMTfZVqg3AX0R1khg1wHTBRD5SdcibSJ+XF6bFg==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -862,6 +681,17 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: false + /@khanacademy/simple-markdown@0.8.6(react-dom@16.14.0)(react@16.14.0): + resolution: {integrity: sha512-mAUlR9lchzfqunR89pFvNI51jQKsMpJeWYsYWw0DQcUXczn/T/V6510utgvm7X0N3zN87j1SvuKk8cMbl9IAFw==} + peerDependencies: + react: 16.14.0 + react-dom: 16.14.0 + dependencies: + '@types/react': 18.0.35 + react: 16.14.0 + react-dom: 16.14.0(react@16.14.0) + dev: false + /@mapbox/node-pre-gyp@1.0.10: resolution: {integrity: sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==} hasBin: true @@ -873,7 +703,7 @@ packages: nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.3.8 + semver: 7.4.0 tar: 6.1.13 transitivePeerDependencies: - encoding @@ -908,15 +738,15 @@ packages: fastq: 1.15.0 dev: false - /@nuxt-themes/docus@1.9.9(nuxt@3.3.1)(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47): - resolution: {integrity: sha512-JIrG8dlJOUCu4HQ4IlYr04xryFs7ePKzAvA4cb0VPKP4+ukNEuJwGV3JPFprV3uac9jtPr/HawuoLm/TV5rgtw==} + /@nuxt-themes/docus@1.10.1(nuxt@3.4.1)(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47): + resolution: {integrity: sha512-VW+KFjeSPKfxOvBo2IItTap8niFyqmSxrCJqwVqZVYWS5xZVW8MlK97mOGJsDJMd2OrjmDKhciDfTr8ZmxpPAw==} dependencies: - '@nuxt-themes/elements': 0.9.0(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47) - '@nuxt-themes/tokens': 1.9.0(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47) - '@nuxt-themes/typography': 0.10.0(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47) + '@nuxt-themes/elements': 0.9.4(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47) + '@nuxt-themes/tokens': 1.9.1(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47) + '@nuxt-themes/typography': 0.11.0(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47) '@nuxt/content': 2.5.2(rollup@3.18.0) - '@nuxthq/studio': 0.8.5(rollup@3.18.0) - '@vueuse/nuxt': 9.13.0(nuxt@3.3.1)(rollup@3.18.0)(vue@3.2.47) + '@nuxthq/studio': 0.9.5(rollup@3.18.0) + '@vueuse/nuxt': 9.13.0(nuxt@3.4.1)(rollup@3.18.0)(vue@3.2.47) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -936,10 +766,10 @@ packages: - vue dev: false - /@nuxt-themes/elements@0.9.0(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47): - resolution: {integrity: sha512-Vspqo1PdzCgiVBaEmmNmuBtL1uytSsBOLx/ftBF/H0vhZciHHc61FPJYpgUa4T405VH9h5Kgrr7PM7G62gA/MA==} + /@nuxt-themes/elements@0.9.4(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47): + resolution: {integrity: sha512-d7XgHc/gjMpre26+N76APL1vlnQHiZTOk61GC4I/ZYQuioSfoKuoIP+Ixrr0QgM22j4MRBtAaBnDAg1wRJrDCQ==} dependencies: - '@nuxt-themes/tokens': 1.9.0(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47) + '@nuxt-themes/tokens': 1.9.1(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47) '@vueuse/core': 9.13.0(vue@3.2.47) transitivePeerDependencies: - '@vue/composition-api' @@ -950,8 +780,8 @@ packages: - vue dev: false - /@nuxt-themes/tokens@1.9.0(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47): - resolution: {integrity: sha512-Hxyyp7iT8eg3PvZ2gkeMZjNfWis8fQJD01/HfZDTUbUrbrIeoGXPtj4LpVBVhxbaVSjC6HqB3SV+TPZEwYnT3g==} + /@nuxt-themes/tokens@1.9.1(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47): + resolution: {integrity: sha512-5C28kfRvKnTX8Tux+xwyaf+2pxKgQ53dC9l6C33sZwRRyfUJulGDZCFjKbuNq4iqVwdGvkFSQBYBYjFAv6t75g==} dependencies: '@nuxtjs/color-mode': 3.2.0(rollup@3.18.0) '@vueuse/core': 9.13.0(vue@3.2.47) @@ -965,12 +795,12 @@ packages: - vue dev: false - /@nuxt-themes/typography@0.10.0(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47): - resolution: {integrity: sha512-paC+s9205Ww6YLg2i2CgGnmfkZZzSbmxJyrWjb3KuI5eaJlIJ/EPUjfsUw15tOsFiM8your+akuH4f20UDKg1w==} + /@nuxt-themes/typography@0.11.0(postcss@8.4.21)(rollup@3.18.0)(vue@3.2.47): + resolution: {integrity: sha512-TqyvD7sDWnqGmL00VtuI7JdmNTPL5/g957HCAWNzcNp+S20uJjW/FXSdkM76d4JSVDHvBqw7Wer3RsqVhqvA4w==} dependencies: '@nuxtjs/color-mode': 3.2.0(rollup@3.18.0) nuxt-config-schema: 0.4.5(rollup@3.18.0) - nuxt-icon: 0.3.2(rollup@3.18.0)(vue@3.2.47) + nuxt-icon: 0.3.3(rollup@3.18.0)(vue@3.2.47) pinceau: 0.18.8(postcss@8.4.21) ufo: 1.1.1 transitivePeerDependencies: @@ -1045,7 +875,7 @@ packages: c12: 1.2.0 consola: 2.15.3 defu: 6.1.2 - globby: 13.1.3 + globby: 13.1.4 hash-sum: 2.0.0 ignore: 5.2.4 jiti: 1.18.2 @@ -1055,10 +885,10 @@ packages: pathe: 1.1.0 pkg-types: 1.0.2 scule: 1.0.0 - semver: 7.3.8 - unctx: 2.1.2 + semver: 7.4.0 + unctx: 2.2.0 unimport: 2.2.4(rollup@3.18.0) - untyped: 1.2.2 + untyped: 1.3.2 transitivePeerDependencies: - rollup - supports-color @@ -1072,7 +902,7 @@ packages: c12: 1.2.0 consola: 2.15.3 defu: 6.1.2 - globby: 13.1.3 + globby: 13.1.4 hash-sum: 2.0.0 ignore: 5.2.4 jiti: 1.18.2 @@ -1082,10 +912,10 @@ packages: pathe: 1.1.0 pkg-types: 1.0.2 scule: 1.0.0 - semver: 7.3.8 - unctx: 2.1.2 + semver: 7.4.0 + unctx: 2.2.0 unimport: 2.2.4(rollup@3.18.0) - untyped: 1.2.2 + untyped: 1.3.2 transitivePeerDependencies: - rollup - supports-color @@ -1099,7 +929,7 @@ packages: c12: 1.2.0 consola: 2.15.3 defu: 6.1.2 - globby: 13.1.3 + globby: 13.1.4 hash-sum: 2.0.0 ignore: 5.2.4 jiti: 1.18.2 @@ -1109,10 +939,10 @@ packages: pathe: 1.1.0 pkg-types: 1.0.2 scule: 1.0.0 - semver: 7.3.8 - unctx: 2.1.2 + semver: 7.4.0 + unctx: 2.2.0 unimport: 2.2.4(rollup@3.18.0) - untyped: 1.2.2 + untyped: 1.3.2 transitivePeerDependencies: - rollup - supports-color @@ -1126,7 +956,7 @@ packages: c12: 1.2.0 consola: 2.15.3 defu: 6.1.2 - globby: 13.1.3 + globby: 13.1.4 hash-sum: 2.0.0 ignore: 5.2.4 jiti: 1.18.2 @@ -1136,24 +966,24 @@ packages: pathe: 1.1.0 pkg-types: 1.0.2 scule: 1.0.0 - semver: 7.3.8 - unctx: 2.1.2 - unimport: 3.0.3(rollup@3.18.0) - untyped: 1.2.2 + semver: 7.4.0 + unctx: 2.2.0 + unimport: 3.0.6(rollup@3.18.0) + untyped: 1.3.2 transitivePeerDependencies: - rollup - supports-color dev: false - /@nuxt/kit@3.3.1(rollup@3.20.0): - resolution: {integrity: sha512-zb7/2FUIB1g7nl6K6qozUzfG5uu4yrs9TQjZvpASnPBZ/x1EuJX5k3AA71hMMIVBEX9Adxvh9AuhDEHE5W26Zg==} + /@nuxt/kit@3.4.1(rollup@3.18.0): + resolution: {integrity: sha512-VeH26umZW6Rf4F1QX9nTIuTBp6HeL/MgmKY3+FgQiLD07afgFTLUJZohVE5xU7hb66zCnYvwKxa3JpjXFJZrhQ==} engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} dependencies: - '@nuxt/schema': 3.3.1(rollup@3.20.0) + '@nuxt/schema': 3.4.1(rollup@3.18.0) c12: 1.2.0 - consola: 2.15.3 + consola: 3.0.2 defu: 6.1.2 - globby: 13.1.3 + globby: 13.1.4 hash-sum: 2.0.0 ignore: 5.2.4 jiti: 1.18.2 @@ -1163,10 +993,10 @@ packages: pathe: 1.1.0 pkg-types: 1.0.2 scule: 1.0.0 - semver: 7.3.8 - unctx: 2.1.2 - unimport: 3.0.3(rollup@3.20.0) - untyped: 1.2.2 + semver: 7.4.0 + unctx: 2.2.0 + unimport: 3.0.6(rollup@3.18.0) + untyped: 1.3.2 transitivePeerDependencies: - rollup - supports-color @@ -1179,7 +1009,7 @@ packages: c12: 1.2.0 create-require: 1.1.1 defu: 6.1.2 - hookable: 5.5.1 + hookable: 5.5.3 jiti: 1.18.2 pathe: 1.1.0 pkg-types: 1.0.2 @@ -1188,7 +1018,7 @@ packages: std-env: 3.3.2 ufo: 1.1.1 unimport: 2.2.4(rollup@3.18.0) - untyped: 1.2.2 + untyped: 1.3.2 transitivePeerDependencies: - rollup - supports-color @@ -1201,7 +1031,7 @@ packages: c12: 1.2.0 create-require: 1.1.1 defu: 6.1.2 - hookable: 5.5.1 + hookable: 5.5.3 jiti: 1.18.2 pathe: 1.1.0 pkg-types: 1.0.2 @@ -1210,7 +1040,7 @@ packages: std-env: 3.3.2 ufo: 1.1.1 unimport: 2.2.4(rollup@3.18.0) - untyped: 1.2.2 + untyped: 1.3.2 transitivePeerDependencies: - rollup - supports-color @@ -1223,7 +1053,7 @@ packages: c12: 1.2.0 create-require: 1.1.1 defu: 6.1.2 - hookable: 5.5.1 + hookable: 5.5.3 jiti: 1.18.2 pathe: 1.1.0 pkg-types: 1.0.2 @@ -1232,7 +1062,7 @@ packages: std-env: 3.3.2 ufo: 1.1.1 unimport: 2.2.4(rollup@3.18.0) - untyped: 1.2.2 + untyped: 1.3.2 transitivePeerDependencies: - rollup - supports-color @@ -1245,7 +1075,7 @@ packages: c12: 1.2.0 create-require: 1.1.1 defu: 6.1.2 - hookable: 5.5.1 + hookable: 5.5.3 jiti: 1.18.2 pathe: 1.1.0 pkg-types: 1.0.2 @@ -1253,21 +1083,21 @@ packages: scule: 1.0.0 std-env: 3.3.2 ufo: 1.1.1 - unimport: 3.0.3(rollup@3.18.0) - untyped: 1.2.2 + unimport: 3.0.6(rollup@3.18.0) + untyped: 1.3.2 transitivePeerDependencies: - rollup - supports-color dev: false - /@nuxt/schema@3.3.1(rollup@3.20.0): - resolution: {integrity: sha512-E8HWzU43rXzqwDTmWduTLHY4xIwRSAUt1LbpuE9IjZ4uJZq5Mbaj4nfhANNsTQGw2c+O+rL81yzAP3i61LEJDw==} + /@nuxt/schema@3.4.1(rollup@3.18.0): + resolution: {integrity: sha512-xhPh9JfVKXRQVfdUT6BKieDTCljBjbIGgGCQnxplVi4FUTWRKUXR7MFwsobr5D9AJpeE0mg5/kRRh5gUX37vAQ==} engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} dependencies: c12: 1.2.0 create-require: 1.1.1 defu: 6.1.2 - hookable: 5.5.1 + hookable: 5.5.3 jiti: 1.18.2 pathe: 1.1.0 pkg-types: 1.0.2 @@ -1275,36 +1105,36 @@ packages: scule: 1.0.0 std-env: 3.3.2 ufo: 1.1.1 - unimport: 3.0.3(rollup@3.20.0) - untyped: 1.2.2 + unimport: 3.0.6(rollup@3.18.0) + untyped: 1.3.2 transitivePeerDependencies: - rollup - supports-color dev: false - /@nuxt/telemetry@2.1.10(rollup@3.18.0): - resolution: {integrity: sha512-FOsfC0i6Ix66M/ZlWV/095JIdfnRR9CRbFvBSpojt2CpbwU1pGMbRiicwYg2f1Wf27LXQRNpNn1OczruBfEWag==} + /@nuxt/telemetry@2.2.0(rollup@3.18.0): + resolution: {integrity: sha512-Z2UmPkBy5WjxvHKuUcl1X6vKWnIyWSP+9UGde1F+MzzZxYgAQybFud1uL2B3KCowxZdoqT1hd2WklV7EtyCwrQ==} hasBin: true dependencies: - '@nuxt/kit': 3.3.1(rollup@3.18.0) + '@nuxt/kit': 3.4.1(rollup@3.18.0) chalk: 5.2.0 ci-info: 3.8.0 - consola: 2.15.3 + consola: 3.0.2 create-require: 1.1.1 defu: 6.1.2 destr: 1.2.2 dotenv: 16.0.3 fs-extra: 10.1.0 git-url-parse: 13.1.0 - inquirer: 9.1.4 + inquirer: 9.1.5 is-docker: 3.0.0 jiti: 1.18.2 mri: 1.2.0 - nanoid: 4.0.1 - node-fetch: 3.3.0 + nanoid: 4.0.2 + node-fetch: 3.3.1 ofetch: 1.0.1 parse-git-config: 3.0.0 - rc9: 2.0.1 + rc9: 2.1.0 std-env: 3.3.2 transitivePeerDependencies: - rollup @@ -1315,28 +1145,28 @@ packages: resolution: {integrity: sha512-PjVETP7+iZXAs5Q8O4ivl4t6qjWZMZqwiTVogUXHoHGZZcw7GZW3u3tzfYfE1HbzyYJfr236IXqQ02MeR8Fz2w==} dev: false - /@nuxt/vite-builder@3.3.1(typescript@4.9.5)(vue@3.2.47): - resolution: {integrity: sha512-YDPDqMWRcZfI6ou2nfxj+IEaxfZXRoyoeMV917h7LbhmnqMBn1prJzFF+Li8br97emL958XANZ7GVZ9OVXgayA==} + /@nuxt/vite-builder@3.4.1(@types/node@18.15.11)(rollup@3.18.0)(typescript@5.0.4)(vue@3.2.47): + resolution: {integrity: sha512-qqS+hUv91z58vLNEorP4xfyvo/uoteTCYaMouyRZzqnJhrE/G82x2SqdzfADEhKpNHUkGWhpc37uuejrM+y6qw==} engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} peerDependencies: vue: ^3.2.47 dependencies: - '@nuxt/kit': 3.3.1(rollup@3.20.0) - '@rollup/plugin-replace': 5.0.2(rollup@3.20.0) - '@vitejs/plugin-vue': 4.0.0(vite@4.1.4)(vue@3.2.47) - '@vitejs/plugin-vue-jsx': 3.0.0(vite@4.1.4)(vue@3.2.47) + '@nuxt/kit': 3.4.1(rollup@3.18.0) + '@rollup/plugin-replace': 5.0.2(rollup@3.18.0) + '@vitejs/plugin-vue': 4.1.0(vite@4.2.1)(vue@3.2.47) + '@vitejs/plugin-vue-jsx': 3.0.1(vite@4.2.1)(vue@3.2.47) autoprefixer: 10.4.14(postcss@8.4.21) chokidar: 3.5.3 clear: 0.1.0 - cssnano: 5.1.15(postcss@8.4.21) + cssnano: 6.0.0(postcss@8.4.21) defu: 6.1.2 - esbuild: 0.17.12 + esbuild: 0.17.17 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 externality: 1.0.0 - fs-extra: 11.1.0 + fs-extra: 11.1.1 get-port-please: 3.0.1 - h3: 1.6.2 + h3: 1.6.4 knitwork: 1.0.0 magic-string: 0.30.0 mlly: 1.2.0 @@ -1347,23 +1177,23 @@ packages: postcss: 8.4.21 postcss-import: 15.1.0(postcss@8.4.21) postcss-url: 10.1.3(postcss@8.4.21) - rollup: 3.20.0 - rollup-plugin-visualizer: 5.9.0(rollup@3.20.0) + rollup-plugin-visualizer: 5.9.0(rollup@3.18.0) std-env: 3.3.2 strip-literal: 1.0.1 ufo: 1.1.1 unplugin: 1.3.1 - vite: 4.1.4 - vite-node: 0.29.7 - vite-plugin-checker: 0.5.6(typescript@4.9.5)(vite@4.1.4) + vite: 4.2.1(@types/node@18.15.11) + vite-node: 0.30.1(@types/node@18.15.11) + vite-plugin-checker: 0.5.6(typescript@5.0.4)(vite@4.2.1) vue: 3.2.47 - vue-bundle-renderer: 1.0.2 + vue-bundle-renderer: 1.0.3 transitivePeerDependencies: - '@types/node' - eslint - less - meow - optionator + - rollup - sass - stylelint - stylus @@ -1376,12 +1206,12 @@ packages: - vue-tsc dev: false - /@nuxthq/studio@0.8.5(rollup@3.18.0): - resolution: {integrity: sha512-sWLFjikyL4ZNoxPeBKYgZtWI1AQY70RYFbhIax0+bT7+HMB6qfk3gOWkz9EyfD4h8rj7hHBqhtTq7efzQJXwLw==} + /@nuxthq/studio@0.9.5(rollup@3.18.0): + resolution: {integrity: sha512-EgAvLregOANyaohTObt1RBnUZV6lFlO2fBgaO/nWCI8c1EDeS6DsrMIePEgKgAGiEsVt/cTPn0lvhgafw7woGQ==} dependencies: - '@nuxt/kit': 3.3.1(rollup@3.18.0) + '@nuxt/kit': 3.4.1(rollup@3.18.0) defu: 6.1.2 - nuxt-component-meta: 0.4.3(rollup@3.18.0) + nuxt-component-meta: 0.5.1(rollup@3.18.0) nuxt-config-schema: 0.4.5(rollup@3.18.0) socket.io-client: 4.6.1 ufo: 1.1.1 @@ -1395,7 +1225,7 @@ packages: /@nuxtjs/color-mode@3.2.0(rollup@3.18.0): resolution: {integrity: sha512-isDR01yfadopiHQ/VEVUpyNSPrk5PCjUHS4t1qYRZwuRGefU4s9Iaxf6H9nmr1QFzoMgTm+3T0r/54jLwtpZbA==} dependencies: - '@nuxt/kit': 3.3.1(rollup@3.18.0) + '@nuxt/kit': 3.4.1(rollup@3.18.0) lodash.template: 4.5.0 pathe: 1.1.0 transitivePeerDependencies: @@ -1420,8 +1250,8 @@ packages: slash: 4.0.0 dev: false - /@rollup/plugin-alias@4.0.3(rollup@3.20.0): - resolution: {integrity: sha512-ZuDWE1q4PQDhvm/zc5Prun8sBpLJy41DMptYrS6MhAy9s9kL/doN1613BWfEchGVfKxzliJ3BjbOPizXX38DbQ==} + /@rollup/plugin-alias@5.0.0(rollup@3.20.4): + resolution: {integrity: sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0 @@ -1429,7 +1259,7 @@ packages: rollup: optional: true dependencies: - rollup: 3.20.0 + rollup: 3.20.4 slash: 4.0.0 dev: false @@ -1451,7 +1281,7 @@ packages: rollup: 3.18.0 dev: false - /@rollup/plugin-commonjs@24.0.1(rollup@3.20.0): + /@rollup/plugin-commonjs@24.0.1(rollup@3.20.4): resolution: {integrity: sha512-15LsiWRZk4eOGqvrJyu3z3DaBu5BhXIMeWnijSRvd8irrrg9SHpQ1pH+BUK4H6Z9wL9yOxZJMTLU+Au86XHxow==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1460,16 +1290,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.20.0) + '@rollup/pluginutils': 5.0.2(rollup@3.20.4) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 magic-string: 0.27.0 - rollup: 3.20.0 + rollup: 3.20.4 dev: false - /@rollup/plugin-inject@5.0.3(rollup@3.20.0): + /@rollup/plugin-inject@5.0.3(rollup@3.20.4): resolution: {integrity: sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1478,10 +1308,10 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.20.0) + '@rollup/pluginutils': 5.0.2(rollup@3.20.4) estree-walker: 2.0.2 magic-string: 0.27.0 - rollup: 3.20.0 + rollup: 3.20.4 dev: false /@rollup/plugin-json@6.0.0(rollup@3.18.0): @@ -1497,7 +1327,7 @@ packages: rollup: 3.18.0 dev: false - /@rollup/plugin-json@6.0.0(rollup@3.20.0): + /@rollup/plugin-json@6.0.0(rollup@3.20.4): resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1506,12 +1336,12 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.20.0) - rollup: 3.20.0 + '@rollup/pluginutils': 5.0.2(rollup@3.20.4) + rollup: 3.20.4 dev: false - /@rollup/plugin-node-resolve@15.0.1(rollup@3.18.0): - resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==} + /@rollup/plugin-node-resolve@15.0.2(rollup@3.18.0): + resolution: {integrity: sha512-Y35fRGUjC3FaurG722uhUuG8YHOJRJQbI6/CkbRkdPotSpDj9NtIN85z1zrcyDcCQIW4qp5mgG72U+gJ0TAFEg==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.78.0||^3.0.0 @@ -1528,8 +1358,8 @@ packages: rollup: 3.18.0 dev: false - /@rollup/plugin-node-resolve@15.0.1(rollup@3.20.0): - resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==} + /@rollup/plugin-node-resolve@15.0.2(rollup@3.20.4): + resolution: {integrity: sha512-Y35fRGUjC3FaurG722uhUuG8YHOJRJQbI6/CkbRkdPotSpDj9NtIN85z1zrcyDcCQIW4qp5mgG72U+gJ0TAFEg==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.78.0||^3.0.0 @@ -1537,13 +1367,13 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.20.0) + '@rollup/pluginutils': 5.0.2(rollup@3.20.4) '@types/resolve': 1.20.2 deepmerge: 4.3.0 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.1 - rollup: 3.20.0 + rollup: 3.20.4 dev: false /@rollup/plugin-replace@5.0.2(rollup@3.18.0): @@ -1560,7 +1390,7 @@ packages: rollup: 3.18.0 dev: false - /@rollup/plugin-replace@5.0.2(rollup@3.20.0): + /@rollup/plugin-replace@5.0.2(rollup@3.20.4): resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1569,13 +1399,13 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.20.0) + '@rollup/pluginutils': 5.0.2(rollup@3.20.4) magic-string: 0.27.0 - rollup: 3.20.0 + rollup: 3.20.4 dev: false - /@rollup/plugin-terser@0.4.0(rollup@3.20.0): - resolution: {integrity: sha512-Ipcf3LPNerey1q9ZMjiaWHlNPEHNU/B5/uh9zXLltfEQ1lVSLLeZSgAtTPWGyw8Ip1guOeq+mDtdOlEj/wNxQw==} + /@rollup/plugin-terser@0.4.1(rollup@3.20.4): + resolution: {integrity: sha512-aKS32sw5a7hy+fEXVy+5T95aDIwjpGHCTv833HXVtyKMDoVS7pBr5K3L9hEQoNqbJFjfANPrNpIXlTQ7is00eA==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.x || ^3.x @@ -1583,13 +1413,13 @@ packages: rollup: optional: true dependencies: - rollup: 3.20.0 + rollup: 3.20.4 serialize-javascript: 6.0.1 smob: 0.0.6 terser: 5.16.5 dev: false - /@rollup/plugin-wasm@6.1.2(rollup@3.20.0): + /@rollup/plugin-wasm@6.1.2(rollup@3.20.4): resolution: {integrity: sha512-YdrQ7zfnZ54Y+6raCev3tR1PrhQGxYKSTajGylhyP0oBacouuNo6KcNCk+pYKw9M98jxRWLFFca/udi76IDXzg==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1598,7 +1428,7 @@ packages: rollup: optional: true dependencies: - rollup: 3.20.0 + rollup: 3.20.4 dev: false /@rollup/pluginutils@4.2.1: @@ -1624,7 +1454,7 @@ packages: rollup: 3.18.0 dev: false - /@rollup/pluginutils@5.0.2(rollup@3.20.0): + /@rollup/pluginutils@5.0.2(rollup@3.20.4): resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1636,7 +1466,7 @@ packages: '@types/estree': 1.0.0 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.20.0 + rollup: 3.20.4 dev: false /@shuding/opentype.js@1.4.0-beta.0: @@ -1708,6 +1538,18 @@ packages: resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} dev: false + /@types/prop-types@15.7.5: + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + dev: false + + /@types/react@18.0.35: + resolution: {integrity: sha512-6Laome31HpetaIUGFWl1VQ3mdSImwxtFZ39rh059a1MNnKGqBpC88J6NJ8n/Is3Qx7CefDGLgf/KhN/sYCf7ag==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.3 + csstype: 3.1.1 + dev: false + /@types/resolve@1.20.2: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} dev: false @@ -1715,7 +1557,11 @@ packages: /@types/sax@1.2.4: resolution: {integrity: sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==} dependencies: - '@types/node': 17.0.45 + '@types/node': 18.15.11 + dev: false + + /@types/scheduler@0.16.3: + resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} dev: false /@types/unist@2.0.6: @@ -1742,13 +1588,6 @@ packages: - rollup dev: false - /@unhead/dom@1.1.23: - resolution: {integrity: sha512-Ofa427IF7tMhL/Qw4JzlAbRVBnQjURZONcjhGHVOCoNLU+GAKfbDLBpR2r3kXQFFcv2aDKygoSVyxU6R0cLptw==} - dependencies: - '@unhead/schema': 1.1.23 - '@unhead/shared': 1.1.23 - dev: false - /@unhead/dom@1.1.25: resolution: {integrity: sha512-kJ5jhJFNQCyNENSw+mtmzgulA0kqUuXS3SRPl1umpofc8PH8tblSzXwqStxTj9r6E4wxJbEuygT/aHFJVioizw==} dependencies: @@ -1756,57 +1595,44 @@ packages: '@unhead/shared': 1.1.25 dev: false - /@unhead/schema-org-vue@0.5.0(@unhead/vue@1.1.23): + /@unhead/schema-org-vue@0.5.0(@unhead/vue@1.1.25): resolution: {integrity: sha512-UEB54jF2+HBoHKqyqdw7oNLqdhDfEX/FSImtPT3oTDTfGBWpc7RGUPe2RG/j4N78Kk3SsfnHxxJO0GKIGPJRwQ==} engines: {node: '>=14.0.0'} peerDependencies: '@unhead/vue': '>=1.1.9' dependencies: - '@unhead/vue': 1.1.23(vue@3.2.47) - dev: false - - /@unhead/schema@1.1.23: - resolution: {integrity: sha512-ens8dY3ji8xLVutrcLnNmWq4dpBQIzvSHBr6yZqj7mF8RORXYNwJsY0LRAyAgTyv9aD5aEVpQIiz9s4f2+Nncg==} - dependencies: - hookable: 5.5.1 - zhead: 2.0.4 + '@unhead/vue': 1.1.25(vue@3.2.47) dev: false /@unhead/schema@1.1.25: resolution: {integrity: sha512-ygmaxWgGTAq9CcB6zGY4+0HlGdQt/oMq+CM18tTnvOBY0Og/uPGt7roW8eH717GpTPibKRTpagSYzZYdL0tWeg==} dependencies: - hookable: 5.5.1 + hookable: 5.5.3 zhead: 2.0.4 dev: false - /@unhead/shared@1.1.23: - resolution: {integrity: sha512-6uFEn/DRainxc3IE+RTMV6AK4Xi8osg7qAUAVMz3KpF0EoHzGbBjVBuSrkf7CnrE9Eg+/QYGLdwTvONJHCcYOA==} - dependencies: - '@unhead/schema': 1.1.23 - dev: false - /@unhead/shared@1.1.25: resolution: {integrity: sha512-KptKbk4py1MFYHYwDJ/0kPOs+95dYMrWIT1fCV9lGcVAwu20wIHh+WX18s+iEWhc66xkGRxgC/xsl4wJJFPE+w==} dependencies: '@unhead/schema': 1.1.25 dev: false - /@unhead/ssr@1.1.23: - resolution: {integrity: sha512-msxPjkHG2TtgTCRBFjTTTVHPOgGSmNtQCz3zjN1xxY1BRb7NdUN6Yure85qNt+yNUtcQ5C45NmJIxdNDjrJhlQ==} + /@unhead/ssr@1.1.25: + resolution: {integrity: sha512-2S3tiajy6n3D1WY2pVkRLr74WGaHD08w0+nFaQGNy0LszPlkWUuAmYYqDCXdh03ijEl+Tjwqjn+E9w1e3QakuQ==} dependencies: - '@unhead/schema': 1.1.23 - '@unhead/shared': 1.1.23 + '@unhead/schema': 1.1.25 + '@unhead/shared': 1.1.25 dev: false - /@unhead/vue@1.1.23(vue@3.2.47): - resolution: {integrity: sha512-v693TmDYIZyVkZBW+YGyy4Zgl78gQZby84yXpok+E9tmqg2POQ9oG0ILdPNdlwLfWeSrhb8dTahWb68v608LdA==} + /@unhead/vue@1.1.25(vue@3.2.47): + resolution: {integrity: sha512-ujincFHftg2N2i3G/gVkMyJ7CFzVyZ8SMb5cJCWZEnDBQGjgy3uvWT6EaM0d2jnaeXiYbB+iyY0O1o/H+XlpKQ==} peerDependencies: vue: '>=2.7 || >=3' dependencies: - '@unhead/schema': 1.1.23 - '@unhead/shared': 1.1.23 - hookable: 5.5.1 - unhead: 1.1.23 + '@unhead/schema': 1.1.25 + '@unhead/shared': 1.1.25 + hookable: 5.5.3 + unhead: 1.1.25 vue: 3.2.47 dev: false @@ -1835,30 +1661,30 @@ packages: - supports-color dev: false - /@vitejs/plugin-vue-jsx@3.0.0(vite@4.1.4)(vue@3.2.47): - resolution: {integrity: sha512-vurkuzgac5SYuxd2HUZqAFAWGTF10diKBwJNbCvnWijNZfXd+7jMtqjPFbGt7idOJUn584fP1Ar9j/GN2jQ3Ew==} + /@vitejs/plugin-vue-jsx@3.0.1(vite@4.2.1)(vue@3.2.47): + resolution: {integrity: sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.0.0 dependencies: - '@babel/core': 7.21.0 - '@babel/plugin-transform-typescript': 7.21.0(@babel/core@7.21.0) - '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.0) - vite: 4.1.4 + '@babel/core': 7.21.4 + '@babel/plugin-transform-typescript': 7.21.0(@babel/core@7.21.4) + '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.4) + vite: 4.2.1(@types/node@18.15.11) vue: 3.2.47 transitivePeerDependencies: - supports-color dev: false - /@vitejs/plugin-vue@4.0.0(vite@4.1.4)(vue@3.2.47): - resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==} + /@vitejs/plugin-vue@4.1.0(vite@4.2.1)(vue@3.2.47): + resolution: {integrity: sha512-++9JOAFdcXI3lyer9UKUV4rfoQ3T1RN8yDqoCLar86s0xQct5yblxAE+yWgRnU5/0FOlVCpTZpYSBV/bGWrSrQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.1.4 + vite: 4.2.1(@types/node@18.15.11) vue: 3.2.47 dev: false @@ -1892,14 +1718,14 @@ packages: resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} dev: false - /@vue/babel-plugin-jsx@1.1.1(@babel/core@7.21.0): + /@vue/babel-plugin-jsx@1.1.1(@babel/core@7.21.4): resolution: {integrity: sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==} dependencies: '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.21.0) + '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.21.4) '@babel/template': 7.20.7 - '@babel/traverse': 7.21.2 - '@babel/types': 7.21.2 + '@babel/traverse': 7.21.4 + '@babel/types': 7.21.4 '@vue/babel-helper-vue-transform-on': 1.0.2 camelcase: 6.3.0 html-tags: 3.2.0 @@ -1912,7 +1738,7 @@ packages: /@vue/compiler-core@3.2.47: resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==} dependencies: - '@babel/parser': 7.21.2 + '@babel/parser': 7.21.4 '@vue/shared': 3.2.47 estree-walker: 2.0.2 source-map: 0.6.1 @@ -1954,7 +1780,7 @@ packages: /@vue/reactivity-transform@3.2.47: resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==} dependencies: - '@babel/parser': 7.21.2 + '@babel/parser': 7.21.4 '@vue/compiler-core': 3.2.47 '@vue/shared': 3.2.47 estree-walker: 2.0.2 @@ -2013,10 +1839,10 @@ packages: peerDependencies: vue: '>=2.7 || >=3' dependencies: - '@unhead/dom': 1.1.23 + '@unhead/dom': 1.1.25 '@unhead/schema': 1.1.25 - '@unhead/ssr': 1.1.23 - '@unhead/vue': 1.1.23(vue@3.2.47) + '@unhead/ssr': 1.1.25 + '@unhead/vue': 1.1.25(vue@3.2.47) vue: 3.2.47 dev: false @@ -2024,16 +1850,16 @@ packages: resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} dev: false - /@vueuse/nuxt@9.13.0(nuxt@3.3.1)(rollup@3.18.0)(vue@3.2.47): + /@vueuse/nuxt@9.13.0(nuxt@3.4.1)(rollup@3.18.0)(vue@3.2.47): resolution: {integrity: sha512-JunH/w6nFIwCyaZ0s+pfrYFMfBzGfhkwmFPz7ogHFmb71Ty/5HINrYOAOZCXpN44X6QH6FiJq/wuLLdvYzqFUw==} peerDependencies: nuxt: ^3.0.0 dependencies: - '@nuxt/kit': 3.3.1(rollup@3.18.0) + '@nuxt/kit': 3.4.1(rollup@3.18.0) '@vueuse/core': 9.13.0(vue@3.2.47) '@vueuse/metadata': 9.13.0 local-pkg: 0.4.3 - nuxt: 3.3.1(rollup@3.18.0)(typescript@4.9.5) + nuxt: 3.4.1(@types/node@18.15.11)(rollup@3.18.0)(typescript@5.0.4) vue-demi: 0.13.11(vue@3.2.47) transitivePeerDependencies: - '@vue/composition-api' @@ -2339,7 +2165,7 @@ packages: mlly: 1.2.0 pathe: 1.1.0 pkg-types: 1.0.2 - rc9: 2.0.1 + rc9: 2.1.0 transitivePeerDependencies: - supports-color dev: false @@ -2445,10 +2271,10 @@ packages: convert-gitmoji: 0.1.3 execa: 6.1.0 mri: 1.2.0 - node-fetch-native: 1.0.2 + node-fetch-native: 1.1.0 pkg-types: 1.0.2 scule: 1.0.0 - semver: 7.3.8 + semver: 7.4.0 transitivePeerDependencies: - supports-color dev: false @@ -2667,6 +2493,10 @@ packages: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} dev: false + /consola@3.0.2: + resolution: {integrity: sha512-o/Wau2FmZKiQgyp3c3IULgN6J5yc0lwYMnoyiZdEpdGxKGBtt2ACbkulBZ6BUsHy1HlSJqoP4YOyPIJLgRJyKQ==} + dev: false + /console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} dev: false @@ -2756,16 +2586,6 @@ packages: postcss: 8.4.21 dev: false - /css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 4.3.1 - domutils: 2.8.0 - nth-check: 2.1.1 - dev: false - /css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} dependencies: @@ -2784,12 +2604,20 @@ packages: postcss-value-parser: 4.2.0 dev: false - /css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} + /css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} dependencies: - mdn-data: 2.0.14 - source-map: 0.6.1 + mdn-data: 2.0.28 + source-map-js: 1.0.2 + dev: false + + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 dev: false /css-what@6.1.0: @@ -2803,70 +2631,69 @@ packages: hasBin: true dev: false - /cssnano-preset-default@5.2.14(postcss@8.4.21): - resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} - engines: {node: ^10 || ^12 || >=14.0} + /cssnano-preset-default@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-BDxlaFzObRDXUiCCBQUNQcI+f1/aX2mgoNtXGjV6PG64POcHoDUoX+LgMWw+Q4609QhxwkcSnS65YFs42RA6qQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: css-declaration-sorter: 6.3.1(postcss@8.4.21) - cssnano-utils: 3.1.0(postcss@8.4.21) + cssnano-utils: 4.0.0(postcss@8.4.21) postcss: 8.4.21 postcss-calc: 8.2.4(postcss@8.4.21) - postcss-colormin: 5.3.1(postcss@8.4.21) - postcss-convert-values: 5.1.3(postcss@8.4.21) - postcss-discard-comments: 5.1.2(postcss@8.4.21) - postcss-discard-duplicates: 5.1.0(postcss@8.4.21) - postcss-discard-empty: 5.1.1(postcss@8.4.21) - postcss-discard-overridden: 5.1.0(postcss@8.4.21) - postcss-merge-longhand: 5.1.7(postcss@8.4.21) - postcss-merge-rules: 5.1.4(postcss@8.4.21) - postcss-minify-font-values: 5.1.0(postcss@8.4.21) - postcss-minify-gradients: 5.1.1(postcss@8.4.21) - postcss-minify-params: 5.1.4(postcss@8.4.21) - postcss-minify-selectors: 5.2.1(postcss@8.4.21) - postcss-normalize-charset: 5.1.0(postcss@8.4.21) - postcss-normalize-display-values: 5.1.0(postcss@8.4.21) - postcss-normalize-positions: 5.1.1(postcss@8.4.21) - postcss-normalize-repeat-style: 5.1.1(postcss@8.4.21) - postcss-normalize-string: 5.1.0(postcss@8.4.21) - postcss-normalize-timing-functions: 5.1.0(postcss@8.4.21) - postcss-normalize-unicode: 5.1.1(postcss@8.4.21) - postcss-normalize-url: 5.1.0(postcss@8.4.21) - postcss-normalize-whitespace: 5.1.1(postcss@8.4.21) - postcss-ordered-values: 5.1.3(postcss@8.4.21) - postcss-reduce-initial: 5.1.2(postcss@8.4.21) - postcss-reduce-transforms: 5.1.0(postcss@8.4.21) - postcss-svgo: 5.1.0(postcss@8.4.21) - postcss-unique-selectors: 5.1.1(postcss@8.4.21) - dev: false - - /cssnano-utils@3.1.0(postcss@8.4.21): - resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-colormin: 6.0.0(postcss@8.4.21) + postcss-convert-values: 6.0.0(postcss@8.4.21) + postcss-discard-comments: 6.0.0(postcss@8.4.21) + postcss-discard-duplicates: 6.0.0(postcss@8.4.21) + postcss-discard-empty: 6.0.0(postcss@8.4.21) + postcss-discard-overridden: 6.0.0(postcss@8.4.21) + postcss-merge-longhand: 6.0.0(postcss@8.4.21) + postcss-merge-rules: 6.0.0(postcss@8.4.21) + postcss-minify-font-values: 6.0.0(postcss@8.4.21) + postcss-minify-gradients: 6.0.0(postcss@8.4.21) + postcss-minify-params: 6.0.0(postcss@8.4.21) + postcss-minify-selectors: 6.0.0(postcss@8.4.21) + postcss-normalize-charset: 6.0.0(postcss@8.4.21) + postcss-normalize-display-values: 6.0.0(postcss@8.4.21) + postcss-normalize-positions: 6.0.0(postcss@8.4.21) + postcss-normalize-repeat-style: 6.0.0(postcss@8.4.21) + postcss-normalize-string: 6.0.0(postcss@8.4.21) + postcss-normalize-timing-functions: 6.0.0(postcss@8.4.21) + postcss-normalize-unicode: 6.0.0(postcss@8.4.21) + postcss-normalize-url: 6.0.0(postcss@8.4.21) + postcss-normalize-whitespace: 6.0.0(postcss@8.4.21) + postcss-ordered-values: 6.0.0(postcss@8.4.21) + postcss-reduce-initial: 6.0.0(postcss@8.4.21) + postcss-reduce-transforms: 6.0.0(postcss@8.4.21) + postcss-svgo: 6.0.0(postcss@8.4.21) + postcss-unique-selectors: 6.0.0(postcss@8.4.21) + dev: false + + /cssnano-utils@4.0.0(postcss@8.4.21): + resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: postcss: 8.4.21 dev: false - /cssnano@5.1.15(postcss@8.4.21): - resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} - engines: {node: ^10 || ^12 || >=14.0} + /cssnano@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-RGlcbzGhzEBCHuQe3k+Udyj5M00z0pm9S+VurHXFEOXxH+y0sVrJH2sMzoyz2d8N1EScazg+DVvmgyx0lurwwA==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 5.2.14(postcss@8.4.21) - lilconfig: 2.0.6 + cssnano-preset-default: 6.0.0(postcss@8.4.21) + lilconfig: 2.1.0 postcss: 8.4.21 - yaml: 1.10.2 dev: false - /csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} + /csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} dependencies: - css-tree: 1.1.3 + css-tree: 2.2.1 dev: false /csstype@2.6.21: @@ -3155,8 +2982,8 @@ packages: d3-zoom: 3.0.0 dev: false - /dagre-d3-es@7.0.8: - resolution: {integrity: sha512-eykdoYQ4FwCJinEYS0gPL2f2w+BPbSLvnQSJ3Ye1vAoPjdkq6xIMKBv+UkICd3qZE26wBKIn3p+6n0QC7R1LyA==} + /dagre-d3-es@7.0.10: + resolution: {integrity: sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A==} dependencies: d3: 7.8.2 lodash-es: 4.17.21 @@ -3167,6 +2994,10 @@ packages: engines: {node: '>= 12'} dev: false + /dayjs@1.11.7: + resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} + dev: false + /de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} dev: false @@ -3271,6 +3102,10 @@ packages: engines: {node: '>=8'} dev: false + /devalue@4.3.0: + resolution: {integrity: sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA==} + dev: false + /diff@5.1.0: resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} engines: {node: '>=0.3.1'} @@ -3283,14 +3118,6 @@ packages: path-type: 4.0.0 dev: false - /dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - entities: 2.2.0 - dev: false - /dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} dependencies: @@ -3303,13 +3130,6 @@ packages: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: false - /domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - dependencies: - domelementtype: 2.3.0 - dev: false - /domhandler@5.0.3: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} @@ -3317,16 +3137,8 @@ packages: domelementtype: 2.3.0 dev: false - /dompurify@2.4.3: - resolution: {integrity: sha512-q6QaLcakcRjebxjg8/+NP+h0rPfatOgOzc46Fst9VAA3jF2ApfKBNKMzdP4DYTqtUMXSCd5pRS/8Po/OmoCHZQ==} - dev: false - - /domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - dependencies: - dom-serializer: 1.4.1 - domelementtype: 2.3.0 - domhandler: 4.3.1 + /dompurify@2.4.5: + resolution: {integrity: sha512-jggCCd+8Iqp4Tsz0nIvpcb22InKEBrGz5dw3EQJMs8HPJDsKbFIO3STYtAvCfDx26Muevn1MHVI0XxjgFfmiSA==} dev: false /domutils@3.0.1: @@ -3439,10 +3251,6 @@ packages: tapable: 2.2.1 dev: false - /entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - dev: false - /entities@4.4.0: resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} engines: {node: '>=0.12'} @@ -3459,64 +3267,34 @@ packages: resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} dev: false - /esbuild@0.16.17: - resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} + /esbuild@0.17.17: + resolution: {integrity: sha512-/jUywtAymR8jR4qsa2RujlAF7Krpt5VWi72Q2yuLD4e/hvtNcFQ0I1j8m/bxq238pf3/0KO5yuXNpuLx8BE1KA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.16.17 - '@esbuild/android-arm64': 0.16.17 - '@esbuild/android-x64': 0.16.17 - '@esbuild/darwin-arm64': 0.16.17 - '@esbuild/darwin-x64': 0.16.17 - '@esbuild/freebsd-arm64': 0.16.17 - '@esbuild/freebsd-x64': 0.16.17 - '@esbuild/linux-arm': 0.16.17 - '@esbuild/linux-arm64': 0.16.17 - '@esbuild/linux-ia32': 0.16.17 - '@esbuild/linux-loong64': 0.16.17 - '@esbuild/linux-mips64el': 0.16.17 - '@esbuild/linux-ppc64': 0.16.17 - '@esbuild/linux-riscv64': 0.16.17 - '@esbuild/linux-s390x': 0.16.17 - '@esbuild/linux-x64': 0.16.17 - '@esbuild/netbsd-x64': 0.16.17 - '@esbuild/openbsd-x64': 0.16.17 - '@esbuild/sunos-x64': 0.16.17 - '@esbuild/win32-arm64': 0.16.17 - '@esbuild/win32-ia32': 0.16.17 - '@esbuild/win32-x64': 0.16.17 - dev: false - - /esbuild@0.17.12: - resolution: {integrity: sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.17.12 - '@esbuild/android-arm64': 0.17.12 - '@esbuild/android-x64': 0.17.12 - '@esbuild/darwin-arm64': 0.17.12 - '@esbuild/darwin-x64': 0.17.12 - '@esbuild/freebsd-arm64': 0.17.12 - '@esbuild/freebsd-x64': 0.17.12 - '@esbuild/linux-arm': 0.17.12 - '@esbuild/linux-arm64': 0.17.12 - '@esbuild/linux-ia32': 0.17.12 - '@esbuild/linux-loong64': 0.17.12 - '@esbuild/linux-mips64el': 0.17.12 - '@esbuild/linux-ppc64': 0.17.12 - '@esbuild/linux-riscv64': 0.17.12 - '@esbuild/linux-s390x': 0.17.12 - '@esbuild/linux-x64': 0.17.12 - '@esbuild/netbsd-x64': 0.17.12 - '@esbuild/openbsd-x64': 0.17.12 - '@esbuild/sunos-x64': 0.17.12 - '@esbuild/win32-arm64': 0.17.12 - '@esbuild/win32-ia32': 0.17.12 - '@esbuild/win32-x64': 0.17.12 + '@esbuild/android-arm': 0.17.17 + '@esbuild/android-arm64': 0.17.17 + '@esbuild/android-x64': 0.17.17 + '@esbuild/darwin-arm64': 0.17.17 + '@esbuild/darwin-x64': 0.17.17 + '@esbuild/freebsd-arm64': 0.17.17 + '@esbuild/freebsd-x64': 0.17.17 + '@esbuild/linux-arm': 0.17.17 + '@esbuild/linux-arm64': 0.17.17 + '@esbuild/linux-ia32': 0.17.17 + '@esbuild/linux-loong64': 0.17.17 + '@esbuild/linux-mips64el': 0.17.17 + '@esbuild/linux-ppc64': 0.17.17 + '@esbuild/linux-riscv64': 0.17.17 + '@esbuild/linux-s390x': 0.17.17 + '@esbuild/linux-x64': 0.17.17 + '@esbuild/netbsd-x64': 0.17.17 + '@esbuild/openbsd-x64': 0.17.17 + '@esbuild/sunos-x64': 0.17.17 + '@esbuild/win32-arm64': 0.17.17 + '@esbuild/win32-ia32': 0.17.17 + '@esbuild/win32-x64': 0.17.17 dev: false /escalade@3.1.1: @@ -3737,8 +3515,8 @@ packages: universalify: 2.0.0 dev: false - /fs-extra@11.1.0: - resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} dependencies: graceful-fs: 4.2.10 @@ -3828,7 +3606,7 @@ packages: defu: 6.1.2 https-proxy-agent: 5.0.1 mri: 1.2.0 - node-fetch-native: 1.0.2 + node-fetch-native: 1.1.0 pathe: 1.1.0 tar: 6.1.13 transitivePeerDependencies: @@ -3891,8 +3669,8 @@ packages: engines: {node: '>=4'} dev: false - /globby@13.1.3: - resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==} + /globby@13.1.4: + resolution: {integrity: sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 @@ -3919,14 +3697,14 @@ packages: duplexer: 0.1.2 dev: false - /h3@1.6.2: - resolution: {integrity: sha512-1v/clj/qCzWbuiG+DbpViuOVO789sEYNjlwRjekkmyLGsezIJk30gazbnjcWvF8L/ffUdRz2SwxE5HNgNx+Yjg==} + /h3@1.6.4: + resolution: {integrity: sha512-uoDNeaoeDRwWBtwwi4siZ6l5sBmDJpnpcBssuAbvsaPBonl8vP7Ym4tFPe+tAvGM0GbUoC24wYcloCG+J9hqmA==} dependencies: cookie-es: 0.5.0 defu: 6.1.2 destr: 1.2.2 iron-webcrypto: 0.6.0 - radix3: 1.0.0 + radix3: 1.0.1 ufo: 1.1.1 uncrypto: 0.1.2 dev: false @@ -4068,8 +3846,8 @@ packages: resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} dev: false - /hookable@5.5.1: - resolution: {integrity: sha512-ac50aYjbtRMMZEtTG0qnVaBDA+1lqL9fHzDnxMQlVuO6LZWcBB7NXjIu9H9iImClewNdrit4RiEzi9QpRTgKrg==} + /hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} dev: false /html-tags@3.2.0: @@ -4180,9 +3958,9 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: false - /inquirer@9.1.4: - resolution: {integrity: sha512-9hiJxE5gkK/cM2d1mTEnuurGTAoHebbkX0BYl3h7iEg7FYfuNIom+nDfBCSWtvSnoSrWCeBxqqBZu26xdlJlXA==} - engines: {node: '>=12.0.0'} + /inquirer@9.1.5: + resolution: {integrity: sha512-3ygAIh8gcZavV9bj6MTdYddG2zPSYswP808fKS46NOwlF0zZljVpnLCHODDqItWJDbDpLb3aouAxGaJbkxoppA==} + engines: {node: '>=14.18.0'} dependencies: ansi-escapes: 6.0.0 chalk: 5.2.0 @@ -4191,7 +3969,7 @@ packages: external-editor: 3.1.0 figures: 5.0.0 lodash: 4.17.21 - mute-stream: 0.0.8 + mute-stream: 1.0.0 ora: 6.1.2 run-async: 2.4.1 rxjs: 7.8.0 @@ -4477,6 +4255,11 @@ packages: resolution: {integrity: sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==} dev: false + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + dev: false + /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} @@ -4522,8 +4305,8 @@ packages: - supports-color dev: false - /lilconfig@2.0.6: - resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} dev: false @@ -4629,6 +4412,13 @@ packages: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} dev: false + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: false + /lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: @@ -4833,8 +4623,12 @@ packages: '@types/mdast': 3.0.10 dev: false - /mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + /mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + dev: false + + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} dev: false /mdurl@1.0.1: @@ -4858,25 +4652,29 @@ packages: engines: {node: '>= 8'} dev: false - /mermaid@10.0.0: - resolution: {integrity: sha512-syS1qyYCd3EPXCVSpYtefY4D9z9WZAK8hFgjeHR9PAtanybLO162Tu7o5i/nZkqRrJq0Rk8RqskQlhBPgT8eBw==} + /mermaid@10.1.0(react-dom@16.14.0)(react@16.14.0): + resolution: {integrity: sha512-LYekSMNJygI1VnMizAPUddY95hZxOjwZxr7pODczILInO0dhQKuhXeu4sargtnuTwCilSuLS7Uiq/Qn7HTVrmA==} dependencies: '@braintree/sanitize-url': 6.0.2 + '@khanacademy/simple-markdown': 0.8.6(react-dom@16.14.0)(react@16.14.0) cytoscape: 3.23.0 cytoscape-cose-bilkent: 4.1.0(cytoscape@3.23.0) cytoscape-fcose: 2.2.0(cytoscape@3.23.0) d3: 7.8.2 - dagre-d3-es: 7.0.8 - dompurify: 2.4.3 + dagre-d3-es: 7.0.10 + dayjs: 1.11.7 + dompurify: 2.4.5 elkjs: 0.8.2 khroma: 2.0.0 lodash-es: 4.17.21 - moment-mini: 2.29.4 non-layered-tidy-tree-layout: 2.0.2 stylis: 4.1.3 ts-dedent: 2.2.0 uuid: 9.0.0 web-worker: 1.2.0 + transitivePeerDependencies: + - react + - react-dom dev: false /micromark-core-commonmark@1.0.6: @@ -5229,9 +5027,9 @@ packages: optional: true dependencies: defu: 6.1.2 - esbuild: 0.17.12 - fs-extra: 11.1.0 - globby: 13.1.3 + esbuild: 0.17.17 + fs-extra: 11.1.1 + globby: 13.1.4 jiti: 1.18.2 mri: 1.2.0 pathe: 1.1.0 @@ -5247,10 +5045,6 @@ packages: ufo: 1.1.1 dev: false - /moment-mini@2.29.4: - resolution: {integrity: sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==} - dev: false - /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -5277,8 +5071,9 @@ packages: resolution: {integrity: sha512-YVE1mIJ4VpUMqZObFndk9CJu6DBJR/GB13p3tXuNbwD4XExaI5EOuRl6BHeIDxIqXZVxSfAC+y6U1Z/IxCfKUg==} dev: false - /mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + /mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: false /nanoid@3.3.4: @@ -5287,46 +5082,46 @@ packages: hasBin: true dev: false - /nanoid@4.0.1: - resolution: {integrity: sha512-udKGtCCUafD3nQtJg9wBhRP3KMbPglUsgV5JVsXhvyBs/oefqb4sqMEhKBBgqZncYowu58p1prsZQBYvAj/Gww==} + /nanoid@4.0.2: + resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} engines: {node: ^14 || ^16 || >=18} hasBin: true dev: false - /nitropack@2.3.1: - resolution: {integrity: sha512-8cmPZHDweb7O6TmzQyA/ejkG1dzdJLmir1nVqJBdR7hWC/3xOI3y3ac1o8v0o9hVM7YP0HRIEj1h+FVbYJi2pQ==} + /nitropack@2.3.3: + resolution: {integrity: sha512-1g/4zdwWo+tWSvno57rhRXeGk6jNbG5W1yRNtOywInT1nyoEG1ksOwQ3W3JHGB2E1GNjZwAVi611UVOVL+JgYw==} engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} hasBin: true dependencies: '@cloudflare/kv-asset-handler': 0.3.0 '@netlify/functions': 1.4.0 - '@rollup/plugin-alias': 4.0.3(rollup@3.20.0) - '@rollup/plugin-commonjs': 24.0.1(rollup@3.20.0) - '@rollup/plugin-inject': 5.0.3(rollup@3.20.0) - '@rollup/plugin-json': 6.0.0(rollup@3.20.0) - '@rollup/plugin-node-resolve': 15.0.1(rollup@3.20.0) - '@rollup/plugin-replace': 5.0.2(rollup@3.20.0) - '@rollup/plugin-terser': 0.4.0(rollup@3.20.0) - '@rollup/plugin-wasm': 6.1.2(rollup@3.20.0) - '@rollup/pluginutils': 5.0.2(rollup@3.20.0) + '@rollup/plugin-alias': 5.0.0(rollup@3.20.4) + '@rollup/plugin-commonjs': 24.0.1(rollup@3.20.4) + '@rollup/plugin-inject': 5.0.3(rollup@3.20.4) + '@rollup/plugin-json': 6.0.0(rollup@3.20.4) + '@rollup/plugin-node-resolve': 15.0.2(rollup@3.20.4) + '@rollup/plugin-replace': 5.0.2(rollup@3.20.4) + '@rollup/plugin-terser': 0.4.1(rollup@3.20.4) + '@rollup/plugin-wasm': 6.1.2(rollup@3.20.4) + '@rollup/pluginutils': 5.0.2(rollup@3.20.4) '@vercel/nft': 0.22.6 archiver: 5.3.1 c12: 1.2.0 chalk: 5.2.0 chokidar: 3.5.3 - consola: 2.15.3 + consola: 3.0.2 cookie-es: 0.5.0 defu: 6.1.2 destr: 1.2.2 dot-prop: 7.2.0 - esbuild: 0.17.12 + esbuild: 0.17.17 escape-string-regexp: 5.0.0 etag: 1.8.1 - fs-extra: 11.1.0 - globby: 13.1.3 + fs-extra: 11.1.1 + globby: 13.1.4 gzip-size: 7.0.0 - h3: 1.6.2 - hookable: 5.5.1 + h3: 1.6.4 + hookable: 5.5.3 http-proxy: 1.18.1 is-primitive: 3.0.1 jiti: 1.18.2 @@ -5336,25 +5131,25 @@ packages: mime: 3.0.0 mlly: 1.2.0 mri: 1.2.0 - node-fetch-native: 1.0.2 + node-fetch-native: 1.1.0 ofetch: 1.0.1 ohash: 1.0.0 pathe: 1.1.0 perfect-debounce: 0.1.3 pkg-types: 1.0.2 pretty-bytes: 6.1.0 - radix3: 1.0.0 - rollup: 3.20.0 - rollup-plugin-visualizer: 5.9.0(rollup@3.20.0) + radix3: 1.0.1 + rollup: 3.20.4 + rollup-plugin-visualizer: 5.9.0(rollup@3.20.4) scule: 1.0.0 - semver: 7.3.8 + semver: 7.4.0 serve-placeholder: 2.0.1 serve-static: 1.15.0 source-map-support: 0.5.21 std-env: 3.3.2 ufo: 1.1.1 - unenv: 1.2.2 - unimport: 3.0.3(rollup@3.20.0) + unenv: 1.4.1 + unimport: 3.0.6(rollup@3.20.4) unstorage: 1.4.1 transitivePeerDependencies: - '@azure/app-configuration' @@ -5391,6 +5186,10 @@ packages: resolution: {integrity: sha512-KIkvH1jl6b3O7es/0ShyCgWLcfXxlBrLBbP3rOr23WArC66IMcU4DeZEeYEOwnopYhawLTn7/y+YtmASe8DFVQ==} dev: false + /node-fetch-native@1.1.0: + resolution: {integrity: sha512-nl5goFCig93JZ9FIV8GHT9xpNqXbxQUzkOmKIMKmncsBH9jhg7qKex8hirpymkBFmNQ114chEEG5lS4wgK2I+Q==} + dev: false + /node-fetch@2.6.9: resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} engines: {node: 4.x || >=6.0.0} @@ -5403,8 +5202,8 @@ packages: whatwg-url: 5.0.0 dev: false - /node-fetch@3.3.0: - resolution: {integrity: sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==} + /node-fetch@3.3.1: + resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: data-uri-to-buffer: 4.0.1 @@ -5448,11 +5247,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - dev: false - /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -5482,21 +5276,21 @@ packages: boolbase: 1.0.0 dev: false - /nuxi@3.3.1: - resolution: {integrity: sha512-GJaJR0NtH05W7xrtFoJ3sX/eUhIMoqWj63QNFekqhrfD8LmXrlWrx9Q8GCFNc3nqk0oIcngJijyGNfWtTtpSxw==} + /nuxi@3.4.1: + resolution: {integrity: sha512-vp6unzdCxRvWyKoQCMN0Qq6D8ETqV5INuwAWG1WfhINXiQ34WRvwcTwU2zxKe29pzek1gGF30mxWK50OXGSepw==} engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} hasBin: true optionalDependencies: fsevents: 2.3.2 dev: false - /nuxt-component-meta@0.4.3(rollup@3.18.0): - resolution: {integrity: sha512-40wsnbCh2neNdKVrwSiqV/ea7QshYjp3kpfk8JZaxSW/XcgNg2tzka4L+M8caOvQalyAKi6AaENPLaTYOZDbQg==} + /nuxt-component-meta@0.5.1(rollup@3.18.0): + resolution: {integrity: sha512-vwx5wySyVX+QbFrNb3wLYNMPlADho8E66MO45d5i5fTlEkmhopVpQ9YXwlAvM3pLCPjupxG3R3D5rKpLDeitkw==} dependencies: - '@nuxt/kit': 3.3.1(rollup@3.18.0) + '@nuxt/kit': 3.4.1(rollup@3.18.0) scule: 1.0.0 - typescript: 4.9.5 - vue-component-meta: 1.2.0(typescript@4.9.5) + typescript: 5.0.4 + vue-component-meta: 1.2.0(typescript@5.0.4) transitivePeerDependencies: - rollup - supports-color @@ -5505,22 +5299,22 @@ packages: /nuxt-config-schema@0.4.5(rollup@3.18.0): resolution: {integrity: sha512-Y5anu5puDfMJfDP7IYjXsn6Dvj262HtjZqa73jCBbFRCc5jnjrs+BEpJJmtPG32ZsqzO2+RL4oTNb3H6IfKZLQ==} dependencies: - '@nuxt/kit': 3.3.1(rollup@3.18.0) + '@nuxt/kit': 3.4.1(rollup@3.18.0) changelogen: 0.4.1 defu: 6.1.2 jiti: 1.18.2 pathe: 1.1.0 - untyped: 1.2.2 + untyped: 1.3.2 transitivePeerDependencies: - rollup - supports-color dev: false - /nuxt-icon@0.3.2(rollup@3.18.0)(vue@3.2.47): - resolution: {integrity: sha512-066pfova2nE9GZDvHE9oMkqJCwsnJvOZKU2FOSzRpjfXupH3UPtP9Zw8+C2wvZ82Nel6fuRoIUNQh5Sx8ZeQrQ==} + /nuxt-icon@0.3.3(rollup@3.18.0)(vue@3.2.47): + resolution: {integrity: sha512-KdhJAigBGTP8/YIFZ3orwetk40AgLq6VQ5HRYuDLmv5hiDptor9Ro+WIdZggHw7nciRxZvDdQkEwi9B5G/jrkQ==} dependencies: '@iconify/vue': 4.1.0(vue@3.2.47) - '@nuxt/kit': 3.3.1(rollup@3.18.0) + '@nuxt/kit': 3.4.1(rollup@3.18.0) nuxt-config-schema: 0.4.5(rollup@3.18.0) transitivePeerDependencies: - rollup @@ -5534,7 +5328,7 @@ packages: '@nuxt/kit': 3.1.1(rollup@3.18.0) chalk: 5.2.0 cheerio: 1.0.0-rc.12 - radix3: 1.0.0 + radix3: 1.0.1 ufo: 1.1.1 transitivePeerDependencies: - rollup @@ -5553,12 +5347,12 @@ packages: execa: 7.1.1 fast-glob: 3.2.12 flatted: 3.2.7 - fs-extra: 11.1.0 + fs-extra: 11.1.1 launch-editor: 2.6.0 ohash: 1.0.0 pathe: 1.1.0 playwright-core: 1.32.1 - radix3: 1.0.0 + radix3: 1.0.1 satori: 0.4.3 satori-html: 0.3.2 sirv: 2.0.2 @@ -5576,11 +5370,11 @@ packages: - utf-8-validate dev: false - /nuxt-schema-org@2.1.2(@unhead/vue@1.1.23)(rollup@3.18.0): + /nuxt-schema-org@2.1.2(@unhead/vue@1.1.25)(rollup@3.18.0): resolution: {integrity: sha512-2mao0slpJgR4vOaDjhVKHn1apQ4ZH6T9FmmOmFus9YI9wAD6X6Q4USKWWoYRqNIyMEF2WX26sGr4uSPrhp1U9A==} dependencies: '@nuxt/kit': 3.2.2(rollup@3.18.0) - '@unhead/schema-org-vue': 0.5.0(@unhead/vue@1.1.23) + '@unhead/schema-org-vue': 0.5.0(@unhead/vue@1.1.25) pathe: 1.1.0 transitivePeerDependencies: - '@unhead/vue' @@ -5588,14 +5382,14 @@ packages: - supports-color dev: false - /nuxt-seo-kit@1.3.6(@unhead/vue@1.1.23)(rollup@3.18.0)(vue@3.2.47): + /nuxt-seo-kit@1.3.6(@unhead/vue@1.1.25)(rollup@3.18.0)(vue@3.2.47): resolution: {integrity: sha512-yS697Bdpmwtmxr5Ky+jNFufhKHc2pyDg5wcMADOZhigRzzGu3vy+oS04afg1NRpFT7Pw/87CxXXVezjZ0kt10Q==} dependencies: '@nuxt/kit': 3.3.1(rollup@3.18.0) defu: 6.1.2 nuxt-link-checker: 1.0.3(rollup@3.18.0) nuxt-og-image: 1.5.7(rollup@3.18.0) - nuxt-schema-org: 2.1.2(@unhead/vue@1.1.23)(rollup@3.18.0) + nuxt-schema-org: 2.1.2(@unhead/vue@1.1.25)(rollup@3.18.0) nuxt-simple-robots: 1.0.5(rollup@3.18.0) nuxt-simple-sitemap: 1.0.9(rollup@3.18.0) nuxt-unhead: 1.4.15(rollup@3.18.0)(vue@3.2.47) @@ -5629,7 +5423,7 @@ packages: escape-string-regexp: 5.0.0 knitwork: 1.0.0 pathe: 1.1.0 - radix3: 1.0.0 + radix3: 1.0.1 sitemap: 7.1.1 ufo: 1.1.1 transitivePeerDependencies: @@ -5645,59 +5439,66 @@ packages: '@vueuse/head': 1.1.23(vue@3.2.47) fast-glob: 3.2.12 pathe: 1.1.0 - unhead: 1.1.23 + unhead: 1.1.25 transitivePeerDependencies: - rollup - supports-color - vue dev: false - /nuxt@3.3.1(rollup@3.18.0)(typescript@4.9.5): - resolution: {integrity: sha512-1DTFXEr+FlZO/hyw765cb9a/AiGysHIGLNl8NGJtURwUWC4gd+Z3y5DnL04PE5fVJ08yB/KJwc0t6StijbL8wQ==} + /nuxt@3.4.1(@types/node@18.15.11)(rollup@3.18.0)(typescript@5.0.4): + resolution: {integrity: sha512-wKT5iZebO1D7QtAN1fDNNsjaTFbAC5pO4kWzw2qX2OOg2SWP/k42sCfxbcz/JkLL4FJVwpya+9OD9/2MwEdt1g==} engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} hasBin: true + peerDependencies: + '@types/node': ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 dependencies: '@nuxt/devalue': 2.0.0 - '@nuxt/kit': 3.3.1(rollup@3.18.0) - '@nuxt/schema': 3.3.1(rollup@3.18.0) - '@nuxt/telemetry': 2.1.10(rollup@3.18.0) + '@nuxt/kit': 3.4.1(rollup@3.18.0) + '@nuxt/schema': 3.4.1(rollup@3.18.0) + '@nuxt/telemetry': 2.2.0(rollup@3.18.0) '@nuxt/ui-templates': 1.1.1 - '@nuxt/vite-builder': 3.3.1(typescript@4.9.5)(vue@3.2.47) - '@unhead/ssr': 1.1.23 - '@unhead/vue': 1.1.23(vue@3.2.47) + '@nuxt/vite-builder': 3.4.1(@types/node@18.15.11)(rollup@3.18.0)(typescript@5.0.4)(vue@3.2.47) + '@types/node': 18.15.11 + '@unhead/ssr': 1.1.25 + '@unhead/vue': 1.1.25(vue@3.2.47) '@vue/reactivity': 3.2.47 '@vue/shared': 3.2.47 chokidar: 3.5.3 cookie-es: 0.5.0 defu: 6.1.2 destr: 1.2.2 + devalue: 4.3.0 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 - fs-extra: 11.1.0 - globby: 13.1.3 - h3: 1.6.2 + fs-extra: 11.1.1 + globby: 13.1.4 + h3: 1.6.4 hash-sum: 2.0.0 - hookable: 5.5.1 + hookable: 5.5.3 jiti: 1.18.2 knitwork: 1.0.0 + local-pkg: 0.4.3 magic-string: 0.30.0 mlly: 1.2.0 - nitropack: 2.3.1 - nuxi: 3.3.1 + nitropack: 2.3.3 + nuxi: 3.4.1 + nypm: 0.2.0 ofetch: 1.0.1 ohash: 1.0.0 pathe: 1.1.0 perfect-debounce: 0.1.3 + prompts: 2.4.2 scule: 1.0.0 strip-literal: 1.0.1 ufo: 1.1.1 - unctx: 2.1.2 - unenv: 1.2.2 - unimport: 3.0.3(rollup@3.18.0) + unctx: 2.2.0 + unenv: 1.4.1 + unimport: 3.0.6(rollup@3.18.0) unplugin: 1.3.1 - untyped: 1.2.2 + untyped: 1.3.2 vue: 3.2.47 - vue-bundle-renderer: 1.0.2 + vue-bundle-renderer: 1.0.3 vue-devtools-stub: 0.1.0 vue-router: 4.1.6(vue@3.2.47) transitivePeerDependencies: @@ -5708,7 +5509,6 @@ packages: - '@azure/keyvault-secrets' - '@azure/storage-blob' - '@planetscale/database' - - '@types/node' - debug - encoding - eslint @@ -5728,6 +5528,13 @@ packages: - vue-tsc dev: false + /nypm@0.2.0: + resolution: {integrity: sha512-auBv78LkHyU9TywBE91N+RTkanVyFLsVayZaHW+YYvJDJ3u2PCwLaYB3eecPQD9tgCIXGuH871HlHTdKSf6rtw==} + engines: {node: ^14.16.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} + dependencies: + execa: 7.1.1 + dev: false + /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -5820,9 +5627,9 @@ packages: /paneer@0.1.0: resolution: {integrity: sha512-SZfJe/y9fbpeXZU+Kf7cSG2G7rnGP50hUYzCvcWyhp7hYzA3YXGthpkGfv6NSt0oo6QbcRyKwycg/6dpG5p8aw==} - deprecated: renamed to https://www.npmjs.com/package/magicast + deprecated: Please migrate to https://github.com/unjs/magicast dependencies: - '@babel/parser': 7.21.2 + '@babel/parser': 7.21.4 '@types/estree': 1.0.0 recast: 0.22.0 dev: false @@ -5960,7 +5767,7 @@ packages: csstype: 3.1.1 defu: 6.1.2 magic-string: 0.30.0 - nanoid: 4.0.1 + nanoid: 4.0.2 ohash: 1.0.0 paneer: 0.1.0 pathe: 1.1.0 @@ -6002,9 +5809,9 @@ packages: postcss-value-parser: 4.2.0 dev: false - /postcss-colormin@5.3.1(postcss@8.4.21): - resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-colormin@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: @@ -6015,9 +5822,9 @@ packages: postcss-value-parser: 4.2.0 dev: false - /postcss-convert-values@5.1.3(postcss@8.4.21): - resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-convert-values@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: @@ -6048,36 +5855,36 @@ packages: postcss: 8.4.21 dev: false - /postcss-discard-comments@5.1.2(postcss@8.4.21): - resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-discard-comments@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: postcss: 8.4.21 dev: false - /postcss-discard-duplicates@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-discard-duplicates@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: postcss: 8.4.21 dev: false - /postcss-discard-empty@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-discard-empty@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: postcss: 8.4.21 dev: false - /postcss-discard-overridden@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-discard-overridden@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: @@ -6102,33 +5909,33 @@ packages: resolve: 1.22.1 dev: false - /postcss-merge-longhand@5.1.7(postcss@8.4.21): - resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-merge-longhand@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.4.21) + stylehacks: 6.0.0(postcss@8.4.21) dev: false - /postcss-merge-rules@5.1.4(postcss@8.4.21): - resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-merge-rules@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-rCXkklftzEkniyv3f4mRCQzxD6oE4Quyh61uyWTUbCJ26Pv2hoz+fivJSsSBWxDBeScR4fKCfF3HHTcD7Ybqnw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.5 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.4.21) + cssnano-utils: 4.0.0(postcss@8.4.21) postcss: 8.4.21 postcss-selector-parser: 6.0.11 dev: false - /postcss-minify-font-values@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-minify-font-values@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: @@ -6136,33 +5943,33 @@ packages: postcss-value-parser: 4.2.0 dev: false - /postcss-minify-gradients@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-minify-gradients@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.4.21) + cssnano-utils: 4.0.0(postcss@8.4.21) postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-params@5.1.4(postcss@8.4.21): - resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-minify-params@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.5 - cssnano-utils: 3.1.0(postcss@8.4.21) + cssnano-utils: 4.0.0(postcss@8.4.21) postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-selectors@5.2.1(postcss@8.4.21): - resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-minify-selectors@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: @@ -6180,18 +5987,18 @@ packages: postcss-selector-parser: 6.0.11 dev: false - /postcss-normalize-charset@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-normalize-charset@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: postcss: 8.4.21 dev: false - /postcss-normalize-display-values@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-normalize-display-values@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: @@ -6199,9 +6006,9 @@ packages: postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-positions@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-normalize-positions@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: @@ -6209,9 +6016,9 @@ packages: postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-repeat-style@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-normalize-repeat-style@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: @@ -6219,9 +6026,9 @@ packages: postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-string@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-normalize-string@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: @@ -6229,9 +6036,9 @@ packages: postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-normalize-timing-functions@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: @@ -6239,9 +6046,9 @@ packages: postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-unicode@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-normalize-unicode@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: @@ -6250,20 +6057,19 @@ packages: postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-url@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-normalize-url@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - normalize-url: 6.1.0 postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-whitespace@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-normalize-whitespace@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: @@ -6271,20 +6077,20 @@ packages: postcss-value-parser: 4.2.0 dev: false - /postcss-ordered-values@5.1.3(postcss@8.4.21): - resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-ordered-values@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0(postcss@8.4.21) + cssnano-utils: 4.0.0(postcss@8.4.21) postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-reduce-initial@5.1.2(postcss@8.4.21): - resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-reduce-initial@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: @@ -6293,9 +6099,9 @@ packages: postcss: 8.4.21 dev: false - /postcss-reduce-transforms@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-reduce-transforms@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: @@ -6311,20 +6117,20 @@ packages: util-deprecate: 1.0.2 dev: false - /postcss-svgo@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-svgo@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==} + engines: {node: ^14 || ^16 || >= 18} peerDependencies: postcss: ^8.2.15 dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 - svgo: 2.8.0 + svgo: 3.0.2 dev: false - /postcss-unique-selectors@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-unique-selectors@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: @@ -6367,6 +6173,22 @@ packages: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: false + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + dev: false + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + /property-information@6.2.0: resolution: {integrity: sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==} dev: false @@ -6383,8 +6205,8 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: false - /radix3@1.0.0: - resolution: {integrity: sha512-6n3AEXth91ASapMVKiEh2wrbFJmI+NBilrWE0AbiGgfm0xet0QXC8+a3K19r1UVYjUjctUgB053c3V/J6V0kCQ==} + /radix3@1.0.1: + resolution: {integrity: sha512-y+AcwZ3HcUIGc9zGsNVf5+BY/LxL+z+4h4J3/pp8jxSmy1STaCocPS3qrj4tA5ehUSzqtqK+0Aygvz/r/8vy4g==} dev: false /randombytes@2.1.0: @@ -6398,14 +6220,39 @@ packages: engines: {node: '>= 0.6'} dev: false - /rc9@2.0.1: - resolution: {integrity: sha512-9EfjLgNmzP9255YX8bGnILQcmdtOXKtUlFTu8bOZPJVtaUDZ2imswcUdpK51tMjTRQyB7r5RebNijrzuyGXcVA==} + /rc9@2.1.0: + resolution: {integrity: sha512-ROO9bv8PPqngWKoiUZU3JDQ4sugpdRs9DfwHnzDSxK25XtQn6BEHL6EOd/OtKuDT2qodrtNR+0WkPT6l0jxH5Q==} dependencies: defu: 6.1.2 destr: 1.2.2 flat: 5.0.2 dev: false + /react-dom@16.14.0(react@16.14.0): + resolution: {integrity: sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==} + peerDependencies: + react: ^16.14.0 + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + prop-types: 15.8.1 + react: 16.14.0 + scheduler: 0.19.1 + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false + + /react@16.14.0: + resolution: {integrity: sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + prop-types: 15.8.1 + dev: false + /read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} dependencies: @@ -6643,10 +6490,27 @@ packages: rollup: 3.18.0 typescript: 4.9.5 optionalDependencies: - '@babel/code-frame': 7.18.6 + '@babel/code-frame': 7.21.4 + dev: false + + /rollup-plugin-visualizer@5.9.0(rollup@3.18.0): + resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + rollup: 2.x || 3.x + peerDependenciesMeta: + rollup: + optional: true + dependencies: + open: 8.4.2 + picomatch: 2.3.1 + rollup: 3.18.0 + source-map: 0.7.4 + yargs: 17.7.1 dev: false - /rollup-plugin-visualizer@5.9.0(rollup@3.20.0): + /rollup-plugin-visualizer@5.9.0(rollup@3.20.4): resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==} engines: {node: '>=14'} hasBin: true @@ -6658,7 +6522,7 @@ packages: dependencies: open: 8.4.2 picomatch: 2.3.1 - rollup: 3.20.0 + rollup: 3.20.4 source-map: 0.7.4 yargs: 17.7.1 dev: false @@ -6671,8 +6535,8 @@ packages: fsevents: 2.3.2 dev: false - /rollup@3.20.0: - resolution: {integrity: sha512-YsIfrk80NqUDrxrjWPXUa7PWvAfegZEXHuPsEZg58fGCdjL1I9C1i/NaG+L+27kxxwkrG/QEDEQc8s/ynXWWGQ==} + /rollup@3.20.4: + resolution: {integrity: sha512-n7J4tuctZXUErM9Uc916httwqmTc63zzCr2+TLCiSCpfO/Xuk3g/marGN1IlRJZi+QF3XMYx75PxXRfZDVgaRw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -6743,6 +6607,13 @@ packages: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} dev: false + /scheduler@0.19.1: + resolution: {integrity: sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + dev: false + /scule@1.0.0: resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==} dev: false @@ -6752,8 +6623,8 @@ packages: hasBin: true dev: false - /semver@7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + /semver@7.4.0: + resolution: {integrity: sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==} engines: {node: '>=10'} hasBin: true dependencies: @@ -6854,6 +6725,10 @@ packages: totalist: 3.0.0 dev: false + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: false + /sitemap@7.1.1: resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} engines: {node: '>=12.0.0', npm: '>=5.6.0'} @@ -6941,11 +6816,6 @@ packages: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} dev: false - /stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - dev: false - /standard-as-callback@2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} dev: false @@ -7047,9 +6917,9 @@ packages: tinycolor2: 1.6.0 dev: false - /stylehacks@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} - engines: {node: ^10 || ^12 || >=14.0} + /stylehacks@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: @@ -7089,18 +6959,17 @@ packages: resolution: {integrity: sha512-gnegOEiLojoUA8l1ZpyuevruqLTIeiMry6gFcLvXf20cBnaSKLCNl1n+sNrDbBQswsnxIAbI2kU2/P4mwArCgA==} dev: false - /svgo@2.8.0: - resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} - engines: {node: '>=10.13.0'} + /svgo@3.0.2: + resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==} + engines: {node: '>=14.0.0'} hasBin: true dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 - css-select: 4.3.0 - css-tree: 1.1.3 - csso: 4.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + csso: 5.0.5 picocolors: 1.0.0 - stable: 0.1.8 dev: false /tapable@1.1.3: @@ -7260,6 +7129,12 @@ packages: hasBin: true dev: false + /typescript@5.0.4: + resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} + engines: {node: '>=12.20'} + hasBin: true + dev: false + /ufo@1.1.1: resolution: {integrity: sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==} dev: false @@ -7275,15 +7150,15 @@ packages: '@rollup/plugin-alias': 4.0.3(rollup@3.18.0) '@rollup/plugin-commonjs': 24.0.1(rollup@3.18.0) '@rollup/plugin-json': 6.0.0(rollup@3.18.0) - '@rollup/plugin-node-resolve': 15.0.1(rollup@3.18.0) + '@rollup/plugin-node-resolve': 15.0.2(rollup@3.18.0) '@rollup/plugin-replace': 5.0.2(rollup@3.18.0) '@rollup/pluginutils': 5.0.2(rollup@3.18.0) chalk: 5.2.0 consola: 2.15.3 defu: 6.1.2 - esbuild: 0.17.12 - globby: 13.1.3 - hookable: 5.5.1 + esbuild: 0.17.17 + globby: 13.1.4 + hookable: 5.5.3 jiti: 1.18.2 magic-string: 0.29.0 mkdist: 1.1.1(typescript@4.9.5) @@ -7296,7 +7171,7 @@ packages: rollup-plugin-dts: 5.2.0(rollup@3.18.0)(typescript@4.9.5) scule: 1.0.0 typescript: 4.9.5 - untyped: 1.2.2 + untyped: 1.3.2 transitivePeerDependencies: - sass - supports-color @@ -7306,40 +7181,31 @@ packages: resolution: {integrity: sha512-kuZwRKV615lEw/Xx3Iz56FKk3nOeOVGaVmw0eg+x4Mne28lCotNFbBhDW7dEBCBKyKbRQiCadEZeNAFPVC5cgw==} dev: false - /unctx@2.1.2: - resolution: {integrity: sha512-KK18aLRKe3OlbPyHbXAkIWSU3xK8GInomXfA7fzDMGFXQ1crX1UWrCzKesVXeUyHIayHUrnTvf87IPCKMyeKTg==} + /unctx@2.2.0: + resolution: {integrity: sha512-th8S0zg9m35lirV7FYI6AYMKHfmLoEGC87yjuS4MGLS/OZ3Pv1Qx+HyXtnlwteL2YL47xN1ADDKoFWYw3VZoEA==} dependencies: acorn: 8.8.2 estree-walker: 3.0.3 - magic-string: 0.27.0 + magic-string: 0.30.0 unplugin: 1.3.1 dev: false - /unenv@1.2.2: - resolution: {integrity: sha512-SYqIFLFC4wYtLyxD6RyAfoK/dkgvW85BfNdiYvroyfrL4cyLkoigSldSBBiUTgtxwb4pcE0zexw502DghVWeuA==} + /unenv@1.4.1: + resolution: {integrity: sha512-DuFZUDfaBC92zy3fW7QqKTLdYJIPkpwTN0yGZtaxnpOI7HvIfl41NYh9NVv4zcqhT8CGXJ1ELpvO2tecaB6NfA==} dependencies: defu: 6.1.2 mime: 3.0.0 - node-fetch-native: 1.0.2 + node-fetch-native: 1.1.0 pathe: 1.1.0 dev: false - /unhead@1.1.23: - resolution: {integrity: sha512-nM74sM3+puqhHLC9cbwk0rOsjZR41aP0UJeQcoYVuzFlX0+abECgPkpkSI+/HZsXeRVTGxs9WWmjiFHaG18DrQ==} - dependencies: - '@unhead/dom': 1.1.23 - '@unhead/schema': 1.1.23 - '@unhead/shared': 1.1.23 - hookable: 5.5.1 - dev: false - /unhead@1.1.25: resolution: {integrity: sha512-KtTBgtQjxICoOjA4dyxJfj5fYoYJeYFUt/J8ulaTzbvTsXM9K+ztYjI65nf2CPYYXRCRz/iEt8trqcsGlsB5TQ==} dependencies: '@unhead/dom': 1.1.25 '@unhead/schema': 1.1.25 '@unhead/shared': 1.1.25 - hookable: 5.5.1 + hookable: 5.5.3 dev: false /unicode-trie@2.0.0: @@ -7379,8 +7245,8 @@ packages: - rollup dev: false - /unimport@3.0.3(rollup@3.18.0): - resolution: {integrity: sha512-RzQqQiqepF5P13SwBGCe4pLlRnAQlbFuDAaQlSkXiNJDpN2iymtGMSfa75AcVSejgV05Q2aQYt6UhCiy5GuZ2A==} + /unimport@3.0.6(rollup@3.18.0): + resolution: {integrity: sha512-GYxGJ1Bri1oqx8VFDjdgooGzeK7jBk3bvhXmamTIpu3nONOcUMGwZbX7X0L5RA7OWMXpR4vzpSQP7pXUzJg1/Q==} dependencies: '@rollup/pluginutils': 5.0.2(rollup@3.18.0) escape-string-regexp: 5.0.0 @@ -7397,10 +7263,10 @@ packages: - rollup dev: false - /unimport@3.0.3(rollup@3.20.0): - resolution: {integrity: sha512-RzQqQiqepF5P13SwBGCe4pLlRnAQlbFuDAaQlSkXiNJDpN2iymtGMSfa75AcVSejgV05Q2aQYt6UhCiy5GuZ2A==} + /unimport@3.0.6(rollup@3.20.4): + resolution: {integrity: sha512-GYxGJ1Bri1oqx8VFDjdgooGzeK7jBk3bvhXmamTIpu3nONOcUMGwZbX7X0L5RA7OWMXpR4vzpSQP7pXUzJg1/Q==} dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.20.0) + '@rollup/pluginutils': 5.0.2(rollup@3.20.4) escape-string-regexp: 5.0.0 fast-glob: 3.2.12 local-pkg: 0.4.3 @@ -7473,8 +7339,8 @@ packages: engines: {node: '>=14.19.0'} dependencies: '@antfu/utils': 0.7.2 - '@babel/generator': 7.21.1 - '@babel/parser': 7.21.2 + '@babel/generator': 7.21.4 + '@babel/parser': 7.21.4 '@rollup/pluginutils': 5.0.2(rollup@3.18.0) magic-string: 0.27.0 unplugin: 1.3.1 @@ -7520,24 +7386,28 @@ packages: anymatch: 3.1.3 chokidar: 3.5.3 destr: 1.2.2 - h3: 1.6.2 + h3: 1.6.4 ioredis: 5.3.1 listhen: 1.0.4 lru-cache: 7.18.3 mri: 1.2.0 - node-fetch-native: 1.0.2 + node-fetch-native: 1.1.0 ofetch: 1.0.1 ufo: 1.1.1 transitivePeerDependencies: - supports-color dev: false - /untyped@1.2.2: - resolution: {integrity: sha512-EANYd5L6AdpgfldlgMcmvOOnj092nWhy0ybhc7uhEH12ipytDYz89EOegBQKj8qWL3u1wgYnmFjADhsuCJs5Aw==} + /untyped@1.3.2: + resolution: {integrity: sha512-z219Z65rOGD6jXIvIhpZFfwWdqQckB8sdZec2NO+TkcH1Bph7gL0hwLzRJs1KsOo4Jz4mF9guBXhsEnyEBGVfw==} + hasBin: true dependencies: - '@babel/core': 7.21.0 - '@babel/standalone': 7.21.2 - '@babel/types': 7.21.2 + '@babel/core': 7.21.4 + '@babel/standalone': 7.21.4 + '@babel/types': 7.21.4 + defu: 6.1.2 + jiti: 1.18.2 + mri: 1.2.0 scule: 1.0.0 transitivePeerDependencies: - supports-color @@ -7619,9 +7489,9 @@ packages: vfile-message: 3.1.4 dev: false - /vite-node@0.29.7: - resolution: {integrity: sha512-PakCZLvz37yFfUPWBnLa1OYHPCGm5v4pmRrTcFN4V/N/T3I6tyP3z07S//9w+DdeL7vVd0VSeyMZuAh+449ZWw==} - engines: {node: '>=v14.16.0'} + /vite-node@0.30.1(@types/node@18.15.11): + resolution: {integrity: sha512-vTikpU/J7e6LU/8iM3dzBo8ZhEiKZEKRznEMm+mJh95XhWaPrJQraT/QsT2NWmuEf+zgAoMe64PKT7hfZ1Njmg==} + engines: {node: '>=v14.18.0'} hasBin: true dependencies: cac: 6.7.14 @@ -7629,7 +7499,7 @@ packages: mlly: 1.2.0 pathe: 1.1.0 picocolors: 1.0.0 - vite: 4.1.4 + vite: 4.2.1(@types/node@18.15.11) transitivePeerDependencies: - '@types/node' - less @@ -7640,7 +7510,7 @@ packages: - terser dev: false - /vite-plugin-checker@0.5.6(typescript@4.9.5)(vite@4.1.4): + /vite-plugin-checker@0.5.6(typescript@5.0.4)(vite@4.2.1): resolution: {integrity: sha512-ftRyON0gORUHDxcDt2BErmsikKSkfvl1i2DoP6Jt2zDO9InfvM6tqO1RkXhSjkaXEhKPea6YOnhFaZxW3BzudQ==} engines: {node: '>=14.16'} peerDependencies: @@ -7677,22 +7547,22 @@ packages: chokidar: 3.5.3 commander: 8.3.0 fast-glob: 3.2.12 - fs-extra: 11.1.0 + fs-extra: 11.1.1 lodash.debounce: 4.0.8 lodash.pick: 4.4.0 npm-run-path: 4.0.1 strip-ansi: 6.0.1 tiny-invariant: 1.3.1 - typescript: 4.9.5 - vite: 4.1.4 + typescript: 5.0.4 + vite: 4.2.1(@types/node@18.15.11) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 vscode-uri: 3.0.7 dev: false - /vite@4.1.4: - resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} + /vite@4.2.1(@types/node@18.15.11): + resolution: {integrity: sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -7716,7 +7586,8 @@ packages: terser: optional: true dependencies: - esbuild: 0.16.17 + '@types/node': 18.15.11 + esbuild: 0.17.17 postcss: 8.4.21 resolve: 1.22.1 rollup: 3.18.0 @@ -7734,7 +7605,7 @@ packages: engines: {vscode: ^1.52.0} dependencies: minimatch: 3.1.2 - semver: 7.3.8 + semver: 7.4.0 vscode-languageserver-protocol: 3.16.0 dev: false @@ -7764,13 +7635,13 @@ packages: resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==} dev: false - /vue-bundle-renderer@1.0.2: - resolution: {integrity: sha512-jfFfTlXV7Xp2LxqcdRnBslFLb4C/DBvecTgpUYcDpMd75u326svTmEqa8YX5d1t7Mh9jODKdt8y+/z+8Pegh3g==} + /vue-bundle-renderer@1.0.3: + resolution: {integrity: sha512-EfjX+5TTUl70bki9hPuVp+54JiZOvFIfoWBcfXsSwLzKEiDYyHNi5iX8srnqLIv3YRnvxgbntdcG1WPq0MvffQ==} dependencies: ufo: 1.1.1 dev: false - /vue-component-meta@1.2.0(typescript@4.9.5): + /vue-component-meta@1.2.0(typescript@5.0.4): resolution: {integrity: sha512-z+/pL4txu5qCULbGHFn6vOlSR1V5gFDGWkD64Z2yLlKtYr0Wlb9oOfWTaXxpSl7R+EiX7JusbTlek0szSYeH1g==} peerDependencies: typescript: '*' @@ -7778,7 +7649,7 @@ packages: '@volar/language-core': 1.3.0-alpha.0 '@volar/vue-language-core': 1.2.0 typesafe-path: 0.2.2 - typescript: 4.9.5 + typescript: 5.0.4 dev: false /vue-demi@0.13.11(vue@3.2.47): @@ -7963,11 +7834,6 @@ packages: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: false - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: false - /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} diff --git a/.docs/public/images/Tests/seq.png b/.docs/public/images/Tests/seq.png deleted file mode 100644 index 471c98664..000000000 Binary files a/.docs/public/images/Tests/seq.png and /dev/null differ diff --git a/.docs/public/images/Tests/seq_auth.png b/.docs/public/images/Tests/seq_auth.png deleted file mode 100644 index ed2f246e7..000000000 Binary files a/.docs/public/images/Tests/seq_auth.png and /dev/null differ diff --git a/.docs/public/images/installations/ports.png b/.docs/public/images/installations/ports.png deleted file mode 100644 index 7bdc0dfc6..000000000 Binary files a/.docs/public/images/installations/ports.png and /dev/null differ diff --git a/.docs/public/images/installations/wsl_armonik1.png b/.docs/public/images/installations/wsl_armonik1.png deleted file mode 100644 index 5cfe5828f..000000000 Binary files a/.docs/public/images/installations/wsl_armonik1.png and /dev/null differ diff --git a/.docs/public/images/installations/wsl_armonik2.png b/.docs/public/images/installations/wsl_armonik2.png deleted file mode 100644 index bfaab3eda..000000000 Binary files a/.docs/public/images/installations/wsl_armonik2.png and /dev/null differ diff --git a/.docs/public/images/installations/wsl_armonik3.png b/.docs/public/images/installations/wsl_armonik3.png deleted file mode 100644 index 63135bfb4..000000000 Binary files a/.docs/public/images/installations/wsl_armonik3.png and /dev/null differ diff --git a/.docs/public/images/installations/wsl_armonik4.png b/.docs/public/images/installations/wsl_armonik4.png deleted file mode 100644 index e981a4f67..000000000 Binary files a/.docs/public/images/installations/wsl_armonik4.png and /dev/null differ diff --git a/.gitignore b/.gitignore index cf5dfb807..73e4236ed 100644 --- a/.gitignore +++ b/.gitignore @@ -7,8 +7,6 @@ kubeconfig_* terraform.tfstate* .DS_Store -.vscode/* -.vscode/ *.pyc venv/ dist/ @@ -20,6 +18,6 @@ __init__.py/ lambda.zip generated .build -./source/ArmoniK.Samples +./Source/ArmoniK.Samples *~ -*.pem \ No newline at end of file +*.pem diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..05052e43b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "cSpell.words": [ + "Armoni" + ] +} diff --git a/README.md b/README.md index ffd079746..67300ae9b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # Table of contents - + + - [ArmoniK](#armonik) - [When should I use ArmoniK](#when-should-i-use-armonik) - [When should I not use ArmoniK](#when-should-i-not-use-armonik) diff --git a/infrastructure/README.md b/infrastructure/README.md deleted file mode 100644 index 54b7a3976..000000000 --- a/infrastructure/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Table of contents - -- [Introduction](#introduction) -- [Quick install of ArmoniK](#quick-install-of-armonik) - - [On dev/test local machine](#on-devtest-local-machine) - - [On Amazon Web Services (AWS)](#on-amazon-web-services-aws) -- [Bugs/Support](#Bugs-support) - -# Introduction - -In this project, we present the different steps to deploy ArmoniK scheduler in different environments. - -# Quick install of ArmoniK - -Your can deploy ArmoniK scheduler: - -1. on your local machine or a VM, Linux machine or Windows machine on WSL 2, on a single-node of Kubernetes. This is - useful for development and testing environment only! -2. on an onpremise cluster composed of a master node and several worker nodes of Kubernetes. -3. on Cloud as AWS, Azure or GCP. - -ArmoniK deployment needs installation of Kubernetes, monitoring tools and different storage (Table, cache storage and -queue). - -## On dev/test local machine - -You can follow instructions described in [Quick deploy ArmoniK on local machine](quick-deploy/localhost/README.md) to -install ArmoniK and its infrastructure requirements upon your local machine. - -## On Amazon Web Services (AWS) - -You can follow instructions described in [Quick deploy ArmoniK on AWS](quick-deploy/aws/README.md) to install ArmoniK -and its infrastructure requirements on AWS. - -# Bugs/Support - -Please direct enquiries about ArmoniK to the public mailing -list [armonik-support@aneo.fr](mailto:armonik-support@aneo.fr). See -also [Issues](https://github.com/aneoconsulting/ArmoniK/issues) of ArmoniK project. - -To report a bug, please include the version of ArmoniK you are using. \ No newline at end of file diff --git a/infrastructure/docs/all-in-one-deploy-powershell.md b/infrastructure/docs/all-in-one-deploy-powershell.md deleted file mode 100644 index 137f87c19..000000000 --- a/infrastructure/docs/all-in-one-deploy-powershell.md +++ /dev/null @@ -1,82 +0,0 @@ -# ArmoniK installation on Windows Subsytem Linux - -##Pre-requirements - -There are two pre-requisites to be able to use the script to install and test ArmoniK -on windows: - -* Windows Subsystem Linux version 2 (WSL2) -* Powershell Core 7 or greater -* Git to access ArmoniK repository - -To install this two requirements (of not already available on your system): - -* (WSL2)[https://docs.microsoft.com/en-us/windows/wsl/install] -* (Powershell Core 7)[https://docs.microsoft.com/fr-fr/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.2] -* Git: - -Another solution, at least for the Powershell and Git installation is to use the (chocolatey package manager)[http://chocolatey.org/]. - -In addition, for a standalone ArmoniK instance in WSL2 to be able to work, Docker Desktop on Windows should be *deactivated*. -If it is not the case the script installing ArmoniK will stop. - -When all the requirement are available. It is possible to clone ArmoniK repository and using the powershell script to install a WSL2 version and launch some tests. - -## Cloning ArmoniK repository - -To clone ArmoniK go to the directory where you want to clone it. If we want to clone it in the main directory of the user: - -```powershell -cd c:\Users\$env:username -git clone https://github.com/aneoconsulting/ArmoniK.git -``` - -when the project is cloned, go to the directory: - -```pwsh -cd C:\Users\$env:username\ArmoniK\ArmoniK\infrastructure\utils\scripts -``` - -and start the script from a powershell (_pwsh_) terminal: - -```pwsh -.\armonik_dev_environment.ps1 -``` - -![start script](images/wsl_armonik1.png) - -This will open a new terminal where the Ubuntu linux image configuration (user and password) will be done: - -![wsl ubuntu configuration2](images/wsl_armonik2.png) - -You need to quit this new terminal (`exit` command or close the window). -The script is asking for the username and the password used in the Linux image and will be necessary to continue the script. - -![wsl ubuntu configuration](images/wsl_armonik3.png) - -The last question will concern the ArmoniK branch that you want to use in this deployment: - -![ArmoniK branch choice](images/wsl_armonik4.png) - -After answering these questions, the installation will be done in the following steps: - -1. Installation of the system dependencies in the WSL ubuntu using the script `ubuntu_requirements.sh` -2. Systemd installation. Step only needed on WSL and only possible with the Ubuntu distribution for now. -3. ArmoniK requirement installation -4. ArmoniK installation from the source -5. Run ArmoniK tests - -In theory, a new tabulation will open in your default webrowser to access to the logs with (seq)[https://datalust.co/]. - -## Connection to the WSL - -It is possible to access at anytime to the WSL Ubuntu by using the following command (after systemd installation): - -```powershell -wsl genie -s -``` - - - - - diff --git a/infrastructure/docs/all-in-one-deploy.md b/infrastructure/docs/all-in-one-deploy.md deleted file mode 100644 index 179a7667c..000000000 --- a/infrastructure/docs/all-in-one-deploy.md +++ /dev/null @@ -1,269 +0,0 @@ -# Table of contents - -- [Introduction](#introduction) -- [Prerequisites](#prerequisites) -- [Install Kubernetes](#install-kubernetes) -- [Script bash all-in-one](#script-bash-all-in-one) - -# Introduction - -Hereafter, You have instructions to deploy ArmoniK on dev/test environment upon your local machine with a simple deploy -script [deploy-dev-test-infra.sh](../utils/scripts/deploy-dev-test-infra.sh) - -The infrastructure is composed of: - -* Addons for Kubernetes: - * Keda - * Metrics server -* Storage: - * ActiveMQ - * MongoDB - * Redis -* Monitoring: - * ArmoniK metrics exporter - * Grafana - * Node exporter - * Prometheus - * Seq server for structured log data of ArmoniK. -* ArmoniK: - * AdminGUI - * Control plane - * Compute plane: polling agent and workers - * Ingress - -# Prerequisites - -The following software or tool should be installed upon your local Linux machine: - -* If You have Windows machine, You have to install [WSL 2](../quick-deploy/localhost/docs/wsl2.md) -* [Docker](https://docs.docker.com/engine/install/) -* [GNU make](https://www.gnu.org/software/make/) -* [JQ](https://stedolan.github.io/jq/download/) -* [Kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/) -* [Python](https://docs.python-guide.org/starting/install3/linux/) version 3 - * [hcl2](https://pypi.org/project/python-hcl2/) - * [jsonpath-ng](https://pypi.org/project/jsonpath-ng/) -* [Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli) - -# Install Kubernetes - -You must have a Kubernetes on your local machine to install ArmoniK. If not, You can follow instructions in one of the -following documentation [Install Kubernetes on dev/test local machine](../quick-deploy/localhost/docs/k3s.md). - -# Script bash all-in-one - -From the **root** of the repository, position yourself in directory `infrastructure/utils/scripts/`: - -```bash -cd infrastructure/utils/scripts -``` - -- To see the usage command: - ```bash - ./deploy-dev-test-infra.sh -h - ``` -- To deploy for the first time all infrastructure: - ```bash - ./deploy-dev-test-infra.sh -m deploy-all - ``` -- To redeploy all infrastructure: - ```bash - ./deploy-dev-test-infra.sh -m redeploy-all - ``` -- To destroy all infrastructure: - ```bash - ./deploy-dev-test-infra.sh -m destroy-all - ``` -- To clean and delete all generated files from all deployment: - ```bash - ./deploy-dev-test-infra.sh --clean all - ``` - -If You want to deploy each resource independently: - -- To deploy Keda: - ```bash - ./deploy-dev-test-infra.sh -m deploy-keda - ``` -- To deploy Metrics server: - ```bash - ./deploy-dev-test-infra.sh -m deploy-metrics-server - ``` -- To deploy storage: - ```bash - ./deploy-dev-test-infra.sh -m deploy-storage - ``` -- To deploy monitoring: - ```bash - ./deploy-dev-test-infra.sh -m deploy-monitoring - ``` -- To deploy ArmoniK: - ```bash - ./deploy-dev-test-infra.sh -m deploy-armonik - ``` - -If You want to redeploy each resource independently: - -- To redeploy Keda: - ```bash - ./deploy-dev-test-infra.sh -m redeploy-keda - ``` -- To redeploy Metrics server: - ```bash - ./deploy-dev-test-infra.sh -m redeploy-metrics-server - ``` -- To redeploy storage: - ```bash - ./deploy-dev-test-infra.sh -m redeploy-storage - ``` -- To redeploy monitoring: - ```bash - ./deploy-dev-test-infra.sh -m redeploy-monitoring - ``` -- To redeploy ArmoniK: - ```bash - ./deploy-dev-test-infra.sh -m redeploy-armonik - ``` - -If You want to destroy each resource independently: - -- To destroy Keda: - ```bash - ./deploy-dev-test-infra.sh -m destroy-keda - ``` -- To destroy Metrics server: - ```bash - ./deploy-dev-test-infra.sh -m destroy-metrics-server - ``` -- To destroy storage: - ```bash - ./deploy-dev-test-infra.sh -m destroy-storage - ``` -- To destroy monitoring: - ```bash - ./deploy-dev-test-infra.sh -m destroy-monitoring - ``` -- To destroy ArmoniK: - ```bash - ./deploy-dev-test-infra.sh -m destroy-armonik - ``` - -If You want to clean and delete generated files from each deployment independently: - -- To clean Keda: - ```bash - ./deploy-dev-test-infra.sh --clean keda - ``` -- To clean Metrics server: - ```bash - ./deploy-dev-test-infra.sh --clean metrics-server - ``` -- To clean storage: - ```bash - ./deploy-dev-test-infra.sh --clean storage - ``` -- To clean monitoring: - ```bash - ./deploy-dev-test-infra.sh --clean monitoring - ``` -- To clean ArmoniK: - ```bash - ./deploy-dev-test-infra.sh --clean armonik - ``` - -If You want to deploy ArmoniK components on specific Kubernetes namespace, You execute the following command: - -```bash -./deploy-dev-test-infra.sh -m deploy-all --namespace -``` - -If the `host_path` for shared storage for ArmoniK workers is not `${HOME}/data`, You can deploy the infrastructure as -follows: - -```bash -./deploy-dev-test-infra.sh -m deploy-all --host-path -``` - -If You have a NFS filesystem as shared storage for ArmoniK workers, You deploy the infrastructure as follows: - -```bash -./deploy-dev-test-infra.sh \ - -m deploy-all \ - --host-path \ - --nfs-server-ip \ - --shared-storage-type NFS -``` - -If You want to change container image and/or tag of control plane, polling agent, worker or metrics exporter: - -```bash -./deploy-dev-test-infra.sh \ - -m deploy-all \ - --control-plane-image \ - --polling-agent-image \ - --worker-image \ - --metrics-exporter-image \ - --core-tag \ - --worker-tag -``` - -where `--core-tag ` allows to update the container tag for ArmoniK Core (control plane, polling agent and -metrics exporter). - -If You change the max, min or idle replicas in the HPA of the compute plane: - -```bash -./deploy-dev-test-infra.sh \ - -m deploy-all \ - --hpa-min-compute-plane-replicas \ - --hpa-max-compute-plane-replicas \ - --hpa-idle-compute-plane-replicas \ - --compute-plane-hpa-target-value -``` - -where `` is the target value for the number of messages in the queue. - -**Warning:** `` must be less than `` ! - -If You change the max, min or idle replicas in the HPA of the control plane: - -```bash -./deploy-dev-test-infra.sh \ - -m deploy-all \ - --hpa-min-control-plane-replicas \ - --hpa-max-control-plane-replicas \ - --hpa-idle-control-plane-replicas \ - --control-plane-hpa-target-value -``` - -where `` is the target value in percentage for the CPU and memory utilization. - -**Warning:** `` must be less than `` ! - -If You want to change logging level for ArmoniK components: - -```bash -./deploy-dev-test-infra.sh -m deploy-all --logging-level -``` - -If You want to activate the TLS: - -```bash -./deploy-dev-test-infra.sh -m deploy-all --with-tls -``` - -If You want to activate the mTLS: - -```bash -./deploy-dev-test-infra.sh -m deploy-all --with-mtls -``` - -If You want to deactivate the ingress with NGINX: - -```bash -./deploy-dev-test-infra.sh -m deploy-all --without-nginx -``` - -### [Return to the infrastructure main page](../README.md) - -### [Return to the project main page](../../README.md) diff --git a/infrastructure/docs/images/wsl_armonik1.png b/infrastructure/docs/images/wsl_armonik1.png deleted file mode 100644 index 5cfe5828f..000000000 Binary files a/infrastructure/docs/images/wsl_armonik1.png and /dev/null differ diff --git a/infrastructure/docs/images/wsl_armonik2.png b/infrastructure/docs/images/wsl_armonik2.png deleted file mode 100644 index bfaab3eda..000000000 Binary files a/infrastructure/docs/images/wsl_armonik2.png and /dev/null differ diff --git a/infrastructure/docs/images/wsl_armonik3.png b/infrastructure/docs/images/wsl_armonik3.png deleted file mode 100644 index 63135bfb4..000000000 Binary files a/infrastructure/docs/images/wsl_armonik3.png and /dev/null differ diff --git a/infrastructure/docs/images/wsl_armonik4.png b/infrastructure/docs/images/wsl_armonik4.png deleted file mode 100644 index e981a4f67..000000000 Binary files a/infrastructure/docs/images/wsl_armonik4.png and /dev/null differ diff --git a/infrastructure/docs/prerequisites.md b/infrastructure/docs/prerequisites.md deleted file mode 100644 index c27561fdc..000000000 --- a/infrastructure/docs/prerequisites.md +++ /dev/null @@ -1,87 +0,0 @@ -# Software prerequisites - -The following software should be installed upon your machine regardless of the environment of the deployment. This -machine can host Kubernetes for dev/test environment, or the login machine to deploy and manage ArmoniK on a distant -Kubernetes cluster. Hereafter, we give instructions to install the prerequisites on Debian/Ubuntu Linux OS. - -***Warning:*** If you have a **Windows machine** you must first -install [WSL 2 and SystemD](kubernetes/onpremise/localhost/wsl2.md) before installing the software prerequisites. - -## Dependencies - -First you must install the following packages: - -```bash -sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release jq -``` - -## AWS CLI - -[AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) installation instructions: - -```bash -curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" -unzip awscliv2.zip -sudo ./aws/install -``` - -## Docker - -The procedure to install [Docker](https://docs.docker.com/engine/install/ubuntu/): - -```bash -curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg -echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ - $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null -sudo apt-get update -sudo apt-get install docker-ce docker-ce-cli containerd.io -``` - -## Helm - -[Helm](https://helm.sh/) is a tool for managing Charts. Charts are packages of pre-configured Kubernetes resources: - -```bash -curl https://baltocdn.com/helm/signing.asc | sudo apt-key add - -sudo apt install apt-transport-https --yes -echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list -sudo apt update -sudo apt install -y helm -``` - -## Kubectl - -The Kubernetes CLI (kubectl), allows you to run commands against Kubernetes clusters. You must use -a [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/) version that is within one minor version -difference of your cluster. For example, a v1.23 client can communicate with v1.22, v1.23, and v1.24 control planes. -Using the latest compatible version of kubectl helps avoid unforeseen issues. - -```bash -curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" -curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256" -echo "$( 3.7` and `pip3`: - -```bash -sudo apt install -y software-properties-common -sudo add-apt-repository ppa:deadsnakes/ppa -sudo apt update -sudo apt install -y python3.7 -sudo apt install -y python3-pip -``` - -## Terraform - -The procedure to install [Terraform](https://www.terraform.io/docs/cli/install/apt.html): - -```bash -curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add - -sudo apt-add-repository "deb [arch=$(dpkg --print-architecture)] https://apt.releases.hashicorp.com $(lsb_release -cs) main" -sudo apt install terraform -``` \ No newline at end of file diff --git a/infrastructure/quick-deploy/localhost/README.md b/infrastructure/quick-deploy/localhost/README.md deleted file mode 100644 index 56ec55b45..000000000 --- a/infrastructure/quick-deploy/localhost/README.md +++ /dev/null @@ -1,304 +0,0 @@ -Table of contents - -- [Introduction](#introduction) -- [Prerequisites](#prerequisites) -- [Install Kubernetes](#install-kubernetes) -- [Set environment variables](#set-environment-variables) -- [Deploy](#deploy) - - [Kubernetes namespace](#kubernetes-namespace) - - [KEDA](#keda) - - [Metrics server](#metrics-server) - - [Storage](#storage) - - [Monitoring](#monitoring) - - [ArmoniK](#armonik) -- [Script bash all-in-one](#script-bash-all-in-one) -- [Clean-up](#clean-up) - -# Introduction - -Hereafter, You have instructions to deploy ArmoniK on dev/test environment upon your local machine. - -The infrastructure is composed of: - -* [KEDA](https://keda.sh/) -* Storage: - * ActiveMQ - * MongoDB - * Redis -* Monitoring: - * Fluent-bit - * Grafana - * Keda - * Metrics exporter - * Metrics server - * Node exporter - * Partition metrics exporter - * Prometheus - * Seq server for structured log data of ArmoniK -* ArmoniK: - * Control plane - * Compute plane: - * polling agent - * workers - * Ingress - * Admin GUI - -# Prerequisites - -The following software or tool should be installed upon your local Linux machine: - -* If You have Windows machine, You can install [WSL 2](docs/wsl2.md) -* [Docker](https://docs.docker.com/engine/install/) -* [GNU make](https://www.gnu.org/software/make/) -* [JQ](https://stedolan.github.io/jq/download/) -* [Kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/) -* [Helm](https://helm.sh/docs/intro/install/) -* [Openssl](https://www.howtoforge.com/tutorial/how-to-install-openssl-from-source-on-linux/) -* [Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli) version 1.0.9 and later -* [.NET](https://docs.microsoft.com/en-us/dotnet/core/install/linux) - -# Install Kubernetes - -You must have a Kubernetes on your local machine to install ArmoniK. If not, You can follow instructions in one of the -following documentation [Install Kubernetes on dev/test local machine](docs/k3s.md). - -# Set environment variables - -From the **root** of the repository, position yourself in directory `infrastructure/quick-deploy/localhost`. - -```bash -cd infrastructure/quick-deploy/localhost -``` - -You need to set a list of environment variables [envvars.sh](envvars.sh) : - -```bash -source envvars.sh -``` - -**or:** - -```bash -export ARMONIK_KUBERNETES_NAMESPACE="armonik" -export ARMONIK_SHARED_HOST_PATH="${HOME}/data" -export ARMONIK_FILE_STORAGE_FILE="HostPath" -export ARMONIK_FILE_SERVER_IP="" -export KEDA_KUBERNETES_NAMESPACE=default -export METRICS_SERVER_KUBERNETES_NAMESPACE=kube-system -``` - -where: - -- `ARMONIK_KUBERNETES_NAMESPACE`: is the namespace in Kubernetes for ArmoniK -- `ARMONIK_SHARED_HOST_PATH`: is the filesystem on your local machine shared with workers of ArmoniK -- `ARMONIK_FILE_STORAGE_FILE`: is the type of the filesystem which can be one of `HostPath` or `NFS` -- `ARMONIK_FILE_SERVER_IP`: is the IP of the network filesystem if `ARMONIK_SHARED_HOST_PATH=NFS` -- `KEDA_KUBERNETES_NAMESPACE`: is the namespace in Kubernetes for [KEDA](https://keda.sh/) -- `METRICS_SERVER_KUBERNETES_NAMESPACE`: is the namespace in Kubernetes for metrics server - -# Deploy - -**First**, You must create the `host_path="${HOME}/data"` directory which will be shared with ArmoniK worker pods ( -see [storage/parameters.tfvars](storage/parameters.tfvars)): - -```bash -mkdir -p "${ARMONIK_SHARED_HOST_PATH}" -``` - -## Kubernetes namespace - -You create a Kubernetes namespaces for ArmoniK with the name set in the environment -variable`ARMONIK_KUBERNETES_NAMESPACE`, for KEDA with the name set in the environment -variable`KEDA_KUBERNETES_NAMESPACE` and for Metrics server with the name set in the environment -variable`METRICS_SERVER_KUBERNETES_NAMESPACE`: - -```bash -make create-namespace -``` - -## KEDA - -The parameters of KEDA are defined in [keda/parameters.tfvars](keda/parameters.tfvars). - -Execute the following command to install KEDA: - -```bash -make deploy-keda -``` - -The Keda deployment generates an output file `keda/generated/keda-output.json`. - -**NOTE:** Please note that KEDA must be deployed only once on the same Kubernetes cluster. - -## Metrics server - -The parameters of Metrics server are defined in [metrics-server/parameters.tfvars](metrics-server/parameters.tfvars). - -Execute the following command to install metrics server: - -```bash -make deploy-metrics-server -``` - -The metrics server deployment generates an output file `metrics-server/generated/metrics-server-output.json`. - -**NOTE:** Please note that metrics server must be deployed only ONCE on the same Kubernetes cluster. - -## Storage - -You need to create storage for ArmoniK which are: - -* ActiveMQ broker -* MongoDB -* Redis - -The parameters of each storage are defined in [storage/parameters.tfvars](storage/parameters.tfvars). - -Execute the following command to create the storage: - -```bash -make deploy-storage -``` - -The storage deployment generates an output file `storage/generated/storage-output.json` which contains information -needed for ArmoniK. - -## Monitoring - -You deploy the following resources for monitoring ArmoniK : - -* Seq to collect the ArmoniK application logs -* Grafana -* Prometheus - -The parameters of each monitoring resources are defined in [monitoring/parameters.tfvars](monitoring/parameters.tfvars). - -Execute the following command to create the monitoring tools: - -```bash -make deploy-monitoring -``` - -**or:** - -```bash -make deploy-monitoring STORAGE_PARAMETERS_FILE= -``` - -where: - -- `` is the **absolute** path to file `storage/generated/storage-output.json` containing the - information about the storage previously created. - -The monitoring deployment generates an output file `monitoring/generated/monitoring-output.json` which contains -information needed for ArmoniK. - -## ArmoniK - -After deploying the storage and monitoring tools, You can install ArmoniK. The installation deploys: - -* ArmoniK control plane -* ArmoniK compute plane - -The parameters of ArmoniK are defined in [armonik/parameters.tfvars](armonik/parameters.tfvars). - -Execute the following command to deploy ArmoniK: - -```bash -make deploy-armonik -``` - -**or:** - -```bash -make deploy-armonik \ - STORAGE_PARAMETERS_FILE= \ - MONITORING_PARAMETERS_FILE= -``` - -where: - -- `` is the **absolute** path to file `storage/generated/storage-output.json` -- `` is the **absolute** path to file `monitoring/generated/monitoring-output.json` - -These files are input information for ArmoniK about storage and monitoring tools previously created. - -The ArmoniK deployment generates an output file `armonik/generated/armonik-output.json` which contains the endpoint URL -of ArmoniK control plane. - -### All-in-one deploy - -All commands described above can be executed with one command. To deploy infrastructure and ArmoniK in all-in-one -command, You execute: - -```bash -make deploy-all -``` - -# Script bash all-in-one - -In addition to above instructions explaining how to deploy ArmoniK and its needed resources, You can use a script -bash [deploy-dev-test-infra.sh](../../utils/scripts/deploy-dev-test-infra.sh) to automate the deployment on your local -machine. - -You have a PowerShell script [armonik_dev_environement.ps1](../../utils/scripts/armonik_dev_environment.ps1) too for -WSL2 machine that allows You to install the prerequisites and ArmoniK. - -You can find the usage of the script Bash in [Script bash all-in-one](../../docs/all-in-one-deploy.md) and the usage of -the script PowerShell in [Script PowerShell all-in-one](../../docs/all-in-one-deploy-powershell.md). - -# Quick tests - -## Seq webserver - -After the deployment, connect to the Seq webserver by using `seq` url retrieved from the Terraform -outputs `armonik/generated/armonik-output.json`, example: - -```bash -http://192.168.213.99:5000/seq -``` - -where `Username: admin` and `Password: admin`: - -![](images/seq_auth.png) - -# Clean-up - -To delete all resources created in Kubernetes, You can execute the following all-in-one command: - -```bash -make destroy-all -``` - -or execute the following commands in this order: - -```bash -make destroy-armonik -make destroy-monitoring -make destroy-storage -make destroy-metrics-server -make destroy-keda -``` - -To clean-up and delete all generated files, You execute: - -```bash -make clean-all -``` - -or: - -```bash -make clean-armonik -make clean-monitoring -make clean-aws-storage -make clean-metrics-server -make clean-keda -``` - -### [Return to the infrastructure main page](../../README.md) - -### [Return to the project main page](../../../README.md) - - - diff --git a/infrastructure/quick-deploy/localhost/docs/k3s.md b/infrastructure/quick-deploy/localhost/docs/k3s.md deleted file mode 100644 index 32fb01615..000000000 --- a/infrastructure/quick-deploy/localhost/docs/k3s.md +++ /dev/null @@ -1,39 +0,0 @@ -# Table of contents - -1. [Introduction](#introduction) -2. [Install Kubernetes](#install-kubernetes) -3. [Install Docker](#install-docker) -4. [Uninstall Kubernetes](#uninstall-kubernetes) - -# Introduction - -Instructions to install Kubernetes on local Linux machine or Windows machine on [WSL 2](wsl2.md). - -You can use [K3s Lightweight Kubernetes](https://rancher.com/docs/k3s/latest/en/) on Linux OS. - -# Install Docker - -To install docker, you can follow the instructions presented [here](https://docs.docker.com/engine/install/) for each -distribution. - -# Install Kubernetes - -Install K3s as follows: - -```bash -curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION="v1.25.6+k3s1" sh -s - --write-kubeconfig-mode 644 --docker --write-kubeconfig ~/.kube/config -``` - -# Uninstall Kubernetes - -To uninstall k3s on your local machine or a VM, use the following command: - -```bash -/usr/local/bin/k3s-uninstall.sh -``` - -### [Return to quick deploy ArmoniK on local machine](../README.md#install-kubernetes) - -### [Return to the infrastructure main page](../../../README.md) - -### [Return to the project main page](../../../../README.md) diff --git a/infrastructure/quick-deploy/localhost/docs/wsl2.md b/infrastructure/quick-deploy/localhost/docs/wsl2.md deleted file mode 100644 index b4503f886..000000000 --- a/infrastructure/quick-deploy/localhost/docs/wsl2.md +++ /dev/null @@ -1,124 +0,0 @@ -# Table of contents - -1. [Install WSL 2](#install-wsl-2) -2. [Enable SystemD on WSL with Genie](#enable-systemd-on-wsl-with-genie) - -# Install WSL 2 - -The following steps to install WSL are listed below and can be used to install Linux on any version of Windows 10. - -## 1. Enable Windows Subsystem for Linux - -You must first enable "Windows Subsystem for Linux" optional feature before installing any Linux distributions on -Windows. Open **PowerShell as Administrator** and run: - -```bash -dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart -``` - -## 2. Enable virtual machine feature - -Before installing WSL 2, you must enable the Virtual Machine Platform optional feature. Your machine will require -virtualization capabilities to use this feature. - -Open **PowerShell as Administrator** and run: - -```bash -dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart -``` - -**Restart your machine** to complete the WSL install and update to WSL 2. - -## 3. Download the Linux kernel update package - -1. Download the latest package: WSL2 Linux kernel update package for x64 machines -2. Run the update package downloaded in the previous step. (**Double-click** to run - you will be prompted for elevated - permissions, select `yes` to approve this installation.) - -Once the installation is complete, move on to the next step - setting WSL 2 as your default version when installing new -Linux distributions. - -## 4. Set WSL 2 as your default version - -**Open PowerShell** and run this command to set WSL 2 as the default version when installing a new Linux distribution: - -```bash -wsl --set-default-version 2 -``` - -## 5. Install your Linux distribution of choice - -1. Open the Microsoft Store and select your favorite Linux distribution (preferably Ubuntu 20.04 LTS). -2. From the distribution's page, select "Get". The first time you launch a newly installed Linux distribution, a console - window will open, and you'll be asked to wait for a minute or two for files to de-compress and be stored on your PC. - All future launches should take less than a second. - -You will then need to create a user account and password for your new Linux distribution. - -# Enable SystemD on WSL with Genie - -Kubernetes (and docker) needs ***SystemD*** to work. For this, you need to -install [Genie](https://github.com/arkane-systems/genie). - -## 1. Install Genie - -Within **WSL**: - -```bash -cd /tmp -wget --content-disposition "https://gist.githubusercontent.com/djfdyuruiry/6720faa3f9fc59bfdf6284ee1f41f950/raw/952347f805045ba0e6ef7868b18f4a9a8dd2e47a/install-sg.sh" -chmod +x install-sg.sh -./install-sg.sh -rm install-sg.sh -``` - -If ever you did not install Ubuntu 20.04, you would need to modify the downloaded script `install-sg.sh` and -change `UBUNTU_VERSION` before `install-sg.sh`. - -It is preferable to disable some services: - -```bash -sudo systemctl disable getty@tty1.service multipathd.service multipathd.socket ssh.service -sudo systemctl mask systemd-remount-fs.service -``` - -Then within **Powershell**: - -```bash -wsl --shutdown -wsl genie -s -``` - -## 2. Start a Genie session - -Now that Genie is installed, you need to run `wsl genie -s` to start a session. The first session started will launch -Genie and create a dedicated namespace (this should take a few seconds). Then, all sessions started with `wsl genie -s` -will live in that namespace, where **systemD** is running, as PID 1. - -***Warning:*** Starting a session with `wsl` alone will not create the session within the Genie namespace, and thus -services like docker or kubernetes will not behave as expected. - -## 3. Configure Genie - -If you want to have access to Windows tools from within Genie (like `code`), you have to set `clone-path` to `true`. On -Ubuntu 20.04, the path might not be set properly, even with `clone-path=true`. In that case, you would to add the -following command to your `.bashrc`: - -```bash -# This is a temporary hack until the following bug is fixed: -# https://github.com/arkane-systems/genie/issues/201 -if [ "${INSIDE_GENIE:-0}" != 0 ] \ - && cat /etc/genie.ini | grep --quiet '^clone-path=true' \ - && ! echo "$PATH" | grep --quiet '/WINDOWS/system32' \ - && [ -f /run/genie.path ] -then - echo "[DEBUG] Add content of '/run/genie.path' to PATH." - PATH="$PATH:$(cat /run/genie.path)" -fi -``` - -### [Return to quick deploy ArmoniK on local machine](../README.md#prerequisites) - -### [Return to the infrastructure main page](../../../README.md) - -### [Return to the project main page](../../../../README.md) \ No newline at end of file diff --git a/infrastructure/quick-deploy/localhost/envvars.sh b/infrastructure/quick-deploy/localhost/envvars.sh index a11be50c3..db0b2d970 100644 --- a/infrastructure/quick-deploy/localhost/envvars.sh +++ b/infrastructure/quick-deploy/localhost/envvars.sh @@ -1,6 +1,12 @@ +# The namespace in Kubernetes for ArmoniK export ARMONIK_KUBERNETES_NAMESPACE="armonik" +# The filesystem on your local machine shared with workers of ArmoniK export ARMONIK_SHARED_HOST_PATH="${HOME}/data" +# The type of the filesystem which can be one of HostPath or NFS export ARMONIK_FILE_STORAGE_FILE="HostPath" +# The IP of the network filesystem if ARMONIK_SHARED_HOST_PATH=NFS export ARMONIK_FILE_SERVER_IP="" +# The namespace in Kubernetes for KEDA export KEDA_KUBERNETES_NAMESPACE="default" +# The namespace in Kubernetes for metrics server export METRICS_SERVER_KUBERNETES_NAMESPACE="kube-system" diff --git a/infrastructure/utils/scripts/armonik_dev_environment.ps1 b/infrastructure/utils/scripts/armonik_dev_environment.ps1 deleted file mode 100644 index 8340ddf62..000000000 --- a/infrastructure/utils/scripts/armonik_dev_environment.ps1 +++ /dev/null @@ -1,255 +0,0 @@ -<# - .SYNOPSIS - ArmoniK dev environment installation on Windows - - .DESCRIPTION - This script will allow ArmoniK dev to create a fast development - environment tailored for ArmoniK. - The script will, at least on a regular windows, open a new window - with Ubuntu WSL. In this window you will create a user by giving a username and a password. - This user will be `sudo` user. - In the original powershell window, you have to answer to three questions: - * the username which should be the username defined above - * the password which should be the username defined above - * the name of the branch that will be deployed - You can specify the variable `diskpath` to change the location of the virtual disk - - .PARAMETER diskpath - Folder in which to install the virtual disk. If not specified, the default path is used. - - .PARAMETER vmversion - Version of Ubuntu to install. If unspecified, the version used is `Ubuntu-20.04`. You can check the list of available WSL versions with - PS> wsl --list --online - - .EXAMPLE - PS> Set-ExecutionPolicy Bypass -Scope Process -Force; .\armonik_dev_environnement.ps1 - PS> armonik_dev_environnement.ps1 - - .EXAMPLE - PS> Set-ExecutionPolicy Bypass -Scope Process -Force; .\armonik_dev_environnement.ps1 - PS> armonik_dev_environnement.ps1 -diskpath D:\WSL - - .EXAMPLE - PS> Set-ExecutionPolicy Bypass -Scope Process -Force; .\armonik_dev_environnement.ps1 - PS> armonik_dev_environnement.ps1 -diskpath D:\WSL -vmversion Ubuntu-22.04 - - #> - -param ($diskpath, $vmversion) - -# Use the version 1.23 for keda compatibility -$k3s_version = "v1.23.9+k3s1" - -if (-Not $vmversion){ - $vmversion = 'Ubuntu-20.04' -} - -function Restart-Genie { - - $max_retries = 5 - - # Stop wsl - wsl --shutdown - - # Initialise genie (small workaround to avoid systemd unit not working) - $job = Start-Job -ScriptBlock { - param($vmversion) - wsl -d $vmversion genie -i - } -ArgumentList $vmversion - Write-Host "Checking Genie installation, 5 sec Pause" - $job | Wait-Job -TimeoutSec 5 - - For ($i=0; $i -lt $max_retries;) - { - $genie_run = wsl -d $vmversion genie -r - Write-Host $genie_run - if ($genie_run -like "running*") - { - $i = $max_retries - } - else - { - $i++ - Write-Host "WSL is not up, 5 sec Pause, retry $i / $max_retries" - Start-Sleep 5 - } - } - $genie_run = wsl -d $vmversion genie -r - # Start the Ubuntu image if systemd is running - if ($genie_run -notlike "running*") { - Write-Host "systemd not working on this Ubuntu installation. Please reinstall genie." - Write-Host "This script should have done it but something didn't work." - Write-Host "Try to rerun this script or install genie manually using the following link:" - Write-Host "https://gist.github.com/djfdyuruiry/6720faa3f9fc59bfdf6284ee1f41f950" - Exit - } -} - -function Move-Disk { - # Stop wsl - wsl --shutdown - - # Create directory, do nothing if it exists - mkdir $diskpath -Force - - $tarpath = Join-Path -Path $diskpath -ChildPath tmp.tar - - # Export to tar - Write-Host "Exporting to tar..." - wsl --export $vmversion $tarpath - - # Unregister old - wsl --unregister $vmversion - - # Import in new path - Write-Host "Importing to new location..." - wsl --import $vmversion $diskpath $tarpath - - # Remove tar - Remove-Item $tarpath - - $config_exe = $vmversion.Replace(".", "").Replace("-", "") - - # Change default user back to what it was - Push-Location $env:LOCALAPPDATA\Microsoft\WindowsApps - Invoke-expression "$config_exe config --default-user $ubuntu_user" - Pop-Location -} - -# Test if Powershell Core is installed -$Pwsh = Get-Command -Name pwsh.exe -ErrorAction SilentlyContinue -if (-Not $Pwsh) { - Write-Host "Please install PowerShell Core https://github.com/PowerShell/PowerShell" - Exit -} - -# Test if Docker Desktop is running -try { - $docker_desktop_inst = Get-Process com.docker.service -ea Stop - Write-Host "WARNING: Please disable Docker Desktop service." - Write-Host "WSL with systemd is needed to run kubernetes." - Write-Host "There are an incompatibility if Docker Desktop is also running." - Write-Host "Stopping the service need Administrative access." - Write-Host "In an elevated powershell you can run the following command:" - Write-Host "Stop-Service com.docker.service" -ForegroundColor Green - Exit -} -catch {} - -$available_installs = wsl --list --online -$available_installs = $available_installs.split() -like "Ubuntu*" | Sort-Object | Get-Unique -if($vmversion -notin $available_installs){ - Write-Host "The demanded version $vmversion is not available" - Write-Host "This deployment script only supports Ubuntu installations" - Write-Host "Available installations are :" $available_installs -Separator "`n - " - Exit -} - -# Test if WSL with ubuntu image has been previously installed -$wsl_output = wsl --list --quiet | Out-String -$ubuntu_exist = $vmversion -in $wsl_output.Split() -if ($ubuntu_exist) { - Write-Host "WSL $vmversion exist. This script will not touch this installation." - Write-Host "You can save it and re-install it with the commande:" - Write-Host "wsl --export $vmversion .tar" - Write-Host "After saving it. You can unregister this WSL and use this script." - Write-Host "wsl --unregister $vmversion" -ForegroundColor Green - Exit -} - -# Environments variables - -$pathfile = Convert-Path $PWD -$pathfile = $pathfile.Replace(":","") -$pathlist = $pathfile.Split("\") -$pathlist[0] = $pathlist[0].Substring(0).ToLower() -$pathname = $pathlist[0..($pathlist.Count-1)] -join "/" -$pathname = -join("/mnt/", $pathname, "/shell") - -# Note: to export a previous WSL based on Ubuntu -# wsl --export Ubuntu Ubuntu_with_armorik.tar - -# installation Windows Subsystem Linux (WSL) -# Note: -# That will open a new powershell terminal. -# This terminal will open the linux wsl and ask -# to give a user name and password. -# This credentials will be the ones with the administrative -# power. -# It is advised to use the same username on the linux and -# windows plateform or this script will have to be adapted. - -Write-Host "The script will create a Windows Subsytem Linux using the $vmversion image." -wsl --install -d $vmversion -Write-Host "Wait until the WSL is configured to answer the question." -ForegroundColor Yellow -$ubuntu_user = Read-Host -Prompt "Which username did you use for your wsl installation" -Write-Host "Username that will be use for the next steps: $ubuntu_user" - -$ubuntu_password = Read-Host -Prompt "Which password did you use for your wsl installation" -AsSecureString -$ubuntu_password = [Runtime.InteropServices.Marshal]::PtrToStringAuto( - [Runtime.InteropServices.Marshal]::SecureStringToBSTR($ubuntu_password)) - -Write-Host "Available branches:" -$available_branches=git branch -a -foreach ($branch_name in $available_branches) - {Write-Host $branch_name} -$armonik_branch = Read-Host -Prompt "Which branch do you want to use?" -Write-Host "ArmoniK branch that will be use for the next steps: $armonik_branch" -# TODO: parse the $available_branches, give a number using the actual one (with a * in front) as default - -## Move virtual disk if the option is specified -if($diskpath) { - Write-Host "Moving installation to the specified disk path : $diskpath" - Move-Disk - Write-Host "WSL installation succesfully moved" -} - -## Install requirements - -## Note: the sed command is used to convert the end of line to unix ones -wsl -d $vmversion cp $pathname/ubuntu_requirements.sh /tmp -wsl -d $vmversion sed -i -e "'s/\r$//'" /tmp/ubuntu_requirements.sh -wsl -d $vmversion bash -c "echo $ubuntu_password | sudo -S bash /tmp/ubuntu_requirements.sh $ubuntu_user" -wsl -d $vmversion rm /tmp/ubuntu_requirements.sh - -# Genie installation to have a systemd on the Ubuntu wsl image -wsl -d $vmversion cp $pathname/systemd_wsl.sh /tmp -wsl -d $vmversion sed -i -e "'s/\r$//'" /tmp/systemd_wsl.sh -wsl -d $vmversion bash -c "echo $ubuntu_password | sudo -S bash /tmp/systemd_wsl.sh" -wsl -d $vmversion rm /tmp/systemd_wsl.sh -wsl -d $vmversion bash -c "echo $ubuntu_password | sudo -S systemctl disable getty@tty1.service multipathd.service multipathd.socket ssh.service" -wsl -d $vmversion bash -c "echo $ubuntu_password | sudo -S systemctl mask systemd-remount-fs.service" - -Restart-Genie - -# ArmoniK -Write-Host "ArmoniK requirements installation (docker, k3s, terraform)" -wsl -d $vmversion genie -c cp $pathname/armonik_requirements.sh /tmp -wsl -d $vmversion genie -c sed -i -e "'s/\r$//'" /tmp/armonik_requirements.sh -wsl -d $vmversion genie -c bash -c "echo $ubuntu_password | sudo -S bash /tmp/armonik_requirements.sh $ubuntu_user $k3s_version" -wsl -d $vmversion genie -c rm /tmp/armonik_requirements.sh - -Write-Host "ArmoniK installation" -wsl -d $vmversion genie -c cp $pathname/armonik_installation.sh /tmp -wsl -d $vmversion genie -c sed -i -e "'s/\r$//'" /tmp/armonik_installation.sh -wsl -d $vmversion genie -c bash /tmp/armonik_installation.sh $armonik_branch -wsl -d $vmversion genie -c rm /tmp/armonik_installation.sh - -# Test installation -wsl -d $vmversion genie -c kubectl get po -n armonik -wsl -d $vmversion genie -c kubectl get svc -n armonik - -# Get WSL host IP adress -$wsl_ip = (wsl -d $vmversion genie -c hostname -I).trim().split()[0] -Write-Host "WSL Machine IP: ""$wsl_ip""" - -# Open seq webserver in default browser -$seq_url = -join("http://", $wsl_ip, ":5000/seq") -Start-Process $seq_url - -# Launch integrations tests -Write-Host "Launch integration test" -wsl -d $vmversion genie -c cp $pathname/test_armonik.sh /tmp -wsl -d $vmversion genie -c sed -i -e "'s/\r$//'" /tmp/test_armonik.sh -wsl -d $vmversion genie -c bash /tmp/test_armonik.sh $armonik_branch -wsl -d $vmversion genie -c rm /tmp/test_armonik.sh \ No newline at end of file diff --git a/infrastructure/utils/scripts/installation/install-genie.sh b/infrastructure/utils/scripts/installation/install-genie.sh new file mode 100644 index 000000000..b84042097 --- /dev/null +++ b/infrastructure/utils/scripts/installation/install-genie.sh @@ -0,0 +1,62 @@ +#! /usr/bin/env bash +# Original Author: matthew snoddy, @djfdyuruiry +# Source: https://gist.githubusercontent.com/djfdyuruiry/6720faa3f9fc59bfdf6284ee1f41f950/raw/952347f805045ba0e6ef7868b18f4a9a8dd2e47a/install-sg.sh + +set -e + +# change these if you want +UBUNTU_VERSION="20.04" +GENIE_VERSION="1.44" + +GENIE_FILE="systemd-genie_${GENIE_VERSION}_amd64" +GENIE_FILE_PATH="/tmp/${GENIE_FILE}.deb" +GENIE_DIR_PATH="/tmp/${GENIE_FILE}" + +function installDebPackage() { + # install repackaged systemd-genie + sudo dpkg -i "${GENIE_FILE_PATH}" + + rm -rf "${GENIE_FILE_PATH}" +} + +function downloadDebPackage() { + rm -f "${GENIE_FILE_PATH}" + + pushd /tmp + + wget --content-disposition \ + "https://github.com/arkane-systems/genie/releases/download/v${GENIE_VERSION}/systemd-genie_${GENIE_VERSION}_amd64.deb" + + popd +} + +function installDependencies() { + sudo apt-get update + + wget --content-disposition \ + "https://packages.microsoft.com/config/ubuntu/${UBUNTU_VERSION}/packages-microsoft-prod.deb" + + sudo dpkg -i packages-microsoft-prod.deb + rm packages-microsoft-prod.deb + + sudo apt-get install apt-transport-https + + sudo apt-get update + sudo apt-get install -y \ + daemonize \ + dotnet-runtime-5.0 \ + systemd-container + + sudo rm -f /usr/sbin/daemonize + sudo ln -s /usr/bin/daemonize /usr/sbin/daemonize +} + +function main() { + installDependencies + + downloadDebPackage + + installDebPackage +} + +main diff --git a/infrastructure/utils/scripts/installation/prerequisites-installer.sh b/infrastructure/utils/scripts/installation/prerequisites-installer.sh new file mode 100644 index 000000000..183becc5c --- /dev/null +++ b/infrastructure/utils/scripts/installation/prerequisites-installer.sh @@ -0,0 +1,78 @@ +#!/bin/bash + +# Exit immediately if a command exits with a non-zero status. +set -e + +# Display Ubuntu version +lsb_release -d -s + +# Get the current directory +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" + +# Get the pre-requisites directory +DIR=$DIR/prerequisites + +# Update packages +echo "Updating packages" +$DIR/update-packages.sh +echo "Packages updated" + +# Install git +echo "Installing git" +$DIR/install-git.sh +echo "Git installed" + +# Install jq +echo "Installing jq" +$DIR/install-jq.sh +echo "Jq installed" + +# Install make +echo "Installing make" +$DIR/install-make.sh +echo "Make installed" + +# Install python3 +echo "Installing python3" +$DIR/install-python3.sh +echo "Python3 installed" + +# Install pip3 +echo "Installing pip3" +$DIR/install-pip3.sh +echo "Pip3 installed" + +# Install helm +echo "Installing helm" +$DIR/install-helm.sh +echo "Helm installed" + +# Install docker +echo "Installing docker" +$DIR/install-docker.sh +echo "Docker installed" + +# Install kubectl +echo "Installing kubectl" +$DIR/install-kubectl.sh +echo "Kubectl installed" + +# Install terraform +echo "Installing terraform" +$DIR/install-terraform.sh +echo "Terraform installed" + +# Install k3s +echo "Installing k3s" +$DIR/install-k3s.sh +echo "K3s installed" + +# Install dotnet +echo "Installing dotnet" +$DIR/install-dotnet.sh +echo "Dotnet installed" + +# Remove unused packages +sudo apt autoremove -y + +echo "Installation completed" diff --git a/infrastructure/utils/scripts/installation/prerequisites/install-docker.sh b/infrastructure/utils/scripts/installation/prerequisites/install-docker.sh new file mode 100644 index 000000000..3906d4d2c --- /dev/null +++ b/infrastructure/utils/scripts/installation/prerequisites/install-docker.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# This script is used to install docker + +# https://docs.docker.com/engine/install/ubuntu/ +sudo apt update + +sudo apt install -y apt-transport-https ca-certificates curl software-properties-common + +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --yes --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg + +echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + +sudo apt update + +sudo apt install -y docker-ce diff --git a/infrastructure/utils/scripts/installation/prerequisites/install-dotnet.sh b/infrastructure/utils/scripts/installation/prerequisites/install-dotnet.sh new file mode 100644 index 000000000..71fcb0ccd --- /dev/null +++ b/infrastructure/utils/scripts/installation/prerequisites/install-dotnet.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# This script is used to install dotnet. + +# https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu +sudo apt -y install dotnet-sdk-6.0 diff --git a/infrastructure/utils/scripts/installation/prerequisites/install-git.sh b/infrastructure/utils/scripts/installation/prerequisites/install-git.sh new file mode 100644 index 000000000..9ceb4ff08 --- /dev/null +++ b/infrastructure/utils/scripts/installation/prerequisites/install-git.sh @@ -0,0 +1,4 @@ +#!/bin/bash +# This script is used to install git. + +sudo apt install -y git diff --git a/infrastructure/utils/scripts/installation/prerequisites/install-helm.sh b/infrastructure/utils/scripts/installation/prerequisites/install-helm.sh new file mode 100644 index 000000000..28a33056b --- /dev/null +++ b/infrastructure/utils/scripts/installation/prerequisites/install-helm.sh @@ -0,0 +1,12 @@ +#!/bin/bash +# This script is used to install helm. + +curl https://baltocdn.com/helm/signing.asc | sudo apt-key add - + +sudo apt install -y apt-transport-https + +echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list + +sudo apt update + +sudo apt install -y helm diff --git a/infrastructure/utils/scripts/installation/prerequisites/install-jq.sh b/infrastructure/utils/scripts/installation/prerequisites/install-jq.sh new file mode 100644 index 000000000..e161bf430 --- /dev/null +++ b/infrastructure/utils/scripts/installation/prerequisites/install-jq.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +# This script is used to install jq. + +sudo apt install -y jq diff --git a/infrastructure/utils/scripts/installation/prerequisites/install-k3s.sh b/infrastructure/utils/scripts/installation/prerequisites/install-k3s.sh new file mode 100644 index 000000000..b5ac007ad --- /dev/null +++ b/infrastructure/utils/scripts/installation/prerequisites/install-k3s.sh @@ -0,0 +1,7 @@ +#!/bin/bash +# This script is used to install k3s. + +curl -sfL https://get.k3s.io |sh -s - --write-kubeconfig-mode 644 --docker --write-kubeconfig ~/.kube/config --kubelet-arg cgroup-driver=systemd + +# To uninstall +# sudo /usr/local/bin/k3s-uninstall.sh diff --git a/infrastructure/utils/scripts/installation/prerequisites/install-kubectl.sh b/infrastructure/utils/scripts/installation/prerequisites/install-kubectl.sh new file mode 100644 index 000000000..18f03312e --- /dev/null +++ b/infrastructure/utils/scripts/installation/prerequisites/install-kubectl.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# This script is used to install kubectl. + +curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" + +sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl diff --git a/infrastructure/utils/scripts/installation/prerequisites/install-make.sh b/infrastructure/utils/scripts/installation/prerequisites/install-make.sh new file mode 100644 index 000000000..6231250f6 --- /dev/null +++ b/infrastructure/utils/scripts/installation/prerequisites/install-make.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +# This script is used to install make. + +sudo apt install -y make diff --git a/infrastructure/utils/scripts/installation/prerequisites/install-pip3.sh b/infrastructure/utils/scripts/installation/prerequisites/install-pip3.sh new file mode 100644 index 000000000..05c0f625d --- /dev/null +++ b/infrastructure/utils/scripts/installation/prerequisites/install-pip3.sh @@ -0,0 +1,4 @@ +#!/bin/bash +# This script is used to install pip3. + +sudo apt install -y python3-pip diff --git a/infrastructure/utils/scripts/installation/prerequisites/install-python3.sh b/infrastructure/utils/scripts/installation/prerequisites/install-python3.sh new file mode 100644 index 000000000..79079939f --- /dev/null +++ b/infrastructure/utils/scripts/installation/prerequisites/install-python3.sh @@ -0,0 +1,7 @@ +#!/bin/bash +# This script is used to install python3. + +sudo apt install -y python3 + +# Link python3 to python +sudo ln -s /usr/bin/python3 /usr/bin/python || true diff --git a/infrastructure/utils/scripts/installation/prerequisites/install-terraform.sh b/infrastructure/utils/scripts/installation/prerequisites/install-terraform.sh new file mode 100644 index 000000000..8a9888310 --- /dev/null +++ b/infrastructure/utils/scripts/installation/prerequisites/install-terraform.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# This script is used to install terraform. + +# https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli +sudo apt update && sudo apt install -y gnupg software-properties-common + +wget -O- https://apt.releases.hashicorp.com/gpg | \ +gpg --dearmor | \ +sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg + +gpg --no-default-keyring \ +--keyring /usr/share/keyrings/hashicorp-archive-keyring.gpg \ +--fingerprint + +echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \ +https://apt.releases.hashicorp.com $(lsb_release -cs) main" | \ +sudo tee /etc/apt/sources.list.d/hashicorp.list + +sudo apt update + +sudo apt -y install terraform diff --git a/infrastructure/utils/scripts/installation/prerequisites/update-packages.sh b/infrastructure/utils/scripts/installation/prerequisites/update-packages.sh new file mode 100644 index 000000000..d7114d381 --- /dev/null +++ b/infrastructure/utils/scripts/installation/prerequisites/update-packages.sh @@ -0,0 +1,4 @@ +#!/bin/bash +# This script is used to update packages. + +sudo apt update && sudo apt -y upgrade diff --git a/infrastructure/utils/scripts/shell/armonik_installation.sh b/infrastructure/utils/scripts/shell/armonik_installation.sh deleted file mode 100644 index a7bc5117f..000000000 --- a/infrastructure/utils/scripts/shell/armonik_installation.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/bash -# usage: armonik_installation.sh - -if [ -z "$1" ] -then - echo "Usage: $0 " - exit 1 -fi - -# Clone ArmoniK github repository (with submodule) -git config --global core.autocrlf -if [ ! -d $HOME/ArmoniK ] -then - git clone --recurse-submodules https://github.com/aneoconsulting/ArmoniK $HOME/ArmoniK -fi -cd $HOME/ArmoniK - -git checkout -b arm_install $1 - -# change branch -#while ! git rev-parse --quiet --verify $branch_name > /dev/null -#do -# echo "Branch available:"; -# git branch -a -# echo "Name of the branch you want to use (without the path)?" -# read branch_name -# git checkout $branch_name -#done - -# Change directory to use Makefile for quick deployement -cd $HOME/ArmoniK/infrastructure/quick-deploy/localhost - -# source envvars.sh -export ARMONIK_KUBERNETES_NAMESPACE=armonik -export ARMONIK_SHARED_HOST_PATH=$HOME/data -export ARMONIK_FILE_STORAGE_FILE=HostPath -export ARMONIK_FILE_SERVER_IP="" -export KEDA_KUBERNETES_NAMESPACE=default -export METRICS_SERVER_KUBERNETES_NAMESPACE=kube-system - -# Created shared storage -mkdir -p "${ARMONIK_SHARED_HOST_PATH}" -# ArmoniK installation -# ArmoniK full deployment - -#make deploy-all # does not work with version v2.8.4 - -echo "Kubernetes name space creation" -make create-namespace - -echo "Keda deployment" -make deploy-keda - -echo "Metrics server deployment" -make deploy-metrics-server - -echo "Storage creation: ActiveMQ, MongoDB, Redis" -make deploy-storage - -echo "ArmoniK storage information are store in $PWD'/storage/generated/storage-output.json'" -echo "Monitoring deployment" -make deploy-monitoring - -echo "ArmoniK monitoring information are store in $PWD'/monitoring/generated/monitoring-output.json'" -echo "Deploy ArmoniK" -make deploy-armonik diff --git a/infrastructure/utils/scripts/shell/armonik_requirements.sh b/infrastructure/utils/scripts/shell/armonik_requirements.sh deleted file mode 100644 index da3401aa8..000000000 --- a/infrastructure/utils/scripts/shell/armonik_requirements.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# usage: armonik_requirements.sh - -set -e - -# Install gpg to add needed repositories -apt -y install gnupg2 - -# install the pre-requisite need for ArmoniK (docker, k3s, terraform) - -# docker -source /etc/os-release -curl -fsSL https://download.docker.com/linux/${ID}/gpg | apt-key add - -echo "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/${ID} ${VERSION_CODENAME} stable" | tee /etc/apt/sources.list.d/docker.list -apt update -apt dist-upgrade -y -apt -y install docker-ce docker-ce-cli containerd.io - -# k3s -# change mode in kubernet installation: https://github.com/k3s-io/k3s/issues/389 -#curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" sh -s - --disable traefik -#curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=$2 sh -s - --write-kubeconfig-mode 644 --docker --write-kubeconfig ~/.kube/config -curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644 --docker --write-kubeconfig ~/.kube/config - -# copy k3s config file from /root to /home/$USER -cp -r $HOME/.kube /home/$1 -chown -R $1:$1 /home/$1/.kube - -systemctl enable k3s -systemctl start k3s - -#terraform -curl -fsSL https://apt.releases.hashicorp.com/gpg | apt-key add - -apt-add-repository "deb [arch=$(dpkg --print-architecture)] https://apt.releases.hashicorp.com $(lsb_release -cs) main" -apt update -apt -y install terraform - -# dotnet 6.0 installation -apt -y install dotnet-sdk-6.0 diff --git a/infrastructure/utils/scripts/shell/systemd_wsl.sh b/infrastructure/utils/scripts/shell/systemd_wsl.sh deleted file mode 100644 index 6dffc6e94..000000000 --- a/infrastructure/utils/scripts/shell/systemd_wsl.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -# Script to install genie to get systemd on WSL -set -e - -cd /tmp -wget --content-disposition \ - "https://gist.githubusercontent.com/djfdyuruiry/6720faa3f9fc59bfdf6284ee1f41f950/raw/952347f805045ba0e6ef7868b18f4a9a8dd2e47a/install-sg.sh" -chmod +x /tmp/install-sg.sh -/tmp/install-sg.sh && rm /tmp/install-sg.sh diff --git a/infrastructure/utils/scripts/shell/test_armonik.sh b/infrastructure/utils/scripts/shell/test_armonik.sh deleted file mode 100644 index d6e29b071..000000000 --- a/infrastructure/utils/scripts/shell/test_armonik.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -export CPIP=$(kubectl get svc control-plane -n armonik -o custom-columns="IP:.spec.clusterIP" --no-headers=true) -export CPPort=$(kubectl get svc control-plane -n armonik -o custom-columns="PORT:.spec.ports[*].port" --no-headers=true) -export Grpc__Endpoint=http://$CPIP:$CPPort - -# cd $HOME/ArmoniK/ -# if [ -d source/ArmoniK.Extensions.Csharp ] -# then -# git submodule update --init --recursive -# else -# git clone https://github.com/aneoconsulting/ArmoniK.Extensions.Csharp.git source/ArmoniK.Extensions.Csharp -# fi - -# bash ./tools/tests/symphony_like.sh -# bash ./tools/tests/datasynapse_like.sh -# bash ./tools/tests/symphony_endToendTests.sh - -#bash ./tools/tests/endToendTests.sh - - -cd $HOME/ArmoniK/ -if [ -d source/ArmoniK.Samples ] -then - git submodule update --init --recursive -else - git clone https://github.com/aneoconsulting/ArmoniK.Samples.git -fi - -bash ArmoniK.Samples/tools/tests/gridserver_like.sh -e $Grpc__Endpoint pTask 1000 -bash ArmoniK.Samples/tools/tests/symphony_like.sh -e $Grpc__Endpoint pTask 1000 -bash ArmoniK.Samples/tools/tests/unified_api.sh -e $Grpc__Endpoint pTask 1000 \ No newline at end of file diff --git a/infrastructure/utils/scripts/shell/ubuntu_requirements.sh b/infrastructure/utils/scripts/shell/ubuntu_requirements.sh deleted file mode 100644 index f424ca5ce..000000000 --- a/infrastructure/utils/scripts/shell/ubuntu_requirements.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/bash -# usage: $0 - -if [ -z "$1" ]; then - echo "Usage: $0 " - exit 1 -fi - -set -e - -apt update -apt -y dist-upgrade -apt -y install lsb-release jq make git python3-pip -ln -s /usr/bin/python3 /usr/bin/python - -# Create docker group and add user -echo "Create docker group and add user " $1 -addgroup docker -adduser $1 docker - - diff --git a/.docs/public/jupyter-notebooks/Architecture.ipynb b/jupyter-notebooks/Architecture.ipynb similarity index 100% rename from .docs/public/jupyter-notebooks/Architecture.ipynb rename to jupyter-notebooks/Architecture.ipynb