Merge branch 'master' into 6810-bugdevops-fix-broken-links-and-content-in-readmes-part-2

This commit is contained in:
mahula 2024-01-13 09:13:11 +01:00 committed by GitHub
commit bf0ea5fe95
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 2146 additions and 4714 deletions

View File

@ -29,7 +29,7 @@ jobs:
- name: Checkout code - name: Checkout code
uses: actions/checkout@master uses: actions/checkout@master
- name: Remove old documentation files - name: Remove old documentation files
run: rm -rf ./deployment/src/old/ # workaround until https://github.com/gaurav-nelson/github-action-markdown-link-check/pull/183 has been done run: rm -rf ./deployment/src/old/ ./CHANGELOG.md # workaround until https://github.com/gaurav-nelson/github-action-markdown-link-check/pull/183 has been done
- name: Check Markdown Links - name: Check Markdown Links
uses: gaurav-nelson/github-action-markdown-link-check@master uses: gaurav-nelson/github-action-markdown-link-check@master
with: with:

View File

@ -34,7 +34,7 @@ jobs:
- name: Neo4J | Save docker image - name: Neo4J | Save docker image
run: docker save "ocelotsocialnetwork/neo4j-community" > /tmp/neo4j.tar run: docker save "ocelotsocialnetwork/neo4j-community" > /tmp/neo4j.tar
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: docker-neo4j-community name: docker-neo4j-community
path: /tmp/neo4j.tar path: /tmp/neo4j.tar
@ -83,7 +83,7 @@ jobs:
- name: Backend | Save docker image - name: Backend | Save docker image
run: docker save "ocelotsocialnetwork/backend" > /tmp/backend.tar run: docker save "ocelotsocialnetwork/backend" > /tmp/backend.tar
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: docker-backend-production name: docker-backend-production
path: /tmp/backend.tar path: /tmp/backend.tar
@ -132,7 +132,7 @@ jobs:
- name: Webapp | Save docker image - name: Webapp | Save docker image
run: docker save "ocelotsocialnetwork/webapp" > /tmp/webapp.tar run: docker save "ocelotsocialnetwork/webapp" > /tmp/webapp.tar
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: docker-webapp-production name: docker-webapp-production
path: /tmp/webapp.tar path: /tmp/webapp.tar
@ -184,7 +184,7 @@ jobs:
- name: Maintenance | Save docker image - name: Maintenance | Save docker image
run: docker save "ocelotsocialnetwork/maintenance" > /tmp/maintenance.tar run: docker save "ocelotsocialnetwork/maintenance" > /tmp/maintenance.tar
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: docker-maintenance-production name: docker-maintenance-production
path: /tmp/maintenance.tar path: /tmp/maintenance.tar
@ -201,25 +201,25 @@ jobs:
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
steps: steps:
- name: Download Docker Image (Neo4J) - name: Download Docker Image (Neo4J)
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: docker-neo4j-community name: docker-neo4j-community
path: /tmp path: /tmp
- run: docker load < /tmp/neo4j.tar - run: docker load < /tmp/neo4j.tar
- name: Download Docker Image (Backend) - name: Download Docker Image (Backend)
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: docker-backend-production name: docker-backend-production
path: /tmp path: /tmp
- run: docker load < /tmp/backend.tar - run: docker load < /tmp/backend.tar
- name: Download Docker Image (WebApp) - name: Download Docker Image (WebApp)
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: docker-webapp-production name: docker-webapp-production
path: /tmp path: /tmp
- run: docker load < /tmp/webapp.tar - run: docker load < /tmp/webapp.tar
- name: Download Docker Image (Maintenance) - name: Download Docker Image (Maintenance)
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: docker-maintenance-production name: docker-maintenance-production
path: /tmp path: /tmp
@ -260,10 +260,38 @@ jobs:
version: ${{ env.BUILD_VERSION }} version: ${{ env.BUILD_VERSION }}
git_commit_sha: ${{ github.sha }} git_commit_sha: ${{ github.sha }}
git_tag_prefix: "b" git_tag_prefix: "b"
- name: Generate changelog - name: Generate changelog
run: | id: changelog
yarn install uses: mikepenz/release-changelog-builder-action@v4
yarn auto-changelog --latest-version ${{ env.VERSION }} --unreleased-only with:
configurationJson: |
{
"pr_template": "- ##{{NUMBER}} #{{TITLE}} #{{ASSIGNEES}}",
"categories": [
{
"title": "### 🚀 Features",
"labels": ["feat"]
},
{
"title": "### 🐛 Fixes",
"labels": ["fix"]
},
{
"title": "### 💬 Refactoring, Documentation & Other",
"labels": ["chore","ci","docs","refactor"]
},
{
"title": "### 📦 Build & Dependencies",
"labels": ["build","bump"]
}
],
"max_pull_requests": 1000,
"max_back_track_time_days": 1000
}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: package-version-to-git-release - name: package-version-to-git-release
continue-on-error: true # Will fail if tag exists continue-on-error: true # Will fail if tag exists
id: create_release id: create_release
@ -273,7 +301,7 @@ jobs:
with: with:
tag_name: ${{ env.VERSION }} tag_name: ${{ env.VERSION }}
release_name: ${{ env.VERSION }} release_name: ${{ env.VERSION }}
body_path: ./CHANGELOG.md body: ${{steps.changelog.outputs.changelog}}
draft: false draft: false
prerelease: false prerelease: false

View File

@ -37,7 +37,7 @@ jobs:
- name: Cache docker images - name: Cache docker images
id: cache-neo4j id: cache-neo4j
uses: actions/cache/save@v3.3.2 uses: actions/cache/save@v3.3.3
with: with:
path: /tmp/neo4j.tar path: /tmp/neo4j.tar
key: ${{ github.run_id }}-backend-neo4j-cache key: ${{ github.run_id }}-backend-neo4j-cache
@ -58,7 +58,7 @@ jobs:
- name: Cache docker images - name: Cache docker images
id: cache-backend id: cache-backend
uses: actions/cache/save@v3.3.2 uses: actions/cache/save@v3.3.3
with: with:
path: /tmp/backend.tar path: /tmp/backend.tar
key: ${{ github.run_id }}-backend-cache key: ${{ github.run_id }}-backend-cache
@ -87,14 +87,14 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Restore Neo4J cache - name: Restore Neo4J cache
uses: actions/cache/restore@v3.3.2 uses: actions/cache/restore@v3.3.3
with: with:
path: /tmp/neo4j.tar path: /tmp/neo4j.tar
key: ${{ github.run_id }}-backend-neo4j-cache key: ${{ github.run_id }}-backend-neo4j-cache
fail-on-cache-miss: true fail-on-cache-miss: true
- name: Restore Backend cache - name: Restore Backend cache
uses: actions/cache/restore@v3.3.2 uses: actions/cache/restore@v3.3.3
with: with:
path: /tmp/backend.tar path: /tmp/backend.tar
key: ${{ github.run_id }}-backend-cache key: ${{ github.run_id }}-backend-cache

View File

@ -36,7 +36,7 @@ jobs:
- name: Cache docker images - name: Cache docker images
id: cache id: cache
uses: actions/cache/save@v3.3.2 uses: actions/cache/save@v3.3.3
with: with:
path: | path: |
/opt/cucumber-json-formatter /opt/cucumber-json-formatter
@ -58,7 +58,7 @@ jobs:
job: [1, 2, 3, 4, 5, 6, 7, 8] job: [1, 2, 3, 4, 5, 6, 7, 8]
steps: steps:
- name: Restore cache - name: Restore cache
uses: actions/cache/restore@v3.3.2 uses: actions/cache/restore@v3.3.3
id: cache id: cache
with: with:
path: | path: |
@ -92,7 +92,7 @@ jobs:
- name: Full stack tests | if tests failed, upload report - name: Full stack tests | if tests failed, upload report
id: e2e-report id: e2e-report
if: ${{ failure() && steps.e2e-tests.conclusion == 'failure' }} if: ${{ failure() && steps.e2e-tests.conclusion == 'failure' }}
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: ocelot-e2e-test-report-pr${{ needs.docker_preparation.outputs.pr-number }} name: ocelot-e2e-test-report-pr${{ needs.docker_preparation.outputs.pr-number }}
path: /home/runner/work/Ocelot-Social/Ocelot-Social/cypress/reports/cucumber_html_report path: /home/runner/work/Ocelot-Social/Ocelot-Social/cypress/reports/cucumber_html_report

View File

@ -50,7 +50,7 @@ jobs:
docker save "ocelotsocialnetwork/webapp:test" > /tmp/webapp.tar docker save "ocelotsocialnetwork/webapp:test" > /tmp/webapp.tar
- name: Cache docker image - name: Cache docker image
uses: actions/cache/save@v3.3.2 uses: actions/cache/save@v3.3.3
with: with:
path: /tmp/webapp.tar path: /tmp/webapp.tar
key: ${{ github.run_id }}-webapp-cache key: ${{ github.run_id }}-webapp-cache
@ -79,7 +79,7 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Restore webapp cache - name: Restore webapp cache
uses: actions/cache/restore@v3.3.2 uses: actions/cache/restore@v3.3.3
with: with:
path: /tmp/webapp.tar path: /tmp/webapp.tar
key: ${{ github.run_id }}-webapp-cache key: ${{ github.run_id }}-webapp-cache

1
.gitignore vendored
View File

@ -8,6 +8,7 @@ yarn-error.log*
.yarn-integrity .yarn-integrity
.eslintcache .eslintcache
kubeconfig.yaml kubeconfig.yaml
backup-cron-job.log
node_modules/ node_modules/
cypress/videos cypress/videos

View File

@ -74,7 +74,7 @@
"metascraper-url": "^5.34.2", "metascraper-url": "^5.34.2",
"metascraper-video": "^5.33.5", "metascraper-video": "^5.33.5",
"metascraper-youtube": "^5.33.5", "metascraper-youtube": "^5.33.5",
"migrate": "^2.0.0", "migrate": "^2.0.1",
"mime-types": "^2.1.26", "mime-types": "^2.1.26",
"minimatch": "^3.0.4", "minimatch": "^3.0.4",
"mustache": "^4.2.0", "mustache": "^4.2.0",

View File

@ -1,3 +1,3 @@
// this file is duplicated in `backend/src/constants/group` and `webapp/constants/group.js` // this file is duplicated in `backend/src/constants/group` and `webapp/constants/group.js`
export const DESCRIPTION_WITHOUT_HTML_LENGTH_MIN = 50 // with removed HTML tags export const DESCRIPTION_WITHOUT_HTML_LENGTH_MIN = 3 // with removed HTML tags
export const DESCRIPTION_EXCERPT_HTML_LENGTH = 250 // with removed HTML tags export const DESCRIPTION_EXCERPT_HTML_LENGTH = 250 // with removed HTML tags

View File

@ -328,15 +328,15 @@ describe('in mode', () => {
describe('description', () => { describe('description', () => {
describe('length without HTML', () => { describe('length without HTML', () => {
describe('less then 100 chars', () => { describe('less then 3 chars', () => {
it('throws error: "Description too short!"', async () => { it('throws error: "Description too short!"', async () => {
const { errors } = await mutate({ const { errors } = await mutate({
mutation: createGroupMutation(), mutation: createGroupMutation(),
variables: { variables: {
...variables, ...variables,
description: description:
'0123456789' + '0' +
'<a href="https://domain.org/0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789">0123456789</a>', '<a href="https://domain.org/0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789">0</a>',
}, },
}) })
expect(errors![0]).toHaveProperty('message', 'Description too short!') expect(errors![0]).toHaveProperty('message', 'Description too short!')
@ -2850,15 +2850,15 @@ describe('in mode', () => {
describe('description', () => { describe('description', () => {
describe('length without HTML', () => { describe('length without HTML', () => {
describe('less then 100 chars', () => { describe('less then 3 chars', () => {
it('throws error: "Description too short!"', async () => { it('throws error: "Description too short!"', async () => {
const { errors } = await mutate({ const { errors } = await mutate({
mutation: updateGroupMutation(), mutation: updateGroupMutation(),
variables: { variables: {
id: 'my-group', id: 'my-group',
description: description:
'0123456789' + '0' +
'<a href="https://domain.org/0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789">0123456789</a>', '<a href="https://domain.org/0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789">0</a>',
}, },
}) })
expect(errors![0]).toHaveProperty('message', 'Description too short!') expect(errors![0]).toHaveProperty('message', 'Description too short!')

View File

@ -8229,10 +8229,10 @@ microsoft-capitalize@~1.0.5:
resolved "https://registry.yarnpkg.com/microsoft-capitalize/-/microsoft-capitalize-1.0.5.tgz#bcaf915039f14224c8cfd74c31cea42fecacbb31" resolved "https://registry.yarnpkg.com/microsoft-capitalize/-/microsoft-capitalize-1.0.5.tgz#bcaf915039f14224c8cfd74c31cea42fecacbb31"
integrity sha512-iqDMU9J643BHg8Zp7EMZNLTp6Pgs2f1S2SMnCW2VlUqMs17xCZ5vwVjalBJEGVcUfG+/1ePqeEGcMW3VfzHK5A== integrity sha512-iqDMU9J643BHg8Zp7EMZNLTp6Pgs2f1S2SMnCW2VlUqMs17xCZ5vwVjalBJEGVcUfG+/1ePqeEGcMW3VfzHK5A==
migrate@^2.0.0: migrate@^2.0.1:
version "2.0.0" version "2.0.1"
resolved "https://registry.yarnpkg.com/migrate/-/migrate-2.0.0.tgz#eef68ac206f658d96ddfaf81c8c5999d71694956" resolved "https://registry.yarnpkg.com/migrate/-/migrate-2.0.1.tgz#7a08e5496677dda4cb5f0cd44366cbce4d3d0294"
integrity sha512-Oklla7q1Ok3UZZOGL67wkFlKfZHAxdT7NusHwHgzPBfokbCvYDEEGM8Bx7G5jDuoRNiA7R261Y2CwZX0cyx9CQ== integrity sha512-t9yzYd4kPdx+soNL/Cc4YQoVYOgPK28LNEmkW7kn0x9duVBNsV+cDaETby8nZ9Dm+LsQTB4SPJ586i8WQgjM5g==
dependencies: dependencies:
chalk "^4.1.2" chalk "^4.1.2"
commander "^2.20.3" commander "^2.20.3"

View File

@ -1 +1,7 @@
CONFIGURATION=example # branding folder used for "docker compose up" run in deployment folder
CONFIGURATION=stage.ocelot.social
# used in "scripts/clusters.backup-multiple-servers.sh"
BACKUP_CONFIGURATIONS="stage.ocelot.social stage.wir.social"
# if '<= 0' no backups will be deleted
BACKUP_SAVED_BACKUPS_NUMBER=7

@ -1 +1 @@
Subproject commit a930f11d8f2d0c11136ff0bf9188aaab9cabc5d1 Subproject commit fdc2e52fa444b300e1c4736600bc0e9ae3314222

View File

@ -22,15 +22,15 @@ After the first deployment of the new network on your server, the database is in
***ATTENTION:*** When you are logged in for the first time, please change your (the admin's) e-mail to an existing one and change your password to a secure one !!! ***ATTENTION:*** When you are logged in for the first time, please change your (the admin's) e-mail to an existing one and change your password to a secure one !!!
## Use the Scripts ## Using the Scripts
To use all the scripts you have to set the variable `CONFIGURATION` in your terminal by entering: To use most of the scripts you have to set the variable `CONFIGURATION` in your terminal by entering:
```bash ```bash
# in deployment folder # in deployment folder
# set configuration name to folder name in 'configurations' folder (network name) # set configuration name to folder name in 'configurations' folder (network name)
$ export CONFIGURATION=`<your-configuration-name>` $ export CONFIGURATION=<your-configuration-name>
# to check this # to check this
$ echo $CONFIGURATION $ echo $CONFIGURATION
``` ```
@ -64,9 +64,13 @@ $ scripts/cluster.maintenance.sh on
$ scripts/cluster.maintenance.sh off $ scripts/cluster.maintenance.sh off
``` ```
### Backup Script ### Backup Scripts
To save a locale backup of the database and uploaded images: Save backups.
#### Single Backup
To save a local backup of the database and uploaded images:
```bash ```bash
# in deployment folder # in deployment folder
@ -76,3 +80,58 @@ $ scripts/cluster.backup.sh
``` ```
The backup will be saved into your network folders `backup` folder in a new folder with the date and time. The backup will be saved into your network folders `backup` folder in a new folder with the date and time.
#### Multiple Networks Backup
In order to save several network backups locally, you must define the configuration names of all networks in `.env`. The template for this is `deployment/.env.dist`:
```bash
# in the deployment folders '.env' set as example
BACKUP_CONFIGURATIONS="stage.ocelot.social stage.wir.social"
BACKUP_SAVED_BACKUPS_NUMBER=7
```
If `BACKUP_SAVED_BACKUPS_NUMBER <= 0` then no backups will be deleted.
To actually save all the backups run:
```bash
# in deployment folder
# save all backups listed in 'BACKUP_CONFIGURATIONS'
# delete all backups older then the 'BACKUP_SAVED_BACKUPS_NUMBER' newest ones
$ scripts/clusters.backup-multiple-servers.sh
```
The backups will be saved into your networks folders `backup` folder in a new folder with the date and time.
#### Automated Backups
⚠️ *Attention: Please check carefully whether really the oldest backups have been deleted. As shells on different systems behave differently with regard to the commands used in this script.*
Install automated backups by a [cron job](https://en.wikipedia.org/wiki/Cron).
Be aware of having the bash shell installed to run the script.
The environment variables for the automated backups are described above.
Installing a cron job by editing the cron table file:
```bash
# edit cron job table
$ crontab -e
```
In the editor add the line:
```bash
# in cron job table file
# set a cron job every night at 04am server time
# min hour day month weekday command
00 04 * * * /root/Ocelot-Social/deployment/scripts/clusters.backup-multiple-servers.sh >> /root/Ocelot-Social/deployment/backup-cron-job.log
```
This way the terminal output is written into a log file named `backup-cron-job.log` located in the deployment folder.
Be aware that the server datetime can differ from your local time.
Especially by the change between summer and winter time, because servers usually have UTC.
Find out the actual difference by running the command `date` on your server.

View File

@ -168,6 +168,9 @@ services:
# Uncomment following line for Neo4j Enterprise version instead of Community version # Uncomment following line for Neo4j Enterprise version instead of Community version
# TODO: clarify if that is the only thing needed to unlock the Enterprise version # TODO: clarify if that is the only thing needed to unlock the Enterprise version
# - NEO4J_ACCEPT_LICENSE_AGREEMENT=yes # - NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
# set the name of the database to be used
# - NEO4J_dbms_default__database=graph.db
# - NEO4J_dbms_default__database=neo4j
# TODO: Remove the playground from production # TODO: Remove the playground from production
# bring the database in offline mode to export or load dumps # bring the database in offline mode to export or load dumps
# command: ["tail", "-f", "/dev/null"] # command: ["tail", "-f", "/dev/null"]

View File

@ -1,34 +1,44 @@
#!/bin/bash #!/bin/bash
# time stamp
printf "Backup started at:\n "
date
# base setup # base setup
SCRIPT_PATH=$(realpath $0) SCRIPT_PATH=$(realpath $0)
SCRIPT_DIR=$(dirname $SCRIPT_PATH) SCRIPT_DIR=$(dirname $SCRIPT_PATH)
# check CONFIGURATION # check CONFIGURATION
if [ -z ${CONFIGURATION} ]; then if [[ -z "$CONFIGURATION" ]]; then
echo "You must provide a `CONFIGURATION` via environment variable" echo "!!! You must provide a CONFIGURATION via environment variable !!!"
exit 1 exit 1
fi fi
printf " Cluster: %s\n" $CONFIGURATION
# configuration # configuration
KUBECONFIG=${KUBECONFIG:-${SCRIPT_DIR}/../configurations/${CONFIGURATION}/kubeconfig.yaml} KUBECONFIG=${KUBECONFIG:-${SCRIPT_DIR}/../configurations/${CONFIGURATION}/kubeconfig.yaml}
BACKUP_DATE=$(date "+%F_%H-%M-%S") BACKUP_DATE=$(date "+%F_%H-%M-%S")
BACKUP_FOLDER=${BACKUP_FOLDER:-${SCRIPT_DIR}/../configurations/${CONFIGURATION}/backup/${BACKUP_DATE}} BACKUP_FOLDER=${BACKUP_FOLDER:-${SCRIPT_DIR}/../configurations/${CONFIGURATION}/backup/${BACKUP_DATE}}
# create backup fodler printf "Backup folder name: %s\n" $BACKUP_DATE
# create backup folder
mkdir -p ${BACKUP_FOLDER} mkdir -p ${BACKUP_FOLDER}
# cluster maintenance mode on && Neo4j maintenance mode on # cluster maintenance mode on && Neo4j maintenance mode on
${SCRIPT_DIR}/cluster.neo4j.sh maintenance on ${SCRIPT_DIR}/cluster.neo4j.sh maintenance on
# database backup # database backup
echo "Dumping database ..."
kubectl --kubeconfig=${KUBECONFIG} -n default exec -it \ kubectl --kubeconfig=${KUBECONFIG} -n default exec -it \
$(kubectl --kubeconfig=${KUBECONFIG} -n default get pods | grep ocelot-neo4j | awk '{ print $1 }') \ $(kubectl --kubeconfig=${KUBECONFIG} -n default get pods | grep ocelot-neo4j | awk '{ print $1 }') \
-- neo4j-admin dump --database=graph.db --to=/var/lib/neo4j/$BACKUP_DATE-neo4j-dump -- neo4j-admin dump --to=/var/lib/neo4j/$BACKUP_DATE-neo4j-dump
# copy neo4j backup to local drive # copy neo4j backup to local drive
echo "Copying database to local file system ..."
kubectl --kubeconfig=${KUBECONFIG} cp \ kubectl --kubeconfig=${KUBECONFIG} cp \
default/$(kubectl --kubeconfig=${KUBECONFIG} -n default get pods | grep ocelot-neo4j |awk '{ print $1 }'):/var/lib/neo4j/$BACKUP_DATE-neo4j-dump $BACKUP_FOLDER/neo4j-dump default/$(kubectl --kubeconfig=${KUBECONFIG} -n default get pods | grep ocelot-neo4j |awk '{ print $1 }'):/var/lib/neo4j/$BACKUP_DATE-neo4j-dump $BACKUP_FOLDER/neo4j-dump
# copy image data # copy image data
echo "Copying public uploads to local file system ..."
kubectl --kubeconfig=${KUBECONFIG} cp \ kubectl --kubeconfig=${KUBECONFIG} cp \
default/$(kubectl --kubeconfig=${KUBECONFIG} -n default get pods | grep ocelot-backend |awk '{ print $1 }'):/app/public/uploads $BACKUP_FOLDER/public-uploads default/$(kubectl --kubeconfig=${KUBECONFIG} -n default get pods | grep ocelot-backend |awk '{ print $1 }'):/app/public/uploads $BACKUP_FOLDER/public-uploads

View File

@ -5,7 +5,7 @@ SCRIPT_PATH=$(realpath $0)
SCRIPT_DIR=$(dirname $SCRIPT_PATH) SCRIPT_DIR=$(dirname $SCRIPT_PATH)
# check CONFIGURATION # check CONFIGURATION
if [ -z ${CONFIGURATION} ]; then if [[ -z "$CONFIGURATION" ]]; then
echo "You must provide a `CONFIGURATION` via environment variable" echo "You must provide a `CONFIGURATION` via environment variable"
exit 1 exit 1
fi fi
@ -16,9 +16,11 @@ KUBECONFIG=${KUBECONFIG:-${SCRIPT_DIR}/../configurations/${CONFIGURATION}/kubeco
case $1 in case $1 in
on) on)
echo "Network maintenance: on"
kubectl --kubeconfig=${KUBECONFIG} patch ingress ingress-ocelot-webapp --type merge --patch-file ${SCRIPT_DIR}/../src/kubernetes/patches/patch.ingress.maintenance.on.yaml kubectl --kubeconfig=${KUBECONFIG} patch ingress ingress-ocelot-webapp --type merge --patch-file ${SCRIPT_DIR}/../src/kubernetes/patches/patch.ingress.maintenance.on.yaml
;; ;;
off) off)
echo "Network maintenance: off"
kubectl --kubeconfig=${KUBECONFIG} patch ingress ingress-ocelot-webapp --type merge --patch-file ${SCRIPT_DIR}/../src/kubernetes/patches/patch.ingress.maintenance.off.yaml kubectl --kubeconfig=${KUBECONFIG} patch ingress ingress-ocelot-webapp --type merge --patch-file ${SCRIPT_DIR}/../src/kubernetes/patches/patch.ingress.maintenance.off.yaml
;; ;;
*) *)

View File

@ -5,7 +5,7 @@ SCRIPT_PATH=$(realpath $0)
SCRIPT_DIR=$(dirname $SCRIPT_PATH) SCRIPT_DIR=$(dirname $SCRIPT_PATH)
# check CONFIGURATION # check CONFIGURATION
if [ -z ${CONFIGURATION} ]; then if [[ -z "$CONFIGURATION" ]]; then
echo "You must provide a `CONFIGURATION` via environment variable" echo "You must provide a `CONFIGURATION` via environment variable"
exit 1 exit 1
fi fi
@ -21,20 +21,24 @@ case $1 in
${SCRIPT_DIR}/cluster.maintenance.sh on ${SCRIPT_DIR}/cluster.maintenance.sh on
# set Neo4j in offline mode (maintenance) # set Neo4j in offline mode (maintenance)
echo "Neo4j maintenance: on"
kubectl --kubeconfig=${KUBECONFIG} get deployment ocelot-neo4j -o json \ kubectl --kubeconfig=${KUBECONFIG} get deployment ocelot-neo4j -o json \
| jq '.spec.template.spec.containers[] += {"command": ["tail", "-f", "/dev/null"]}' \ | jq '.spec.template.spec.containers[] += {"command": ["tail", "-f", "/dev/null"]}' \
| kubectl --kubeconfig=${KUBECONFIG} apply -f - | kubectl --kubeconfig=${KUBECONFIG} apply -f -
# wait for the container to restart # wait for the container to restart
echo "Wait 60s ..."
sleep 60 sleep 60
;; ;;
off) off)
# set Neo4j in online mode # set Neo4j in online mode
echo "Neo4j maintenance: off"
kubectl --kubeconfig=${KUBECONFIG} get deployment ocelot-neo4j -o json \ kubectl --kubeconfig=${KUBECONFIG} get deployment ocelot-neo4j -o json \
| jq 'del(.spec.template.spec.containers[].command)' \ | jq 'del(.spec.template.spec.containers[].command)' \
| kubectl --kubeconfig=${KUBECONFIG} apply -f - | kubectl --kubeconfig=${KUBECONFIG} apply -f -
# wait for the container to restart # wait for the container to restart
echo "Wait 60s ..."
sleep 60 sleep 60
# maintenance mode off # maintenance mode off

View File

@ -0,0 +1,91 @@
#!/bin/bash
# time stamp
printf "\n\nMultiple backups started at:\n "
date
# base setup
SCRIPT_PATH=$(realpath $0)
SCRIPT_DIR=$(dirname $SCRIPT_PATH)
# save old CONFIGURATION for later reset
export SAVE_CONFIGURATION=$CONFIGURATION
# export all variables in "../.env"
set -a
source ${SCRIPT_DIR}/../.env
set +a
# check BACKUP_CONFIGURATIONS
if [[ -z "$BACKUP_CONFIGURATIONS" ]]; then
#%! echo "You must provide a BACKUP_CONFIGURATIONS via environment variable"
printf "!!! You must provide a BACKUP_CONFIGURATIONS via environment variable !!!\n"
exit 1
fi
# check BACKUP_SAVED_BACKUPS_NUMBER
if [[ -z ${BACKUP_SAVED_BACKUPS_NUMBER} ]]; then
#%! echo "You must provide a BACKUP_SAVED_BACKUPS_NUMBER via environment variable"
printf "!!! You must provide a BACKUP_SAVED_BACKUPS_NUMBER via environment variable !!!\n"
exit 1
fi
# convert configurations to array
IFS=' ' read -a CONFIGURATIONS_ARRAY <<< "$BACKUP_CONFIGURATIONS"
# display the clusters
printf "Backup the clusters:\n"
for i in "${CONFIGURATIONS_ARRAY[@]}"
do
echo " $i"
done
# deleting backups?
if (( BACKUP_SAVED_BACKUPS_NUMBER >= 1 )); then
printf "Keep the last %d backups for all networks.\n" $BACKUP_SAVED_BACKUPS_NUMBER
else
echo "!!! ATTENTION: No backups are deleted !!!"
fi
echo "Cancel by ^C. You have 15 seconds"
# wait for the admin to react
sleep 15
printf "\n"
for i in "${CONFIGURATIONS_ARRAY[@]}"
do
export CONFIGURATION=$i
# individual cluster backup
${SCRIPT_DIR}/cluster.backup.sh
# deleting backups?
if (( BACKUP_SAVED_BACKUPS_NUMBER >= 1 )); then
# delete all oldest backups, but leave the last BACKUP_SAVED_BACKUPS_NUMBER
keep=$BACKUP_SAVED_BACKUPS_NUMBER
path="$SCRIPT_DIR/../configurations/$CONFIGURATION/backup/"
cd $path
printf "In\n '$path'\n remove:\n"
while [ `ls -1 | wc -l` -gt $keep ]; do
oldest=`ls -c1 | sort -n | head -1`
printf " %s\n" $oldest
rm -rf $oldest
done
printf "Keep the last %d backups:\n" $BACKUP_SAVED_BACKUPS_NUMBER
ls -c1 | sort -n | awk '{print " " $0}'
cd $SCRIPT_DIR
else
echo "!!! ATTENTION: No backups are deleted !!!"
fi
printf "\n"
done
# reset CONFIGURATION to old
export CONFIGURATION=$SAVE_CONFIGURATION
echo "Reset to CONFIGURATION=$CONFIGURATION"

View File

@ -137,7 +137,7 @@ $ kubectl -n default exec -it $(kubectl -n default get pods | grep ocelot-neo4j
# bash: enter bash of Neo4j # bash: enter bash of Neo4j
$ kubectl -n default exec -it $(kubectl -n default get pods | grep ocelot-neo4j | awk '{ print $1 }') -- bash $ kubectl -n default exec -it $(kubectl -n default get pods | grep ocelot-neo4j | awk '{ print $1 }') -- bash
# generate Dump # generate Dump
neo4j% neo4j-admin dump --database=graph.db --to=/var/lib/neo4j/$(date +%F)-neo4j-dump neo4j% neo4j-admin dump --to=/var/lib/neo4j/$(date +%F)-neo4j-dump
# exit bash # exit bash
neo4j% exit neo4j% exit
@ -145,6 +145,9 @@ neo4j% exit
$ kubectl -n default exec -it $(kubectl -n default get pods | grep ocelot-neo4j | awk '{ print $1 }') -- ls $ kubectl -n default exec -it $(kubectl -n default get pods | grep ocelot-neo4j | awk '{ print $1 }') -- ls
``` ```
If you need a specific database name, add the option `--database=<name>` to the command `neo4j-admin dump`.
To find out the default database name, see the [Neo4j readme](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/neo4j/README.md).
Lets copy the dump backup Lets copy the dump backup
```bash ```bash

View File

@ -20,4 +20,5 @@ data:
NEO4J_dbms_security_procedures_unrestricted: "{{ .Values.NEO4J.DBMS_SECURITY_PROCEDURES_UNRESTRICTED }}" NEO4J_dbms_security_procedures_unrestricted: "{{ .Values.NEO4J.DBMS_SECURITY_PROCEDURES_UNRESTRICTED }}"
NEO4J_dbms_allow__format__migration: "true" NEO4J_dbms_allow__format__migration: "true"
NEO4J_dbms_allow__upgrade: "true" NEO4J_dbms_allow__upgrade: "true"
NEO4J_apoc_import_file_enabled: "{{ .Values.NEO4J.APOC_IMPORT_FILE_ENABLED }}" NEO4J_dbms_default__database: "{{ .Values.NEO4J.DBMS_DEFAULT_DATABASE }}"
NEO4J_apoc_import_file_enabled: "{{ .Values.NEO4J.APOC_IMPORT_FILE_ENABLED }}"

View File

@ -79,8 +79,8 @@ $ kubectl -n ocelot-social get pods
$ kubectl cp ./neo4j-backup human-connection/<POD-ID>:/root/ $ kubectl cp ./neo4j-backup human-connection/<POD-ID>:/root/
$ kubectl -n ocelot-social exec -it <POD-ID> bash $ kubectl -n ocelot-social exec -it <POD-ID> bash
# Once you're in the pod restore the backup and overwrite the default database # Once you're in the pod restore the backup and overwrite the default database
# called `graph.db` with `--force`. # called `neo4j` with `--force`.
# This will delete all existing data in database `graph.db`! # This will delete all existing data in database `neo4j`!
> neo4j-admin load --from=/root/neo4j-backup --force > neo4j-admin load --from=/root/neo4j-backup --force
> exit > exit
``` ```

View File

@ -114,9 +114,12 @@ services:
- NEO4J_dbms_security_procedures_unrestricted=algo.*,apoc.* - NEO4J_dbms_security_procedures_unrestricted=algo.*,apoc.*
- NEO4J_dbms_allow__format__migration=true - NEO4J_dbms_allow__format__migration=true
- NEO4J_dbms_allow__upgrade=true - NEO4J_dbms_allow__upgrade=true
# Uncomment following line for Neo4j Enterprise version instead of Community version # uncomment following line for Neo4j Enterprise version instead of Community version
# TODO: clarify if that is the only thing needed to unlock the Enterprise version # TODO: clarify if that is the only thing needed to unlock the Enterprise version
# - NEO4J_ACCEPT_LICENSE_AGREEMENT=yes # - NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
# set the name of the database to be used
# - NEO4J_dbms_default__database=graph.db
# - NEO4J_dbms_default__database=neo4j
# TODO: Remove the playground from production # TODO: Remove the playground from production
# bring the database in offline mode to export or load dumps # bring the database in offline mode to export or load dumps
# command: ["tail", "-f", "/dev/null"] # command: ["tail", "-f", "/dev/null"]

View File

@ -1,4 +1,4 @@
# Neo4J # Neo4j 4.4
Human Connection is a social network. Using a graph based database which can Human Connection is a social network. Using a graph based database which can
model nodes and edges natively - a network - feels like an obvious choice. We model nodes and edges natively - a network - feels like an obvious choice. We
@ -16,8 +16,7 @@ docker-compose up
``` ```
You can access Neo4J through [http://localhost:7474/](http://localhost:7474/) You can access Neo4J through [http://localhost:7474/](http://localhost:7474/)
for an interactive cypher shell and a visualization of the graph. for an interactive Cypher shell and a visualization of the graph.
## Installation Without Docker ## Installation Without Docker
@ -51,7 +50,7 @@ in `backend/.env`.
Start Neo4J and confirm the database is running at [http://localhost:7474](http://localhost:7474). Start Neo4J and confirm the database is running at [http://localhost:7474](http://localhost:7474).
## Operations on Neo4j ## Operations on Neo4j 4.4
### Docker or Docker Compose ### Docker or Docker Compose
@ -68,13 +67,15 @@ To create a dump in Neo4j running in a Docker container:
# connect to the Docker containers Neo4j terminal # connect to the Docker containers Neo4j terminal
$ docker exec -it neo4j bash $ docker exec -it neo4j bash
# generate Dump # generate Dump
neo4j% neo4j-admin dump --database=graph.db --to=/var/lib/neo4j/$(date +%F)-neo4j-dump neo4j% neo4j-admin dump --to=/var/lib/neo4j/$(date +%F)-neo4j-dump
# exit bash # exit bash
neo4j% exit neo4j% exit
# copy the dump out of the running Docker container # copy the dump out of the running Docker container
$ docker cp <docker-image-name('neo4j')>:/var/lib/neo4j/neo4j-dump <local-folder-path>/$(date +%F)-neo4j-dump $ docker cp <docker-image-name('neo4j')>:/var/lib/neo4j/neo4j-dump <local-folder-path>/$(date +%F)-neo4j-dump
``` ```
If you need a specific database name, add the option `--database=<name>` to the command `neo4j-admin dump`.
### Import Neo4j Dump ### Import Neo4j Dump
To import a dump into Neo4j running in a Docker container: To import a dump into Neo4j running in a Docker container:
@ -88,11 +89,14 @@ $ docker cp <local-folder-path>/neo4j-dump <docker-image-name('neo4j')>:/var/lib
# connect to the Docker containers Neo4j terminal # connect to the Docker containers Neo4j terminal
$ docker exec -it neo4j bash $ docker exec -it neo4j bash
# to load the dump into the database we need the following command in this terminal # to load the dump into the database we need the following command in this terminal
neo4j% neo4j-admin load --database=neo4j --from /var/lib/neo4j/$(date +%F)-neo4j-dump --force neo4j% neo4j-admin load --from /var/lib/neo4j/$(date +%F)-neo4j-dump --force
# leave the terminal by entering # leave the terminal by entering
neo4j% exit neo4j% exit
``` ```
If you need a specific database name, add the option `--database=<name>` to the command `neo4j-admin load`.
To find out the default database name, see below.
## Commands ## Commands
Here we describe some rarely used Cypher commands for Neo4j that are needed from time to time: Here we describe some rarely used Cypher commands for Neo4j that are needed from time to time:
@ -143,7 +147,7 @@ $ kubectl -n default exec -it $(kubectl -n default get pods | grep ocelot-backen
***Cypher commands to show indexes and constraints*** ***Cypher commands to show indexes and constraints***
```bash ```bash
# in browser command line or cypher shell # in browser command line or Cypher shell
# show all indexes and constraints # show all indexes and constraints
$ :schema $ :schema
@ -158,7 +162,7 @@ $ CALL db.constraints();
***Cypher commands to create and drop indexes and constraints*** ***Cypher commands to create and drop indexes and constraints***
```bash ```bash
# in browser command line or cypher shell # in browser command line or Cypher shell
# create indexes # create indexes
$ CALL db.index.fulltext.createNodeIndex("post_fulltext_search",["Post"],["title", "content"]); $ CALL db.index.fulltext.createNodeIndex("post_fulltext_search",["Post"],["title", "content"]);
@ -171,3 +175,21 @@ $ DROP CONSTRAINT ON ( image:Image ) ASSERT image.url IS UNIQUE
# drop all indexes and constraints # drop all indexes and constraints
$ CALL apoc.schema.assert({},{},true) YIELD label, key RETURN * ; $ CALL apoc.schema.assert({},{},true) YIELD label, key RETURN * ;
``` ```
### Database Management Commands
***Cypher commands to manage databases***
```bash
# in browser command line or Cypher shell
# show the default database
$ SHOW DEFAULT DATABASE
# show all databases
$ SHOW DATABASES
```
To set the default database by configuration, use `NEO4J_dbms_default__database` as an environment variable when starting Neo4j 4.4, see [Docker specific configuration settings](<https://neo4j.com/docs/operations-manual/4.4/docker/ref-settings/>).
If a database with this name does not exist, an empty database with this name is created and all other databases remain.
You can switch back to an existing database without damaging it.

3931
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -33,17 +33,17 @@
"release": "yarn version --no-git-tag-version --no-commit-hooks --no-commit && auto-changelog --latest-version $(node -p -e \"require('./package.json').version\") && cd backend && yarn version --no-git-tag-version --no-commit-hooks --no-commit --new-version $(node -p -e \"require('./../package.json').version\") && cd ../webapp && yarn version --no-git-tag-version --no-commit-hooks --no-commit --new-version $(node -p -e \"require('./../package.json').version\") && cd ../webapp/maintenance/source && yarn version --no-git-tag-version --no-commit-hooks --no-commit --new-version $(node -p -e \"require('./../../../package.json').version\")" "release": "yarn version --no-git-tag-version --no-commit-hooks --no-commit && auto-changelog --latest-version $(node -p -e \"require('./package.json').version\") && cd backend && yarn version --no-git-tag-version --no-commit-hooks --no-commit --new-version $(node -p -e \"require('./../package.json').version\") && cd ../webapp && yarn version --no-git-tag-version --no-commit-hooks --no-commit --new-version $(node -p -e \"require('./../package.json').version\") && cd ../webapp/maintenance/source && yarn version --no-git-tag-version --no-commit-hooks --no-commit --new-version $(node -p -e \"require('./../../../package.json').version\")"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.23.3", "@babel/core": "^7.23.6",
"@babel/preset-env": "^7.23.3", "@babel/preset-env": "^7.23.6",
"@babel/register": "^7.22.15", "@babel/register": "^7.22.15",
"@badeball/cypress-cucumber-preprocessor": "^19.1.1", "@badeball/cypress-cucumber-preprocessor": "^20.0.0",
"@cypress/browserify-preprocessor": "^3.0.2", "@cypress/browserify-preprocessor": "^3.0.2",
"@cucumber/cucumber": "10.0.1", "@cucumber/cucumber": "10.1.0",
"@faker-js/faker": "8.3.1", "@faker-js/faker": "8.3.1",
"auto-changelog": "^2.3.0", "auto-changelog": "^2.3.0",
"bcryptjs": "^2.4.3", "bcryptjs": "^2.4.3",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"cypress": "^13.6.0", "cypress": "^13.6.2",
"cypress-network-idle": "^1.14.2", "cypress-network-idle": "^1.14.2",
"date-fns": "^2.25.0", "date-fns": "^2.25.0",
"dotenv": "^16.3.1", "dotenv": "^16.3.1",
@ -52,7 +52,7 @@
"import": "^0.0.6", "import": "^0.0.6",
"jsonwebtoken": "^9.0.2", "jsonwebtoken": "^9.0.2",
"mock-socket": "^9.0.3", "mock-socket": "^9.0.3",
"multiple-cucumber-html-reporter": "^3.4.0", "multiple-cucumber-html-reporter": "^3.6.0",
"neo4j-driver": "^4.3.4", "neo4j-driver": "^4.3.4",
"neode": "^0.4.8", "neode": "^0.4.8",
"rosie": "^2.1.0", "rosie": "^2.1.0",
@ -61,8 +61,8 @@
}, },
"optionalDependencies": { "optionalDependencies": {
"vuepress": "^2.0.0-rc.0", "vuepress": "^2.0.0-rc.0",
"vuepress-plugin-search-pro": "^2.0.0-rc.0", "vuepress-plugin-search-pro": "^2.0.0-rc.6",
"vuepress-theme-hope": "^2.0.0-rc.0" "vuepress-theme-hope": "^2.0.0-rc.11"
}, },
"resolutions": { "resolutions": {
"set-value": "^2.0.1", "set-value": "^2.0.1",

View File

@ -25,6 +25,10 @@ module.exports = {
'no-console': ['error'], 'no-console': ['error'],
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'vue/component-name-in-template-casing': ['error', 'kebab-case'], 'vue/component-name-in-template-casing': ['error', 'kebab-case'],
// deactivate Vue3 rules for now, project will be migrated to Vue3
'vue/multi-word-component-names': 0,
'vue/no-mutating-props': 0,
'vue/no-v-text-v-html-on-component': 0,
'prettier/prettier': ['error', { 'prettier/prettier': ['error', {
htmlWhitespaceSensitivity: 'ignore' htmlWhitespaceSensitivity: 'ignore'
}], }],

View File

@ -16,6 +16,7 @@
/> />
</slot> </slot>
</template> </template>
<!-- eslint-disable-next-line vue/no-useless-template-attributes -->
<template #popover="" class="legend"> <template #popover="" class="legend">
<div class="legend-container"> <div class="legend-container">
<div class="legend-header">{{ $t(`editor.legend.legendTitle`) }}</div> <div class="legend-header">{{ $t(`editor.legend.legendTitle`) }}</div>

View File

@ -1,5 +1,5 @@
// this file is duplicated in `backend/src/constants/group.js` and `webapp/constants/group.js` // this file is duplicated in `backend/src/constants/group.js` and `webapp/constants/group.js`
export const NAME_LENGTH_MIN = 3 export const NAME_LENGTH_MIN = 3
export const NAME_LENGTH_MAX = 50 export const NAME_LENGTH_MAX = 50
export const DESCRIPTION_WITHOUT_HTML_LENGTH_MIN = 50 // with removed HTML tags export const DESCRIPTION_WITHOUT_HTML_LENGTH_MIN = 3 // with removed HTML tags
export const SHOW_GROUP_BUTTON_IN_HEADER = true export const SHOW_GROUP_BUTTON_IN_HEADER = true

View File

@ -21,7 +21,7 @@
}, },
"dependencies": { "dependencies": {
"@human-connection/styleguide": "0.5.22", "@human-connection/styleguide": "0.5.22",
"@mapbox/mapbox-gl-geocoder": "^5.0.1", "@mapbox/mapbox-gl-geocoder": "^5.0.2",
"@nuxtjs/apollo": "^4.0.0-rc19", "@nuxtjs/apollo": "^4.0.0-rc19",
"@nuxtjs/axios": "~5.9.7", "@nuxtjs/axios": "~5.9.7",
"@nuxtjs/dotenv": "~1.4.1", "@nuxtjs/dotenv": "~1.4.1",
@ -100,11 +100,11 @@
"eslint-plugin-prettier": "~3.4.0", "eslint-plugin-prettier": "~3.4.0",
"eslint-plugin-promise": "~4.3.1", "eslint-plugin-promise": "~4.3.1",
"eslint-plugin-standard": "~5.0.0", "eslint-plugin-standard": "~5.0.0",
"eslint-plugin-vue": "~6.2.2", "eslint-plugin-vue": "~9.19.2",
"flush-promises": "^1.0.2", "flush-promises": "^1.0.2",
"identity-obj-proxy": "^3.0.0", "identity-obj-proxy": "^3.0.0",
"jest": "29.5", "jest": "29.5",
"jest-environment-jsdom": "^29.4.2", "jest-environment-jsdom": "^29.7.0",
"mutation-observer": "^1.0.3", "mutation-observer": "^1.0.3",
"prettier": "~2.7.1", "prettier": "~2.7.1",
"sass-loader": "~10.1.1", "sass-loader": "~10.1.1",

View File

@ -57,6 +57,7 @@
</div> </div>
</template> </template>
<!-- eslint-disable vue/no-reserved-component-names -->
<script> <script>
import { isEmpty, toArray } from 'lodash' import { isEmpty, toArray } from 'lodash'
import mapboxgl from 'mapbox-gl' import mapboxgl from 'mapbox-gl'
@ -560,6 +561,7 @@ export default {
}, },
} }
</script> </script>
<!-- eslint-enable vue/no-reserved-component-names -->
<style lang="scss"> <style lang="scss">
// description: https: //github.com/geospoc/v-mapbox/tree/v1.11.2/docs // description: https: //github.com/geospoc/v-mapbox/tree/v1.11.2/docs

View File

@ -602,14 +602,6 @@
dependencies: dependencies:
"@babel/types" "^7.21.5" "@babel/types" "^7.21.5"
"@babel/helper-simple-access@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae"
integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==
dependencies:
"@babel/template" "^7.8.3"
"@babel/types" "^7.8.3"
"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": "@babel/helper-skip-transparent-expression-wrappers@^7.20.0":
version "7.20.0" version "7.20.0"
resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684"
@ -1342,7 +1334,7 @@
"@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3"
babel-plugin-dynamic-import-node "^2.3.0" babel-plugin-dynamic-import-node "^2.3.0"
"@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.21.5": "@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.21.5", "@babel/plugin-transform-modules-commonjs@^7.9.0":
version "7.21.5" version "7.21.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz#d69fb947eed51af91de82e4708f676864e5e47bc" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz#d69fb947eed51af91de82e4708f676864e5e47bc"
integrity sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ== integrity sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==
@ -1351,16 +1343,6 @@
"@babel/helper-plugin-utils" "^7.21.5" "@babel/helper-plugin-utils" "^7.21.5"
"@babel/helper-simple-access" "^7.21.5" "@babel/helper-simple-access" "^7.21.5"
"@babel/plugin-transform-modules-commonjs@^7.9.0":
version "7.9.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940"
integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g==
dependencies:
"@babel/helper-module-transforms" "^7.9.0"
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/helper-simple-access" "^7.8.3"
babel-plugin-dynamic-import-node "^2.3.0"
"@babel/plugin-transform-modules-systemjs@^7.22.3": "@babel/plugin-transform-modules-systemjs@^7.22.3":
version "7.22.3" version "7.22.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.3.tgz#cc507e03e88d87b016feaeb5dae941e6ef50d91e" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.3.tgz#cc507e03e88d87b016feaeb5dae941e6ef50d91e"
@ -2344,6 +2326,13 @@
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d"
integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
"@eslint-community/eslint-utils@^4.4.0":
version "4.4.0"
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
dependencies:
eslint-visitor-keys "^3.3.0"
"@faker-js/faker@5.1.0": "@faker-js/faker@5.1.0":
version "5.1.0" version "5.1.0"
resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-5.1.0.tgz#cee1d77ada0d0dbbe77201d18b1ebabf432d9c0f" resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-5.1.0.tgz#cee1d77ada0d0dbbe77201d18b1ebabf432d9c0f"
@ -2456,25 +2445,15 @@
slash "^3.0.0" slash "^3.0.0"
strip-ansi "^6.0.0" strip-ansi "^6.0.0"
"@jest/environment@^29.4.2": "@jest/environment@^29.5.0", "@jest/environment@^29.7.0":
version "29.4.2" version "29.7.0"
resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.2.tgz#ee92c316ee2fbdf0bcd9d2db0ef42d64fea26b56" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7"
integrity sha512-JKs3VUtse0vQfCaFGJRX1bir9yBdtasxziSyu+pIiEllAQOe4oQhdCYIf3+Lx+nGglFktSKToBnRJfD5QKp+NQ== integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==
dependencies: dependencies:
"@jest/fake-timers" "^29.4.2" "@jest/fake-timers" "^29.7.0"
"@jest/types" "^29.4.2" "@jest/types" "^29.6.3"
"@types/node" "*" "@types/node" "*"
jest-mock "^29.4.2" jest-mock "^29.7.0"
"@jest/environment@^29.5.0":
version "29.5.0"
resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65"
integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==
dependencies:
"@jest/fake-timers" "^29.5.0"
"@jest/types" "^29.5.0"
"@types/node" "*"
jest-mock "^29.5.0"
"@jest/expect-utils@^29.5.0": "@jest/expect-utils@^29.5.0":
version "29.5.0" version "29.5.0"
@ -2491,29 +2470,17 @@
expect "^29.5.0" expect "^29.5.0"
jest-snapshot "^29.5.0" jest-snapshot "^29.5.0"
"@jest/fake-timers@^29.4.2": "@jest/fake-timers@^29.5.0", "@jest/fake-timers@^29.7.0":
version "29.4.2" version "29.7.0"
resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.2.tgz#af43ee1a5720b987d0348f80df98f2cb17d45cd0" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565"
integrity sha512-Ny1u0Wg6kCsHFWq7A/rW/tMhIedq2siiyHyLpHCmIhP7WmcAmd2cx95P+0xtTZlj5ZbJxIRQi4OPydZZUoiSQQ== integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==
dependencies: dependencies:
"@jest/types" "^29.4.2" "@jest/types" "^29.6.3"
"@sinonjs/fake-timers" "^10.0.2" "@sinonjs/fake-timers" "^10.0.2"
"@types/node" "*" "@types/node" "*"
jest-message-util "^29.4.2" jest-message-util "^29.7.0"
jest-mock "^29.4.2" jest-mock "^29.7.0"
jest-util "^29.4.2" jest-util "^29.7.0"
"@jest/fake-timers@^29.5.0":
version "29.5.0"
resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c"
integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==
dependencies:
"@jest/types" "^29.5.0"
"@sinonjs/fake-timers" "^10.0.2"
"@types/node" "*"
jest-message-util "^29.5.0"
jest-mock "^29.5.0"
jest-util "^29.5.0"
"@jest/globals@^29.5.0": "@jest/globals@^29.5.0":
version "29.5.0" version "29.5.0"
@ -2555,13 +2522,6 @@
strip-ansi "^6.0.0" strip-ansi "^6.0.0"
v8-to-istanbul "^9.0.1" v8-to-istanbul "^9.0.1"
"@jest/schemas@^29.4.2":
version "29.4.2"
resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.2.tgz#cf7cfe97c5649f518452b176c47ed07486270fc1"
integrity sha512-ZrGzGfh31NtdVH8tn0mgJw4khQuNHiKqdzJAFbCaERbyCP9tHlxWuL/mnMu8P7e/+k4puWjI1NOzi/sFsjce/g==
dependencies:
"@sinclair/typebox" "^0.25.16"
"@jest/schemas@^29.4.3": "@jest/schemas@^29.4.3":
version "29.4.3" version "29.4.3"
resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788"
@ -2569,6 +2529,13 @@
dependencies: dependencies:
"@sinclair/typebox" "^0.25.16" "@sinclair/typebox" "^0.25.16"
"@jest/schemas@^29.6.3":
version "29.6.3"
resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03"
integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==
dependencies:
"@sinclair/typebox" "^0.27.8"
"@jest/source-map@^29.4.3": "@jest/source-map@^29.4.3":
version "29.4.3" version "29.4.3"
resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.3.tgz#ff8d05cbfff875d4a791ab679b4333df47951d20" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.3.tgz#ff8d05cbfff875d4a791ab679b4333df47951d20"
@ -2619,12 +2586,12 @@
slash "^3.0.0" slash "^3.0.0"
write-file-atomic "^4.0.2" write-file-atomic "^4.0.2"
"@jest/types@^29.4.2", "@jest/types@^29.5.0": "@jest/types@^29.5.0", "@jest/types@^29.6.3":
version "29.5.0" version "29.6.3"
resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59"
integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==
dependencies: dependencies:
"@jest/schemas" "^29.4.3" "@jest/schemas" "^29.6.3"
"@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-lib-coverage" "^2.0.0"
"@types/istanbul-reports" "^3.0.0" "@types/istanbul-reports" "^3.0.0"
"@types/node" "*" "@types/node" "*"
@ -2706,12 +2673,12 @@
resolved "https://registry.yarnpkg.com/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz#ce56e539f83552b58d10d672ea4d6fc9adc7b234" resolved "https://registry.yarnpkg.com/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz#ce56e539f83552b58d10d672ea4d6fc9adc7b234"
integrity sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ== integrity sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==
"@mapbox/mapbox-gl-geocoder@^5.0.1": "@mapbox/mapbox-gl-geocoder@^5.0.2":
version "5.0.1" version "5.0.2"
resolved "https://registry.yarnpkg.com/@mapbox/mapbox-gl-geocoder/-/mapbox-gl-geocoder-5.0.1.tgz#3db39280175872bfd94884275c5ee528bdff35e0" resolved "https://registry.yarnpkg.com/@mapbox/mapbox-gl-geocoder/-/mapbox-gl-geocoder-5.0.2.tgz#f7409023a667e4d092c2b1d640a088ce5c735cbe"
integrity sha512-/OUL42eh4OBaIerhcwCpa27oD+u4a2xN8V7vEdsglwd8lCplFAxJCdwT9Kprli1TH5mTYsXyONmh03FwoWBWfA== integrity sha512-o+2atyKKsfbiI2/iutQ/razt5O++kfi9oxwaXSfKc6m/9NudJnQm3rpGB0GagA+becq2NU4U99E9Yzv+UcMCBQ==
dependencies: dependencies:
"@mapbox/mapbox-sdk" "^0.13.3" "@mapbox/mapbox-sdk" "^0.13.7"
events "^3.3.0" events "^3.3.0"
lodash.debounce "^4.0.6" lodash.debounce "^4.0.6"
nanoid "^3.1.31" nanoid "^3.1.31"
@ -2724,7 +2691,7 @@
resolved "https://registry.yarnpkg.com/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz#f60b6a55a5d8e5ee908347d2ce4250b15103dc8e" resolved "https://registry.yarnpkg.com/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz#f60b6a55a5d8e5ee908347d2ce4250b15103dc8e"
integrity sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg== integrity sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==
"@mapbox/mapbox-sdk@^0.13.3": "@mapbox/mapbox-sdk@^0.13.7":
version "0.13.7" version "0.13.7"
resolved "https://registry.yarnpkg.com/@mapbox/mapbox-sdk/-/mapbox-sdk-0.13.7.tgz#05e1bf287d86868623d748c19865b1fee7222642" resolved "https://registry.yarnpkg.com/@mapbox/mapbox-sdk/-/mapbox-sdk-0.13.7.tgz#05e1bf287d86868623d748c19865b1fee7222642"
integrity sha512-JZjBsAVSBv7lX7gQPOQwftBGHIUcvL/tPKFxAL+SCT7u1n+eRH052XebOTkl28pNm7Du6DpKAs1GvgUnDcFFDQ== integrity sha512-JZjBsAVSBv7lX7gQPOQwftBGHIUcvL/tPKFxAL+SCT7u1n+eRH052XebOTkl28pNm7Du6DpKAs1GvgUnDcFFDQ==
@ -3519,6 +3486,11 @@
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.21.tgz#763b05a4b472c93a8db29b2c3e359d55b29ce272" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.21.tgz#763b05a4b472c93a8db29b2c3e359d55b29ce272"
integrity sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g== integrity sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==
"@sinclair/typebox@^0.27.8":
version "0.27.8"
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
"@sindresorhus/is@^4.0.0": "@sindresorhus/is@^4.0.0":
version "4.6.0" version "4.6.0"
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f"
@ -4671,26 +4643,16 @@
"@types/node" "*" "@types/node" "*"
form-data "^3.0.0" form-data "^3.0.0"
"@types/node@*": "@types/node@*", "@types/node@>=6", "@types/node@^16.0.0":
version "14.14.9" version "16.18.48"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.9.tgz#04afc9a25c6ff93da14deabd65dc44485b53c8d6" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.48.tgz#3bc872236cdb31cb51024d8875d655e25db489a4"
integrity sha512-JsoLXFppG62tWTklIoO4knA+oDTYsmqWxHRvd4lpmfQRNhX6osheUOWETP2jMoV/2bEHuMra8Pp3Dmo/stBFcw== integrity sha512-mlaecDKQ7rIZrYD7iiKNdzFb6e/qD5I9U1rAhq+Fd+DWvYVs+G2kv74UFHmSOlg5+i/vF3XxuR522V4u8BqO+Q==
"@types/node@>=6":
version "12.6.9"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.9.tgz#ffeee23afdc19ab16e979338e7b536fdebbbaeaf"
integrity sha512-+YB9FtyxXGyD54p8rXwWaN1EWEyar5L58GlGWgtH2I9rGmLGBQcw63+0jw+ujqVavNuO47S1ByAjm9zdHMnskw==
"@types/node@^10.1.0": "@types/node@^10.1.0":
version "10.17.46" version "10.17.46"
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.46.tgz#1cd867ebfe9957ab45951f2f715f8de5f3dab7a3" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.46.tgz#1cd867ebfe9957ab45951f2f715f8de5f3dab7a3"
integrity sha512-Tice8a+sJtlP9C1EUo0DYyjq52T37b3LexVu3p871+kfIBIN+OQ7PKPei1oF3MgF39olEpUfxaLtD+QFc1k69Q== integrity sha512-Tice8a+sJtlP9C1EUo0DYyjq52T37b3LexVu3p871+kfIBIN+OQ7PKPei1oF3MgF39olEpUfxaLtD+QFc1k69Q==
"@types/node@^16.0.0":
version "16.18.48"
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.48.tgz#3bc872236cdb31cb51024d8875d655e25db489a4"
integrity sha512-mlaecDKQ7rIZrYD7iiKNdzFb6e/qD5I9U1rAhq+Fd+DWvYVs+G2kv74UFHmSOlg5+i/vF3XxuR522V4u8BqO+Q==
"@types/normalize-package-data@^2.4.0": "@types/normalize-package-data@^2.4.0":
version "2.4.0" version "2.4.0"
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
@ -5097,9 +5059,9 @@
pretty "^2.0.0" pretty "^2.0.0"
"@vue/vue2-jest@29": "@vue/vue2-jest@29":
version "29.2.4" version "29.2.6"
resolved "https://registry.yarnpkg.com/@vue/vue2-jest/-/vue2-jest-29.2.4.tgz#f17b61bbde629a2809db5ed85f88bee972ebe97b" resolved "https://registry.yarnpkg.com/@vue/vue2-jest/-/vue2-jest-29.2.6.tgz#b827c14fbdfca6e20aa807b00f309866fcf99f47"
integrity sha512-oU/Ai4sufLlrhsj8GqRqfhMr6Ud4rehmwYP358/SjKcvUqOCoKa2lOBndDzG4uZVMNnQqQbKWIg7wqL3aRYPBA== integrity sha512-nPu9IvnEkP0AEpo9ETOAk50uqyBa0QMJ9GnPYkC7EukFN1z29QKjyucICayMt8KuHJ9oYBca2TDMH40HowY9mQ==
dependencies: dependencies:
"@babel/plugin-transform-modules-commonjs" "^7.2.0" "@babel/plugin-transform-modules-commonjs" "^7.2.0"
"@vue/component-compiler-utils" "^3.1.0" "@vue/component-compiler-utils" "^3.1.0"
@ -5327,6 +5289,11 @@ acorn-jsx@^5.1.0:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384"
integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw== integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==
acorn-jsx@^5.3.2:
version "5.3.2"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn-walk@^6.0.1: acorn-walk@^6.0.1:
version "6.1.1" version "6.1.1"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913"
@ -5372,6 +5339,11 @@ acorn@^8.1.0, acorn@^8.8.1:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
acorn@^8.9.0:
version "8.11.2"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b"
integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==
agent-base@5: agent-base@5:
version "5.1.1" version "5.1.1"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c"
@ -9345,14 +9317,18 @@ eslint-plugin-standard@~5.0.0:
resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-5.0.0.tgz#c43f6925d669f177db46f095ea30be95476b1ee4" resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-5.0.0.tgz#c43f6925d669f177db46f095ea30be95476b1ee4"
integrity sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg== integrity sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg==
eslint-plugin-vue@~6.2.2: eslint-plugin-vue@~9.19.2:
version "6.2.2" version "9.19.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz#27fecd9a3a24789b0f111ecdd540a9e56198e0fe" resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz#7ab83a001a1ac8bccae013c5b9cb5d2c644fb376"
integrity sha512-Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ== integrity sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==
dependencies: dependencies:
"@eslint-community/eslint-utils" "^4.4.0"
natural-compare "^1.4.0" natural-compare "^1.4.0"
semver "^5.6.0" nth-check "^2.1.1"
vue-eslint-parser "^7.0.0" postcss-selector-parser "^6.0.13"
semver "^7.5.4"
vue-eslint-parser "^9.3.1"
xml-name-validator "^4.0.0"
eslint-scope@^4.0.3: eslint-scope@^4.0.3:
version "4.0.3" version "4.0.3"
@ -9370,6 +9346,14 @@ eslint-scope@^5.0.0:
esrecurse "^4.1.0" esrecurse "^4.1.0"
estraverse "^4.1.1" estraverse "^4.1.1"
eslint-scope@^7.1.1:
version "7.2.2"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
dependencies:
esrecurse "^4.3.0"
estraverse "^5.2.0"
eslint-utils@^1.4.3: eslint-utils@^1.4.3:
version "1.4.3" version "1.4.3"
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
@ -9394,6 +9378,11 @@ eslint-visitor-keys@^2.0.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1:
version "3.4.3"
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@~6.8.0: eslint@~6.8.0:
version "6.8.0" version "6.8.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
@ -9451,6 +9440,15 @@ espree@^6.1.2:
acorn-jsx "^5.1.0" acorn-jsx "^5.1.0"
eslint-visitor-keys "^1.1.0" eslint-visitor-keys "^1.1.0"
espree@^9.3.1:
version "9.6.1"
resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
dependencies:
acorn "^8.9.0"
acorn-jsx "^5.3.2"
eslint-visitor-keys "^3.4.1"
esprima@^3.1.3: esprima@^3.1.3:
version "3.1.3" version "3.1.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
@ -9468,6 +9466,13 @@ esquery@^1.0.1:
dependencies: dependencies:
estraverse "^4.0.0" estraverse "^4.0.0"
esquery@^1.4.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
dependencies:
estraverse "^5.1.0"
esrecurse@^4.1.0: esrecurse@^4.1.0:
version "4.2.1" version "4.2.1"
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
@ -9475,12 +9480,19 @@ esrecurse@^4.1.0:
dependencies: dependencies:
estraverse "^4.1.0" estraverse "^4.1.0"
esrecurse@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
dependencies:
estraverse "^5.2.0"
estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
version "4.2.0" version "4.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
estraverse@^5.2.0: estraverse@^5.1.0, estraverse@^5.2.0:
version "5.3.0" version "5.3.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
@ -9515,12 +9527,7 @@ eventemitter3@^4.0.0:
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
events@^3.0.0: events@^3.0.0, events@^3.3.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88"
integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==
events@^3.3.0:
version "3.3.0" version "3.3.0"
resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
@ -12061,18 +12068,18 @@ jest-each@^29.5.0:
jest-util "^29.5.0" jest-util "^29.5.0"
pretty-format "^29.5.0" pretty-format "^29.5.0"
jest-environment-jsdom@^29.4.2: jest-environment-jsdom@^29.7.0:
version "29.4.2" version "29.7.0"
resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.4.2.tgz#0cf95ad846949280dd58bc91a9ca463b6b232dd8" resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f"
integrity sha512-v1sH4Q0JGM+LPEGqHNM+m+uTMf3vpXpKiuDYqWUAh+0c9+nc7scGE+qTR5JuE+OOTDnwfzPgcv9sMq6zWAOaVg== integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==
dependencies: dependencies:
"@jest/environment" "^29.4.2" "@jest/environment" "^29.7.0"
"@jest/fake-timers" "^29.4.2" "@jest/fake-timers" "^29.7.0"
"@jest/types" "^29.4.2" "@jest/types" "^29.6.3"
"@types/jsdom" "^20.0.0" "@types/jsdom" "^20.0.0"
"@types/node" "*" "@types/node" "*"
jest-mock "^29.4.2" jest-mock "^29.7.0"
jest-util "^29.4.2" jest-util "^29.7.0"
jsdom "^20.0.0" jsdom "^20.0.0"
jest-environment-node@^29.5.0: jest-environment-node@^29.5.0:
@ -12129,21 +12136,6 @@ jest-matcher-utils@^29.5.0:
jest-get-type "^29.4.3" jest-get-type "^29.4.3"
pretty-format "^29.5.0" pretty-format "^29.5.0"
jest-message-util@^29.4.2:
version "29.4.2"
resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.2.tgz#309a2924eae6ca67cf7f25781a2af1902deee717"
integrity sha512-SElcuN4s6PNKpOEtTInjOAA8QvItu0iugkXqhYyguRvQoXapg5gN+9RQxLAkakChZA7Y26j6yUCsFWN+hlKD6g==
dependencies:
"@babel/code-frame" "^7.12.13"
"@jest/types" "^29.4.2"
"@types/stack-utils" "^2.0.0"
chalk "^4.0.0"
graceful-fs "^4.2.9"
micromatch "^4.0.4"
pretty-format "^29.4.2"
slash "^3.0.0"
stack-utils "^2.0.3"
jest-message-util@^29.5.0: jest-message-util@^29.5.0:
version "29.5.0" version "29.5.0"
resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e"
@ -12159,23 +12151,29 @@ jest-message-util@^29.5.0:
slash "^3.0.0" slash "^3.0.0"
stack-utils "^2.0.3" stack-utils "^2.0.3"
jest-mock@^29.4.2: jest-message-util@^29.7.0:
version "29.4.2" version "29.7.0"
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.2.tgz#e1054be66fb3e975d26d4528fcde6979e4759de8" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3"
integrity sha512-x1FSd4Gvx2yIahdaIKoBjwji6XpboDunSJ95RpntGrYulI1ByuYQCKN/P7hvk09JB74IonU3IPLdkutEWYt++g== integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==
dependencies: dependencies:
"@jest/types" "^29.4.2" "@babel/code-frame" "^7.12.13"
"@types/node" "*" "@jest/types" "^29.6.3"
jest-util "^29.4.2" "@types/stack-utils" "^2.0.0"
chalk "^4.0.0"
graceful-fs "^4.2.9"
micromatch "^4.0.4"
pretty-format "^29.7.0"
slash "^3.0.0"
stack-utils "^2.0.3"
jest-mock@^29.5.0: jest-mock@^29.5.0, jest-mock@^29.7.0:
version "29.5.0" version "29.7.0"
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347"
integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw== integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==
dependencies: dependencies:
"@jest/types" "^29.5.0" "@jest/types" "^29.6.3"
"@types/node" "*" "@types/node" "*"
jest-util "^29.5.0" jest-util "^29.7.0"
jest-pnp-resolver@^1.2.2: jest-pnp-resolver@^1.2.2:
version "1.2.2" version "1.2.2"
@ -12294,24 +12292,12 @@ jest-snapshot@^29.5.0:
pretty-format "^29.5.0" pretty-format "^29.5.0"
semver "^7.3.5" semver "^7.3.5"
jest-util@^29.4.2: jest-util@^29.5.0, jest-util@^29.7.0:
version "29.4.2" version "29.7.0"
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.2.tgz#3db8580b295df453a97de4a1b42dd2578dabd2c2" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc"
integrity sha512-wKnm6XpJgzMUSRFB7YF48CuwdzuDIHenVuoIb1PLuJ6F+uErZsuDkU+EiExkChf6473XcawBrSfDSnXl+/YG4g== integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==
dependencies: dependencies:
"@jest/types" "^29.4.2" "@jest/types" "^29.6.3"
"@types/node" "*"
chalk "^4.0.0"
ci-info "^3.2.0"
graceful-fs "^4.2.9"
picomatch "^2.2.3"
jest-util@^29.5.0:
version "29.5.0"
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f"
integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==
dependencies:
"@jest/types" "^29.5.0"
"@types/node" "*" "@types/node" "*"
chalk "^4.0.0" chalk "^4.0.0"
ci-info "^3.2.0" ci-info "^3.2.0"
@ -13975,6 +13961,13 @@ nth-check@^1.0.2, nth-check@~1.0.1:
dependencies: dependencies:
boolbase "~1.0.0" boolbase "~1.0.0"
nth-check@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
dependencies:
boolbase "^1.0.0"
num2fraction@^1.2.2: num2fraction@^1.2.2:
version "1.2.2" version "1.2.2"
resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
@ -15359,14 +15352,13 @@ postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-sel
indexes-of "^1.0.1" indexes-of "^1.0.1"
uniq "^1.0.1" uniq "^1.0.1"
postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.2:
version "6.0.2" version "6.0.13"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b"
integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==
dependencies: dependencies:
cssesc "^3.0.0" cssesc "^3.0.0"
indexes-of "^1.0.1" util-deprecate "^1.0.2"
uniq "^1.0.1"
postcss-svgo@^4.0.2: postcss-svgo@^4.0.2:
version "4.0.2" version "4.0.2"
@ -15471,15 +15463,6 @@ pretty-error@^2.0.2:
renderkid "^2.0.1" renderkid "^2.0.1"
utila "~0.4" utila "~0.4"
pretty-format@^29.4.2:
version "29.4.2"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.2.tgz#64bf5ccc0d718c03027d94ac957bdd32b3fb2401"
integrity sha512-qKlHR8yFVCbcEWba0H0TOC8dnLlO4vPlyEjRPw31FZ2Rupy9nLa8ZLbYny8gWEl8CkEhJqAE6IzdNELTBVcBEg==
dependencies:
"@jest/schemas" "^29.4.2"
ansi-styles "^5.0.0"
react-is "^18.0.0"
pretty-format@^29.5.0: pretty-format@^29.5.0:
version "29.5.0" version "29.5.0"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a"
@ -15489,6 +15472,15 @@ pretty-format@^29.5.0:
ansi-styles "^5.0.0" ansi-styles "^5.0.0"
react-is "^18.0.0" react-is "^18.0.0"
pretty-format@^29.7.0:
version "29.7.0"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812"
integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==
dependencies:
"@jest/schemas" "^29.6.3"
ansi-styles "^5.0.0"
react-is "^18.0.0"
pretty-hrtime@^1.0.3: pretty-hrtime@^1.0.3:
version "1.0.3" version "1.0.3"
resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
@ -16898,10 +16890,10 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semve
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
semver@^7.1.3, semver@^7.3.2, semver@^7.3.5, semver@^7.3.8: semver@^7.1.3, semver@^7.3.2, semver@^7.3.5, semver@^7.3.6, semver@^7.3.8, semver@^7.5.4:
version "7.3.8" version "7.5.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
dependencies: dependencies:
lru-cache "^6.0.0" lru-cache "^6.0.0"
@ -19061,17 +19053,18 @@ vue-count-to@~1.0.13:
resolved "https://registry.yarnpkg.com/vue-count-to/-/vue-count-to-1.0.13.tgz#3e7573ea6e64c2b2972f64e0a2ab2e23c7590ff3" resolved "https://registry.yarnpkg.com/vue-count-to/-/vue-count-to-1.0.13.tgz#3e7573ea6e64c2b2972f64e0a2ab2e23c7590ff3"
integrity sha512-6R4OVBVNtQTlcbXu6SJ8ENR35M2/CdWt3Jmv57jOUM+1ojiFmjVGvZPH8DfHpMDSA+ITs+EW5V6qthADxeyYOQ== integrity sha512-6R4OVBVNtQTlcbXu6SJ8ENR35M2/CdWt3Jmv57jOUM+1ojiFmjVGvZPH8DfHpMDSA+ITs+EW5V6qthADxeyYOQ==
vue-eslint-parser@^7.0.0: vue-eslint-parser@^9.3.1:
version "7.0.0" version "9.3.2"
resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.0.0.tgz#a4ed2669f87179dedd06afdd8736acbb3a3864d6" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz#6f9638e55703f1c77875a19026347548d93fd499"
integrity sha512-yR0dLxsTT7JfD2YQo9BhnQ6bUTLsZouuzt9SKRP7XNaZJV459gvlsJo4vT2nhZ/2dH9j3c53bIx9dnqU2prM9g== integrity sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==
dependencies: dependencies:
debug "^4.1.1" debug "^4.3.4"
eslint-scope "^5.0.0" eslint-scope "^7.1.1"
eslint-visitor-keys "^1.1.0" eslint-visitor-keys "^3.3.0"
espree "^6.1.2" espree "^9.3.1"
esquery "^1.0.1" esquery "^1.4.0"
lodash "^4.17.15" lodash "^4.17.21"
semver "^7.3.6"
vue-hot-reload-api@^2.3.0: vue-hot-reload-api@^2.3.0:
version "2.3.3" version "2.3.3"
@ -19720,12 +19713,7 @@ xss@^1.0.6:
commander "^2.20.3" commander "^2.20.3"
cssfilter "0.0.10" cssfilter "0.0.10"
xtend@^4.0.0, xtend@~4.0.1: xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
xtend@^4.0.1:
version "4.0.2" version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==

2171
yarn.lock

File diff suppressed because it is too large Load Diff