diff --git a/.github/workflows/lib-ms.yml b/.github/workflows/lib-ms.yml index f56d2965d..1a6fb7057 100644 --- a/.github/workflows/lib-ms.yml +++ b/.github/workflows/lib-ms.yml @@ -39,43 +39,25 @@ jobs: yarn install yarn build - - name: Run unit tests + - name: Run all tests run: | cd servers/lib yarn install - yarn test:unit + yarn test:all env: PORT: 4001 LOCAL_PATH: ${{ github.workspace }}/files - GITLAB_GROUP: dtaas - GITLAB_URL: https://gitlab.com/api/graphql - TOKEN: token - MODE: gitlab + MODE: local LOG_LEVEL: debug APOLLO_PATH: /lib - - name: Run integration tests - if: ${{ always() }} - run: | - cd servers/lib - yarn install - yarn test:int - env: - PORT: 4001 - LOCAL_PATH: ${{ github.workspace }}/files - GITLAB_GROUP: dtaas - GITLAB_URL: https://gitlab.com/api/graphql - TOKEN: token - MODE: gitlab - LOG_LEVEL: debug - APOLLO_PATH: /lib - - - name: Upload unit and integration test coverage to Codecov + - name: Upload test coverage to Codecov uses: codecov/codecov-action@v3 with: files: servers/lib/coverage/clover.xml flags: lib-microservice-tests + publish-package: if: | diff --git a/README.md b/README.md index ab65eed89..7ec69482d 100644 --- a/README.md +++ b/README.md @@ -56,12 +56,5 @@ This software is owned by [The INTO-CPS Association](https://into-cps.org/) and is available under [the INTO-CPS License](./LICENSE.md). -The DTaaS software platform uses -[Træfik](https://github.com/traefik/traefik), -[ML Workspace](https://github.com/ml-tooling/ml-workspace), -[Grafana](https://github.com/grafana/grafana), -[InfluxDB](https://github.com/influxdata/influxdb), -[MQTT](https://github.com/eclipse/mosquitto) and -[RabbitMQ](https://github.com/rabbitmq/rabbitmq-server) -open-source components. -These software components have their own licenses. +Please see [third-party](docs/third-party.md) for details of +the third-party software included in the DTaaS. diff --git a/deploy/config/lib b/deploy/config/lib index 1acc5496d..51fb5d3b5 100644 --- a/deploy/config/lib +++ b/deploy/config/lib @@ -1,9 +1,6 @@ PORT='4001' -MODE='local' or 'gitlab' +MODE='local' LOCAL_PATH ='filepath' -GITLAB_GROUP ='dtaas' -GITLAB_URL='https://gitlab.foo.com/api/graphql' -TOKEN='123-sample-token' LOG_LEVEL='debug' APOLLO_PATH='/lib' or '' GRAPHQL_PLAYGROUND='false' or 'true' \ No newline at end of file diff --git a/deploy/single-script-install.sh b/deploy/single-script-install.sh index 225a93c90..adb380463 100755 --- a/deploy/single-script-install.sh +++ b/deploy/single-script-install.sh @@ -167,9 +167,6 @@ sudo npm install -g @into-cps-association/libms printf "PORT='4001'\n " printf "MODE='local'\n " printf "LOCAL_PATH ='%s/files'\n " "$TOP_DIR" - printf "GITLAB_GROUP ='dtaas'\n " - printf "GITLAB_URL='https://gitlab.com/api/graphql'\n " - printf "TOKEN='123-sample-token'\n " printf "LOG_LEVEL='debug'\n " printf "APOLLO_PATH='lib'\n " printf "GRAPHQL_PLAYGROUND='true'\n " diff --git a/docs/FAQ.md b/docs/FAQ.md index 90a67b950..b2a1fb5ab 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -64,8 +64,12 @@ The licensed software are not available on the software platform. But users have private workspaces which are based on Linux-based xfce Desktop environment. - Users can install software in their workspaces. The licensed software - installed by one user is not available to another user. + Users can install software in their workspaces. + Please see a + [screencast](FAQ/matlab-simulink.mp4) of using Matlab Simulink + within the DTaaS software. + The licensed software installed by one user is not available + to another user. ## Digital Twin Models @@ -159,7 +163,8 @@ ??? Question "Does DTaaS support data collection from different sources like hardware, software and network? Is there any user interface or any tracking instruments used for data collection?" - The DTaaS provids InfluxDB, RabbitMQ, MQTT services. Both the physical twin + The DTaaS provids InfluxDB, RabbitMQ, MQTT and MongoDB services. + Both the physical twin and digital twin can utilize these protocols for communication. The IoT (time-series) data can be collected using InfluxDB and MQTT broker services. There is a user interface for InfluxDB which can be diff --git a/docs/FAQ/matlab-simulink.mp4 b/docs/FAQ/matlab-simulink.mp4 new file mode 100755 index 000000000..075dc8173 Binary files /dev/null and b/docs/FAQ/matlab-simulink.mp4 differ diff --git a/docs/admin/overview.md b/docs/admin/overview.md index 8cf7bb8c4..29017a5ff 100644 --- a/docs/admin/overview.md +++ b/docs/admin/overview.md @@ -44,5 +44,5 @@ Follow the installation that fits your usecase. | [Production installation on single host](./host.md) | Install DTaaS on server for multiple users. | | [One vagrant machine](vagrant/single-machine.md) | Install DTaaS on a virtual machine; can be used for single or multiple users. | | [Two vagrant machines](vagrant/two-machines.md) | Install DTaaS on two virtual machines; can be used for single or multiple users. | -| | The core DTaaS application is installed on the first virtual machine and all the services (RabbitMQ, MQTT, InfluxDB and Grafana) are installed on second virtual machine. | +| | The core DTaaS application is installed on the first virtual machine and all the services (RabbitMQ, MQTT, InfluxDB, Grafana and MongoDB) are installed on second virtual machine. | | Seperater Packages: [client website](client/CLIENT.md) and [lib microservice](servers/lib/LIB-MS.md) | Can be used independently; do not need full installation of DTaaS. | diff --git a/docs/admin/servers/lib/LIB-MS.md b/docs/admin/servers/lib/LIB-MS.md index 9bf20e36f..3fa89dcec 100644 --- a/docs/admin/servers/lib/LIB-MS.md +++ b/docs/admin/servers/lib/LIB-MS.md @@ -24,34 +24,22 @@ There is a skeleton file structure in [DTaaS codebase](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/files). You can copy and create file system for your users. -## Gitlab setup (optional) - -For this microserivce to be functional, -a certain directory or gitlab project structure is expected. -The microservice expects that the gitlab consisting of one group, -DTaaS, and within that group, all of the projects be located, -**user1**, **user2**, ... , as well as a **commons** project. -Each project corresponds to files of one user. -A sample file structure can be seen in [gitlab dtaas group](https://gitlab.com/dtaas). -You can visit the gitlab documentation on [groups](https://docs.gitlab.com/ee/user/group/) -for help on the management of gitlab groups. - -You can clone the git repositories from the `dtaas` group -to get a sample file system structure for the lib microservice. - ## :arrow_down: Install The package is available in Github -[packages registry](https://github.com/orgs/INTO-CPS-Association/packages). +[packages registry](https://github.com/orgs/INTO-CPS-Association/packages) +and on +[npmjs](https://www.npmjs.com/package/@into-cps-association/libms). -Set the registry and install the package with the following commands +Set the registry and install the package with the one of +the two following commands ```bash +sudo npm install -g @into-cps-association/libms # requires no login sudo npm config set @into-cps-association:registry https://npm.pkg.github.com -sudo npm install -g @into-cps-association/libms ``` -The _npm install_ command asks for username and password. The username is +The _github package registry_ asks for username and password. The username is your Github username and the password is your Github [personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens). In order for the npm to download the package, your personal access token @@ -64,11 +52,8 @@ The template configuration file is: ```ini PORT='4001' -MODE='local' or 'gitlab' +MODE='local' LOCAL_PATH='/Users//DTaaS/files' -GITLAB_GROUP='dtaas' -GITLAB_URL='https://gitlab.com/api/graphql' -TOKEN='123-sample-token' LOG_LEVEL='debug' APOLLO_PATH='/lib' or '' GRAPHQL_PLAYGROUND='false' or 'true' @@ -78,23 +63,8 @@ The `LOCAL_PATH` variable is the absolute filepath to the location of the local directory which will be served to users by the Library microservice. -The `GITLAB_URL`, `GITLAB_GROUP` and `TOKEN` are only relevant for `gitlab` mode. -The `TOKEN` should be set to your GitLab Group access API token. -For more information on how to create and use your access token, -[gitlab page](https://docs.gitlab.com/ee/user/group/settings/group_access_tokens.html). - -Once you've generated a token, copy it and replace -the value of `TOKEN` with your token for the gitlab group, can be found. - Replace the default values the appropriate values for your setup. -**NOTE**: - -1. When \__MODE=local_, only _LOCAL_PATH_ is used. - Other environment variables are unused. -1. When _MODE=gitlab_, _GITLAB_URL, TOKEN_, - and _GITLAB_GROUP_ are used; _LOCAL_PATH_ is unused. - ## :rocket: Use Display help. diff --git a/docs/admin/servers/lib/file-system-layout.png b/docs/admin/servers/lib/file-system-layout.png old mode 100644 new mode 100755 index c1171ff7d..6acc276bc Binary files a/docs/admin/servers/lib/file-system-layout.png and b/docs/admin/servers/lib/file-system-layout.png differ diff --git a/docs/admin/vagrant/basebox.png b/docs/admin/vagrant/basebox.png old mode 100644 new mode 100755 index ffb13ae3e..a2bd04ddf Binary files a/docs/admin/vagrant/basebox.png and b/docs/admin/vagrant/basebox.png differ diff --git a/docs/admin/vagrant/single-machine.png b/docs/admin/vagrant/single-machine.png old mode 100644 new mode 100755 index 1c1f3ba94..9a04882c4 Binary files a/docs/admin/vagrant/single-machine.png and b/docs/admin/vagrant/single-machine.png differ diff --git a/docs/admin/vagrant/two-machine-use-legend.png b/docs/admin/vagrant/two-machine-use-legend.png old mode 100644 new mode 100755 index 315c90424..3a4323659 Binary files a/docs/admin/vagrant/two-machine-use-legend.png and b/docs/admin/vagrant/two-machine-use-legend.png differ diff --git a/docs/admin/vagrant/two-machine.png b/docs/admin/vagrant/two-machine.png old mode 100644 new mode 100755 index 8d3c51f34..407cb99e1 Binary files a/docs/admin/vagrant/two-machine.png and b/docs/admin/vagrant/two-machine.png differ diff --git a/docs/assets/dtaas-logo.png b/docs/assets/dtaas-logo.png new file mode 100755 index 000000000..261e557df Binary files /dev/null and b/docs/assets/dtaas-logo.png differ diff --git a/docs/assets/dtaas-logo.svg b/docs/assets/dtaas-logo.svg new file mode 100755 index 000000000..ae2a622a6 --- /dev/null +++ b/docs/assets/dtaas-logo.svg @@ -0,0 +1,473 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DTaaS + + + +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg width="64pt" height="64pt" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg"> +<g id="#00000028"> +<path fill="#000000" opacity="0.16" d=" M 4.23 2.18 C 21.14 1.74 38.08 2.08 55.01 2.02 C 57.74 0.52 62.30 2.76 61.99 5.98 C 62.01 22.65 62.08 39.33 61.94 56.01 C 62.81 59.04 61.25 61.53 59.99 64.00 L 4.02 64.00 C 3.27 62.39 2.06 60.86 2.02 59.02 C 1.94 42.34 1.98 25.67 2.02 8.99 C 0.15 5.75 2.43 3.91 4.23 2.18 M 5.00 3.02 L 5.01 4.00 C 4.76 4.25 4.25 4.75 4.00 5.01 L 3.02 5.00 C 2.97 23.32 3.00 41.63 3.00 59.95 L 3.95 60.11 C 3.97 60.58 4.01 61.50 4.03 61.96 L 5.00 62.00 L 5.02 62.95 C 23.01 63.09 41.01 62.98 59.00 62.98 L 58.99 62.00 C 59.26 61.52 59.79 60.57 60.06 60.09 L 61.00 59.97 C 61.00 41.65 61.03 23.32 60.98 5.00 L 60.00 5.01 C 59.75 4.76 59.25 4.25 59.00 4.00 L 58.98 3.05 C 40.99 2.91 22.99 3.02 5.00 3.02 Z" /> +</g> +<g id="#0000005d"> +<path fill="#000000" opacity="0.36" d=" M 5.00 3.02 C 22.99 3.02 40.99 2.91 58.98 3.05 L 59.00 4.00 C 41.00 4.00 23.00 4.01 5.01 4.00 L 5.00 3.02 Z" /> +</g> +<g id="#fcfdfdff"> +<path fill="#fcfdfd" opacity="1.00" d=" M 4.00 5.01 C 4.25 4.75 4.76 4.25 5.01 4.00 C 23.00 4.01 41.00 4.00 59.00 4.00 C 59.25 4.25 59.75 4.76 60.00 5.01 C 59.97 15.00 60.04 25.00 59.99 35.00 C 59.25 35.00 57.79 35.01 57.06 35.01 C 57.04 34.25 57.01 32.72 56.99 31.96 C 56.99 31.26 56.99 29.86 56.99 29.16 C 57.00 28.35 57.01 26.73 57.01 25.92 C 57.02 24.61 57.02 23.31 56.99 22.01 C 56.99 18.94 56.98 15.88 56.93 12.81 C 58.34 9.16 57.79 7.22 55.28 6.96 C 53.42 6.99 51.57 7.09 49.72 7.17 L 48.85 7.14 C 45.49 7.02 42.12 7.02 38.76 7.15 C 37.08 7.11 33.71 7.05 32.03 7.01 C 28.61 6.98 25.20 7.03 21.79 7.17 C 20.48 7.10 19.17 7.05 17.86 7.02 C 14.86 6.95 11.87 6.87 8.87 6.96 C 8.41 6.99 7.50 7.05 7.04 7.08 C 6.97 11.00 6.98 14.91 7.08 18.83 C 7.06 20.56 7.01 22.28 6.97 24.01 C 6.23 24.01 4.75 24.00 4.01 24.00 C 3.98 17.67 4.01 11.34 4.00 5.01 Z" /> +</g> +<g id="#00000076"> +<path fill="#000000" opacity="0.46" d=" M 3.02 5.00 L 4.00 5.01 C 4.01 11.34 3.98 17.67 4.01 24.00 C 3.98 30.00 3.97 36.00 4.02 42.00 C 3.98 48.03 4.00 54.07 3.95 60.11 L 3.00 59.95 C 3.00 41.63 2.97 23.32 3.02 5.00 Z" /> +<path fill="#000000" opacity="0.46" d=" M 60.00 5.01 L 60.98 5.00 C 61.03 23.32 61.00 41.65 61.00 59.97 L 60.06 60.09 C 59.97 51.73 60.04 43.36 59.99 35.00 C 60.04 25.00 59.97 15.00 60.00 5.01 Z" /> +</g> +<g id="#8b8b8cff"> +<path fill="#8b8b8c" opacity="1.00" d=" M 7.04 7.08 C 7.50 7.05 8.41 6.99 8.87 6.96 C 8.50 10.86 6.24 16.33 9.80 19.31 C 9.84 20.01 9.92 21.41 9.96 22.11 C 8.15 21.96 7.82 20.14 7.08 18.83 C 6.98 14.91 6.97 11.00 7.04 7.08 Z" /> +</g> +<g id="#b4b4b4ff"> +<path fill="#b4b4b4" opacity="1.00" d=" M 8.87 6.96 C 11.87 6.87 14.86 6.95 17.86 7.02 L 18.35 7.81 C 15.34 8.35 11.35 6.74 9.11 9.24 C 9.08 10.70 9.04 13.61 9.01 15.07 C 13.24 14.97 18.19 12.59 18.35 7.81 C 19.57 8.06 21.05 8.10 21.09 9.70 C 20.35 10.74 19.66 11.81 18.98 12.89 C 16.28 14.55 13.41 15.99 11.05 18.13 C 10.74 18.43 10.11 19.02 9.80 19.31 C 6.24 16.33 8.50 10.86 8.87 6.96 Z" /> +</g> +<g id="#999c9dff"> +<path fill="#999c9d" opacity="1.00" d=" M 17.86 7.02 C 19.17 7.05 20.48 7.10 21.79 7.17 C 24.59 7.59 27.40 8.00 30.22 8.33 C 28.84 8.65 27.43 8.85 26.03 9.05 C 25.56 9.12 24.63 9.26 24.17 9.33 C 23.61 9.45 22.50 9.70 21.94 9.82 L 21.09 9.70 C 21.05 8.10 19.57 8.06 18.35 7.81 L 17.86 7.02 Z" /> +</g> +<g id="#676667ff"> +<path fill="#676667" opacity="1.00" d=" M 21.79 7.17 C 25.20 7.03 28.61 6.98 32.03 7.01 L 32.00 7.98 C 31.55 8.07 30.66 8.25 30.22 8.33 C 27.40 8.00 24.59 7.59 21.79 7.17 Z" /> +</g> +<g id="#abacabff"> +<path fill="#abacab" opacity="1.00" d=" M 32.03 7.01 C 33.71 7.05 37.08 7.11 38.76 7.15 C 40.16 7.94 41.58 8.70 43.07 9.30 C 42.28 9.79 41.52 10.31 40.78 10.87 C 39.19 11.66 38.78 13.22 38.97 14.88 C 38.94 16.21 38.98 17.53 39.08 18.85 C 40.43 19.02 41.79 19.17 43.14 19.30 L 43.28 20.26 L 42.92 20.91 C 42.67 21.12 42.18 21.55 41.93 21.76 C 40.59 21.80 39.25 21.82 37.91 21.82 C 37.92 21.14 37.94 19.79 37.95 19.11 C 37.97 17.58 38.00 14.52 38.02 12.99 C 35.03 15.09 31.87 16.91 28.83 18.92 C 27.74 19.53 27.19 20.71 26.87 21.86 C 25.24 21.91 23.62 21.92 21.99 21.92 C 21.99 17.89 21.97 13.86 21.94 9.82 C 22.50 9.70 23.61 9.45 24.17 9.33 C 23.27 12.13 22.40 15.24 24.20 17.91 C 29.48 18.27 34.35 14.52 37.75 10.74 C 39.30 7.52 36.20 7.88 33.90 8.00 C 33.43 7.99 32.48 7.99 32.00 7.98 L 32.03 7.01 Z" /> +</g> +<g id="#7c7c7cff"> +<path fill="#7c7c7c" opacity="1.00" d=" M 38.76 7.15 C 42.12 7.02 45.49 7.02 48.85 7.14 L 49.12 7.95 C 47.12 8.46 45.11 8.94 43.07 9.30 C 41.58 8.70 40.16 7.94 38.76 7.15 Z" /> +</g> +<g id="#b9b9b9ff"> +<path fill="#b9b9b9" opacity="1.00" d=" M 48.85 7.14 L 49.72 7.17 C 50.89 7.53 52.06 7.86 53.24 8.17 C 52.37 9.92 51.17 11.46 50.00 13.02 C 47.64 15.03 45.38 17.14 43.14 19.30 C 41.79 19.17 40.43 19.02 39.08 18.85 C 38.98 17.53 38.94 16.21 38.97 14.88 C 40.10 17.61 43.69 17.69 45.24 15.31 C 46.96 13.25 51.19 11.05 49.12 7.95 L 48.85 7.14 Z" /> +</g> +<g id="#898889ff"> +<path fill="#898889" opacity="1.00" d=" M 49.72 7.17 C 51.57 7.09 53.42 6.99 55.28 6.96 C 55.50 8.33 55.73 9.69 55.81 11.08 C 55.00 11.49 54.17 11.87 53.34 12.24 C 53.26 11.02 54.99 8.46 53.24 8.17 C 52.06 7.86 50.89 7.53 49.72 7.17 Z" /> +</g> +<g id="#495d71ff"> +<path fill="#495d71" opacity="1.00" d=" M 55.28 6.96 C 57.79 7.22 58.34 9.16 56.93 12.81 L 56.18 12.71 C 56.09 12.30 55.91 11.48 55.81 11.08 C 55.73 9.69 55.50 8.33 55.28 6.96 Z" /> +</g> +<g id="#dddedeff"> +<path fill="#dddede" opacity="1.00" d=" M 9.11 9.24 C 11.35 6.74 15.34 8.35 18.35 7.81 C 18.19 12.59 13.24 14.97 9.01 15.07 C 9.04 13.61 9.08 10.70 9.11 9.24 Z" /> +</g> +<g id="#e6e7e7ff"> +<path fill="#e6e7e7" opacity="1.00" d=" M 30.22 8.33 C 30.66 8.25 31.55 8.07 32.00 7.98 C 32.48 7.99 33.43 7.99 33.90 8.00 C 38.46 10.05 33.28 13.58 30.68 14.72 C 24.86 17.73 24.37 12.22 26.03 9.05 C 27.43 8.85 28.84 8.65 30.22 8.33 Z" /> +</g> +<g id="#cacbcbff"> +<path fill="#cacbcb" opacity="1.00" d=" M 33.90 8.00 C 36.20 7.88 39.30 7.52 37.75 10.74 C 34.35 14.52 29.48 18.27 24.20 17.91 C 22.40 15.24 23.27 12.13 24.17 9.33 C 24.63 9.26 25.56 9.12 26.03 9.05 C 24.37 12.22 24.86 17.73 30.68 14.72 C 33.28 13.58 38.46 10.05 33.90 8.00 Z" /> +</g> +<g id="#ddddddff"> +<path fill="#dddddd" opacity="1.00" d=" M 43.07 9.30 C 45.11 8.94 47.12 8.46 49.12 7.95 C 51.19 11.05 46.96 13.25 45.24 15.31 C 41.89 15.74 40.20 14.29 40.78 10.87 C 41.52 10.31 42.28 9.79 43.07 9.30 Z" /> +</g> +<g id="#9a9ea0ff"> +<path fill="#9a9ea0" opacity="1.00" d=" M 53.24 8.17 C 54.99 8.46 53.26 11.02 53.34 12.24 C 52.27 12.66 51.16 12.92 50.00 13.02 C 51.17 11.46 52.37 9.92 53.24 8.17 Z" /> +</g> +<g id="#72a0c4ff"> +<path fill="#72a0c4" opacity="1.00" d=" M 18.98 12.89 C 19.66 11.81 20.35 10.74 21.09 9.70 L 21.94 9.82 C 21.97 13.86 21.99 17.89 21.99 21.92 C 21.70 22.17 21.11 22.68 20.82 22.93 L 20.10 22.79 C 17.42 22.30 14.31 21.17 11.85 22.85 C 11.37 22.67 10.43 22.30 9.96 22.11 C 9.92 21.41 9.84 20.01 9.80 19.31 C 10.11 19.02 10.74 18.43 11.05 18.13 C 14.13 17.17 20.04 17.78 18.98 12.89 Z" /> +</g> +<g id="#cccccdff"> +<path fill="#cccccd" opacity="1.00" d=" M 38.97 14.88 C 38.78 13.22 39.19 11.66 40.78 10.87 C 40.20 14.29 41.89 15.74 45.24 15.31 C 43.69 17.69 40.10 17.61 38.97 14.88 Z" /> +</g> +<g id="#6b9cc4ff"> +<path fill="#6b9cc4" opacity="1.00" d=" M 53.34 12.24 C 54.17 11.87 55.00 11.49 55.81 11.08 C 55.91 11.48 56.09 12.30 56.18 12.71 C 53.48 15.05 54.12 18.67 53.94 21.91 C 53.48 22.19 52.55 22.75 52.09 23.04 C 50.56 19.42 46.03 21.43 42.92 20.91 L 43.28 20.26 C 45.83 18.20 50.50 17.02 50.00 13.02 C 51.16 12.92 52.27 12.66 53.34 12.24 Z" /> +</g> +<g id="#8f9294ff"> +<path fill="#8f9294" opacity="1.00" d=" M 11.05 18.13 C 13.41 15.99 16.28 14.55 18.98 12.89 C 20.04 17.78 14.13 17.17 11.05 18.13 Z" /> +</g> +<g id="#8d979eff"> +<path fill="#8d979e" opacity="1.00" d=" M 28.83 18.92 C 31.87 16.91 35.03 15.09 38.02 12.99 C 38.00 14.52 37.97 17.58 37.95 19.11 C 36.23 15.41 31.91 19.97 28.83 18.92 Z" /> +</g> +<g id="#93989cff"> +<path fill="#93989c" opacity="1.00" d=" M 43.14 19.30 C 45.38 17.14 47.64 15.03 50.00 13.02 C 50.50 17.02 45.83 18.20 43.28 20.26 L 43.14 19.30 Z" /> +</g> +<g id="#8b8c8dff"> +<path fill="#8b8c8d" opacity="1.00" d=" M 53.94 21.91 C 54.12 18.67 53.48 15.05 56.18 12.71 L 56.93 12.81 C 56.98 15.88 56.99 18.94 56.99 22.01 C 56.23 21.98 54.70 21.93 53.94 21.91 Z" /> +</g> +<g id="#82afccff"> +<path fill="#82afcc" opacity="1.00" d=" M 28.83 18.92 C 31.91 19.97 36.23 15.41 37.95 19.11 C 37.94 19.79 37.92 21.14 37.91 21.82 C 36.33 22.77 35.96 24.42 35.92 26.15 C 33.32 26.60 30.57 27.30 28.09 26.15 C 27.80 24.69 27.41 23.25 26.87 21.86 C 27.19 20.71 27.74 19.53 28.83 18.92 Z" /> +</g> +<g id="#7d4c4aff"> +<path fill="#7d4c4a" opacity="1.00" d=" M 7.08 18.83 C 7.82 20.14 8.15 21.96 9.96 22.11 C 10.43 22.30 11.37 22.67 11.85 22.85 C 11.73 23.99 11.58 25.12 11.39 26.25 C 10.00 25.30 8.47 24.92 6.99 25.92 C 6.98 25.44 6.98 24.49 6.97 24.01 C 7.01 22.28 7.06 20.56 7.08 18.83 Z" /> +</g> +<g id="#87b2ccff"> +<path fill="#87b2cc" opacity="1.00" d=" M 41.93 21.76 C 42.18 21.55 42.67 21.12 42.92 20.91 C 46.03 21.43 50.56 19.42 52.09 23.04 C 52.24 24.11 52.42 25.17 52.64 26.23 C 52.65 26.71 52.66 27.65 52.67 28.12 C 52.45 28.33 52.02 28.76 51.81 28.97 L 51.10 28.84 C 48.77 28.46 46.43 28.14 44.08 27.89 C 43.77 26.28 44.54 24.10 43.24 22.89 C 42.92 22.61 42.26 22.04 41.93 21.76 Z" /> +</g> +<g id="#8bb5ccff"> +<path fill="#8bb5cc" opacity="1.00" d=" M 11.85 22.85 C 14.31 21.17 17.42 22.30 20.10 22.79 C 20.05 24.85 20.02 26.91 20.01 28.97 C 17.68 29.13 15.34 29.80 13.00 29.35 L 12.37 28.95 C 12.09 28.76 11.55 28.37 11.28 28.18 C 11.31 27.70 11.36 26.73 11.39 26.25 C 11.58 25.12 11.73 23.99 11.85 22.85 Z" /> +</g> +<g id="#90524fff"> +<path fill="#90524f" opacity="1.00" d=" M 20.82 22.93 C 21.11 22.68 21.70 22.17 21.99 21.92 C 23.62 21.92 25.24 21.91 26.87 21.86 C 27.41 23.25 27.80 24.69 28.09 26.15 C 27.60 26.06 26.62 25.88 26.13 25.79 C 24.61 25.12 23.08 25.32 21.67 26.17 C 21.36 25.09 21.08 24.02 20.82 22.93 Z" /> +<path fill="#90524f" opacity="1.00" d=" M 35.92 26.15 C 35.96 24.42 36.33 22.77 37.91 21.82 C 39.25 21.82 40.59 21.80 41.93 21.76 C 42.26 22.04 42.92 22.61 43.24 22.89 C 42.98 23.99 42.68 25.09 42.36 26.18 C 40.93 25.30 39.37 25.11 37.84 25.85 C 37.36 25.92 36.40 26.07 35.92 26.15 Z" /> +</g> +<g id="#804542ff"> +<path fill="#804542" opacity="1.00" d=" M 52.09 23.04 C 52.55 22.75 53.48 22.19 53.94 21.91 C 54.70 21.93 56.23 21.98 56.99 22.01 C 57.02 23.31 57.02 24.61 57.01 25.92 C 55.55 24.94 54.02 25.28 52.64 26.23 C 52.42 25.17 52.24 24.11 52.09 23.04 Z" /> +</g> +<g id="#899199ff"> +<path fill="#899199" opacity="1.00" d=" M 20.10 22.79 L 20.82 22.93 C 21.08 24.02 21.36 25.09 21.67 26.17 C 21.76 26.88 21.95 28.29 22.05 29.00 L 21.01 29.04 L 20.01 28.97 C 20.02 26.91 20.05 24.85 20.10 22.79 Z" /> +<path fill="#899199" opacity="1.00" d=" M 43.24 22.89 C 44.54 24.10 43.77 26.28 44.08 27.89 L 44.04 28.97 C 43.46 28.91 42.30 28.78 41.71 28.72 C 41.88 28.08 42.20 26.82 42.36 26.18 C 42.68 25.09 42.98 23.99 43.24 22.89 Z" /> +</g> +<g id="#f4f4f4ff"> +<path fill="#f4f4f4" opacity="1.00" d=" M 4.01 24.00 C 4.75 24.00 6.23 24.01 6.97 24.01 C 6.98 24.49 6.98 25.44 6.99 25.92 C 6.99 26.73 7.00 28.35 7.01 29.16 C 7.01 29.86 7.01 31.26 7.01 31.96 C 7.01 32.72 7.01 34.24 7.01 35.00 C 7.00 35.75 6.99 37.26 6.99 38.01 C 6.98 38.78 6.97 40.32 6.96 41.08 L 6.94 42.02 C 6.21 42.01 4.75 42.00 4.02 42.00 C 3.97 36.00 3.98 30.00 4.01 24.00 Z" /> +</g> +<g id="#cfbfbdff"> +<path fill="#cfbfbd" opacity="1.00" d=" M 6.99 25.92 C 8.47 24.92 10.00 25.30 11.39 26.25 C 11.36 26.73 11.31 27.70 11.28 28.18 C 9.90 28.68 8.45 28.92 7.01 29.16 C 7.00 28.35 6.99 26.73 6.99 25.92 Z" /> +<path fill="#cfbfbd" opacity="1.00" d=" M 52.64 26.23 C 54.02 25.28 55.55 24.94 57.01 25.92 C 57.01 26.73 57.00 28.35 56.99 29.16 C 55.52 28.93 54.04 28.72 52.67 28.12 C 52.66 27.65 52.65 26.71 52.64 26.23 Z" /> +</g> +<g id="#ebdcdbff"> +<path fill="#ebdcdb" opacity="1.00" d=" M 21.67 26.17 C 23.08 25.32 24.61 25.12 26.13 25.79 C 26.07 26.52 25.96 27.98 25.91 28.70 C 24.63 28.88 23.34 28.98 22.05 29.00 C 21.95 28.29 21.76 26.88 21.67 26.17 Z" /> +</g> +<g id="#f1c4c2ff"> +<path fill="#f1c4c2" opacity="1.00" d=" M 37.84 25.85 C 39.37 25.11 40.93 25.30 42.36 26.18 C 42.20 26.82 41.88 28.08 41.71 28.72 C 41.41 29.76 41.13 30.82 40.90 31.88 C 40.45 31.91 39.54 31.97 39.09 32.00 C 38.87 30.89 38.61 29.79 38.32 28.69 C 38.20 27.98 37.96 26.56 37.84 25.85 Z" /> +</g> +<g id="#a8c1c9ff"> +<path fill="#a8c1c9" opacity="1.00" d=" M 26.13 25.79 C 26.62 25.88 27.60 26.06 28.09 26.15 C 30.57 27.30 33.32 26.60 35.92 26.15 C 36.40 26.07 37.36 25.92 37.84 25.85 C 37.96 26.56 38.20 27.98 38.32 28.69 C 35.06 26.16 34.91 32.92 38.05 32.11 C 38.03 32.81 38.00 34.22 37.99 34.92 L 37.00 34.99 C 34.03 33.83 34.14 39.72 36.91 39.17 C 36.89 39.63 36.86 40.54 36.85 41.00 L 35.96 41.13 C 34.95 41.68 34.53 42.79 34.71 44.47 C 33.24 44.72 31.75 45.01 30.25 44.92 C 29.25 43.54 28.88 41.63 27.26 40.80 C 27.22 40.37 27.14 39.52 27.10 39.10 C 29.73 39.46 28.92 36.67 29.05 35.01 C 29.02 33.62 28.91 32.22 28.53 30.88 C 28.39 29.10 27.82 27.84 25.91 28.70 C 25.96 27.98 26.07 26.52 26.13 25.79 Z" /> +</g> +<g id="#c45551ff"> +<path fill="#c45551" opacity="1.00" d=" M 11.28 28.18 C 11.55 28.37 12.09 28.76 12.37 28.95 C 12.02 30.06 11.65 31.16 11.25 32.25 C 9.84 32.14 8.42 32.04 7.01 31.96 C 7.01 31.26 7.01 29.86 7.01 29.16 C 8.45 28.92 9.90 28.68 11.28 28.18 Z" /> +</g> +<g id="#d35e59ff"> +<path fill="#d35e59" opacity="1.00" d=" M 25.91 28.70 C 27.82 27.84 28.39 29.10 28.53 30.88 C 27.92 31.19 26.68 31.81 26.06 32.12 C 24.38 32.06 22.70 32.02 21.03 31.98 C 21.02 31.25 21.02 29.78 21.01 29.04 L 22.05 29.00 C 23.34 28.98 24.63 28.88 25.91 28.70 Z" /> +</g> +<g id="#b84943ff"> +<path fill="#b84943" opacity="1.00" d=" M 38.05 32.11 C 34.91 32.92 35.06 26.16 38.32 28.69 C 38.61 29.79 38.87 30.89 39.09 32.00 L 38.05 32.11 Z" /> +</g> +<g id="#a9c4ceff"> +<path fill="#a9c4ce" opacity="1.00" d=" M 44.08 27.89 C 46.43 28.14 48.77 28.46 51.10 28.84 C 51.04 30.90 51.00 32.95 51.03 35.00 C 51.04 36.77 51.06 40.30 51.07 42.06 L 50.71 42.87 C 50.13 45.61 47.14 45.04 45.00 45.04 C 45.02 43.67 45.02 42.29 45.02 40.92 C 44.79 39.46 44.34 36.55 44.11 35.09 C 43.60 35.05 42.59 34.96 42.08 34.92 C 42.01 34.23 41.88 32.86 41.81 32.17 C 44.62 33.98 44.04 30.97 44.04 28.97 L 44.08 27.89 Z" /> +</g> +<g id="#c4524dff"> +<path fill="#c4524d" opacity="1.00" d=" M 51.81 28.97 C 52.02 28.76 52.45 28.33 52.67 28.12 C 54.04 28.72 55.52 28.93 56.99 29.16 C 56.99 29.86 56.99 31.26 56.99 31.96 C 55.57 32.04 54.15 32.14 52.73 32.25 C 52.39 31.16 52.08 30.07 51.81 28.97 Z" /> +</g> +<g id="#91999eff"> +<path fill="#91999e" opacity="1.00" d=" M 12.37 28.95 L 13.00 29.35 C 13.00 31.24 12.97 33.12 12.95 35.01 C 12.44 35.00 11.42 35.00 10.91 34.99 C 11.00 34.31 11.17 32.93 11.25 32.25 C 11.65 31.16 12.02 30.06 12.37 28.95 Z" /> +</g> +<g id="#aac6cfff"> +<path fill="#aac6cf" opacity="1.00" d=" M 13.00 29.35 C 15.34 29.80 17.68 29.13 20.01 28.97 C 19.85 33.35 19.44 37.72 19.10 42.08 C 19.06 42.82 18.98 44.29 18.94 45.02 C 17.35 45.08 15.75 45.07 14.16 44.87 C 12.76 41.79 13.17 38.31 12.95 35.01 C 12.97 33.12 13.00 31.24 13.00 29.35 Z" /> +</g> +<g id="#8f6561ff"> +<path fill="#8f6561" opacity="1.00" d=" M 20.01 28.97 L 21.01 29.04 C 21.02 29.78 21.02 31.25 21.03 31.98 C 21.02 32.74 21.02 34.26 21.02 35.02 C 21.00 36.30 20.97 37.58 20.94 38.87 C 20.75 39.40 20.36 40.47 20.16 41.00 L 19.89 41.71 L 19.10 42.08 C 19.44 37.72 19.85 33.35 20.01 28.97 Z" /> +</g> +<g id="#b3504aff"> +<path fill="#b3504a" opacity="1.00" d=" M 40.90 31.88 C 41.13 30.82 41.41 29.76 41.71 28.72 C 42.30 28.78 43.46 28.91 44.04 28.97 C 44.04 30.97 44.62 33.98 41.81 32.17 L 40.90 31.88 Z" /> +</g> +<g id="#90989dff"> +<path fill="#90989d" opacity="1.00" d=" M 51.10 28.84 L 51.81 28.97 C 52.08 30.07 52.39 31.16 52.73 32.25 C 52.81 32.93 52.99 34.30 53.07 34.99 C 52.56 34.99 51.54 35.00 51.03 35.00 C 51.00 32.95 51.04 30.90 51.10 28.84 Z" /> +</g> +<g id="#9ca6aaff"> +<path fill="#9ca6aa" opacity="1.00" d=" M 28.53 30.88 C 28.91 32.22 29.02 33.62 29.05 35.01 C 28.57 34.99 27.60 34.95 27.12 34.94 C 26.78 33.99 26.42 33.05 26.06 32.12 C 26.68 31.81 27.92 31.19 28.53 30.88 Z" /> +</g> +<g id="#dad9d9ff"> +<path fill="#dad9d9" opacity="1.00" d=" M 7.01 31.96 C 8.42 32.04 9.84 32.14 11.25 32.25 C 11.17 32.93 11.00 34.31 10.91 34.99 C 9.61 35.00 8.31 35.00 7.01 35.00 C 7.01 34.24 7.01 32.72 7.01 31.96 Z" /> +</g> +<g id="#e8e7e7ff"> +<path fill="#e8e7e7" opacity="1.00" d=" M 21.03 31.98 C 22.70 32.02 24.38 32.06 26.06 32.12 C 26.42 33.05 26.78 33.99 27.12 34.94 C 25.08 34.97 23.05 35.00 21.02 35.02 C 21.02 34.26 21.02 32.74 21.03 31.98 Z" /> +</g> +<g id="#f5f4f4ff"> +<path fill="#f5f4f4" opacity="1.00" d=" M 38.05 32.11 L 39.09 32.00 C 39.54 31.97 40.45 31.91 40.90 31.88 L 41.81 32.17 C 41.88 32.86 42.01 34.23 42.08 34.92 C 40.71 34.92 39.35 34.92 37.99 34.92 C 38.00 34.22 38.03 32.81 38.05 32.11 Z" /> +</g> +<g id="#dbd9d9ff"> +<path fill="#dbd9d9" opacity="1.00" d=" M 52.73 32.25 C 54.15 32.14 55.57 32.04 56.99 31.96 C 57.01 32.72 57.04 34.25 57.06 35.01 C 55.73 35.00 54.40 35.00 53.07 34.99 C 52.99 34.30 52.81 32.93 52.73 32.25 Z" /> +</g> +<g id="#e56661ff"> +<path fill="#e56661" opacity="1.00" d=" M 7.01 35.00 C 8.31 35.00 9.61 35.00 10.91 34.99 C 10.96 35.73 11.06 37.19 11.11 37.93 C 9.74 37.96 8.36 37.99 6.99 38.01 C 6.99 37.26 7.00 35.75 7.01 35.00 Z" /> +</g> +<g id="#915e45ff"> +<path fill="#915e45" opacity="1.00" d=" M 10.91 34.99 C 11.42 35.00 12.44 35.00 12.95 35.01 C 13.17 38.31 12.76 41.79 14.16 44.87 C 15.75 45.07 17.35 45.08 18.94 45.02 C 20.39 44.98 21.83 44.79 23.24 44.48 C 24.88 44.02 27.57 44.47 27.09 41.93 L 27.26 40.80 C 28.88 41.63 29.25 43.54 30.25 44.92 C 31.75 45.01 33.24 44.72 34.71 44.47 C 35.94 44.68 37.20 44.72 38.38 44.25 C 39.45 44.21 40.52 44.19 41.60 44.20 C 42.70 44.61 43.84 44.89 45.00 45.04 C 47.14 45.04 50.13 45.61 50.71 42.87 C 50.42 45.02 52.74 45.63 54.15 44.44 C 54.59 44.32 55.47 44.07 55.91 43.95 C 55.83 46.98 55.84 50.04 55.17 53.01 L 54.31 53.32 C 53.64 51.50 55.24 47.15 52.04 48.00 C 50.07 47.76 51.31 50.97 50.75 52.16 C 50.04 51.28 49.31 50.41 48.54 49.58 C 48.02 48.04 46.48 47.95 45.10 47.91 C 45.09 49.43 45.08 52.47 45.07 53.99 C 43.24 53.56 44.34 50.55 42.66 49.57 C 41.84 47.43 37.15 47.03 37.89 50.11 C 34.04 51.23 29.96 51.23 26.11 50.11 C 26.85 47.03 22.16 47.43 21.34 49.57 C 19.66 50.55 20.76 53.56 18.93 53.99 C 18.92 52.47 18.91 49.43 18.90 47.91 C 17.52 47.95 15.98 48.04 15.46 49.58 C 14.69 50.41 13.96 51.28 13.25 52.16 C 12.68 50.97 13.93 47.76 11.96 48.00 C 8.76 47.15 10.36 51.49 9.71 53.31 L 8.87 52.99 C 8.39 50.08 8.19 47.12 7.96 44.18 C 9.86 44.18 12.39 43.54 12.11 41.11 C 11.83 40.03 11.50 38.97 11.11 37.93 C 11.06 37.19 10.96 35.73 10.91 34.99 Z" /> +</g> +<g id="#f1706bff"> +<path fill="#f1706b" opacity="1.00" d=" M 21.02 35.02 C 23.05 35.00 25.08 34.97 27.12 34.94 C 27.09 35.70 27.02 37.23 26.99 37.99 C 24.95 38.01 22.86 38.09 20.94 38.87 C 20.97 37.58 21.00 36.30 21.02 35.02 Z" /> +</g> +<g id="#9e524aff"> +<path fill="#9e524a" opacity="1.00" d=" M 27.12 34.94 C 27.60 34.95 28.57 34.99 29.05 35.01 C 28.92 36.67 29.73 39.46 27.10 39.10 L 26.99 37.99 C 27.02 37.23 27.09 35.70 27.12 34.94 Z" /> +</g> +<g id="#9c5149ff"> +<path fill="#9c5149" opacity="1.00" d=" M 36.91 39.17 C 34.14 39.72 34.03 33.83 37.00 34.99 C 36.99 35.76 36.98 37.30 36.97 38.07 L 36.91 39.17 Z" /> +</g> +<g id="#e4635dff"> +<path fill="#e4635d" opacity="1.00" d=" M 37.00 34.99 L 37.99 34.92 C 39.35 34.92 40.71 34.92 42.08 34.92 C 42.59 34.96 43.60 35.05 44.11 35.09 C 44.00 36.60 44.11 38.43 42.02 38.08 C 40.33 38.05 38.65 38.05 36.97 38.07 C 36.98 37.30 36.99 35.76 37.00 34.99 Z" /> +</g> +<g id="#9f9291ff"> +<path fill="#9f9291" opacity="1.00" d=" M 44.11 35.09 C 44.34 36.55 44.79 39.46 45.02 40.92 L 44.17 41.06 L 43.28 41.18 C 42.88 40.14 42.46 39.10 42.02 38.08 C 44.11 38.43 44.00 36.60 44.11 35.09 Z" /> +</g> +<g id="#934f4aff"> +<path fill="#934f4a" opacity="1.00" d=" M 51.03 35.00 C 51.54 35.00 52.56 34.99 53.07 34.99 C 53.04 35.71 52.98 37.14 52.95 37.86 C 52.63 38.90 52.33 39.95 52.05 41.01 L 51.84 41.77 L 51.07 42.06 C 51.06 40.30 51.04 36.77 51.03 35.00 Z" /> +</g> +<g id="#e46964ff"> +<path fill="#e46964" opacity="1.00" d=" M 53.07 34.99 C 54.40 35.00 55.73 35.00 57.06 35.01 C 57.05 36.26 57.01 37.50 56.95 38.74 C 55.61 38.46 54.29 38.14 52.95 37.86 C 52.98 37.14 53.04 35.71 53.07 34.99 Z" /> +</g> +<g id="#ecebebff"> +<path fill="#ecebeb" opacity="1.00" d=" M 57.06 35.01 C 57.79 35.01 59.25 35.00 59.99 35.00 C 60.04 43.36 59.97 51.73 60.06 60.09 L 59.23 60.32 C 41.10 59.79 22.95 59.87 4.82 60.21 L 3.95 60.11 C 4.00 54.07 3.98 48.03 4.02 42.00 C 4.75 42.00 6.21 42.01 6.94 42.02 C 6.96 42.52 6.99 43.51 7.00 44.00 C 7.02 46.59 7.08 49.18 7.16 51.77 C 7.10 53.50 7.00 55.23 7.07 56.96 C 23.69 57.05 40.31 57.04 56.94 56.96 C 56.99 55.23 56.89 53.50 56.83 51.77 C 56.91 48.79 57.03 45.81 56.96 42.83 C 57.35 40.29 53.56 41.97 52.05 41.01 C 52.33 39.95 52.63 38.90 52.95 37.86 C 54.29 38.14 55.61 38.46 56.95 38.74 C 57.01 37.50 57.05 36.26 57.06 35.01 Z" /> +</g> +<g id="#e3cfcfff"> +<path fill="#e3cfcf" opacity="1.00" d=" M 6.99 38.01 C 8.36 37.99 9.74 37.96 11.11 37.93 C 11.50 38.97 11.83 40.03 12.11 41.11 C 10.45 41.96 8.60 42.04 6.96 41.08 C 6.97 40.32 6.98 38.78 6.99 38.01 Z" /> +</g> +<g id="#f2dddcff"> +<path fill="#f2dddc" opacity="1.00" d=" M 20.94 38.87 C 22.86 38.09 24.95 38.01 26.99 37.99 L 27.10 39.10 C 27.14 39.52 27.22 40.37 27.26 40.80 L 27.09 41.93 C 24.74 42.05 22.40 41.73 20.16 41.00 C 20.36 40.47 20.75 39.40 20.94 38.87 Z" /> +</g> +<g id="#f6e2e1ff"> +<path fill="#f6e2e1" opacity="1.00" d=" M 36.97 38.07 C 38.65 38.05 40.33 38.05 42.02 38.08 C 42.46 39.10 42.88 40.14 43.28 41.18 C 41.16 42.00 38.87 42.19 36.85 41.00 C 36.86 40.54 36.89 39.63 36.91 39.17 L 36.97 38.07 Z" /> +</g> +<g id="#cf5650ff"> +<path fill="#cf5650" opacity="1.00" d=" M 6.96 41.08 C 8.60 42.04 10.45 41.96 12.11 41.11 C 12.39 43.54 9.86 44.18 7.96 44.18 L 7.00 44.00 C 6.99 43.51 6.96 42.52 6.94 42.02 L 6.96 41.08 Z" /> +</g> +<g id="#e26560ff"> +<path fill="#e26560" opacity="1.00" d=" M 20.16 41.00 C 22.40 41.73 24.74 42.05 27.09 41.93 C 27.57 44.47 24.88 44.02 23.24 44.48 C 22.11 43.57 21.02 42.62 19.89 41.71 L 20.16 41.00 Z" /> +</g> +<g id="#90271eff"> +<path fill="#90271e" opacity="1.00" d=" M 34.71 44.47 C 34.53 42.79 34.95 41.68 35.96 41.13 C 36.77 42.17 37.58 43.21 38.38 44.25 C 37.20 44.72 35.94 44.68 34.71 44.47 Z" /> +</g> +<g id="#e26a65ff"> +<path fill="#e26a65" opacity="1.00" d=" M 35.96 41.13 L 36.85 41.00 C 38.87 42.19 41.16 42.00 43.28 41.18 L 44.17 41.06 C 43.31 42.11 42.45 43.15 41.60 44.20 C 40.52 44.19 39.45 44.21 38.38 44.25 C 37.58 43.21 36.77 42.17 35.96 41.13 Z" /> +</g> +<g id="#8b2920ff"> +<path fill="#8b2920" opacity="1.00" d=" M 44.17 41.06 L 45.02 40.92 C 45.02 42.29 45.02 43.67 45.00 45.04 C 43.84 44.89 42.70 44.61 41.60 44.20 C 42.45 43.15 43.31 42.11 44.17 41.06 Z" /> +</g> +<g id="#d9605bff"> +<path fill="#d9605b" opacity="1.00" d=" M 52.05 41.01 C 53.56 41.97 57.35 40.29 56.96 42.83 C 56.69 43.11 56.17 43.67 55.91 43.95 C 55.47 44.07 54.59 44.32 54.15 44.44 C 53.49 43.44 52.72 42.55 51.84 41.77 L 52.05 41.01 Z" /> +</g> +<g id="#8a251bff"> +<path fill="#8a251b" opacity="1.00" d=" M 19.10 42.08 L 19.89 41.71 C 21.02 42.62 22.11 43.57 23.24 44.48 C 21.83 44.79 20.39 44.98 18.94 45.02 C 18.98 44.29 19.06 42.82 19.10 42.08 Z" /> +</g> +<g id="#8a1e14ff"> +<path fill="#8a1e14" opacity="1.00" d=" M 51.07 42.06 L 51.84 41.77 C 52.72 42.55 53.49 43.44 54.15 44.44 C 52.74 45.63 50.42 45.02 50.71 42.87 L 51.07 42.06 Z" /> +</g> +<g id="#613b22ff"> +<path fill="#613b22" opacity="1.00" d=" M 55.91 43.95 C 56.17 43.67 56.69 43.11 56.96 42.83 C 57.03 45.81 56.91 48.79 56.83 51.77 C 55.73 54.30 56.39 59.03 50.98 55.99 C 36.76 55.87 22.51 56.33 8.30 55.83 C 7.91 54.48 7.57 53.12 7.16 51.77 C 7.08 49.18 7.02 46.59 7.00 44.00 L 7.96 44.18 C 8.19 47.12 8.39 50.08 8.87 52.99 C 8.96 53.47 9.12 54.42 9.20 54.89 C 24.40 55.09 39.61 55.10 54.81 54.89 C 54.90 54.42 55.08 53.48 55.17 53.01 C 55.84 50.04 55.83 46.98 55.91 43.95 Z" /> +</g> +<g id="#c1c1c1ff"> +<path fill="#c1c1c1" opacity="1.00" d=" M 9.71 53.31 C 10.36 51.49 8.76 47.15 11.96 48.00 C 13.93 47.76 12.68 50.97 13.25 52.16 C 13.42 54.57 11.17 54.04 9.71 53.31 Z" /> +<path fill="#c1c1c1" opacity="1.00" d=" M 50.75 52.16 C 51.31 50.97 50.07 47.76 52.04 48.00 C 55.24 47.15 53.64 51.50 54.31 53.32 C 52.83 54.02 50.58 54.59 50.75 52.16 Z" /> +</g> +<g id="#c0bfbdff"> +<path fill="#c0bfbd" opacity="1.00" d=" M 15.46 49.58 C 15.98 48.04 17.52 47.95 18.90 47.91 C 18.91 49.43 18.92 52.47 18.93 53.99 C 15.61 55.14 15.78 51.95 15.46 49.58 Z" /> +<path fill="#c0bfbd" opacity="1.00" d=" M 45.10 47.91 C 46.48 47.95 48.02 48.04 48.54 49.58 C 48.22 51.95 48.39 55.14 45.07 53.99 C 45.08 52.47 45.09 49.43 45.10 47.91 Z" /> +</g> +<g id="#bab1acff"> +<path fill="#bab1ac" opacity="1.00" d=" M 21.34 49.57 C 22.16 47.43 26.85 47.03 26.11 50.11 C 25.62 51.25 26.93 54.39 24.94 54.01 C 22.24 54.68 21.98 51.35 21.34 49.57 Z" /> +<path fill="#bab1ac" opacity="1.00" d=" M 37.89 50.11 C 37.15 47.03 41.84 47.43 42.66 49.57 C 42.02 51.35 41.76 54.68 39.06 54.01 C 37.07 54.39 38.38 51.25 37.89 50.11 Z" /> +</g> +<g id="#795137ff"> +<path fill="#795137" opacity="1.00" d=" M 13.25 52.16 C 13.96 51.28 14.69 50.41 15.46 49.58 C 15.78 51.95 15.61 55.14 18.93 53.99 C 20.76 53.56 19.66 50.55 21.34 49.57 C 21.98 51.35 22.24 54.68 24.94 54.01 C 26.93 54.39 25.62 51.25 26.11 50.11 C 29.96 51.23 34.04 51.23 37.89 50.11 C 38.38 51.25 37.07 54.39 39.06 54.01 C 41.76 54.68 42.02 51.35 42.66 49.57 C 44.34 50.55 43.24 53.56 45.07 53.99 C 48.39 55.14 48.22 51.95 48.54 49.58 C 49.31 50.41 50.04 51.28 50.75 52.16 C 50.58 54.59 52.83 54.02 54.31 53.32 L 55.17 53.01 C 55.08 53.48 54.90 54.42 54.81 54.89 C 39.61 55.10 24.40 55.09 9.20 54.89 C 9.12 54.42 8.96 53.47 8.87 52.99 L 9.71 53.31 C 11.17 54.04 13.42 54.57 13.25 52.16 Z" /> +</g> +<g id="#391807ff"> +<path fill="#391807" opacity="1.00" d=" M 7.16 51.77 C 7.57 53.12 7.91 54.48 8.30 55.83 C 22.51 56.33 36.76 55.87 50.98 55.99 C 56.39 59.03 55.73 54.30 56.83 51.77 C 56.89 53.50 56.99 55.23 56.94 56.96 C 40.31 57.04 23.69 57.05 7.07 56.96 C 7.00 55.23 7.10 53.50 7.16 51.77 Z" /> +</g> +<g id="#00000081"> +<path fill="#000000" opacity="0.51" d=" M 3.95 60.11 L 4.82 60.21 C 18.13 61.87 31.61 60.61 45.00 61.03 C 49.71 60.71 54.64 61.78 59.23 60.32 L 60.06 60.09 C 59.79 60.57 59.26 61.52 58.99 62.00 C 40.99 62.00 23.00 62.00 5.00 62.00 L 4.03 61.96 C 4.01 61.50 3.97 60.58 3.95 60.11 Z" /> +</g> +<g id="#000000ad"> +<path fill="#000000" opacity="0.68" d=" M 4.82 60.21 C 22.95 59.87 41.10 59.79 59.23 60.32 C 54.64 61.78 49.71 60.71 45.00 61.03 C 31.61 60.61 18.13 61.87 4.82 60.21 Z" /> +</g> +<g id="#00000055"> +<path fill="#000000" opacity="0.33" d=" M 5.00 62.00 C 23.00 62.00 40.99 62.00 58.99 62.00 L 59.00 62.98 C 41.01 62.98 23.01 63.09 5.02 62.95 L 5.00 62.00 Z" /> +</g> +</svg> + diff --git a/docs/bugs.md b/docs/bugs.md index 05cf102a9..dfb9be090 100644 --- a/docs/bugs.md +++ b/docs/bugs.md @@ -7,7 +7,7 @@ ### ML Workspace -- the docker container loses network connectivity after three days. +- the docker container slows down a bit after ten days. The only known solution is to restart the docker container. You don't need to restart the complete DTaaS platform, restart of the docker container of ml-workspace is sufficient. diff --git a/docs/developer/servers/lib/lib-class.mmd b/docs/developer/servers/lib/lib-class.mmd index 93eed3779..52c0c327d 100644 --- a/docs/developer/servers/lib/lib-class.mmd +++ b/docs/developer/servers/lib/lib-class.mmd @@ -7,20 +7,10 @@ classDiagram class FilesServiceFactory { -configService: ConfigService - -gitlabFilesService: GitlabFilesService -localFilesService: LocalFilesService +create(): IFilesService } - class GitlabFilesService { - -configService: ConfigService - -parseArguments(path: string): Promise - -sendRequest(query: string): Promise - -executeQuery(path: string, getQuery: QueryFunction): Promise - +listDirectory(path: string): Promise - +readFile(path: string): Promise - } - class LocalFilesService { -configService: ConfigService -getFileStats(fullPath: string, file: string): Promise @@ -38,9 +28,7 @@ classDiagram } IFilesService <|-- FilesResolver: uses - IFilesService <|.. GitlabFilesService: implements IFilesService <|.. LocalFilesService: implements IFilesService <|-- FilesServiceFactory: creates ConfigService <|-- FilesServiceFactory: uses - ConfigService <|-- GitlabFilesService: uses ConfigService <|-- LocalFilesService: uses \ No newline at end of file diff --git a/docs/developer/servers/lib/lib-class.puml b/docs/developer/servers/lib/lib-class.puml index a441ded30..cf29ed490 100644 --- a/docs/developer/servers/lib/lib-class.puml +++ b/docs/developer/servers/lib/lib-class.puml @@ -12,19 +12,10 @@ interface IFilesService { class FilesServiceFactory { -configService: ConfigService - -gitlabFilesService: GitlabFilesService -localFilesService: LocalFilesService +create(): IFilesService } -class GitlabFilesService { - -configService: ConfigService - -parseArguments(path: string): Promise<{ domain: string; parsedPath: string }> - -sendRequest(query: string): Promise - -executeQuery(path: string, getQuery: QueryFunction): Promise - +listDirectory(path: string): Promise - +readFile(path: string): Promise -} class LocalFilesService { -configService: ConfigService @@ -38,10 +29,8 @@ class ConfigService { } FilesResolver --> IFilesService: uses -IFilesService <|.. GitlabFilesService: implements IFilesService <|.. LocalFilesService: implements FilesServiceFactory --> IFilesService: creates FilesServiceFactory --> ConfigService: uses -GitlabFilesService --> ConfigService: uses LocalFilesService --> ConfigService: uses @enduml diff --git a/docs/developer/servers/lib/lib-ms.md b/docs/developer/servers/lib/lib-ms.md index 4e397cbb9..26a3485e6 100644 --- a/docs/developer/servers/lib/lib-ms.md +++ b/docs/developer/servers/lib/lib-ms.md @@ -32,20 +32,10 @@ classDiagram class FilesServiceFactory { -configService: ConfigService - -gitlabFilesService: GitlabFilesService -localFilesService: LocalFilesService +create(): IFilesService } - class GitlabFilesService { - -configService: ConfigService - -parseArguments(path: string): Promise - -sendRequest(query: string): Promise - -executeQuery(path: string, getQuery: QueryFunction): Promise - +listDirectory(path: string): Promise - +readFile(path: string): Promise - } - class LocalFilesService { -configService: ConfigService -getFileStats(fullPath: string, file: string): Promise @@ -63,11 +53,9 @@ classDiagram } IFilesService <|-- FilesResolver: uses - IFilesService <|.. GitlabFilesService: implements IFilesService <|.. LocalFilesService: implements IFilesService <|-- FilesServiceFactory: creates ConfigService <|-- FilesServiceFactory: uses - ConfigService <|-- GitlabFilesService: uses ConfigService <|-- LocalFilesService: uses ``` @@ -84,11 +72,9 @@ sequenceDiagram participant CS as ConfigService participant IFS as IFilesService participant LFS as LocalFilesService - participant GFS as GitlabFilesService end participant FS as Local File System DB - participant GAPI as GitLab API DB Client ->> Traefik : HTTP request Traefik ->> FR : GraphQL query @@ -129,35 +115,7 @@ sequenceDiagram LFS ->> IFS : return Promise end deactivate LFS - else MODE = GitLab - FSF ->> FR : return filesService (GFS) - %%deactivate FSF - - FR ->> IFS : listDirectory(path) or readFile(path) activate IFS - - IFS ->> GFS : listDirectory(path) or readFile(path) - activate GFS - - GFS ->> GFS : parseArguments(path) - GFS ->> GFS : executeQuery() - - GFS ->> CS : getConfiguration("GITLAB_API_URL", "GITLAB_TOKEN") - activate CS - - CS -->> GFS : return GitLab API URL and Token - deactivate CS - - GFS ->> GAPI : sendRequest() - alt GitLab API error - GAPI -->> GFS : API error - GFS ->> GFS : Throw new Error("Invalid query") - GFS -->> IFS : Error - else Successful GitLab API operation - GAPI -->> GFS : Return API response - GFS ->> IFS : return Promise - end - deactivate GFS end alt Error thrown diff --git a/docs/developer/servers/lib/lib-ms.png b/docs/developer/servers/lib/lib-ms.png old mode 100644 new mode 100755 index c6303a7a4..84dc21562 Binary files a/docs/developer/servers/lib/lib-ms.png and b/docs/developer/servers/lib/lib-ms.png differ diff --git a/docs/developer/servers/lib/lib-sequence.mmd b/docs/developer/servers/lib/lib-sequence.mmd index 68d95b654..e1091fc5a 100644 --- a/docs/developer/servers/lib/lib-sequence.mmd +++ b/docs/developer/servers/lib/lib-sequence.mmd @@ -1,18 +1,16 @@ sequenceDiagram actor Client actor Traefik - - box LightGreen RAMS + + box LightGreen Library Microservice participant FR as FilesResolver participant FSF as FilesServiceFactory - participant CS as ConfigService + participant CS as ConfigService participant IFS as IFilesService participant LFS as LocalFilesService - participant GFS as GitlabFilesService end participant FS as Local File System DB - participant GAPI as GitLab API DB Client ->> Traefik : HTTP request Traefik ->> FR : GraphQL query @@ -53,35 +51,7 @@ sequenceDiagram LFS ->> IFS : return Promise end deactivate LFS - else MODE = GitLab - FSF ->> FR : return filesService (GFS) - %%deactivate FSF - - FR ->> IFS : listDirectory(path) or readFile(path) activate IFS - - IFS ->> GFS : listDirectory(path) or readFile(path) - activate GFS - - GFS ->> GFS : parseArguments(path) - GFS ->> GFS : executeQuery() - - GFS ->> CS : getConfiguration("GITLAB_API_URL", "GITLAB_TOKEN") - activate CS - - CS -->> GFS : return GitLab API URL and Token - deactivate CS - - GFS ->> GAPI : sendRequest() - alt GitLab API error - GAPI -->> GFS : API error - GFS ->> GFS : Throw new Error("Invalid query") - GFS -->> IFS : Error - else Successful GitLab API operation - GAPI -->> GFS : Return API response - GFS ->> IFS : return Promise - end - deactivate GFS end alt Error thrown diff --git a/docs/developer/servers/lib/lib-sequence.puml b/docs/developer/servers/lib/lib-sequence.puml index 84cd5e9cd..65f5e6df0 100644 --- a/docs/developer/servers/lib/lib-sequence.puml +++ b/docs/developer/servers/lib/lib-sequence.puml @@ -1,16 +1,14 @@ @startuml actor Client actor Traefik -box "RAMS" #LightGreen +box "Library Microservice" #LightGreen participant "FilesResolver" as FR participant "FilesServiceFactory" as FSF participant "ConfigService" as CS participant "IFilesService" as IFS participant "LocalFilesService" as LFS -participant "GitlabFilesService" as GFS end box database "Local File System" as FS -database "GitLab API" as GAPI Client -> Traefik : HTTP request Traefik -> FR : GraphQL query @@ -51,35 +49,6 @@ alt MODE = Local LFS -> IFS : return Promise end deactivate LFS -else MODE = GitLab - FSF -> FR : return filesService (GFS) - deactivate FSF - - FR -> IFS : listDirectory(path) or readFile(path) - activate IFS - - IFS -> GFS : listDirectory(path) or readFile(path) - activate GFS - - GFS -> GFS : parseArguments(path) - GFS -> GFS : executeQuery() - - GFS -> CS : getConfiguration("GITLAB_API_URL", "GITLAB_TOKEN") - activate CS - - CS --> GFS : return GitLab API URL and Token - deactivate CS - - GFS -> GAPI : sendRequest() - alt GitLab API error - GAPI --> GFS : API error - GFS -> GFS : Throw new Error("Invalid query") - GFS --> IFS : Error - else Successful GitLab API operation - GAPI --> GFS : Return API response - GFS -> IFS : return Promise - end - deactivate GFS end alt Error thrown diff --git a/docs/developer/servers/lib/src.svg b/docs/developer/servers/lib/src.svg index 21aabe4d7..fa70de5f4 100644 --- a/docs/developer/servers/lib/src.svg +++ b/docs/developer/servers/lib/src.svg @@ -4,190 +4,148 @@ - - + + G - - - -../util.ts - -../util.ts - + - + app.module.ts - -app.module.ts - - - -app.module.ts->../util.ts - - + +app.module.ts - + files/files.module.ts - -files/files.module.ts + +files/files.module.ts - + app.module.ts->files/files.module.ts - - + + files/resolvers/files.resolver.ts - -files/resolvers/files.resolver.ts + +files/resolvers/files.resolver.ts files/files.module.ts->files/resolvers/files.resolver.ts - - + + files/services/files-service.factory.ts - -files/services/files-service.factory.ts + +files/services/files-service.factory.ts files/files.module.ts->files/services/files-service.factory.ts - - - - - -files/services/gitlab-files.service.ts - -files/services/gitlab-files.service.ts - - - -files/files.module.ts->files/services/gitlab-files.service.ts - - + + - + files/services/local-files.service.ts - -files/services/local-files.service.ts + +files/services/local-files.service.ts - + files/files.module.ts->files/services/local-files.service.ts - - + + + + + +bootstrap.ts + +bootstrap.ts + + + +bootstrap.ts->app.module.ts + + - + files/resolvers/files.resolver.ts->files/services/files-service.factory.ts - - + + - + files/interfaces/files.service.interface.ts - -files/interfaces/files.service.interface.ts + +files/interfaces/files.service.interface.ts - + files/resolvers/files.resolver.ts->files/interfaces/files.service.interface.ts - - + + - + types.ts - -types.ts + +types.ts - + files/resolvers/files.resolver.ts->types.ts - - - - - -files/services/files-service.factory.ts->files/services/gitlab-files.service.ts - - + + - + files/services/files-service.factory.ts->files/services/local-files.service.ts - - + + - + files/services/files-service.factory.ts->files/interfaces/files.service.interface.ts - - - - - -files/services/gitlab-files.service.ts->files/interfaces/files.service.interface.ts - - - - - -files/services/gitlab-files.service.ts->types.ts - - - - - -files/queries.ts - -files/queries.ts - - - -files/services/gitlab-files.service.ts->files/queries.ts - - + + - + files/services/local-files.service.ts->files/interfaces/files.service.interface.ts - - + + - + files/services/local-files.service.ts->types.ts - - + + - + files/interfaces/files.service.interface.ts->types.ts - - + + - + main.ts - -main.ts - - - -main.ts->app.module.ts - - + +main.ts + + + +main.ts->bootstrap.ts + + diff --git a/docs/developer/servers/lib/test.svg b/docs/developer/servers/lib/test.svg index 7d86c4853..7a512cc5e 100644 --- a/docs/developer/servers/lib/test.svg +++ b/docs/developer/servers/lib/test.svg @@ -4,334 +4,250 @@ - - + + G - + ../src/app.module.ts - -../src/app.module.ts + +../src/app.module.ts ../src/files/files.module.ts - -../src/files/files.module.ts + +../src/files/files.module.ts ../src/app.module.ts->../src/files/files.module.ts - - - - - -../util.ts - -../util.ts - - - -../src/app.module.ts->../util.ts - - + + - + ../src/files/resolvers/files.resolver.ts - -../src/files/resolvers/files.resolver.ts + +../src/files/resolvers/files.resolver.ts - + ../src/files/files.module.ts->../src/files/resolvers/files.resolver.ts - - + + - + ../src/files/services/files-service.factory.ts - -../src/files/services/files-service.factory.ts + +../src/files/services/files-service.factory.ts - + ../src/files/files.module.ts->../src/files/services/files-service.factory.ts - - - - - -../src/files/services/gitlab-files.service.ts - -../src/files/services/gitlab-files.service.ts - - - -../src/files/files.module.ts->../src/files/services/gitlab-files.service.ts - - + + - + ../src/files/services/local-files.service.ts - -../src/files/services/local-files.service.ts + +../src/files/services/local-files.service.ts - + ../src/files/files.module.ts->../src/files/services/local-files.service.ts - - + + - + ../src/files/resolvers/files.resolver.ts->../src/files/services/files-service.factory.ts - - + + - + ../src/files/interfaces/files.service.interface.ts - -../src/files/interfaces/files.service.interface.ts + +../src/files/interfaces/files.service.interface.ts - + ../src/files/resolvers/files.resolver.ts->../src/files/interfaces/files.service.interface.ts - - + + - + ../src/types.ts - -../src/types.ts + +../src/types.ts - + ../src/files/resolvers/files.resolver.ts->../src/types.ts - - - - - -../src/files/services/files-service.factory.ts->../src/files/services/gitlab-files.service.ts - - + + - + ../src/files/services/files-service.factory.ts->../src/files/services/local-files.service.ts - - + + - + ../src/files/services/files-service.factory.ts->../src/files/interfaces/files.service.interface.ts - - - - - -../src/files/services/gitlab-files.service.ts->../src/files/interfaces/files.service.interface.ts - - - - - -../src/files/services/gitlab-files.service.ts->../src/types.ts - - - - - -../src/files/queries.ts - -../src/files/queries.ts - - - -../src/files/services/gitlab-files.service.ts->../src/files/queries.ts - - + + - + ../src/files/services/local-files.service.ts->../src/files/interfaces/files.service.interface.ts - - + + - + ../src/files/services/local-files.service.ts->../src/types.ts - - + + - + ../src/files/interfaces/files.service.interface.ts->../src/types.ts - - + + - + e2e/app.e2e.spec.ts - -e2e/app.e2e.spec.ts + +e2e/app.e2e.spec.ts - + e2e/app.e2e.spec.ts->../src/app.module.ts - - + + - + testUtil.ts - -testUtil.ts + +testUtil.ts - + e2e/app.e2e.spec.ts->testUtil.ts - - + + - + integration/files.service.integration.spec.ts - -integration/files.service.integration.spec.ts + +integration/files.service.integration.spec.ts - + integration/files.service.integration.spec.ts->../src/files/resolvers/files.resolver.ts - - + + - + integration/files.service.integration.spec.ts->../src/files/services/files-service.factory.ts - - - - - -integration/files.service.integration.spec.ts->../src/files/services/gitlab-files.service.ts - - + + - + integration/files.service.integration.spec.ts->../src/files/services/local-files.service.ts - - + + - + integration/files.service.integration.spec.ts->testUtil.ts - - + + - + unit/files-service.factory.unit.spec.ts - -unit/files-service.factory.unit.spec.ts + +unit/files-service.factory.unit.spec.ts - + unit/files-service.factory.unit.spec.ts->../src/files/services/files-service.factory.ts - - - - - -unit/files-service.factory.unit.spec.ts->../src/files/services/gitlab-files.service.ts - - + + - + unit/files-service.factory.unit.spec.ts->../src/files/services/local-files.service.ts - - + + - + unit/files-service.factory.unit.spec.ts->../src/files/interfaces/files.service.interface.ts - - + + - + unit/files.resolver.unit.spec.ts - -unit/files.resolver.unit.spec.ts + +unit/files.resolver.unit.spec.ts - + unit/files.resolver.unit.spec.ts->../src/files/resolvers/files.resolver.ts - - + + - + unit/files.resolver.unit.spec.ts->../src/files/services/files-service.factory.ts - - + + - + unit/files.resolver.unit.spec.ts->../src/files/interfaces/files.service.interface.ts - - + + - + unit/files.resolver.unit.spec.ts->testUtil.ts - - - - - -unit/gitlab-files.service.unit.spec.ts - -unit/gitlab-files.service.unit.spec.ts - - - -unit/gitlab-files.service.unit.spec.ts->../src/files/services/gitlab-files.service.ts - - - - - -unit/gitlab-files.service.unit.spec.ts->testUtil.ts - - + + - + unit/local-files.service.unit.spec.ts - -unit/local-files.service.unit.spec.ts + +unit/local-files.service.unit.spec.ts - + unit/local-files.service.unit.spec.ts->../src/files/services/local-files.service.ts - - + + - + unit/local-files.service.unit.spec.ts->testUtil.ts - - + + diff --git a/docs/developer/system/C4-L1_diagram.png b/docs/developer/system/C4-L1_diagram.png old mode 100644 new mode 100755 index 7191fd342..903ac582b Binary files a/docs/developer/system/C4-L1_diagram.png and b/docs/developer/system/C4-L1_diagram.png differ diff --git a/docs/developer/system/C4-L2_diagram_detailed.png b/docs/developer/system/C4-L2_diagram_detailed.png old mode 100644 new mode 100755 index 167a544c1..c91c9fd41 Binary files a/docs/developer/system/C4-L2_diagram_detailed.png and b/docs/developer/system/C4-L2_diagram_detailed.png differ diff --git a/docs/developer/system/C4-L2_diagram_simplified.png b/docs/developer/system/C4-L2_diagram_simplified.png old mode 100644 new mode 100755 index 7c08ea9d4..d2ebd6ab5 Binary files a/docs/developer/system/C4-L2_diagram_simplified.png and b/docs/developer/system/C4-L2_diagram_simplified.png differ diff --git a/docs/developer/system/DTaaS.drawio b/docs/developer/system/DTaaS.drawio old mode 100644 new mode 100755 index b67af62a2..52f536bae --- a/docs/developer/system/DTaaS.drawio +++ b/docs/developer/system/DTaaS.drawio @@ -1,6 +1,6 @@ - + - + @@ -8,130 +8,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -442,74 +322,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -587,10 +401,10 @@ - + - + @@ -644,238 +458,235 @@ - + - + - - + + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - - + + - - + + - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - - - - - + + + + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + @@ -883,103 +694,97 @@ - - + + - - + + - + - - + + - - - - - + + - - + + - - + + - - + + - - + + - - + + - - - - + - - + + - - + + - - - - - + + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - - + + - - + + + + + - + @@ -1067,19 +872,6 @@ - - - - - - - - - - - - - @@ -1243,89 +1035,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1467,7 +1176,7 @@ - + @@ -1549,11 +1258,6 @@ - - - - - @@ -1571,29 +1275,21 @@ - - - - - - - - - - - - - + - - + + - + + + + + @@ -1606,7 +1302,7 @@ - + @@ -2740,100 +2436,100 @@ - - + + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2841,7 +2537,7 @@ - + @@ -2850,145 +2546,85 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2996,7 +2632,7 @@ - + @@ -3005,898 +2641,230 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + @@ -3904,207 +2872,319 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/system/architecture.md b/docs/developer/system/architecture.md index d74e64dbc..5cb826b34 100644 --- a/docs/developer/system/architecture.md +++ b/docs/developer/system/architecture.md @@ -108,14 +108,14 @@ covers DT Lifecycle, Reusable Assets and Execution Manager. A mapping of the C4 level 2 containers to components identified in the system architecture is also available in the table. -| System Component | Container(s) | -|:---|:---| -| Gateway | [Traefik Gateway](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/servers/config/gateway#the-gateway-server) | -| Unified Interface | [React Webapplication](../client/client.md) | -| Reusable Assets | [Library Microservice](../servers/lib/lib-ms.md) | -| Data | MQTT, InfluxDB, and RabbitMQ (not shown in the C4 Level 2 diagram) | -| Visualization | InfluxDB (not shown in the C4 Level 2 diagram) | -| DT Lifecycle | DT Lifecycle Manager and DT Configuration Validator | -| Security | [Gitlab OAuth](../../admin/client/auth.md) | -| Accounting | None | -| Execution Manager | Execution Manager | +| System Component | Container(s) | +| :---------------- | :--------------------------------------------------------------------------------------------------------------------------------------- | +| Gateway | [Traefik Gateway](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/servers/config/gateway#the-gateway-server) | +| Unified Interface | [React Webapplication](../client/client.md) | +| Reusable Assets | [Library Microservice](../servers/lib/lib-ms.md) | +| Data | MQTT, InfluxDB, RabbitMQ, Grafana and MongoDB (not shown in the C4 Level 2 diagram) | +| Visualization | InfluxDB (not shown in the C4 Level 2 diagram) | +| DT Lifecycle | DT Lifecycle Manager and DT Configuration Validator | +| Security | [Gitlab OAuth](../../admin/client/auth.md) | +| Accounting | None | +| Execution Manager | Execution Manager | diff --git a/docs/developer/system/current-status-developer-2.png b/docs/developer/system/current-status-developer-2.png new file mode 100755 index 000000000..70349a7a0 Binary files /dev/null and b/docs/developer/system/current-status-developer-2.png differ diff --git a/docs/developer/system/current-status-developer.png b/docs/developer/system/current-status-developer.png new file mode 100755 index 000000000..27512c20b Binary files /dev/null and b/docs/developer/system/current-status-developer.png differ diff --git a/docs/developer/system/current-status.md b/docs/developer/system/current-status.md index ce5d3d98b..7086c9b24 100644 --- a/docs/developer/system/current-status.md +++ b/docs/developer/system/current-status.md @@ -5,7 +5,11 @@ Crucial system components are in place with ongoing development work focusing on increased automation and feature enhancement. The figure below shows the current status of the development work. -![Current development status](current-status.png) +![Current development status](current-status-developer.png) + +If you are interested in C4 representation of the same diagram, +please take a look at +the [C4 L2 diagram](current-status-developer-2.png). ## :lock: User Security @@ -68,9 +72,10 @@ There are four external services integrated with the DTaaS software platform. They are: [InfluxDB](https://github.com/influxdata/influxdb), [Grafana](https://github.com/grafana/grafana), -[RabbitMQ](https://github.com/rabbitmq/rabbitmq-server) +[RabbitMQ](https://github.com/rabbitmq/rabbitmq-server), +[MQTT](https://github.com/eclipse/mosquitto), and -[MQTT](https://github.com/eclipse/mosquitto). +[MongoDB](https://github.com/mongodb/mongo). These services can be used by DTs and PTs for communication, storing and visualization of data. There can also be monitoring services setup diff --git a/docs/developer/system/current-status.png b/docs/developer/system/current-status.png deleted file mode 100644 index 737ec369c..000000000 Binary files a/docs/developer/system/current-status.png and /dev/null differ diff --git a/docs/index.md b/docs/index.md index 8b75d5a52..d971bdc57 100644 --- a/docs/index.md +++ b/docs/index.md @@ -25,11 +25,6 @@ This software is owned by [The INTO-CPS Association](https://into-cps.org/) and is available under [the INTO-CPS License](LICENSE.md). -The DTaaS software platform uses [Træfik](https://github.com/traefik/traefik), -[ML Workspace](https://github.com/ml-tooling/ml-workspace), -[Grafana](https://github.com/grafana/grafana), -[InfluxDB](https://github.com/influxdata/influxdb), -[MQTT](https://github.com/eclipse/mosquitto) and -[RabbitMQ](https://github.com/rabbitmq/rabbitmq-server) -open-source components. +The DTaaS software platform uses [third-party](./third-party.md) +open-source software. These software components have their own licenses. diff --git a/docs/third-party.md b/docs/third-party.md new file mode 100644 index 000000000..a9cda9787 --- /dev/null +++ b/docs/third-party.md @@ -0,0 +1,48 @@ +# Third Party Software + +The DTaaS software platform uses many third-party software. +These software components have their own licenses. + +## User Installations + +The list of software included with DTaaS installation scripts are: + +| Software Package | Usage | License | +| :----------------------------------------------------------------------- | :-------- | :------------------------------------------------------------------------ | +| [docker v24.0](https://github.com/moby/moby) | mandatory | Apache 2.0 | +| [ml-workspace-minimal v0.13](https://github.com/ml-tooling/ml-workspace) | mandatory | Apache 2.0 | +| [nodejs v20.10](https://nodejs.org/en) | mandatory | [Custom - Modified MIT](https://github.com/nodejs/node/blob/main/LICENSE) | +| [npm v10.2](https://npmjs.com) | mandatory | Artistic License 2.0 | +| [serve](https://github.com/vercel/serve) | mandatory | MIT | +| [Træfik v2.10](https://github.com/traefik/traefik) | mandatory | MIT | +| [yarn v1.22](https://yarnpkg.com/) | mandatory | BSD 2-Clause | +| [eclipse-mosquitto v2](https://github.com/eclipse/mosquitto) | optional | Eclipse Public License-2.0 | +| [gitlab-ce v16.4](https://docs.gitlab.com/) | optional | MIT | +| [Grafana v10.1](https://github.com/grafana/grafana) | optional | GNU Affero General Public (AGPL) License v3.0 | +| [InfluxDB v2.7](https://github.com/influxdata/influxdb) | optional | Apache2, MIT | +| [Mongodb v7.0](https://github.com/mongodb/mongo) | optional | AGPL License and Server Side Public License (SSPL) v1 | +| [Tabbitmq v3-management](https://github.com/rabbitmq/rabbitmq-server) | optional | Mozilla Public License | +| [Telegraf v1.28](https://github.com/influxdata/telegraf) | optional | MIT | + +## Development Environments + +Inaddition to all the software included in user installations, +the DTaaS development environments may use the following +additional software packages. + +| Software Package | Usage | License | +| :------------------------------------------------------------------ | :-------- | :------------- | +| [Material for mkdocs](https://github.com/squidfunk/mkdocs-material) | mandatory | MIT | +| [Docker-compose v2.20](https://github.com/docker/compose) | optional | Apache 2.0 | +| [Jupyter Lab](https://github.com/jupyterlab/jupyterlab) | optional | 3-Clause BSD | +| [Microk8s v1.27](https://github.com/canonical/microk8s) | optional | Apache 2.0 | +| [Openssl](https://www.openssl.org) | optional | Custom License | + +## Package Dependencies + +There are specific software packages included in the development of client, +library microservice and runner microservice. These packages can be seen +in the **package.json** file of the matching directories. + +The plugins of _material for mkdocs_ might have their own licenses. +The list of plugins used are in **requirements.txt** file. diff --git a/docs/user/current-status.png b/docs/user/current-status.png index dd9272aab..0f7f9ebab 100755 Binary files a/docs/user/current-status.png and b/docs/user/current-status.png differ diff --git a/docs/user/digital-twins/create.png b/docs/user/digital-twins/create.png deleted file mode 100644 index 33f36e6df..000000000 Binary files a/docs/user/digital-twins/create.png and /dev/null differ diff --git a/docs/user/examples/opc-ua-waterplant/images/dt-structure-uv_channel.png b/docs/user/examples/opc-ua-waterplant/images/dt-structure-uv_channel.png new file mode 100644 index 000000000..3914139d2 Binary files /dev/null and b/docs/user/examples/opc-ua-waterplant/images/dt-structure-uv_channel.png differ diff --git a/docs/user/examples/opc-ua-waterplant/images/dt-structure.png b/docs/user/examples/opc-ua-waterplant/images/dt-structure.png deleted file mode 100644 index bf23aad0f..000000000 Binary files a/docs/user/examples/opc-ua-waterplant/images/dt-structure.png and /dev/null differ diff --git a/docs/user/features.md b/docs/user/features.md index c36dbdafa..7652b674d 100644 --- a/docs/user/features.md +++ b/docs/user/features.md @@ -4,14 +4,14 @@ The DTaaS software platform provides certain advantages to users: -* Support for different kinds of Digital Twins - * CFD, Simulink, co-simulation, FEM, ROM, ML etc. -* Integrates with other Digital Twin frameworks -* Facilitate availability of Digital Twin as a Service -* Collaboration and reuse -* Private workspaces for verification +- Support for different kinds of Digital Twins + - CFD, Simulink, co-simulation, FEM, ROM, ML etc. +- Integrates with other Digital Twin frameworks +- Facilitate availability of Digital Twin as a Service +- Collaboration and reuse +- Private workspaces for verification of reusable assets, trial run DTs -* Cost effectiveness +- Cost effectiveness ## Software Features @@ -30,12 +30,12 @@ Each user workspace comes with some development tools pre-installed. These tools are directly accessible from web browser. The following tools are available at present: -| Tool | Advantage | -|:---|:---| -| Jupyter Lab | Provides flexible creation and use of digital twins and their components from web browser. All the native Jupyterlab usecases are supported here. | -| Jupyter Notebook | Useful for web-based management of their files (library assets) | -| VS Code in the browser | A popular IDE for software development. Users can develop their digital twin-related assets here. | -| ungit | An interactive git client. Users can work with git repositories from web browser | +| Tool | Advantage | +| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ | +| Jupyter Lab | Provides flexible creation and use of digital twins and their components from web browser. All the native Jupyterlab usecases are supported here. | +| Jupyter Notebook | Useful for web-based management of their files (library assets) | +| VS Code in the browser | A popular IDE for software development. Users can develop their digital twin-related assets here. | +| ungit | An interactive git client. Users can work with git repositories from web browser | In addition, users have access to xfce-based remote desktop via VNC client. The VNC client is available right in the web browser. @@ -44,12 +44,13 @@ The xfce supported desktop software can also be run in their workspace. The DTaaS software platform has some pre-installed services available. The currently available services are: -| Service | Advantage | -|:---|:---| +| Service | Advantage | +| :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | InfluxDB | Time-series database primarly for storing time-series data from physical twins. The digital twins can use an already existing data. Users can also create visualization dashboards for their digital twins. | -| RabbitMQ | Communication broker for communication between physical and digital twins | -| Grafana | Visualization dashboards for their digital twins. | -| MQTT | Lightweight data transfer broker for IoT devices / physical twins feeding data into digital twins. | +| RabbitMQ | Communication broker for communication between physical and digital twins | +| Grafana | Visualization dashboards for their digital twins. | +| MQTT | Lightweight data transfer broker for IoT devices / physical twins feeding data into digital twins. | +| MongoDB | NoSQL document database for storing metadata of data from physical twins | In addition, the workspaces are connected to the Internet so all the Digital Twins running in the workspace can interact diff --git a/docs/user/website/digital_twins.png b/docs/user/website/digital_twins.png old mode 100644 new mode 100755 index 4085dde41..264e3c2fc Binary files a/docs/user/website/digital_twins.png and b/docs/user/website/digital_twins.png differ diff --git a/docs/user/website/gitlab-sso-1.png b/docs/user/website/gitlab-sso-1.png old mode 100644 new mode 100755 index 7e2c7790c..9dcc18943 Binary files a/docs/user/website/gitlab-sso-1.png and b/docs/user/website/gitlab-sso-1.png differ diff --git a/docs/user/website/gitlab-sso-2.png b/docs/user/website/gitlab-sso-2.png old mode 100644 new mode 100755 index 6b89c9a3e..8979028ec Binary files a/docs/user/website/gitlab-sso-2.png and b/docs/user/website/gitlab-sso-2.png differ diff --git a/docs/user/website/gitlab-sso-3.png b/docs/user/website/gitlab-sso-3.png old mode 100644 new mode 100755 index ec0338db8..e44dca11a Binary files a/docs/user/website/gitlab-sso-3.png and b/docs/user/website/gitlab-sso-3.png differ diff --git a/docs/user/website/index.md b/docs/user/website/index.md index bbfbf6d49..d3b046127 100644 --- a/docs/user/website/index.md +++ b/docs/user/website/index.md @@ -199,7 +199,8 @@ in new browser are: If you want terminal. Please use the tools dropdown in the Jupyter Notebook. The Terminal hyperlink does not always work reliably. If you want - terminal. Please use the tools dropdown in the Jupyter Notebook. + terminal, please use the tools dropdown in the Jupyter Notebook. + ![Open terminal in user workspace](../../admin/guides/open_terminal_in_workspace.gif) ## Finally logout diff --git a/docs/user/website/library.png b/docs/user/website/library.png old mode 100644 new mode 100755 index ac7b44d12..ff2618a51 Binary files a/docs/user/website/library.png and b/docs/user/website/library.png differ diff --git a/docs/user/website/login.png b/docs/user/website/login.png old mode 100644 new mode 100755 index 80cc54fe0..a7ab03a34 Binary files a/docs/user/website/login.png and b/docs/user/website/login.png differ diff --git a/docs/user/website/menu.png b/docs/user/website/menu.png old mode 100644 new mode 100755 index c13e10935..683c65a4d Binary files a/docs/user/website/menu.png and b/docs/user/website/menu.png differ diff --git a/docs/user/website/workbench.png b/docs/user/website/workbench.png old mode 100644 new mode 100755 index b7b4d53be..6ca739da0 Binary files a/docs/user/website/workbench.png and b/docs/user/website/workbench.png differ diff --git a/mkdocs-github.yml b/mkdocs-github.yml index aaaef7556..e1bae9fef 100644 --- a/mkdocs-github.yml +++ b/mkdocs-github.yml @@ -7,8 +7,8 @@ copyright: Copyright © 2022 - 2023 The INTO-CPS Association theme: name: material locale: en - logo: assets/into-cps-logo.png - favicon: assets/into-cps-logo.png + logo: assets/dtaas-logo.png + favicon: assets/dtaas-logo.png features: - navigation.tabs - navigation.tracking @@ -71,7 +71,9 @@ nav: - Publish NPM Packages: developer/npm-packages.md - Bugs: bugs.md - Thanks: thanks.md - - License: LICENSE.md + - License: + - DTaaS: LICENSE.md + - Third Party: third-party.md use_directory_urls: false diff --git a/mkdocs.yml b/mkdocs.yml index fb5590333..6cd445850 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -7,8 +7,8 @@ copyright: Copyright © 2022 - 2023 The INTO-CPS Association theme: name: material locale: en - logo: assets/into-cps-logo.png - favicon: assets/into-cps-logo.png + logo: assets/dtaas-logo.png + favicon: assets/dtaas-logo.png features: - navigation.tabs - navigation.tracking @@ -71,7 +71,9 @@ nav: - Publish NPM Packages: developer/npm-packages.md - Bugs: bugs.md - Thanks: thanks.md - - License: LICENSE.md + - License: + - DTaaS: LICENSE.md + - Third Party: third-party.md use_directory_urls: false @@ -119,7 +121,7 @@ plugins: - with-pdf: author: "DTaaS Development Team" cover: true - cover_logo: assets/into-cps-logo.png + cover_logo: assets/dtaas-logo.png cover_subtitle: "" enabled_if_env: MKDOCS_ENABLE_PDF_EXPORT output_path: pdf/DTaaS-docs.pdf diff --git a/servers/lib/DEVELOPER.md b/servers/lib/DEVELOPER.md index 8b08460aa..a89354bdd 100644 --- a/servers/lib/DEVELOPER.md +++ b/servers/lib/DEVELOPER.md @@ -10,6 +10,7 @@ file. Please see [README](./README.md) for this information. ```bash yarn install # Install dependencies for the microservice yarn syntax # Analyze code for errors and style issues +yarn format #format .ts[x] and .js[x] files with prettier yarn graph # Generate dependency graphs in the code yarn build # Compile ES6 to ES5 and copy JS files to build/ directory yarn test:unit # Run all tests @@ -21,8 +22,17 @@ yarn start # Start the application yarn clean # Deletes "build", "coverage", "dist" and other temp files ``` -**NOTE**: All tests require a valid `.env` file placed in the same directory -as `package.json`. +**NOTE:** The integration and end-to-end tests require a valid +`.env` file. Here is a sample file. + +```ini +PORT='4001' +MODE='local' +LOCAL_PATH ='/Users//DTaaS/files' +LOG_LEVEL='debug' +APOLLO_PATH='/lib' +GRAPHQL_PLAYGROUND='true' +``` ## :package: :ship: NPM package diff --git a/servers/lib/README.md b/servers/lib/README.md index bc86b8e3a..7a0c7c88a 100644 --- a/servers/lib/README.md +++ b/servers/lib/README.md @@ -1,28 +1,10 @@ # Overview The **lib microservice** is a simplified file manager providing graphQL API. -It has three features: +It has two features: * provide a listing of directory contents. * transfer a file to user. -* Source files can either come from local file system or from a gitlab instance. - -## Gitlab setup - -For this microserivce to be functional, -a certain directory or gitlab project structure is expected. -The microservice expects that the gitlab consisting of one group, dtaas (by convention), -and within that group, all of the projects be located, -**user1**, **user2**, ... , as well as a **commons** projects. -Each project corresponds to files of one user. -A sample file structure can be seen in [gitlab dtaas group](https://gitlab.com/dtaas). -You can visit the gitlab documentation on -[groups](https://docs.gitlab.com/ee/user/group/) -for help on the management of gitlab groups. - -You can clone the git repositories from -the [gitlab dtaas](https://gitlab.com/dtaas) group -to get a sample file system structure for the lib microservice. ## :arrow_down: Install @@ -51,9 +33,6 @@ The template configuration file is: PORT='4001' MODE='local' or 'gitlab' LOCAL_PATH ='/Users//DTaaS/files' -GITLAB_GROUP ='dtaas' -GITLAB_URL='https://gitlab.com/api/graphql' -TOKEN='123-sample-token' LOG_LEVEL='debug' APOLLO_PATH='/lib' or '' GRAPHQL_PLAYGROUND='false' or 'true' @@ -63,23 +42,8 @@ The `LOCAL_PATH` variable is the absolute filepath to the location of the local directory which will be served to users by the Library microservice. -The `GITLAB_URL`, `GITLAB_GROUP` and `TOKEN` are only relevant for `gitlab` mode. -The `TOKEN` should be set to your GitLab Group access API token. -For more information on how to create and use your access token, -[gitlab page](https://docs.gitlab.com/ee/user/group/settings/group_access_tokens.html). - -Once you've generated a token, copy it and replace -the value of `TOKEN` with your token for the gitlab group, - Replace the default values the appropriate values for your setup. -**NOTE**: - -1. When \__MODE=local_, only _LOCAL_PATH_ is used. - Other environment variables are unused. -1. When _MODE=gitlab_, _GITLAB_URL, TOKEN_, - and _GITLAB_GROUP_ are used; _LOCAL_PATH_ is unused. - ## :rocket: Use Display help. diff --git a/servers/lib/package.json b/servers/lib/package.json index 7d0aabff3..6e334c805 100644 --- a/servers/lib/package.json +++ b/servers/lib/package.json @@ -1,6 +1,6 @@ { "name": "@into-cps-association/libms", - "version": "0.3.1", + "version": "0.3.2", "description": "microservices that handles request by fetching and returning the file-names and folders of given directory", "author": "phillip.boe.jensen@gmail.com", "contributors": [ @@ -18,25 +18,24 @@ "start": "node dist/src/main.js", "syntax": "npx eslint . --fix", "pretest": "npx shx cp test/data/user2/tools/README.md ../../files/user2/tools/README.md", - "test:all": "jest --coverage", - "test:e2e": "npx shx cp test/data/user2/tools/README.md ../../files/user2/tools/ && npx cross-env TEST_PATH=test/data jest --config ./test/jest-e2e.json --coverage && npx rimraf ../../files/user2/tools/README.md", - "test:int": "npx shx cp test/data/user2/tools/README.md ../../files/user2/tools/ && npx cross-env TEST_PATH=test/data jest ../test/integration --coverage && npx rimraf ../../files/user2/tools/README.md", - "test:unit": "npx shx cp test/data/user2/tools/README.md ../../files/user2/tools/ && npx cross-env TEST_PATH=test/data jest ../test/unit --coverage && npx rimraf ../../files/user2/tools/README.md" + "posttest": "npx rimraf ../../files/user2/tools/README.md", + "test:all": "npx cross-env LOCAL_PATH=test/data jest --coverage", + "test:e2e": "npx cross-env LOCAL_PATH=test/data jest --config ./test/jest-e2e.json --coverage", + "test:int": "npx cross-env LOCAL_PATH=test/data jest ../test/integration --coverage", + "test:unit": "npx cross-env LOCAL_PATH=test/data jest ../test/unit --coverage" }, "bin": "./dist/src/main.js", "dependencies": { - "@apollo/client": "^3.8.4", - "@apollo/server": "^4.9.3", - "@nestjs/apollo": "^12.0.9", - "@nestjs/common": "^10.2.6", + "@apollo/client": "^3.8.9", + "@apollo/server": "^4.10.0", + "@nestjs/apollo": "^12.0.11", + "@nestjs/common": "^10.3.0", "@nestjs/config": "^3.1.1", - "@nestjs/core": "^10.2.6", - "@nestjs/graphql": "^12.0.9", - "@nestjs/platform-express": "^10.2.6", - "axios": "^1.5.1", + "@nestjs/core": "^10.3.0", + "@nestjs/graphql": "^12.0.11", + "@nestjs/platform-express": "^10.3.0", "commander": "^11.1.0", "dotenv": "^16.3.1", - "express": "^4.18.2", "graphql": "^16.8.1", "mock-fs": "^5.2.0", "reflect-metadata": "^0.1.13", @@ -44,24 +43,25 @@ "type-graphql": "^2.0.0-beta.3" }, "devDependencies": { - "@nestjs/cli": "^10.1.18", - "@nestjs/schematics": "^10.0.2", - "@nestjs/testing": "^10.2.6", - "@types/express": "^4.17.18", - "@types/jest": "^29.5.5", - "@types/node": "20.7.2", + "@nestjs/cli": "^10.3.0", + "@nestjs/schematics": "^10.1.0", + "@nestjs/testing": "^10.3.0", + "@types/express": "^4.17.21", + "@types/jest": "^29.5.11", + "@types/node": "20.11.4", "@types/supertest": "^2.0.13", - "@typescript-eslint/eslint-plugin": "^6.7.3", - "@typescript-eslint/parser": "^6.7.3", - "eslint": "^8.50.0", + "@typescript-eslint/eslint-plugin": "^6.19.0", + "@typescript-eslint/parser": "^6.19.0", + "eslint": "^8.56.0", "eslint-config-airbnb-base": "^15.0.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-import": "^2.28.1", - "eslint-plugin-jest": "^27.4.0", - "eslint-plugin-prettier": "^5.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jest": "^27.6.3", + "eslint-plugin-prettier": "^5.1.3", "graphql-scalars": "^1.22.2", "jest": "29.7.0", - "prettier": "^3.0.3", + "prettier": "^3.2.2", + "react": "^18.2.0", "supertest": "^6.3.3", "ts-jest": "^29.1.1", "ts-node": "^10.9.1", diff --git a/servers/lib/src/files/files.module.ts b/servers/lib/src/files/files.module.ts index f051c9dd1..19643bdc3 100644 --- a/servers/lib/src/files/files.module.ts +++ b/servers/lib/src/files/files.module.ts @@ -1,15 +1,9 @@ import { Module } from '@nestjs/common'; import FilesResolver from './resolvers/files.resolver'; -import GitlabFilesService from './services/gitlab-files.service'; import FilesServiceFactory from './services/files-service.factory'; import LocalFilesService from './services/local-files.service'; @Module({ - providers: [ - FilesResolver, - LocalFilesService, - GitlabFilesService, - FilesServiceFactory, - ], + providers: [FilesResolver, LocalFilesService, FilesServiceFactory], }) export default class FilesModule {} diff --git a/servers/lib/src/files/queries.ts b/servers/lib/src/files/queries.ts deleted file mode 100644 index 048c7727c..000000000 --- a/servers/lib/src/files/queries.ts +++ /dev/null @@ -1,42 +0,0 @@ -export const getDirectoryQuery = (domain: string, parsedPath: string) => ` - query listDirectory { - project(fullPath: "${domain}") { - repository { - tree(path: "${parsedPath}", recursive: false) { - blobs { - edges { - node { - name - type - } - } - } - trees { - edges { - node { - name - type - } - } - } - } - } - } - } -`; - -export const getReadFileQuery = (domain: string, parsedPath: string) => ` - query readFile { - project(fullPath: "${domain}") { - repository { - blobs(paths: "${parsedPath}") { - nodes { - name - rawBlob - rawTextBlob - } - } - } - } - } -`; diff --git a/servers/lib/src/files/services/files-service.factory.ts b/servers/lib/src/files/services/files-service.factory.ts index 72147e8e6..b9a1efe4d 100644 --- a/servers/lib/src/files/services/files-service.factory.ts +++ b/servers/lib/src/files/services/files-service.factory.ts @@ -1,7 +1,6 @@ import { Injectable, Inject } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { IFilesService } from '../interfaces/files.service.interface'; -import GitlabFilesService from './gitlab-files.service'; import LocalFilesService from './local-files.service'; @Injectable() @@ -9,7 +8,6 @@ export default class FilesServiceFactory { /* eslint-disable no-useless-constructor, no-empty-function */ constructor( private configService: ConfigService, - @Inject(GitlabFilesService) private gitlabFilesService: GitlabFilesService, @Inject(LocalFilesService) private localFilesService: LocalFilesService, ) {} /* eslint-enable no-useless-constructor, no-empty-function */ @@ -19,9 +17,6 @@ export default class FilesServiceFactory { if (mode === 'local') { return this.localFilesService; } - if (mode === 'gitlab') { - return this.gitlabFilesService; - } throw new Error(`Invalid MODE: ${mode}`); } } diff --git a/servers/lib/src/files/services/gitlab-files.service.ts b/servers/lib/src/files/services/gitlab-files.service.ts deleted file mode 100644 index 590889aa8..000000000 --- a/servers/lib/src/files/services/gitlab-files.service.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { Injectable } from '@nestjs/common'; -import { ConfigService } from '@nestjs/config'; -import axios from 'axios'; -import { Project } from 'src/types'; -import { IFilesService } from '../interfaces/files.service.interface'; -import { getDirectoryQuery, getReadFileQuery } from '../queries'; - -type QueryFunction = (domain: string, parsedPath: string) => string; - -@Injectable() -export default class GitlabFilesService implements IFilesService { - // eslint-disable-next-line no-useless-constructor, no-empty-function - constructor(private configService: ConfigService) {} - - async listDirectory(path: string): Promise { - return this.executeQuery(path, getDirectoryQuery); - } - - async readFile(path: string): Promise { - return this.executeQuery(path, getReadFileQuery); - } - - private async parseArguments( - path: string, - ): Promise<{ domain: string; parsedPath: string }> { - const gitlabGroup = this.configService.get('GITLAB_GROUP'); - const pathParts: string[] = path.split('/'); - const project: string = pathParts[0]; - - // Only prepend the gitlabGroup if it's not already part of the path - const domain: string = - project === gitlabGroup ? project : `${gitlabGroup}/${project}`; - - const parsedPath = pathParts.slice(1).join('/'); - return { domain, parsedPath }; - } - - private async sendRequest(query: string): Promise { - try { - const response = await axios({ - url: 'https://gitlab.com/api/graphql', - method: 'post', - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${this.configService.get('GITLAB_TOKEN')}`, - }, - data: { - query, - }, - }); - return response.data.data.project; - } catch (error) { - throw new Error('Invalid query'); // Throw error instead of returning string - } - } - - private async executeQuery( - path: string, - getQuery: QueryFunction, - ): Promise { - const { domain, parsedPath } = await this.parseArguments(path); - const query = getQuery(domain, parsedPath); - return this.sendRequest(query); - } -} diff --git a/servers/lib/src/files/services/local-files.service.ts b/servers/lib/src/files/services/local-files.service.ts index cda4e7744..49804a04e 100644 --- a/servers/lib/src/files/services/local-files.service.ts +++ b/servers/lib/src/files/services/local-files.service.ts @@ -34,11 +34,11 @@ export default class LocalFilesService implements IFilesService { async readFile(path: string): Promise { const dataPath = this.configService.get('LOCAL_PATH'); - const fullpath = join(dataPath, path); + const fullPath = join(dataPath, path); try { const content = await ( - await fs.promises.readFile(fullpath, 'utf8') + await fs.promises.readFile(fullPath, 'utf8') ).trim(); const name = path.split('/').pop(); // extract file name from the path diff --git a/servers/lib/test/e2e/app.e2e.spec.ts b/servers/lib/test/e2e/app.e2e.spec.ts index 75517c93f..de88abbad 100644 --- a/servers/lib/test/e2e/app.e2e.spec.ts +++ b/servers/lib/test/e2e/app.e2e.spec.ts @@ -1,7 +1,7 @@ import { Test, TestingModule } from '@nestjs/testing'; import { INestApplication } from '@nestjs/common'; import * as request from 'supertest'; -// import { execSync } from "child_process"; +import { ApolloClient, DocumentNode, InMemoryCache, gql } from '@apollo/client'; import AppModule from '../../src/app.module'; import { e2eReadFile, @@ -10,12 +10,15 @@ import { expectedListDirectoryResponse, } from '../testUtil'; +const client = new ApolloClient({ + uri: `http://localhost:${process.env.PORT}${process.env.APOLLO_PATH}`, + cache: new InMemoryCache({ addTypename: false }), +}); + describe('End to End test for the application', () => { let app: INestApplication; beforeAll(async () => { - // execSync("test/starttraefik.bash"); - const moduleFixture: TestingModule = await Test.createTestingModule({ imports: [AppModule], }).compile(); @@ -28,52 +31,39 @@ describe('End to End test for the application', () => { }, 10000); afterAll(async () => { - // execSync("test/stoptraefik.bash"); await app.close(); }, 10000); - it('should return the filename corresponding to the directory given in the query', async () => { - const query = e2elistDirectory; - - const response = await request('http://localhost:4001') + async function HTTPQuery( + query: string, + expectedResponse: unknown, + ): Promise { + const response = await request(`http://localhost:${process.env.PORT}`) .post(process.env.APOLLO_PATH) .send({ query }); - expect(response.body).toEqual(expectedListDirectoryResponse); - }, 10000); - - it('should return the content of a file given in the query ', async () => { - const query = e2eReadFile; + expect(response.body).toEqual(expectedResponse); + } - const response = await request('http://localhost:4001') - .post(process.env.APOLLO_PATH) - .send({ query }); - expect(response.body).toEqual(expectedFileContentResponse); + async function GraphQLQuery( + query: DocumentNode, + expectedResponse: unknown, + ): Promise { + const { data } = await client.query({ query }); + expect({ data }).toEqual(expectedResponse); + } + it('should return the directory contents requested with HTTP POST query', async () => { + await HTTPQuery(e2elistDirectory, expectedListDirectoryResponse); }, 10000); -}); - -/* - describe("End to End test for the application", () => { - it("should return the filename corresponding to the directory given in the query through the Traefik gateway", async () => { - const query = e2elistDirectory; - - const response = await request("http://localhost") - .post("/lib") - .send({ query }); - - response; - expect(response.body).toEqual(expectedListDirectoryResponse); - }, 10000); - it("should return the content of a file given in the query through the Traefik gateway", async () => { - const query = e2eReadFile; + it('should return the file content requested with HTTP POST query', async () => { + await HTTPQuery(e2eReadFile, expectedFileContentResponse); + }, 10000); - const response = await request("http://localhost") - .post("/lib") - .send({ query }); + it('should return the directory contents requested with GraphQL query', async () => { + await GraphQLQuery(gql(e2elistDirectory), expectedListDirectoryResponse); + }, 10000); - response; - expect(response.body).toEqual(expectedFileContentResponse); - }, 10000); - }); -} -*/ + it('should return the file content requested with GraphQL query', async () => { + await GraphQLQuery(gql(e2eReadFile), expectedFileContentResponse); + }, 10000); +}); diff --git a/servers/lib/test/integration/files.service.integration.spec.ts b/servers/lib/test/integration/files.service.integration.spec.ts index d174eea19..4ad727b29 100644 --- a/servers/lib/test/integration/files.service.integration.spec.ts +++ b/servers/lib/test/integration/files.service.integration.spec.ts @@ -3,7 +3,6 @@ import { ConfigService } from '@nestjs/config'; import FilesResolver from '../../src/files/resolvers/files.resolver'; import FilesServiceFactory from '../../src/files/services/files-service.factory'; import LocalFilesService from '../../src/files/services/local-files.service'; -import GitlabFilesService from '../../src/files/services/gitlab-files.service'; import { pathToTestDirectory, pathToTestFileContent, @@ -23,7 +22,6 @@ describe('Integration tests for FilesResolver', () => { FilesResolver, FilesServiceFactory, LocalFilesService, - GitlabFilesService, { provide: ConfigService, useClass: MockConfigService }, ], }).compile(); @@ -35,7 +33,7 @@ describe('Integration tests for FilesResolver', () => { jest.clearAllMocks(); }); - const modes = ['local', 'gitlab']; + const modes = ['local']; // eslint-disable-next-line no-restricted-syntax for (const mode of modes) { diff --git a/servers/lib/test/starttraefik.bash b/servers/lib/test/starttraefik.bash deleted file mode 100755 index d966c4e90..000000000 --- a/servers/lib/test/starttraefik.bash +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -echo "Starting the Traefik gateway" -cd ../../servers/config/gateway || exit 1 -docker run -d \ - --name "traefik-gateway" \ - --network=host -v "$PWD/traefik.yml":/etc/traefik/traefik.yml \ - -v "$PWD/dynamic":/etc/traefik/dynamic \ - -v /var/run/docker.sock:/var/run/docker.sock \ - --restart always \ - traefik:v2.10 \ No newline at end of file diff --git a/servers/lib/test/stoptraefik.bash b/servers/lib/test/stoptraefik.bash deleted file mode 100755 index f9625ccba..000000000 --- a/servers/lib/test/stoptraefik.bash +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -cd ../../servers/config/gateway || exit 1 - -echo "Stopping the Traefik gateway" -docker stop traefik-gateway - -echo "Removing the Traefik gateway container" -docker rm traefik-gateway \ No newline at end of file diff --git a/servers/lib/test/testUtil.ts b/servers/lib/test/testUtil.ts index 4376f2aec..53694b238 100644 --- a/servers/lib/test/testUtil.ts +++ b/servers/lib/test/testUtil.ts @@ -57,18 +57,9 @@ export class MockConfigService { // eslint-disable-next-line class-methods-use-this get(key: string): string { switch (key) { - case 'TOKEN': - return process.env.TOKEN; case 'LOCAL_PATH': - return process.env.TEST_PATH; - case 'GITLAB_URL': - return process.env.GITLAB_URL; - case 'GITLAB_GROUP': - return 'dtaas'; + return process.env.LOCAL_PATH; case 'MODE': - if (process.env.MODE === 'gitlab') { - return 'gitlab'; - } if (process.env.MODE === 'local') { return 'local'; } diff --git a/servers/lib/test/unit/files-service.factory.unit.spec.ts b/servers/lib/test/unit/files-service.factory.unit.spec.ts index 7759f9818..743aadd9c 100644 --- a/servers/lib/test/unit/files-service.factory.unit.spec.ts +++ b/servers/lib/test/unit/files-service.factory.unit.spec.ts @@ -3,25 +3,21 @@ import { Test, TestingModule } from '@nestjs/testing'; import { ConfigService } from '@nestjs/config'; import FilesServiceFactory from '../../src/files/services/files-service.factory'; import LocalFilesService from '../../src/files/services/local-files.service'; -import GitlabFilesService from '../../src/files/services/gitlab-files.service'; import { IFilesService } from '../../src/files/interfaces/files.service.interface'; describe('FilesServiceFactory', () => { let serviceFactory: FilesServiceFactory; let configService: ConfigService; let localFilesService: IFilesService; - let gitlabFilesService: IFilesService; beforeEach(async () => { localFilesService = new LocalFilesService(configService as ConfigService); - gitlabFilesService = new GitlabFilesService(configService as ConfigService); const module: TestingModule = await Test.createTestingModule({ providers: [ FilesServiceFactory, { provide: ConfigService, useValue: { get: jest.fn() } }, { provide: LocalFilesService, useValue: localFilesService }, - { provide: GitlabFilesService, useValue: gitlabFilesService }, ], }).compile(); @@ -34,11 +30,6 @@ describe('FilesServiceFactory', () => { expect(serviceFactory.create()).toBe(localFilesService); }); - it('should create a gitlab files service when MODE is gitlab', () => { - jest.spyOn(configService, 'get').mockReturnValue('gitlab'); - expect(serviceFactory.create()).toBe(gitlabFilesService); - }); - it('should throw an error when MODE is invalid', () => { jest.spyOn(configService, 'get').mockReturnValue('invalid'); expect(() => serviceFactory.create()).toThrowError(`Invalid MODE: invalid`); diff --git a/servers/lib/test/unit/gitlab-files.service.unit.spec.ts b/servers/lib/test/unit/gitlab-files.service.unit.spec.ts deleted file mode 100644 index f26a9712a..000000000 --- a/servers/lib/test/unit/gitlab-files.service.unit.spec.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { ConfigService } from '@nestjs/config'; -import axios from 'axios'; -import GitlabFilesService from '../../src/files/services/gitlab-files.service'; -import { - pathToTestFileContent, - testFileContent, - MockConfigService, - testDirectory, -} from '../testUtil'; - -describe('GitlabFilesService', () => { - let filesService: GitlabFilesService; - const mockConfigService = new MockConfigService(); - jest.mock('axios'); - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [ - GitlabFilesService, - { provide: ConfigService, useValue: mockConfigService }, - ], - }) - .overrideProvider(ConfigService) - .useValue(mockConfigService) - .compile(); - - filesService = module.get(GitlabFilesService); - }); - - it('should list directory', async () => { - jest.spyOn(axios, 'post').mockResolvedValue({ data: testDirectory }); - - const result = await filesService.listDirectory('user2'); - expect(result).toEqual(testDirectory); - }); - - it('should read file', async () => { - jest - .spyOn(axios, 'post') - .mockResolvedValue({ data: { data: testFileContent } }); - - const result = await filesService.readFile(pathToTestFileContent); - expect(result).toEqual(testFileContent); - }); -}); diff --git a/servers/lib/yarn.lock b/servers/lib/yarn.lock index 887923444..7552024be 100644 --- a/servers/lib/yarn.lock +++ b/servers/lib/yarn.lock @@ -26,27 +26,27 @@ rxjs "7.8.1" source-map "0.7.4" -"@angular-devkit/core@16.2.3": - version "16.2.3" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-16.2.3.tgz#fb91857cbd1d8462d1c7746d6961bc020826e283" - integrity sha512-oZLdg2XTx7likYAXRj1CU0XmrsCfe5f2grj3iwuI3OB1LXwwpdbHBztruj03y3yHES+TnO+dIbkvRnvMXs7uAA== +"@angular-devkit/core@17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-17.0.9.tgz#f79ff77fc38e8af1af4694acfb5b480339f073e1" + integrity sha512-r5jqwpWOgowqe9KSDqJ3iSbmsEt2XPjSvRG4DSI2T9s31bReoMtreo8b7wkRa2B3hbcDnstFbn8q27VvJDqRaQ== dependencies: ajv "8.12.0" ajv-formats "2.1.1" jsonc-parser "3.2.0" - picomatch "2.3.1" + picomatch "3.0.1" rxjs "7.8.1" source-map "0.7.4" -"@angular-devkit/schematics-cli@16.2.3": - version "16.2.3" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics-cli/-/schematics-cli-16.2.3.tgz#7239aa8eb446087cd2d4b4606982a0f5a7449808" - integrity sha512-5YQCbQmY9Kc03a9Io4XHOrxGXjnzcVveUuUO64R1m5x2aA5I+mVR8NVvxuoGRAeoI1FWusAKRe9hH8nRCLrelA== +"@angular-devkit/schematics-cli@17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics-cli/-/schematics-cli-17.0.9.tgz#6ee0ac81b37cab50e60b49a0541508552a75ab7f" + integrity sha512-tznzzB26sy8jVUlV9HhXcbFYZcIIFMAiDMOuyLko2LZFjfoqW+OPvwa1mwAQwvVVSQZVAKvdndFhzwyl/axwFQ== dependencies: - "@angular-devkit/core" "16.2.3" - "@angular-devkit/schematics" "16.2.3" + "@angular-devkit/core" "17.0.9" + "@angular-devkit/schematics" "17.0.9" ansi-colors "4.1.3" - inquirer "8.2.4" + inquirer "9.2.11" symbol-observable "4.0.0" yargs-parser "21.1.1" @@ -61,14 +61,14 @@ ora "5.4.1" rxjs "7.8.1" -"@angular-devkit/schematics@16.2.3": - version "16.2.3" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-16.2.3.tgz#8f2738724d2a10590bad1b80e8fcfbebffe848cb" - integrity sha512-+lBiHxi/C9HCfiCbtW25DldwvJDXXXv5oWw+Tg4s18BO/lYZLveGUEaZWu9ZJ5VIJ8GliUi2LohxhDxBkh4Oxg== +"@angular-devkit/schematics@17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-17.0.9.tgz#8370d21cf0ac0f5f99b7a27fcf626cc5cd682c95" + integrity sha512-5ti7g45F2KjDJS0DbgnOGI1GyKxGpn4XsKTYJFJrSAWj6VpuvPy/DINRrXNuRVo09VPEkqA+IW7QwaG9icptQg== dependencies: - "@angular-devkit/core" "16.2.3" + "@angular-devkit/core" "17.0.9" jsonc-parser "3.2.0" - magic-string "0.30.1" + magic-string "0.30.5" ora "5.4.1" rxjs "7.8.1" @@ -77,18 +77,17 @@ resolved "https://registry.yarnpkg.com/@apollo/cache-control-types/-/cache-control-types-1.0.3.tgz#5da62cf64c3b4419dabfef4536b57a40c8ff0b47" integrity sha512-F17/vCp7QVwom9eG7ToauIKdAxpSoadsJnqIfyryLFSkLSOEqu+eC5Z3N8OXcUVStuOMcNHlyraRsA6rRICu4g== -"@apollo/client@^3.8.4": - version "3.8.6" - resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.8.6.tgz#d90f2a9b0147d8fc96c7a867588b5b2165cc4085" - integrity sha512-FnHg3vhQP8tQzgBs6oTJCFFIbovelDGYujj6MK7CJneiHf62TJstCIO0Ot4A1h7XrgFEtgl8a/OgajQWqrTuYw== +"@apollo/client@^3.8.9": + version "3.8.9" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.8.9.tgz#0e4ac133eb04c63e618138c1ebf273d9f110a4d0" + integrity sha512-IcQDFEEPc9+PEQsxhxQvsoQ04BRarOzi/Ila5PcniRSDeKJWgY22dnp6+V1i1fWXRDVd1ybdvze4sFESDVQUCQ== dependencies: "@graphql-typed-document-node/core" "^3.1.1" - "@wry/context" "^0.7.3" "@wry/equality" "^0.5.6" - "@wry/trie" "^0.4.3" + "@wry/trie" "^0.5.0" graphql-tag "^2.12.6" hoist-non-react-statics "^3.3.2" - optimism "^0.17.5" + optimism "^0.18.0" prop-types "^15.7.2" response-iterator "^0.2.6" symbol-observable "^4.0.0" @@ -131,10 +130,10 @@ dependencies: "@apollographql/graphql-playground-html" "1.6.29" -"@apollo/server@^4.9.3": - version "4.9.4" - resolved "https://registry.yarnpkg.com/@apollo/server/-/server-4.9.4.tgz#fde57e984beef1b2962354a492d3bca072c1067c" - integrity sha512-lopNDM3sZerTcYH/P85QX5HqSNV4HoVbtX3zOrf0ak7eplhPDiGVyF0jQWRbL64znG6KXW+nMuLDTyFTMQnvgA== +"@apollo/server@^4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@apollo/server/-/server-4.10.0.tgz#fd3c003149b0774903c15a0cfef38e20d05aa096" + integrity sha512-pLx//lZ/pvUfWL9G8Np8+y3ujc0pYc8U7dwD6ztt9FAw8NmCPzPaDzlXLBAjGU6WnkqVBOnz8b3dOwRNjLYSUA== dependencies: "@apollo/cache-control-types" "^1.0.3" "@apollo/server-gateway-interface" "^1.1.1" @@ -152,7 +151,6 @@ "@types/express-serve-static-core" "^4.17.30" "@types/node-fetch" "^2.6.1" async-retry "^1.2.1" - body-parser "^1.20.0" cors "^2.8.5" express "^4.17.1" loglevel "^1.6.8" @@ -563,10 +561,10 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.9.1.tgz#449dfa81a57a1d755b09aa58d826c1262e4283b4" integrity sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA== -"@eslint/eslintrc@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" - integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -578,10 +576,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.51.0": - version "8.51.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.51.0.tgz#6d419c240cfb2b66da37df230f7e7eef801c32fa" - integrity sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg== +"@eslint/js@8.56.0": + version "8.56.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" + integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== "@graphql-tools/merge@9.0.0", "@graphql-tools/merge@^9.0.0": version "9.0.0" @@ -619,12 +617,13 @@ tslib "^2.4.0" value-or-promise "^1.0.12" -"@graphql-tools/utils@10.0.6": - version "10.0.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-10.0.6.tgz#8a809d6bc0df27ffe8964696f182af2383b5974b" - integrity sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ== +"@graphql-tools/utils@10.0.8": + version "10.0.8" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-10.0.8.tgz#c7b84275ec83dc42ad9f3d4ffc424ff682075759" + integrity sha512-yjyA8ycSa1WRlJqyX/aLqXeE5DvF/H02+zXMUFnCzIDrj0UvLMUrxhmVFnMK0Q2n3bh4uuTeY3621m5za9ovXw== dependencies: "@graphql-typed-document-node/core" "^3.1.1" + cross-inspect "1.0.0" dset "^3.1.2" tslib "^2.4.0" @@ -650,13 +649,13 @@ resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== -"@humanwhocodes/config-array@^0.11.11": - version "0.11.11" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" - integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== +"@humanwhocodes/config-array@^0.11.13": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": @@ -664,10 +663,22 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -930,53 +941,60 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@ljharb/through@^2.3.9": + version "2.3.11" + resolved "https://registry.yarnpkg.com/@ljharb/through/-/through-2.3.11.tgz#783600ff12c06f21a76cc26e33abd0b1595092f9" + integrity sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w== + dependencies: + call-bind "^1.0.2" + "@lukeed/csprng@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@lukeed/csprng/-/csprng-1.1.0.tgz#1e3e4bd05c1cc7a0b2ddbd8a03f39f6e4b5e6cfe" integrity sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA== -"@nestjs/apollo@^12.0.9": - version "12.0.9" - resolved "https://registry.yarnpkg.com/@nestjs/apollo/-/apollo-12.0.9.tgz#f346ac28bd5e4711f6007a1e8301d8eca77e82cc" - integrity sha512-aAo+FzmLNQdAZVYkJu4Jnhx4QWp3RalfuFe9vH644ap/ao79FhWR/YKA0N+Zr1RTLKjtl7/PUm4N6z2a8G2LbQ== +"@nestjs/apollo@^12.0.11": + version "12.0.11" + resolved "https://registry.yarnpkg.com/@nestjs/apollo/-/apollo-12.0.11.tgz#1d6d1dcae990ebd2c61458802518c84a0693fc43" + integrity sha512-E8kBOyGBZ8Zx4qMLnK3+ECZgmLKqNHyYbtkOi0fXWr8ackosLMkRqGgtDVffXRlVA3eo6G3RgnL0Qyu3VvfD5A== dependencies: "@apollo/server-plugin-landing-page-graphql-playground" "4.0.0" iterall "1.3.0" lodash.omit "4.5.0" tslib "2.6.2" -"@nestjs/cli@^10.1.18": - version "10.1.18" - resolved "https://registry.yarnpkg.com/@nestjs/cli/-/cli-10.1.18.tgz#7aa0099eea5fe60787eb822f9a8a6d47e22d0123" - integrity sha512-jQtG47keLsACt7b4YwJbTBYRm90n82gJpMaiR1HGAyQ9pccbctjSYu592eT4bxqkUWxPgBE3mpNynXj7dWAfrw== +"@nestjs/cli@^10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@nestjs/cli/-/cli-10.3.0.tgz#5f9ef49a60baf4b39cb87e4b74240f7c9339e923" + integrity sha512-37h+wSDItY0NE/x3a/M9yb2cXzfsD4qoE26rHgFn592XXLelDN12wdnfn7dTIaiRZT7WOCdQ+BYP9mQikR4AsA== dependencies: - "@angular-devkit/core" "16.2.3" - "@angular-devkit/schematics" "16.2.3" - "@angular-devkit/schematics-cli" "16.2.3" + "@angular-devkit/core" "17.0.9" + "@angular-devkit/schematics" "17.0.9" + "@angular-devkit/schematics-cli" "17.0.9" "@nestjs/schematics" "^10.0.1" chalk "4.1.2" chokidar "3.5.3" cli-table3 "0.6.3" commander "4.1.1" - fork-ts-checker-webpack-plugin "8.0.0" + fork-ts-checker-webpack-plugin "9.0.2" + glob "10.3.10" inquirer "8.2.6" node-emoji "1.11.0" ora "5.4.1" - os-name "4.0.1" rimraf "4.4.1" shelljs "0.8.5" source-map-support "0.5.21" tree-kill "1.2.2" tsconfig-paths "4.2.0" tsconfig-paths-webpack-plugin "4.1.0" - typescript "5.2.2" - webpack "5.88.2" + typescript "5.3.3" + webpack "5.89.0" webpack-node-externals "3.0.0" -"@nestjs/common@^10.2.6": - version "10.2.7" - resolved "https://registry.yarnpkg.com/@nestjs/common/-/common-10.2.7.tgz#339db2efa33d3822dd81d2993bd44b538a7451b6" - integrity sha512-cUtCRXiUstDmh4bSBhVbq4cI439Gngp4LgLGLBmd5dqFQodfXKnSD441ldYfFiLz4rbUsnoMJz/8ZjuIEI+B7A== +"@nestjs/common@^10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@nestjs/common/-/common-10.3.0.tgz#d78f0ff2062d1d53c79c170a79c12a1548e2e598" + integrity sha512-DGv34UHsZBxCM3H5QGE2XE/+oLJzz5+714JQjBhjD9VccFlQs3LRxo/epso4l7nJIiNlZkPyIUC8WzfU/5RTsQ== dependencies: uid "2.0.2" iterare "1.2.1" @@ -992,10 +1010,10 @@ lodash "4.17.21" uuid "9.0.0" -"@nestjs/core@^10.2.6": - version "10.2.7" - resolved "https://registry.yarnpkg.com/@nestjs/core/-/core-10.2.7.tgz#26ca5cc63504b54a08c4cdc6da9300c9b8904fde" - integrity sha512-5GSu53QUUcwX17sNmlJPa1I0wIeAZOKbedyVuQx0ZAwWVa9g0wJBbsNP+R4EJ+j5Dkdzt/8xkiZvnKt8RFRR8g== +"@nestjs/core@^10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@nestjs/core/-/core-10.3.0.tgz#d5c6b26d6d9280664910d5481153d25c5da4ec00" + integrity sha512-N06P5ncknW/Pm8bj964WvLIZn2gNhHliCBoAO1LeBvNImYkecqKcrmLbY49Fa1rmMfEM3MuBHeDys3edeuYAOA== dependencies: uid "2.0.2" "@nuxtjs/opencollective" "0.3.2" @@ -1004,35 +1022,35 @@ path-to-regexp "3.2.0" tslib "2.6.2" -"@nestjs/graphql@^12.0.9": - version "12.0.9" - resolved "https://registry.yarnpkg.com/@nestjs/graphql/-/graphql-12.0.9.tgz#01d85e6033c32d5e942bda70ae79288e76969198" - integrity sha512-A5oRD5GMwzaNZum06KSxKtqhC7LvS4p7v0hLGzvNWPuLrBjAjAnm/2NV8IV8lYiJXpPHNtSnnekZH9uvy/hZlw== +"@nestjs/graphql@^12.0.11": + version "12.0.11" + resolved "https://registry.yarnpkg.com/@nestjs/graphql/-/graphql-12.0.11.tgz#8ea2324f529828b5f8202850cbb7ac8cd51925e0" + integrity sha512-iCyVs9+utCQt9ehMhUjQcEdjRN/MrcTBINd7P44O1fzGENuWMbt1Z8RCoZbeGi5iVPBY63HgYik+BnnICqmxZw== dependencies: "@graphql-tools/merge" "9.0.0" "@graphql-tools/schema" "10.0.0" - "@graphql-tools/utils" "10.0.6" + "@graphql-tools/utils" "10.0.8" "@nestjs/mapped-types" "2.0.2" chokidar "3.5.3" - fast-glob "3.3.1" + fast-glob "3.3.2" graphql-tag "2.12.6" - graphql-ws "5.14.0" + graphql-ws "5.14.2" lodash "4.17.21" normalize-path "3.0.0" subscriptions-transport-ws "0.11.0" tslib "2.6.2" - uuid "9.0.0" - ws "8.13.0" + uuid "9.0.1" + ws "8.14.2" "@nestjs/mapped-types@2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@nestjs/mapped-types/-/mapped-types-2.0.2.tgz#c8a090a8d22145b85ed977414c158534210f2e4f" integrity sha512-V0izw6tWs6fTp9+KiiPUbGHWALy563Frn8X6Bm87ANLRuE46iuBMD5acKBDP5lKL/75QFvrzSJT7HkCbB0jTpg== -"@nestjs/platform-express@^10.2.6": - version "10.2.7" - resolved "https://registry.yarnpkg.com/@nestjs/platform-express/-/platform-express-10.2.7.tgz#b2ef2df01c0c757a3d356659460563a5246e7d0f" - integrity sha512-p+kp6aJtkgAdVpUrCVmM6MKtOvjsbt7QofBiZMidjYesZkMeG5gZ1D2SK8XzvQ8VXHJfFgEdY2xcKGB+wJLOYQ== +"@nestjs/platform-express@^10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@nestjs/platform-express/-/platform-express-10.3.0.tgz#ea69b048ef90b78b1001eb1c6b02d9d798f5f3af" + integrity sha512-E4hUW48bYv8OHbP9XQg6deefmXb0pDSSuE38SdhA0mJ37zGY7C5EqqBUdlQk4ttfD+OdnbIgJ1zOokT6dd2d7A== dependencies: body-parser "1.20.2" cors "2.8.5" @@ -1040,7 +1058,7 @@ multer "1.4.4-lts.1" tslib "2.6.2" -"@nestjs/schematics@^10.0.1", "@nestjs/schematics@^10.0.2": +"@nestjs/schematics@^10.0.1": version "10.0.2" resolved "https://registry.yarnpkg.com/@nestjs/schematics/-/schematics-10.0.2.tgz#d782ac1a6e9372d2f7ede1e2077c3a7484714923" integrity sha512-DaZZjymYoIfRqC5W62lnYXIIods1PDY6CGc8+IpRwyinzffjKxZ3DF3exu+mdyvllzkXo9DTXkoX4zOPSJHCkw== @@ -1051,10 +1069,21 @@ jsonc-parser "3.2.0" pluralize "8.0.0" -"@nestjs/testing@^10.2.6": - version "10.2.7" - resolved "https://registry.yarnpkg.com/@nestjs/testing/-/testing-10.2.7.tgz#50408ccb4c809d216a12d60ac7932fd6ad7fedf4" - integrity sha512-d2SIqiJIf/7NSILeNNWSdRvTTpHSouGgisGHwf5PVDC7z4/yXZw/wPO9eJhegnxFlqk6n2LW4QBTmMzbqjAfHA== +"@nestjs/schematics@^10.1.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/@nestjs/schematics/-/schematics-10.1.0.tgz#bf9be846bafad0f45f0ea5ed80aaaf971bb90873" + integrity sha512-HQWvD3F7O0Sv3qHS2jineWxPLmBTLlyjT6VdSw2EAIXulitmV+ErxB3TCVQQORlNkl5p5cwRYWyBaOblDbNFIQ== + dependencies: + "@angular-devkit/core" "17.0.9" + "@angular-devkit/schematics" "17.0.9" + comment-json "4.2.3" + jsonc-parser "3.2.0" + pluralize "8.0.0" + +"@nestjs/testing@^10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@nestjs/testing/-/testing-10.3.0.tgz#a4de362de88f855ddee5ed6f5cc25bd6aaf4c4c3" + integrity sha512-8DM+bw1qASCvaEnoHUQhypCOf54+G5R21MeFBMvnSk5DtKaWVZuzDP2GjLeYCpTH19WeP6LrrjHv3rX2LKU02A== dependencies: tslib "2.6.2" @@ -1088,17 +1117,15 @@ consola "^2.15.0" node-fetch "^2.6.1" -"@pkgr/utils@^2.3.1": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" - integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== - dependencies: - cross-spawn "^7.0.3" - fast-glob "^3.3.0" - is-glob "^4.0.3" - open "^9.1.0" - picocolors "^1.0.0" - tslib "^2.6.0" +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@pkgr/core@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" @@ -1266,7 +1293,17 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.2.tgz#ff02bc3dc8317cd668dfec247b750ba1f1d62453" integrity sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA== -"@types/express-serve-static-core@^4.17.30", "@types/express-serve-static-core@^4.17.33": +"@types/express-serve-static-core@^4.17.30": + version "4.17.41" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz#5077defa630c2e8d28aa9ffc2c01c157c305bef6" + integrity sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express-serve-static-core@^4.17.33": version "4.17.37" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.37.tgz#7e4b7b59da9142138a2aaa7621f5abedce8c7320" integrity sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg== @@ -1276,10 +1313,10 @@ "@types/range-parser" "*" "@types/send" "*" -"@types/express@^4.17.13", "@types/express@^4.17.18": - version "4.17.19" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.19.tgz#6ff9b4851fda132c5d3dcd2f89fdb6a7a0031ced" - integrity sha512-UtOfBtzN9OvpZPPbnnYunfjM7XCI4jyk1NvnFhTVz5krYAnW4o5DCoIekvms+8ApqhB4+9wSge1kBijdfTSmfg== +"@types/express@^4.17.13", "@types/express@^4.17.21": + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.33" @@ -1317,10 +1354,10 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^29.5.5": - version "29.5.5" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.5.tgz#727204e06228fe24373df9bae76b90f3e8236a2a" - integrity sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg== +"@types/jest@^29.5.11": + version "29.5.11" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.11.tgz#0c13aa0da7d0929f078ab080ae5d4ced80fa2f2c" + integrity sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -1351,9 +1388,9 @@ integrity sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg== "@types/node-fetch@^2.6.1": - version "2.6.6" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.6.tgz#b72f3f4bc0c0afee1c0bc9cff68e041d01e3e779" - integrity sha512-95X8guJYhfqiuVVhRFxVQcf4hW/2bCuoPwDasMf/531STFoNoWTT7YDnWdXHEZKqAGUigmpG31r2FE70LwnzJw== + version "2.6.10" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.10.tgz#ff5c1ceacab782f2b7ce69957d38c1c27b0dc469" + integrity sha512-PPpPK6F9ALFTn59Ka3BaL+qGuipRfxNE8qVgkp0bVixeiR2c2/L+IVOiBdu9JhhT22sWnQEp6YyHGI2b2+CMcA== dependencies: "@types/node" "*" form-data "^4.0.0" @@ -1365,15 +1402,12 @@ dependencies: undici-types "~5.25.1" -"@types/node@20.7.2": - version "20.7.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.7.2.tgz#0bdc211f8c2438cfadad26dc8c040a874d478aed" - integrity sha512-RcdC3hOBOauLP+r/kRt27NrByYtDjsXyAuSbR87O6xpsvi763WI+5fbSIvYJrXnt9w4RuxhV6eAXfIs7aaf/FQ== - -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== +"@types/node@20.11.4": + version "20.11.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.4.tgz#c724a5d6723182af758b91b994209336f4439cb7" + integrity sha512-6I0fMH8Aoy2lOejL3s4LhyIYX34DPwY8bl5xlNjBvUEk8OHrcuzsFt+Ied4LvJihbtXPM+8zUqdydfIti86v9g== + dependencies: + undici-types "~5.26.4" "@types/qs@*": version "6.9.8" @@ -1439,16 +1473,16 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^6.7.3": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.8.0.tgz#06abe4265e7c82f20ade2dcc0e3403c32d4f148b" - integrity sha512-GosF4238Tkes2SHPQ1i8f6rMtG6zlKwMEB0abqSJ3Npvos+doIlc/ATG+vX1G9coDF3Ex78zM3heXHLyWEwLUw== +"@typescript-eslint/eslint-plugin@^6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz#db03f3313b57a30fbbdad2e6929e88fc7feaf9ba" + integrity sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.8.0" - "@typescript-eslint/type-utils" "6.8.0" - "@typescript-eslint/utils" "6.8.0" - "@typescript-eslint/visitor-keys" "6.8.0" + "@typescript-eslint/scope-manager" "6.19.0" + "@typescript-eslint/type-utils" "6.19.0" + "@typescript-eslint/utils" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -1456,15 +1490,15 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.7.3": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.8.0.tgz#bb2a969d583db242f1ee64467542f8b05c2e28cb" - integrity sha512-5tNs6Bw0j6BdWuP8Fx+VH4G9fEPDxnVI7yH1IAPkQH5RUtvKwRoqdecAPdQXv4rSOADAaz1LFBZvZG7VbXivSg== +"@typescript-eslint/parser@^6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.19.0.tgz#80344086f362181890ade7e94fc35fe0480bfdf5" + integrity sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow== dependencies: - "@typescript-eslint/scope-manager" "6.8.0" - "@typescript-eslint/types" "6.8.0" - "@typescript-eslint/typescript-estree" "6.8.0" - "@typescript-eslint/visitor-keys" "6.8.0" + "@typescript-eslint/scope-manager" "6.19.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/typescript-estree" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" debug "^4.3.4" "@typescript-eslint/scope-manager@5.62.0": @@ -1475,21 +1509,21 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/scope-manager@6.8.0": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.8.0.tgz#5cac7977385cde068ab30686889dd59879811efd" - integrity sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g== +"@typescript-eslint/scope-manager@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz#b6d2abb825b29ab70cb542d220e40c61c1678116" + integrity sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ== dependencies: - "@typescript-eslint/types" "6.8.0" - "@typescript-eslint/visitor-keys" "6.8.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" -"@typescript-eslint/type-utils@6.8.0": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.8.0.tgz#50365e44918ca0fd159844b5d6ea96789731e11f" - integrity sha512-RYOJdlkTJIXW7GSldUIHqc/Hkto8E+fZN96dMIFhuTJcQwdRoGN2rEWA8U6oXbLo0qufH7NPElUb+MceHtz54g== +"@typescript-eslint/type-utils@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz#522a494ef0d3e9fdc5e23a7c22c9331bbade0101" + integrity sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w== dependencies: - "@typescript-eslint/typescript-estree" "6.8.0" - "@typescript-eslint/utils" "6.8.0" + "@typescript-eslint/typescript-estree" "6.19.0" + "@typescript-eslint/utils" "6.19.0" debug "^4.3.4" ts-api-utils "^1.0.1" @@ -1498,10 +1532,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== -"@typescript-eslint/types@6.8.0": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.8.0.tgz#1ab5d4fe1d613e3f65f6684026ade6b94f7e3ded" - integrity sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ== +"@typescript-eslint/types@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.19.0.tgz#689b0498c436272a6a2059b09f44bcbd90de294a" + integrity sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A== "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" @@ -1516,30 +1550,31 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@6.8.0": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.8.0.tgz#9565f15e0cd12f55cf5aa0dfb130a6cb0d436ba1" - integrity sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg== +"@typescript-eslint/typescript-estree@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz#0813ba364a409afb4d62348aec0202600cb468fa" + integrity sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ== dependencies: - "@typescript-eslint/types" "6.8.0" - "@typescript-eslint/visitor-keys" "6.8.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" + minimatch "9.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.8.0": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.8.0.tgz#d42939c2074c6b59844d0982ce26a51d136c4029" - integrity sha512-dKs1itdE2qFG4jr0dlYLQVppqTE+Itt7GmIf/vX6CSvsW+3ov8PbWauVKyyfNngokhIO9sKZeRGCUo1+N7U98Q== +"@typescript-eslint/utils@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.19.0.tgz#557b72c3eeb4f73bef8037c85dae57b21beb1a4b" + integrity sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.8.0" - "@typescript-eslint/types" "6.8.0" - "@typescript-eslint/typescript-estree" "6.8.0" + "@typescript-eslint/scope-manager" "6.19.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/typescript-estree" "6.19.0" semver "^7.5.4" "@typescript-eslint/utils@^5.10.0": @@ -1564,14 +1599,19 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@6.8.0": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.8.0.tgz#cffebed56ae99c45eba901c378a6447b06be58b8" - integrity sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg== +"@typescript-eslint/visitor-keys@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz#4565e0ecd63ca1f81b96f1dd76e49f746c6b2b49" + integrity sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ== dependencies: - "@typescript-eslint/types" "6.8.0" + "@typescript-eslint/types" "6.19.0" eslint-visitor-keys "^3.4.1" +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" @@ -1693,17 +1733,24 @@ "@webassemblyjs/ast" "1.11.6" "@xtuc/long" "4.2.2" -"@wry/context@^0.7.0", "@wry/context@^0.7.3": - version "0.7.3" - resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.3.tgz#240f6dfd4db5ef54f81f6597f6714e58d4f476a1" - integrity sha512-Nl8WTesHp89RF803Se9X3IiHjdmLBrIvPMaJkl+rKVJAYyPsz1TEUbu89943HpvujtSJgDUx9W4vZw3K1Mr3sA== +"@wry/caches@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@wry/caches/-/caches-1.0.1.tgz#8641fd3b6e09230b86ce8b93558d44cf1ece7e52" + integrity sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA== + dependencies: + tslib "^2.3.0" + +"@wry/context@^0.7.0": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.4.tgz#e32d750fa075955c4ab2cfb8c48095e1d42d5990" + integrity sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ== dependencies: tslib "^2.3.0" "@wry/equality@^0.5.6": - version "0.5.6" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.6.tgz#cd4a533c72c3752993ab8cbf682d3d20e3cb601e" - integrity sha512-D46sfMTngaYlrH+OspKf8mIJETntFnf6Hsjb0V41jAXJ7Bx2kB8Rv8RCUujuVWYttFtHkUNp7g+FwxNQAr6mXA== + version "0.5.7" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.7.tgz#72ec1a73760943d439d56b7b1e9985aec5d497bb" + integrity sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw== dependencies: tslib "^2.3.0" @@ -1714,6 +1761,13 @@ dependencies: tslib "^2.3.0" +"@wry/trie@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.5.0.tgz#11e783f3a53f6e4cd1d42d2d1323f5bc3fa99c94" + integrity sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA== + dependencies: + tslib "^2.3.0" + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -1789,7 +1843,7 @@ ansi-colors@4.1.3: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -ansi-escapes@^4.2.1: +ansi-escapes@^4.2.1, ansi-escapes@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -1801,6 +1855,11 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -1820,6 +1879,11 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -1863,7 +1927,7 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -array-includes@^3.1.6: +array-includes@^3.1.7: version "3.1.7" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== @@ -1884,7 +1948,7 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.findlastindex@^1.2.2: +array.prototype.findlastindex@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== @@ -1895,7 +1959,7 @@ array.prototype.findlastindex@^1.2.2: es-shim-unscopables "^1.0.0" get-intrinsic "^1.2.1" -array.prototype.flat@^1.3.1: +array.prototype.flat@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== @@ -1905,7 +1969,7 @@ array.prototype.flat@^1.3.1: es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.flatmap@^1.3.1: +array.prototype.flatmap@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== @@ -1950,15 +2014,6 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -axios@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.1.tgz#11fbaa11fc35f431193a9564109c88c1f27b585f" - integrity sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - babel-jest@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" @@ -2034,11 +2089,6 @@ base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -big-integer@^1.6.44: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -2071,7 +2121,7 @@ body-parser@1.20.1: type-is "~1.6.18" unpipe "1.0.0" -body-parser@1.20.2, body-parser@^1.20.0: +body-parser@1.20.2: version "1.20.2" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== @@ -2089,13 +2139,6 @@ body-parser@1.20.2, body-parser@^1.20.0: type-is "~1.6.18" unpipe "1.0.0" -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== - dependencies: - big-integer "^1.6.44" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2155,13 +2198,6 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== - dependencies: - run-applescript "^5.0.0" - busboy@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" @@ -2219,6 +2255,11 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -2285,6 +2326,11 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cli-width@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" + integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== + cliui@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" @@ -2441,16 +2487,15 @@ cors@2.8.5, cors@^2.8.5: object-assign "^4" vary "^1" -cosmiconfig@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" - integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== +cosmiconfig@^8.2.0: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" path-type "^4.0.0" - yaml "^1.10.0" create-jest@^29.7.0: version "29.7.0" @@ -2470,6 +2515,13 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +cross-inspect@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cross-inspect/-/cross-inspect-1.0.0.tgz#5fda1af759a148594d2d58394a9e21364f6849af" + integrity sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ== + dependencies: + tslib "^2.4.0" + cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -2498,7 +2550,7 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -2520,24 +2572,6 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -default-browser-id@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== - dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" - defaults@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" @@ -2554,11 +2588,6 @@ define-data-property@^1.0.1: gopd "^1.0.1" has-property-descriptors "^1.0.0" -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" @@ -2642,6 +2671,11 @@ dset@^3.1.2: resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.2.tgz#89c436ca6450398396dc6538ea00abc0c54cd45a" integrity sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q== +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -2662,18 +2696,16 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - enhanced-resolve@^5.15.0, enhanced-resolve@^5.7.0: version "5.15.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" @@ -2789,6 +2821,11 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + eslint-config-airbnb-base@^15.0.0: version "15.0.0" resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236" @@ -2799,12 +2836,12 @@ eslint-config-airbnb-base@^15.0.0: object.entries "^1.1.5" semver "^6.3.0" -eslint-config-prettier@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" - integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== +eslint-config-prettier@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== -eslint-import-resolver-node@^0.3.7: +eslint-import-resolver-node@^0.3.9: version "0.3.9" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== @@ -2820,43 +2857,43 @@ eslint-module-utils@^2.8.0: dependencies: debug "^3.2.7" -eslint-plugin-import@^2.28.1: - version "2.28.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz#63b8b5b3c409bfc75ebaf8fb206b07ab435482c4" - integrity sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A== +eslint-plugin-import@^2.29.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== dependencies: - array-includes "^3.1.6" - array.prototype.findlastindex "^1.2.2" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" + eslint-import-resolver-node "^0.3.9" eslint-module-utils "^2.8.0" - has "^1.0.3" - is-core-module "^2.13.0" + hasown "^2.0.0" + is-core-module "^2.13.1" is-glob "^4.0.3" minimatch "^3.1.2" - object.fromentries "^2.0.6" - object.groupby "^1.0.0" - object.values "^1.1.6" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" semver "^6.3.1" - tsconfig-paths "^3.14.2" + tsconfig-paths "^3.15.0" -eslint-plugin-jest@^27.4.0: - version "27.4.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.4.2.tgz#181d999ac67a9b6040db1d27935887cf5a2882ed" - integrity sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg== +eslint-plugin-jest@^27.6.3: + version "27.6.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.6.3.tgz#8acb8b1e45597fe1f4d4cf25163d90119efc12be" + integrity sha512-+YsJFVH6R+tOiO3gCJon5oqn4KWc+mDq2leudk8mrp8RFubLOo9CVyi3cib4L7XMpxExmkmBZQTPDYVBzgpgOA== dependencies: "@typescript-eslint/utils" "^5.10.0" -eslint-plugin-prettier@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz#a3b399f04378f79f066379f544e42d6b73f11515" - integrity sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg== +eslint-plugin-prettier@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" + integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== dependencies: prettier-linter-helpers "^1.0.0" - synckit "^0.8.5" + synckit "^0.8.6" eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" @@ -2879,18 +2916,19 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.50.0: - version "8.51.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.51.0.tgz#4a82dae60d209ac89a5cff1604fea978ba4950f3" - integrity sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA== +eslint@^8.56.0: + version "8.56.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.51.0" - "@humanwhocodes/config-array" "^0.11.11" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.56.0" + "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -2980,21 +3018,6 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@^4.0.2: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -3010,21 +3033,6 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" - integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -3041,7 +3049,7 @@ expect@^29.0.0, expect@^29.7.0: jest-message-util "^29.7.0" jest-util "^29.7.0" -express@4.18.2, express@^4.17.1, express@^4.18.2: +express@4.18.2, express@^4.17.1: version "4.18.2" resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== @@ -3078,7 +3086,7 @@ express@4.18.2, express@^4.17.1, express@^4.18.2: utils-merge "1.0.1" vary "~1.1.2" -external-editor@^3.0.3: +external-editor@^3.0.3, external-editor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== @@ -3097,7 +3105,18 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== -fast-glob@3.3.1, fast-glob@^3.2.9, fast-glob@^3.3.0: +fast-glob@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-glob@^3.2.9: version "3.3.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== @@ -3144,6 +3163,14 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" +figures@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-5.0.0.tgz#126cd055052dea699f8a54e8c9450e6ecfc44d5f" + integrity sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg== + dependencies: + escape-string-regexp "^5.0.0" + is-unicode-supported "^1.2.0" + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -3201,11 +3228,6 @@ flatted@^3.2.9: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -follow-redirects@^1.15.0: - version "1.15.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" - integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== - for-each@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" @@ -3213,15 +3235,23 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" -fork-ts-checker-webpack-plugin@8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz#dae45dfe7298aa5d553e2580096ced79b6179504" - integrity sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg== +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +fork-ts-checker-webpack-plugin@9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-9.0.2.tgz#c12c590957837eb02b02916902dcf3e675fd2b1e" + integrity sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg== dependencies: "@babel/code-frame" "^7.16.7" chalk "^4.1.2" chokidar "^3.5.3" - cosmiconfig "^7.0.1" + cosmiconfig "^8.2.0" deepmerge "^4.2.2" fs-extra "^10.0.0" memfs "^3.4.1" @@ -3284,7 +3314,7 @@ fsevents@^2.3.2, fsevents@~2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1: +function-bind@^1.1.1, function-bind@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== @@ -3329,14 +3359,7 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-stream@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0, get-stream@^6.0.1: +get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -3368,6 +3391,17 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== +glob@10.3.10: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + glob@^7.0.0, glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -3466,10 +3500,10 @@ graphql-tag@2.12.6, graphql-tag@^2.12.6: dependencies: tslib "^2.1.0" -graphql-ws@5.14.0: - version "5.14.0" - resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.14.0.tgz#766f249f3974fc2c48fae0d1fb20c2c4c79cd591" - integrity sha512-itrUTQZP/TgswR4GSSYuwWUzrE/w5GhbwM2GX3ic2U7aw33jgEsayfIlvaj7/GcIvZgNMzsPTrE5hqPuFUiE5g== +graphql-ws@5.14.2: + version "5.14.2" + resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.14.2.tgz#7db6f6138717a544d9480f0213f65f2841ed1c52" + integrity sha512-LycmCwhZ+Op2GlHz4BZDsUYHKRiiUz+3r9wbhBATMETNlORQJAaFlAgTFoeRh6xQoQegwYwIylVD1Qns9/DA3w== graphql@^16.8.1: version "16.8.1" @@ -3525,6 +3559,13 @@ has@^1.0.3: resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + hexoid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/hexoid/-/hexoid-1.0.0.tgz#ad10c6573fb907de23d9ec63a711267d9dc9bc18" @@ -3553,21 +3594,11 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -3585,7 +3616,7 @@ ignore@^5.2.0, ignore@^5.2.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== -import-fresh@^3.2.1: +import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -3619,27 +3650,6 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inquirer@8.2.4: - version "8.2.4" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" - integrity sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.21" - mute-stream "0.0.8" - ora "^5.4.1" - run-async "^2.4.0" - rxjs "^7.5.5" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - wrap-ansi "^7.0.0" - inquirer@8.2.6: version "8.2.6" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" @@ -3661,6 +3671,27 @@ inquirer@8.2.6: through "^2.3.6" wrap-ansi "^6.0.1" +inquirer@9.2.11: + version "9.2.11" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.2.11.tgz#e9003755c233a414fceda1891c23bd622cad4a95" + integrity sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g== + dependencies: + "@ljharb/through" "^2.3.9" + ansi-escapes "^4.3.2" + chalk "^5.3.0" + cli-cursor "^3.1.0" + cli-width "^4.1.0" + external-editor "^3.1.0" + figures "^5.0.0" + lodash "^4.17.21" + mute-stream "1.0.0" + ora "^5.4.1" + run-async "^3.0.0" + rxjs "^7.8.1" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wrap-ansi "^6.2.0" + internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" @@ -3728,6 +3759,13 @@ is-core-module@^2.13.0: dependencies: has "^1.0.3" +is-core-module@^2.13.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" @@ -3735,16 +3773,6 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3767,13 +3795,6 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" @@ -3821,11 +3842,6 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -3852,6 +3868,11 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-unicode-supported@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" + integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== + is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -3859,13 +3880,6 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" @@ -3944,6 +3958,15 @@ iterare@1.2.1: resolved "https://registry.yarnpkg.com/iterare/-/iterare-1.2.1.tgz#139c400ff7363690e33abffa33cbba8920f00042" integrity sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q== +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jest-changed-files@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" @@ -4484,7 +4507,7 @@ long@^4.0.0: resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== -loose-envify@^1.4.0: +loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -4515,11 +4538,6 @@ lru-cache@^7.10.1, lru-cache@^7.14.1: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.1.tgz#0a3be479df549cca0e5d693ac402ff19537a6b7a" integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== -macos-release@^2.5.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.5.1.tgz#bccac4a8f7b93163a8d163b8ebf385b3c5f55bf9" - integrity sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A== - magic-string@0.30.0: version "0.30.0" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.0.tgz#fd58a4748c5c4547338a424e90fa5dd17f4de529" @@ -4527,10 +4545,10 @@ magic-string@0.30.0: dependencies: "@jridgewell/sourcemap-codec" "^1.4.13" -magic-string@0.30.1: - version "0.30.1" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.1.tgz#ce5cd4b0a81a5d032bd69aab4522299b2166284d" - integrity sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA== +magic-string@0.30.5: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" @@ -4620,10 +4638,12 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== +minimatch@9.0.3, minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" @@ -4699,6 +4719,11 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== +mute-stream@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" + integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -4748,20 +4773,13 @@ normalize-path@3.0.0, normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-run-path@^4.0.0, npm-run-path@^4.0.1: +npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - object-assign@^4, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -4796,7 +4814,7 @@ object.entries@^1.1.5: define-properties "^1.2.0" es-abstract "^1.22.1" -object.fromentries@^2.0.6: +object.fromentries@^2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== @@ -4805,7 +4823,7 @@ object.fromentries@^2.0.6: define-properties "^1.2.0" es-abstract "^1.22.1" -object.groupby@^1.0.0: +object.groupby@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== @@ -4815,7 +4833,7 @@ object.groupby@^1.0.0: es-abstract "^1.22.1" get-intrinsic "^1.2.1" -object.values@^1.1.6: +object.values@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== @@ -4831,7 +4849,7 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -4845,28 +4863,12 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -open@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== - dependencies: - default-browser "^4.0.0" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^2.2.0" - -optimism@^0.17.5: - version "0.17.5" - resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.17.5.tgz#a4c78b3ad12c58623abedbebb4f2f2c19b8e8816" - integrity sha512-TEcp8ZwK1RczmvMnvktxHSF2tKgMWjJ71xEFGX5ApLh67VsMSTy1ZUlipJw8W+KaqgOmQ+4pqwkeivY89j+4Vw== +optimism@^0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.18.0.tgz#e7bb38b24715f3fdad8a9a7fc18e999144bbfa63" + integrity sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ== dependencies: + "@wry/caches" "^1.0.0" "@wry/context" "^0.7.0" "@wry/trie" "^0.4.3" tslib "^2.3.0" @@ -4898,14 +4900,6 @@ ora@5.4.1, ora@^5.4.1: strip-ansi "^6.0.0" wcwidth "^1.0.1" -os-name@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/os-name/-/os-name-4.0.1.tgz#32cee7823de85a8897647ba4d76db46bf845e555" - integrity sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw== - dependencies: - macos-release "^2.5.0" - windows-release "^4.0.0" - os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -4951,7 +4945,7 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-json@^5.0.0, parse-json@^5.2.0: +parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== @@ -4981,17 +4975,12 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.6.1: +path-scurry@^1.10.1, path-scurry@^1.6.1: version "1.10.1" resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== @@ -5019,7 +5008,12 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@2.3.1, picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-3.0.1.tgz#817033161def55ec9638567a2f3bbc876b3e7516" + integrity sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -5053,10 +5047,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" - integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== +prettier@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.2.tgz#96e580f7ca9c96090ad054616c0c4597e2844b65" + integrity sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A== pretty-format@^29.0.0, pretty-format@^29.7.0: version "29.7.0" @@ -5097,19 +5091,6 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - punycode@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" @@ -5181,6 +5162,13 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== +react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + readable-stream@^2.2.2: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" @@ -5314,18 +5302,16 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -run-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" - run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== +run-async@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-3.0.0.tgz#42a432f6d76c689522058984384df28be379daad" + integrity sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q== + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -5488,6 +5474,11 @@ signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -5554,7 +5545,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -5563,6 +5554,15 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string.prototype.trim@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" @@ -5604,13 +5604,20 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -5626,11 +5633,6 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -5707,13 +5709,13 @@ symbol-observable@^1.0.4: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== -synckit@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" - integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== +synckit@^0.8.6: + version "0.8.8" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" + integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== dependencies: - "@pkgr/utils" "^2.3.1" - tslib "^2.5.0" + "@pkgr/core" "^0.1.0" + tslib "^2.6.2" tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: version "2.2.1" @@ -5760,11 +5762,6 @@ through@^2.3.6: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== - tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -5867,17 +5864,17 @@ tsconfig-paths@4.2.0, tsconfig-paths@^4.1.2: minimist "^1.2.6" strip-bom "^3.0.0" -tsconfig-paths@^3.14.2: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.2" minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2.6.2, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.0: +tslib@2.6.2, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.0, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -5980,7 +5977,12 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@5.2.2, typescript@^5.2.2: +typescript@5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== + +typescript@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== @@ -6007,6 +6009,11 @@ undici-types@~5.25.1: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.25.3.tgz#e044115914c85f0bcbb229f346ab739f064998c3" integrity sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA== +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -6017,11 +6024,6 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - update-browserslist-db@^1.0.13: version "1.0.13" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" @@ -6052,7 +6054,7 @@ uuid@9.0.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== -uuid@^9.0.0: +uuid@9.0.1, uuid@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== @@ -6118,10 +6120,10 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@5.88.2: - version "5.88.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e" - integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== +webpack@5.89.0: + version "5.89.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.89.0.tgz#56b8bf9a34356e93a6625770006490bf3a7f32dc" + integrity sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^1.0.0" @@ -6190,14 +6192,17 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -windows-release@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-4.0.0.tgz#4725ec70217d1bf6e02c7772413b29cdde9ec377" - integrity sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg== +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + name wrap-ansi-cjs + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: - execa "^4.0.2" + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" -wrap-ansi@^6.0.1: +wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== @@ -6206,14 +6211,14 @@ wrap-ansi@^6.0.1: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" wrappy@1: version "1.0.2" @@ -6228,10 +6233,10 @@ write-file-atomic@^4.0.2: imurmurhash "^0.1.4" signal-exit "^3.0.7" -ws@8.13.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== +ws@8.14.2: + version "8.14.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== "ws@^5.2.0 || ^6.0.0 || ^7.0.0": version "7.5.9" @@ -6266,11 +6271,6 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - yargs-parser@21.1.1, yargs-parser@^21.0.1, yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"