diff --git a/.github/workflows/admin.test.build.code.yml b/.github/workflows/admin.test.build.code.yml index e114df047f..c2bc1a9407 100644 --- a/.github/workflows/admin.test.build.code.yml +++ b/.github/workflows/admin.test.build.code.yml @@ -1,6 +1,6 @@ name: "admin:test:build test code" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/admin.test.build.docker.yml b/.github/workflows/admin.test.build.docker.yml index 11dcf81bf1..d280dc2e13 100644 --- a/.github/workflows/admin.test.build.docker.yml +++ b/.github/workflows/admin.test.build.docker.yml @@ -1,6 +1,6 @@ name: "admin:test:build test docker" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/admin.test.build.docs.yml b/.github/workflows/admin.test.build.docs.yml index cb4582d8d9..20e44f3084 100644 --- a/.github/workflows/admin.test.build.docs.yml +++ b/.github/workflows/admin.test.build.docs.yml @@ -1,6 +1,6 @@ name: "admin:test:build test docs" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/admin.test.build.storybook.yml b/.github/workflows/admin.test.build.storybook.yml index e6dd6382a6..58a7f7430d 100644 --- a/.github/workflows/admin.test.build.storybook.yml +++ b/.github/workflows/admin.test.build.storybook.yml @@ -1,6 +1,6 @@ name: "admin:test:build test storybook" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/admin.test.lint.code.yml b/.github/workflows/admin.test.lint.code.yml index 3f5e8365a1..91b2ededba 100644 --- a/.github/workflows/admin.test.lint.code.yml +++ b/.github/workflows/admin.test.lint.code.yml @@ -1,6 +1,6 @@ name: "admin:test:lint code with defined linters" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/admin.test.unit.code.yml b/.github/workflows/admin.test.unit.code.yml index 0a579c634a..cfb72179ef 100644 --- a/.github/workflows/admin.test.unit.code.yml +++ b/.github/workflows/admin.test.unit.code.yml @@ -1,6 +1,6 @@ name: "admin:test:unit test code with defined suites" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/backend.test.build.code.yml b/.github/workflows/backend.test.build.code.yml index 2222d8f967..4f2762c354 100644 --- a/.github/workflows/backend.test.build.code.yml +++ b/.github/workflows/backend.test.build.code.yml @@ -1,6 +1,6 @@ name: "backend:test:build test code" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/backend.test.build.docker.yml b/.github/workflows/backend.test.build.docker.yml index e4c0003ee8..02dc56bca8 100644 --- a/.github/workflows/backend.test.build.docker.yml +++ b/.github/workflows/backend.test.build.docker.yml @@ -1,6 +1,6 @@ name: "backend:test:build test docker" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/backend.test.build.docs.yml b/.github/workflows/backend.test.build.docs.yml index 0493d91a61..a789a0f8a3 100644 --- a/.github/workflows/backend.test.build.docs.yml +++ b/.github/workflows/backend.test.build.docs.yml @@ -1,6 +1,6 @@ name: "backend:test:build test docs" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/backend.test.lint.code.yml b/.github/workflows/backend.test.lint.code.yml index 7b94018a28..b466b1d9e7 100644 --- a/.github/workflows/backend.test.lint.code.yml +++ b/.github/workflows/backend.test.lint.code.yml @@ -1,6 +1,6 @@ name: "backend:test:lint code with defined linters" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/backend.test.unit.code.yml b/.github/workflows/backend.test.unit.code.yml index 0813f50cf1..4ec8b32987 100644 --- a/.github/workflows/backend.test.unit.code.yml +++ b/.github/workflows/backend.test.unit.code.yml @@ -3,7 +3,7 @@ name: "backend:test:unit test code with defined suites" env: DATABASE_URL: mysql://root:@localhost:3306/dreammall.earth -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/e2e.run.tests.yml b/.github/workflows/e2e.run.tests.yml index f7fcca84b8..476b06bce4 100644 --- a/.github/workflows/e2e.run.tests.yml +++ b/.github/workflows/e2e.run.tests.yml @@ -1,6 +1,6 @@ name: e2e:test:all test the application end to end -on: push +on: [push,pull_request_target] jobs: e2e-tests: @@ -18,15 +18,27 @@ jobs: - name: E2E | Boot up test system run: | cd authentik/ + rm -rf database ./database.unpack.sh docker compose up -d + cd ../ + docker compose up -d database + cd backend + cp .env.dist .env + ln -s src/auth/public.pem public.pem + npm install + npm run db:reset + npm run build + npm run start & cd ../frontend cp .env.dist .env - docker compose -f docker-compose.test.yml up -d frontend + npm install + npm run prod & cd ../presenter cp .env.dist .env - docker compose -f docker-compose.test.yml up -d presenter - sleep 4m + export PORT=3001 + npm install + npm run prod & - name: Install cucumber-json-formatter run: | @@ -56,5 +68,5 @@ jobs: if: ${{ failure() && steps.e2e-run.conclusion == 'failure' }} uses: actions/upload-artifact@v4 with: - name: boilerplate-e2e-test-report-pr-${{ steps.pr-number.outputs.pr }} + name: dreammall-e2e-test-report-pr-${{ steps.pr-number.outputs.pr }} path: /home/runner/work/dreammall.earth/dreammall.earth/tests/cypress/reports/dreammall-e2e_html_report \ No newline at end of file diff --git a/.github/workflows/e2e.test.build.docs.yml b/.github/workflows/e2e.test.build.docs.yml index 91f488c7f6..19d66b71f3 100644 --- a/.github/workflows/e2e.test.build.docs.yml +++ b/.github/workflows/e2e.test.build.docs.yml @@ -1,6 +1,6 @@ name: e2e:test:build test docs -on: push +on: [push,pull_request_target] jobs: files-changed: diff --git a/.github/workflows/e2e.test.lint.yml b/.github/workflows/e2e.test.lint.yml index 352b7c875e..510bb5bdbf 100644 --- a/.github/workflows/e2e.test.lint.yml +++ b/.github/workflows/e2e.test.lint.yml @@ -1,6 +1,6 @@ name: e2e:test:lint code with defined linters -on: push +on: [push,pull_request_target] jobs: files-changed: diff --git a/.github/workflows/frontend.test.build.code.yml b/.github/workflows/frontend.test.build.code.yml index 335ea3cbea..6e47d1a367 100644 --- a/.github/workflows/frontend.test.build.code.yml +++ b/.github/workflows/frontend.test.build.code.yml @@ -1,6 +1,6 @@ name: "frontend:test:build test code" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/frontend.test.build.docker.yml b/.github/workflows/frontend.test.build.docker.yml index 0f88830d8e..a78fbaa59b 100644 --- a/.github/workflows/frontend.test.build.docker.yml +++ b/.github/workflows/frontend.test.build.docker.yml @@ -1,6 +1,6 @@ name: "frontend:test:build test docker" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/frontend.test.build.docs.yml b/.github/workflows/frontend.test.build.docs.yml index 9211abfd90..fe3994b99e 100644 --- a/.github/workflows/frontend.test.build.docs.yml +++ b/.github/workflows/frontend.test.build.docs.yml @@ -1,6 +1,6 @@ name: "frontend:test:build test docs" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/frontend.test.build.storybook.yml b/.github/workflows/frontend.test.build.storybook.yml index 9cadcd23ee..cf8258b7d1 100644 --- a/.github/workflows/frontend.test.build.storybook.yml +++ b/.github/workflows/frontend.test.build.storybook.yml @@ -1,6 +1,6 @@ name: "frontend:test:build test storybook" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/frontend.test.lint.code.yml b/.github/workflows/frontend.test.lint.code.yml index 7cba5e8114..376d09423a 100644 --- a/.github/workflows/frontend.test.lint.code.yml +++ b/.github/workflows/frontend.test.lint.code.yml @@ -1,6 +1,6 @@ name: "frontend:test:lint code with defined linters" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/frontend.test.unit.code.yml b/.github/workflows/frontend.test.unit.code.yml index 00dd78ded2..3083d04b56 100644 --- a/.github/workflows/frontend.test.unit.code.yml +++ b/.github/workflows/frontend.test.unit.code.yml @@ -1,6 +1,6 @@ name: "frontend:test:unit test code with defined suites" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/presenter.test.build.code.yml b/.github/workflows/presenter.test.build.code.yml index 0c96107847..ebaee69632 100644 --- a/.github/workflows/presenter.test.build.code.yml +++ b/.github/workflows/presenter.test.build.code.yml @@ -1,6 +1,6 @@ name: "presenter:test:build test code" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/presenter.test.build.docker.yml b/.github/workflows/presenter.test.build.docker.yml index 8da5466264..f6b83f7a66 100644 --- a/.github/workflows/presenter.test.build.docker.yml +++ b/.github/workflows/presenter.test.build.docker.yml @@ -1,6 +1,6 @@ name: "presenter:test:build test docker" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/presenter.test.build.docs.yml b/.github/workflows/presenter.test.build.docs.yml index de1048cf14..eed95a8ee4 100644 --- a/.github/workflows/presenter.test.build.docs.yml +++ b/.github/workflows/presenter.test.build.docs.yml @@ -1,6 +1,6 @@ name: "presenter:test:build test docs" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/presenter.test.build.storybook.yml b/.github/workflows/presenter.test.build.storybook.yml index 71710996bf..69fbe43b37 100644 --- a/.github/workflows/presenter.test.build.storybook.yml +++ b/.github/workflows/presenter.test.build.storybook.yml @@ -1,6 +1,6 @@ name: "presenter:test:build test storybook" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/presenter.test.lint.code.yml b/.github/workflows/presenter.test.lint.code.yml index 11256ff647..d62d5db08f 100644 --- a/.github/workflows/presenter.test.lint.code.yml +++ b/.github/workflows/presenter.test.lint.code.yml @@ -1,6 +1,6 @@ name: "presenter:test:lint code with defined linters" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/presenter.test.unit.code.yml b/.github/workflows/presenter.test.unit.code.yml index edf26ca9f8..63e96e1f01 100644 --- a/.github/workflows/presenter.test.unit.code.yml +++ b/.github/workflows/presenter.test.unit.code.yml @@ -1,6 +1,6 @@ name: "presenter:test:unit test code with defined suites" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/.github/workflows/test.code.yml b/.github/workflows/test.code.yml index a615e05430..fc92f456d5 100644 --- a/.github/workflows/test.code.yml +++ b/.github/workflows/test.code.yml @@ -1,6 +1,6 @@ name: "dreammall:test:code with defined tests & linters" -on: push +on: [push,pull_request_target] jobs: # only (but most important) job from this workflow required for pull requests diff --git a/admin/Dockerfile b/admin/Dockerfile index dae836bb6d..8832cf7796 100644 --- a/admin/Dockerfile +++ b/admin/Dockerfile @@ -16,13 +16,13 @@ ENV PORT="3000" # Labels LABEL org.label-schema.build-date="${BUILD_DATE}" -LABEL org.label-schema.name="it4c:frontend" -LABEL org.label-schema.description="IT4C Frontend Boilerplate" -LABEL org.label-schema.usage="https://github.com/IT4Change/boilerplate-frontend/blob/master/README.md" -LABEL org.label-schema.url="https://github.com/IT4Change/boilerplate-frontend" -LABEL org.label-schema.vcs-url="https://github.com/IT4Change/boilerplate-frontend/tree/master/" +LABEL org.label-schema.name="dreammall:admin" +LABEL org.label-schema.description="DreamMall Admin Interface" +LABEL org.label-schema.usage="https://github.com/dreammall-earth/dreammall.earth/tree/master/admin/README.md" +LABEL org.label-schema.url="https://github.com/dreammall-earth/dreammall.earth/tree/master/admin/README.md" +LABEL org.label-schema.vcs-url="https://github.com/dreammall-earth/dreammall.earth/tree/master/admin/" LABEL org.label-schema.vcs-ref="${BUILD_COMMIT}" -LABEL org.label-schema.vendor="IT4C" +LABEL org.label-schema.vendor="DreamMall" LABEL org.label-schema.version="${BUILD_VERSION}" LABEL org.label-schema.schema-version="1.0" LABEL maintainer="info@it4c.dev" diff --git a/admin/README.md b/admin/README.md index 3e3843dccf..eb80e68047 100644 --- a/admin/README.md +++ b/admin/README.md @@ -1,4 +1,4 @@ -# boilerplate-frontend +# DreamMall Admin Interface [![nodejs][badge-nodejs-img]][badge-nodejs-href] [![npm][badge-npm-img]][badge-npm-href] @@ -17,7 +17,7 @@ [![vuepress][badge-vuepress-img]][badge-vuepress-href] [![chromatic][badge-chromatic-img]][badge-chromatic-href] -The IT4C Boilerplate for frontends +The DreamMall admin interface ![](src/assets/it4c-logo2-clean-bg_alpha-128x128.png) diff --git a/admin/docker-compose.override.yml b/admin/docker-compose.override.yml index 4b2dde8c6f..bd020bfac6 100644 --- a/admin/docker-compose.override.yml +++ b/admin/docker-compose.override.yml @@ -1,5 +1,3 @@ -version: '3.4' - services: ####################################################### # FRONTEND ############################################ diff --git a/admin/docker-compose.yml b/admin/docker-compose.yml index a084ff0a59..536b3b1512 100644 --- a/admin/docker-compose.yml +++ b/admin/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3.4' - services: ####################################################### # FRONTEND ############################################ diff --git a/admin/package-lock.json b/admin/package-lock.json index 111f0d6b56..878fc41334 100644 --- a/admin/package-lock.json +++ b/admin/package-lock.json @@ -1,11 +1,11 @@ { - "name": "boilerplate-frontend", + "name": "dreammall-admin", "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "boilerplate-frontend", + "name": "dreammall-admin", "version": "1.0.0", "license": "Apache-2.0", "dependencies": { @@ -13,22 +13,22 @@ "@mdi/font": "^7.4.47", "@types/compression": "^1.7.5", "@types/express": "^4.17.21", - "@types/node": "^20.14.2", + "@types/node": "^20.14.8", "@vitejs/plugin-vue": "^5.0.5", "@vue/compiler-sfc": "^3.4.29", "@vue/server-renderer": "3.4.27", - "@vuepress/theme-default": "^2.0.0-rc.35", + "@vuepress/theme-default": "^2.0.0-rc.37", "compression": "^1.7.4", "cross-env": "^7.0.3", "express": "^4.19.2", "pinia": "^2.1.7", "pinia-plugin-persistedstate": "^3.2.1", - "sass": "^1.77.5", + "sass": "^1.77.6", "sass-loader": "^14.2.1", "sirv": "^2.0.4", "ts-node": "^10.9.2", "typescript": "^5.4.5", - "vike": "^0.4.176", + "vike": "^0.4.177", "vite": "^5.3.1", "vue": "3.4.27", "vue-i18n": "^9.13.1", @@ -38,14 +38,14 @@ "@eslint-community/eslint-plugin-eslint-comments": "^4.3.0", "@intlify/eslint-plugin-vue-i18n": "^2.0.0", "@pinia/testing": "^0.1.3", - "@storybook/addon-essentials": "^8.1.9", - "@storybook/addon-interactions": "^8.1.9", - "@storybook/addon-links": "^8.1.9", - "@storybook/blocks": "^8.1.9", + "@storybook/addon-essentials": "^8.1.10", + "@storybook/addon-interactions": "^8.1.10", + "@storybook/addon-links": "^8.1.10", + "@storybook/blocks": "^8.1.10", "@storybook/test-runner": "^0.18.2", "@storybook/testing-library": "^0.2.2", - "@storybook/vue3": "^8.1.9", - "@storybook/vue3-vite": "^8.1.9", + "@storybook/vue3": "^8.1.10", + "@storybook/vue3-vite": "^8.1.10", "@typescript-eslint/eslint-plugin": "^7.13.0", "@typescript-eslint/parser": "^7.13.0", "@vitest/coverage-v8": "^1.6.0", @@ -66,7 +66,7 @@ "eslint-plugin-vue": "^9.26.0", "eslint-plugin-vuetify": "^2.4.0", "eslint-plugin-yml": "^1.14.0", - "happy-dom": "^14.12.0", + "happy-dom": "^14.12.3", "prettier": "^3.3.2", "react": "^18.3.1", "react-dom": "^18.3.1", @@ -75,14 +75,14 @@ "remark-preset-lint-consistent": "^6.0.0", "remark-preset-lint-markdown-style-guide": "^6.0.0", "remark-preset-lint-recommended": "^7.0.0", - "storybook": "^8.1.9", + "storybook": "^8.1.10", "stylelint": "^16.6.1", "stylelint-config-css-modules": "^4.4.0", "stylelint-config-recess-order": "^5.0.1", "stylelint-config-recommended-vue": "^1.5.0", - "stylelint-config-standard": "^36.0.0", + "stylelint-config-standard": "^36.0.1", "stylelint-config-standard-scss": "^13.1.0", - "tsx": "^4.15.6", + "tsx": "^4.15.7", "vite-plugin-checker": "^0.6.4", "vite-plugin-compression": "^0.5.1", "vite-plugin-vuetify": "^2.0.3", @@ -4392,25 +4392,19 @@ "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==" }, "node_modules/@radix-ui/primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", - "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - } + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz", + "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==", + "dev": true }, "node_modules/@radix-ui/react-compose-refs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", - "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", + "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4419,16 +4413,13 @@ } }, "node_modules/@radix-ui/react-context": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", - "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4437,32 +4428,31 @@ } }, "node_modules/@radix-ui/react-dialog": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz", - "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.4", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-controllable-state": "1.0.1", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.1.tgz", + "integrity": "sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==", + "dev": true, + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.5" + "react-remove-scroll": "2.5.7" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4474,23 +4464,22 @@ } }, "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", - "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz", + "integrity": "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==", "dev": true, "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-escape-keydown": "1.0.3" + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4502,16 +4491,13 @@ } }, "node_modules/@radix-ui/react-focus-guards": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", - "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.0.tgz", + "integrity": "sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==", "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4520,21 +4506,20 @@ } }, "node_modules/@radix-ui/react-focus-scope": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", - "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", + "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1" + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4546,17 +4531,16 @@ } }, "node_modules/@radix-ui/react-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", - "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "1.0.1" + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4565,19 +4549,19 @@ } }, "node_modules/@radix-ui/react-portal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", - "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz", + "integrity": "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==", "dev": true, "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4589,20 +4573,19 @@ } }, "node_modules/@radix-ui/react-presence": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", - "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.0.tgz", + "integrity": "sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==", "dev": true, "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1" + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4614,19 +4597,18 @@ } }, "node_modules/@radix-ui/react-primitive": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", - "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", + "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", "dev": true, "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "1.0.2" + "@radix-ui/react-slot": "1.1.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4638,17 +4620,16 @@ } }, "node_modules/@radix-ui/react-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", - "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", + "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", "dev": true, "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1" + "@radix-ui/react-compose-refs": "1.1.0" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4657,16 +4638,13 @@ } }, "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", - "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4675,17 +4653,16 @@ } }, "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", - "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", "dev": true, "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.1" + "@radix-ui/react-use-callback-ref": "1.1.0" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4694,17 +4671,16 @@ } }, "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", - "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", "dev": true, "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.1" + "@radix-ui/react-use-callback-ref": "1.1.0" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4713,16 +4689,13 @@ } }, "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", - "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -5005,12 +4978,12 @@ } }, "node_modules/@storybook/addon-actions": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.1.9.tgz", - "integrity": "sha512-7ZefE9AER42htn4McqMXcL2RDnflesIf4SxY7pCHpL7rUoldxfZ1DGGRgyKen00H6vx1LGzLRBN9fhBUf9XqCA==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.1.10.tgz", + "integrity": "sha512-1MjncuynvkT3rJtrkWPHLo92Pfno+LUWtaHiNDt9nXYowclTN2cT4a4gNDh6eKkB9dITHxkD7/4mxjHpFUvyrA==", "dev": true, "dependencies": { - "@storybook/core-events": "8.1.9", + "@storybook/core-events": "8.1.10", "@storybook/global": "^5.0.0", "@types/uuid": "^9.0.1", "dequal": "^2.0.2", @@ -5023,9 +4996,9 @@ } }, "node_modules/@storybook/addon-backgrounds": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.1.9.tgz", - "integrity": "sha512-k2s7PNwy1ND7eJ7N2DnG508fztuXNH5Jq6Vbk8aoXPPRXfwybel299WRb4WJl7ZvZKcGtBoZ+mciopPkho3Lpg==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.1.10.tgz", + "integrity": "sha512-nX9Hmcq5U/13S2ETcjGaLqfDcaSKTNPD3RBzWUoNQuZB/bB1q4qLLncQnQfaa6uruP9k6GIFZvtXeJAs9r0POw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -5038,12 +5011,12 @@ } }, "node_modules/@storybook/addon-controls": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.1.9.tgz", - "integrity": "sha512-B5+UFAnlu82QHX8bOHj022f3zi9rbqGxBqgLnx54ebl6ZgMEe9IGaOnGWyHjpFofy9yBX2Ti5+7ClvFhmyjAig==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.1.10.tgz", + "integrity": "sha512-98uLezKv6W/1byJL+Zri5kA1Cfi+DUBsbdjz7fFJl8xMtAGwuv9cnOueQl0ouDhqqwnZ4LWHYQsSsPPMz1Lmkg==", "dev": true, "dependencies": { - "@storybook/blocks": "8.1.9", + "@storybook/blocks": "8.1.10", "dequal": "^2.0.2", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" @@ -5054,24 +5027,24 @@ } }, "node_modules/@storybook/addon-docs": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.1.9.tgz", - "integrity": "sha512-dRSG54gSVn4qQc6u9ROYeDu4B0wJkr+fpS2AGwav2+KAM5kNw2ecsyhyreUhc4e/AwhAhGc49d7iQ3rjOHR//A==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.1.10.tgz", + "integrity": "sha512-jzmIeCoykiHg/KLPrYEDtXO/+dcQaEOqyJHS77eTzAO2iSXJlE+yva5Uwc8apG7UxDVa4Ycc1lPwMzB5GaHsGQ==", "dev": true, "dependencies": { "@babel/core": "^7.24.4", "@mdx-js/react": "^3.0.0", - "@storybook/blocks": "8.1.9", - "@storybook/client-logger": "8.1.9", - "@storybook/components": "8.1.9", - "@storybook/csf-plugin": "8.1.9", - "@storybook/csf-tools": "8.1.9", + "@storybook/blocks": "8.1.10", + "@storybook/client-logger": "8.1.10", + "@storybook/components": "8.1.10", + "@storybook/csf-plugin": "8.1.10", + "@storybook/csf-tools": "8.1.10", "@storybook/global": "^5.0.0", - "@storybook/node-logger": "8.1.9", - "@storybook/preview-api": "8.1.9", - "@storybook/react-dom-shim": "8.1.9", - "@storybook/theming": "8.1.9", - "@storybook/types": "8.1.9", + "@storybook/node-logger": "8.1.10", + "@storybook/preview-api": "8.1.10", + "@storybook/react-dom-shim": "8.1.10", + "@storybook/theming": "8.1.10", + "@storybook/types": "8.1.10", "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", "fs-extra": "^11.1.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0", @@ -5086,24 +5059,24 @@ } }, "node_modules/@storybook/addon-essentials": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.1.9.tgz", - "integrity": "sha512-VpEG+qmj7vKPMUSPKsGFwZgbm4QVM2bTqZEbW9zvPOFIbTKtrGaq/n/O0LhMramPkoQZKYKs/0i7OsEoZaOybQ==", - "dev": true, - "dependencies": { - "@storybook/addon-actions": "8.1.9", - "@storybook/addon-backgrounds": "8.1.9", - "@storybook/addon-controls": "8.1.9", - "@storybook/addon-docs": "8.1.9", - "@storybook/addon-highlight": "8.1.9", - "@storybook/addon-measure": "8.1.9", - "@storybook/addon-outline": "8.1.9", - "@storybook/addon-toolbars": "8.1.9", - "@storybook/addon-viewport": "8.1.9", - "@storybook/core-common": "8.1.9", - "@storybook/manager-api": "8.1.9", - "@storybook/node-logger": "8.1.9", - "@storybook/preview-api": "8.1.9", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.1.10.tgz", + "integrity": "sha512-xgAXdl/MaKWmwqJJpw4z1YaD1V/r74VHHLqY3Z4YaU9DmlApkCa+FmZSS9QVAf7g6JNUcD1Dbtw5j62uNn+YyA==", + "dev": true, + "dependencies": { + "@storybook/addon-actions": "8.1.10", + "@storybook/addon-backgrounds": "8.1.10", + "@storybook/addon-controls": "8.1.10", + "@storybook/addon-docs": "8.1.10", + "@storybook/addon-highlight": "8.1.10", + "@storybook/addon-measure": "8.1.10", + "@storybook/addon-outline": "8.1.10", + "@storybook/addon-toolbars": "8.1.10", + "@storybook/addon-viewport": "8.1.10", + "@storybook/core-common": "8.1.10", + "@storybook/manager-api": "8.1.10", + "@storybook/node-logger": "8.1.10", + "@storybook/preview-api": "8.1.10", "ts-dedent": "^2.0.0" }, "funding": { @@ -5112,9 +5085,9 @@ } }, "node_modules/@storybook/addon-highlight": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.1.9.tgz", - "integrity": "sha512-7jcjepeP/Z6XhKXKIfMqrM72tsTwo3wAaytuVWG9mHeNTTphepqO0YXZphaEh5EhupaT0DOYWT6jVxOkiw+xpA==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.1.10.tgz", + "integrity": "sha512-s9QKGtU6WGB/+CggNWg940NIi+u0tcxpPxqg/ltg3EOHr8J0NAZur6mibs3Z4Q5CXkAuNdWrvopLu+/27i1rQQ==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5125,15 +5098,15 @@ } }, "node_modules/@storybook/addon-interactions": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.1.9.tgz", - "integrity": "sha512-R916xLxWrhNPujo63JHIn8pcwR9KpaME/WH1PGLFsvVS7R7gcTNsa/ZL2LanuG8tHtEcLAoGufXaeoZGmTCTIQ==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.1.10.tgz", + "integrity": "sha512-GGU66TxYv6Bis10mmlgMhLOyai1am1amKVvX7ML8XYfsi6lA9zCnfQSVXulYLfjfzyIR6Ld8Kxe5awvjucPxSw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.1.9", - "@storybook/test": "8.1.9", - "@storybook/types": "8.1.9", + "@storybook/instrumenter": "8.1.10", + "@storybook/test": "8.1.10", + "@storybook/types": "8.1.10", "polished": "^4.2.2", "ts-dedent": "^2.2.0" }, @@ -5143,9 +5116,9 @@ } }, "node_modules/@storybook/addon-links": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-8.1.9.tgz", - "integrity": "sha512-gawakQHokGDLEDIyyJzxHB0d5AJi2sSLzoNc0cvewEE55i6T7jvpXpVqTu6/ZtVFZ+3x3gLIQ6Q3krNNIz6W2A==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-8.1.10.tgz", + "integrity": "sha512-SxCuK7k7A0/qIPzV68u25qfye3Fb0PkC1izlRbt7u64wIUIxGzgfjM3dFRWK2VaJzCsEQWSmIdv7YHi7Wv5y3w==", "dev": true, "dependencies": { "@storybook/csf": "^0.1.7", @@ -5166,9 +5139,9 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.1.9.tgz", - "integrity": "sha512-YHU4XQkpA1WxAOLeqnHdX9g0ubuHHDIqLkVjixt/BHejDwLcLzfSyKiX6o4xy+0MUilFDQD2Q/psiDHkLrvnVQ==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.1.10.tgz", + "integrity": "sha512-akhdg3WBOBvDsolzSSvW4TIdZLMVlL9DS6rpZvhydXeX8pG0sjb+sON6VUL4h8Gs7qa8QumauXCr+Y4q1FhZhw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -5180,9 +5153,9 @@ } }, "node_modules/@storybook/addon-outline": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.1.9.tgz", - "integrity": "sha512-Y1jgsVtW87qBQfKFMFk8vinsjQq7/yOGygtj2PHIgZO4foOaqwVDq7ioHCogmrdOycfpeByCtT3nUFAXxZxMsw==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.1.10.tgz", + "integrity": "sha512-Edn5TWpV1DcumOjx0qG9bBKja6vz210ip7O47JbRDu7IDR8lguaM2X9xbmhXhBQq4fmqvobZmfRnrSeCtSYeyQ==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -5194,9 +5167,9 @@ } }, "node_modules/@storybook/addon-toolbars": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.1.9.tgz", - "integrity": "sha512-aW+HsuC0iWjPSbJtxdbdGdCLXzV0dxPp8e4TPugT084ImTp+i+77xXUTl+PCylld8a51ulEssOxARewGN/QMsw==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.1.10.tgz", + "integrity": "sha512-5bRcCWrhaTX5Y91EWmHilPZ7kZaneaY414Gn5a6gsaNgaVPkSx9KD9j8M9DyXJ4yQNs265TiPWQqWrPB3Q2VgA==", "dev": true, "funding": { "type": "opencollective", @@ -5204,9 +5177,9 @@ } }, "node_modules/@storybook/addon-viewport": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.1.9.tgz", - "integrity": "sha512-ZCoqzNWp2w9TLJL8RC0fjv1RQcuGhwI64jjlGvszZm7TxP82C1SS71X/jbx5LWc2Dyl5xMt1/yOGFXvkAB2SUg==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.1.10.tgz", + "integrity": "sha512-rJpyAwTVQa+6yqjdMDeqNKoW5aPoSzBAtMywtNMP5lHwF6NpJUvm67c/ox0//d5dPPPjlJDz2QC2COWqjviQyw==", "dev": true, "dependencies": { "memoizerific": "^1.11.3" @@ -5217,23 +5190,23 @@ } }, "node_modules/@storybook/blocks": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.1.9.tgz", - "integrity": "sha512-AB7icCijK2rft5kmzFF7bHuTdVIf6u5r26r4auqYxxVsHV87+k12kLvC8AyEssVIKMo+2vzImmdlhIScpCjrdQ==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.1.10.tgz", + "integrity": "sha512-8ZGgLIUBdSafcyaKR5Zs0CFisFCPoxZBVt3GMUCZtN+G17YhEg4+OnZs5aMZknfnh28BUnZS2STjWTGStAE5Rw==", "dev": true, "dependencies": { - "@storybook/channels": "8.1.9", - "@storybook/client-logger": "8.1.9", - "@storybook/components": "8.1.9", - "@storybook/core-events": "8.1.9", + "@storybook/channels": "8.1.10", + "@storybook/client-logger": "8.1.10", + "@storybook/components": "8.1.10", + "@storybook/core-events": "8.1.10", "@storybook/csf": "^0.1.7", - "@storybook/docs-tools": "8.1.9", + "@storybook/docs-tools": "8.1.10", "@storybook/global": "^5.0.0", "@storybook/icons": "^1.2.5", - "@storybook/manager-api": "8.1.9", - "@storybook/preview-api": "8.1.9", - "@storybook/theming": "8.1.9", - "@storybook/types": "8.1.9", + "@storybook/manager-api": "8.1.10", + "@storybook/preview-api": "8.1.10", + "@storybook/theming": "8.1.10", + "@storybook/types": "8.1.10", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -5265,15 +5238,15 @@ } }, "node_modules/@storybook/builder-manager": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-8.1.9.tgz", - "integrity": "sha512-CmDXVrx3moUde6VWmdb49eCYHNu4e2wxeANKSsW1yEC0OLysQ9N6W9B5CuVWeoV3axVX/tKDqC83YY/008/4Qg==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-8.1.10.tgz", + "integrity": "sha512-dhg54zpaglR9XKNAiwMqm5/IONMCEG/hO/iTfNHJI1rAGeWhvM71cmhF+VlKUcjpTlIfHe7J19+TL+sWQJNgtg==", "dev": true, "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "8.1.9", - "@storybook/manager": "8.1.9", - "@storybook/node-logger": "8.1.9", + "@storybook/core-common": "8.1.10", + "@storybook/manager": "8.1.10", + "@storybook/node-logger": "8.1.10", "@types/ejs": "^3.1.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", "browser-assert": "^1.2.1", @@ -5291,20 +5264,20 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.1.9.tgz", - "integrity": "sha512-OqjJne7x3l8yPMB3VTc9zbKYN5+9Yw/8cW9vK3N0rMObQa6be76JfJAgTFUGujp/GdVjYEiFI1Pu3b1wf5loWQ==", - "dev": true, - "dependencies": { - "@storybook/channels": "8.1.9", - "@storybook/client-logger": "8.1.9", - "@storybook/core-common": "8.1.9", - "@storybook/core-events": "8.1.9", - "@storybook/csf-plugin": "8.1.9", - "@storybook/node-logger": "8.1.9", - "@storybook/preview": "8.1.9", - "@storybook/preview-api": "8.1.9", - "@storybook/types": "8.1.9", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.1.10.tgz", + "integrity": "sha512-8A/i5OEyRVKkTROLgxXEEJRAS8gmdonr4xA15TqAvjOtdYjwP6JoQ4cjNOqH7fPPGPdx/t49Z/7E+v7Ovv6cAw==", + "dev": true, + "dependencies": { + "@storybook/channels": "8.1.10", + "@storybook/client-logger": "8.1.10", + "@storybook/core-common": "8.1.10", + "@storybook/core-events": "8.1.10", + "@storybook/csf-plugin": "8.1.10", + "@storybook/node-logger": "8.1.10", + "@storybook/preview": "8.1.10", + "@storybook/preview-api": "8.1.10", + "@storybook/types": "8.1.10", "@types/find-cache-dir": "^3.2.1", "browser-assert": "^1.2.1", "es-module-lexer": "^1.5.0", @@ -5337,13 +5310,13 @@ } }, "node_modules/@storybook/channels": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.9.tgz", - "integrity": "sha512-7dvzoHBJQDvG1PMJVLnsPw3xuQ6KMZBSOgzVrkFWi4f3j6zXjs7ADVo/uqIoLq8inziupz2himWFnUtl5moIUw==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.10.tgz", + "integrity": "sha512-CxZE4XrQoe+F+S2mo8Z9HTvFZKfKHIIiwYfoXKCryVp2U/z7ZKrely2PbfxWsrQvF3H0+oegfYYhYRHRiM21Zw==", "dev": true, "dependencies": { - "@storybook/client-logger": "8.1.9", - "@storybook/core-events": "8.1.9", + "@storybook/client-logger": "8.1.10", + "@storybook/core-events": "8.1.10", "@storybook/global": "^5.0.0", "telejson": "^7.2.0", "tiny-invariant": "^1.3.1" @@ -5354,22 +5327,22 @@ } }, "node_modules/@storybook/cli": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-8.1.9.tgz", - "integrity": "sha512-+4DQJf5yrdmKrAs8sx0WvKu/ja49oOLQU2MxRPKhXW3bxDFjkTYvWuCKwSbMwUa7Npt96CK3bwAPP53jz/+mXA==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-8.1.10.tgz", + "integrity": "sha512-7Fm2Qgk33sHayZ0QABqwe1Jto4yyVRVW6kTrSeP5IuLh+mn244RgxBvWtGCyL1EcWDFI7PYUFa0HxgTCq7C+OA==", "dev": true, "dependencies": { "@babel/core": "^7.24.4", "@babel/types": "^7.24.0", "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "8.1.9", - "@storybook/core-common": "8.1.9", - "@storybook/core-events": "8.1.9", - "@storybook/core-server": "8.1.9", - "@storybook/csf-tools": "8.1.9", - "@storybook/node-logger": "8.1.9", - "@storybook/telemetry": "8.1.9", - "@storybook/types": "8.1.9", + "@storybook/codemod": "8.1.10", + "@storybook/core-common": "8.1.10", + "@storybook/core-events": "8.1.10", + "@storybook/core-server": "8.1.10", + "@storybook/csf-tools": "8.1.10", + "@storybook/node-logger": "8.1.10", + "@storybook/telemetry": "8.1.10", + "@storybook/types": "8.1.10", "@types/semver": "^7.3.4", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", @@ -5568,9 +5541,9 @@ } }, "node_modules/@storybook/client-logger": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.9.tgz", - "integrity": "sha512-sHX0UhAquhVCtbRtDNN5Ura8hUxRjZWKgQKt8NWQIt9hOSSurGJE3+93OzNAYDp54kh77QKY3qdZCgAJZuWZPw==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.10.tgz", + "integrity": "sha512-sVXCOo7jnlCgRPOcMlQGODAEt6ipPj+8xGkRUws0kie77qiDld1drLSB6R380dWc9lUrbv9E1GpxCd/Y4ZzSJQ==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5581,18 +5554,18 @@ } }, "node_modules/@storybook/codemod": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-8.1.9.tgz", - "integrity": "sha512-thTdwiAO/eUUyiCzgkyGjA4fE3BAdXqf3WdTRjH4Vqk4yby9EalwcBitkj/M6bCDGjdoxU2q2ByUDD9opwyMiw==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-8.1.10.tgz", + "integrity": "sha512-HZ/vrseP/sHfbO2RZpImP5eeqOakJ0X31BIiD4uxDBIKGltMXhlPKHTI93O2YGR+vbB33otoTVRjE+ZpPmC6SA==", "dev": true, "dependencies": { "@babel/core": "^7.24.4", "@babel/preset-env": "^7.24.4", "@babel/types": "^7.24.0", "@storybook/csf": "^0.1.7", - "@storybook/csf-tools": "8.1.9", - "@storybook/node-logger": "8.1.9", - "@storybook/types": "8.1.9", + "@storybook/csf-tools": "8.1.10", + "@storybook/node-logger": "8.1.10", + "@storybook/types": "8.1.10", "@types/cross-spawn": "^6.0.2", "cross-spawn": "^7.0.3", "globby": "^14.0.1", @@ -5652,19 +5625,19 @@ } }, "node_modules/@storybook/components": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.1.9.tgz", - "integrity": "sha512-YGDYTJfobtNDBJrvXNgmExX3LGnb9jGPGdroS4uHewLFaqEI3Fqu3RiFLaJf40TlZ27uWLprysdLRol8j+wYEw==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.1.10.tgz", + "integrity": "sha512-fL2odC3Ct3NiFJEiGLmMNB3Tw3CdUDA/+va3Ka/JEhjaRhbsND2JgriHYmED8SnX9CCqwXoxl5QA8qwl+Oyolw==", "dev": true, "dependencies": { "@radix-ui/react-dialog": "^1.0.5", "@radix-ui/react-slot": "^1.0.2", - "@storybook/client-logger": "8.1.9", + "@storybook/client-logger": "8.1.10", "@storybook/csf": "^0.1.7", "@storybook/global": "^5.0.0", "@storybook/icons": "^1.2.5", - "@storybook/theming": "8.1.9", - "@storybook/types": "8.1.9", + "@storybook/theming": "8.1.10", + "@storybook/types": "8.1.10", "memoizerific": "^1.11.3", "util-deprecate": "^1.0.2" }, @@ -5678,15 +5651,15 @@ } }, "node_modules/@storybook/core-common": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-8.1.9.tgz", - "integrity": "sha512-+KReoo41FUknTxk3fbnoul995SnZdKAVSK6MuqKOQnC9PH6bh864k6i1LShVZx/wk3n25h9xorD3UgyRI6sZ0w==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-8.1.10.tgz", + "integrity": "sha512-+0GhgDRQwUlXu1lY77NdLnVBVycCEW0DG7eu7rvLYYkTyNRxbdl2RWsQpjr/j4sxqT6u82l9/b+RWpmsl4MgMQ==", "dev": true, "dependencies": { - "@storybook/core-events": "8.1.9", - "@storybook/csf-tools": "8.1.9", - "@storybook/node-logger": "8.1.9", - "@storybook/types": "8.1.9", + "@storybook/core-events": "8.1.10", + "@storybook/csf-tools": "8.1.10", + "@storybook/node-logger": "8.1.10", + "@storybook/types": "8.1.10", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", "chalk": "^4.1.0", @@ -5760,9 +5733,9 @@ "dev": true }, "node_modules/@storybook/core-events": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.9.tgz", - "integrity": "sha512-c8MnBqUtTvIBNoDBBQQrFEy8pNAagcDryh5FM+T1SPBsH6j3fRSZwXMc6vvW2BYkQxJ67kpd7xrH7uapqhNEcg==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.10.tgz", + "integrity": "sha512-aS4zsBVyJds74+rAW0IfTEjULDCQwXecVpQfv11B8/89/07s3bOPssGGoTtCTaN4pHbduywE6MxbmFvTmXOFCA==", "dev": true, "dependencies": { "@storybook/csf": "^0.1.7", @@ -5774,29 +5747,29 @@ } }, "node_modules/@storybook/core-server": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-8.1.9.tgz", - "integrity": "sha512-bn3M264vr3GY9kgAdRRIUdVV4PcUqtYvttQ/h6XDVJWC1UYUQW49zQNxQLQUXSQo4KLISnvTKHmP5qgbY6BASQ==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-8.1.10.tgz", + "integrity": "sha512-jNL5/daNyo7Rcu+y/bOmSB1P65pmcaLwvpr31EUEIISaAqvgruaneS3GKHg2TR0wcxEoHaM4abqhW6iwkI/XYQ==", "dev": true, "dependencies": { "@aw-web-design/x-default-browser": "1.4.126", "@babel/core": "^7.24.4", "@babel/parser": "^7.24.4", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "8.1.9", - "@storybook/channels": "8.1.9", - "@storybook/core-common": "8.1.9", - "@storybook/core-events": "8.1.9", + "@storybook/builder-manager": "8.1.10", + "@storybook/channels": "8.1.10", + "@storybook/core-common": "8.1.10", + "@storybook/core-events": "8.1.10", "@storybook/csf": "^0.1.7", - "@storybook/csf-tools": "8.1.9", + "@storybook/csf-tools": "8.1.10", "@storybook/docs-mdx": "3.1.0-next.0", "@storybook/global": "^5.0.0", - "@storybook/manager": "8.1.9", - "@storybook/manager-api": "8.1.9", - "@storybook/node-logger": "8.1.9", - "@storybook/preview-api": "8.1.9", - "@storybook/telemetry": "8.1.9", - "@storybook/types": "8.1.9", + "@storybook/manager": "8.1.10", + "@storybook/manager-api": "8.1.10", + "@storybook/node-logger": "8.1.10", + "@storybook/preview-api": "8.1.10", + "@storybook/telemetry": "8.1.10", + "@storybook/types": "8.1.10", "@types/detect-port": "^1.3.0", "@types/diff": "^5.0.9", "@types/node": "^18.0.0", @@ -5831,9 +5804,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "18.19.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.34.tgz", - "integrity": "sha512-eXF4pfBNV5DAMKGbI02NnDtWrQ40hAN558/2vvS4gMpMIxaf6JmD7YjnZbq0Q9TDSSkKBamime8ewRoomHdt4g==", + "version": "18.19.39", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz", + "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -5914,12 +5887,12 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.1.9.tgz", - "integrity": "sha512-OC3Z7lx5Tt3iNqVpfAykCKhmHyWXwjPvK0C0RubmKLRWdH66aKp2SzvqJSFppRGZySWKKJqSBGtjB/AsG/Do4Q==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.1.10.tgz", + "integrity": "sha512-EwW9Olw85nKamUH/2YrkD+bxDvDP4TJ2MqS1qR3UU+lBP/HMQA2zFAgiW1TUmmdHmhAeiDOXbDhijxMa30sppQ==", "dev": true, "dependencies": { - "@storybook/csf-tools": "8.1.9", + "@storybook/csf-tools": "8.1.10", "unplugin": "^1.3.1" }, "funding": { @@ -5928,9 +5901,9 @@ } }, "node_modules/@storybook/csf-tools": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.1.9.tgz", - "integrity": "sha512-nCYGNJOoBZjAdD1blTgS8/O0HwXaZ4cwUd8G9pQbsyt/cSW65clATeEV1rTTcR+G9JHnZBQ3jLAnH2dbFY0c8w==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.1.10.tgz", + "integrity": "sha512-bm/J1jAJf1YaKhcXgOlsNN02sf8XvILXuVAvr9cFC3aFkxVoGbC2AKCss4cgXAd8EQxUNtyETkOcheB5mJ5IlA==", "dev": true, "dependencies": { "@babel/generator": "^7.24.4", @@ -5938,7 +5911,7 @@ "@babel/traverse": "^7.24.1", "@babel/types": "^7.24.0", "@storybook/csf": "^0.1.7", - "@storybook/types": "8.1.9", + "@storybook/types": "8.1.10", "fs-extra": "^11.1.0", "recast": "^0.23.5", "ts-dedent": "^2.0.0" @@ -5955,15 +5928,15 @@ "dev": true }, "node_modules/@storybook/docs-tools": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-8.1.9.tgz", - "integrity": "sha512-ZGtlldQARXG+v8KtNq5dxtAfPLsaLFuV4gJQ4MHXcspQSKtQ6fq5k2IkxhKhDg4EEQ/lhSl8vUxws+W79xWbbg==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-8.1.10.tgz", + "integrity": "sha512-FsO/+L9CrUfAIbm9cdH9UpjTusT7L5RZxN4WCXkiF5SpAVyBoY8kar3RzTZVoh4aQxt1yGWYC+SZGjgf++xa4g==", "dev": true, "dependencies": { - "@storybook/core-common": "8.1.9", - "@storybook/core-events": "8.1.9", - "@storybook/preview-api": "8.1.9", - "@storybook/types": "8.1.9", + "@storybook/core-common": "8.1.10", + "@storybook/core-events": "8.1.10", + "@storybook/preview-api": "8.1.10", + "@storybook/types": "8.1.10", "@types/doctrine": "^0.0.3", "assert": "^2.1.0", "doctrine": "^3.0.0", @@ -5994,16 +5967,16 @@ } }, "node_modules/@storybook/instrumenter": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.1.9.tgz", - "integrity": "sha512-R4L//OeQzLiVHkMLJcQ387aaOEXjP28m5sLJZIPI97PQNCrY/vD+aMWGDb4f5DOgCT7e248BEfpnlW5ZwZnnRA==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.1.10.tgz", + "integrity": "sha512-/TZ3JpTCorbhThCfaR5k4Vs0Svp6xz6t+FVaim/v7N9VErEfmtn+d76CqYLfvmo68DzkEzvArOFBdh2MXtscsw==", "dev": true, "dependencies": { - "@storybook/channels": "8.1.9", - "@storybook/client-logger": "8.1.9", - "@storybook/core-events": "8.1.9", + "@storybook/channels": "8.1.10", + "@storybook/client-logger": "8.1.10", + "@storybook/core-events": "8.1.10", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "8.1.9", + "@storybook/preview-api": "8.1.10", "@vitest/utils": "^1.3.1", "util": "^0.12.4" }, @@ -6013,9 +5986,9 @@ } }, "node_modules/@storybook/manager": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-8.1.9.tgz", - "integrity": "sha512-sp1N7ZgOtGK5uhCgwuPQlJ4JYKr3TyNeahotwAf2FUb5n70YyXDzqoqO8q8H0y9NarX+EcP1gJ4GmpT9+qTxsQ==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-8.1.10.tgz", + "integrity": "sha512-dQmRBfT4CABIPhv0kL25qKcQk2SiU5mIZ1DuVzckIbZW+iYEOAusyJ/0HExM9leCrymaW3BgZGlHbIXL7EvZtw==", "dev": true, "funding": { "type": "opencollective", @@ -6023,20 +5996,20 @@ } }, "node_modules/@storybook/manager-api": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.1.9.tgz", - "integrity": "sha512-iafn/C9Bg9UHae7FoL5rNLCeQQnzvm+kKRlQzP5iVSJurnaYnajzej4baoZmF/eZJTFLdyp8klsqcl+NLJh8iA==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.1.10.tgz", + "integrity": "sha512-9aZ+zoNrTo1BJskVmCKE/yqlBXmWaKVZh1W/+/xu3WL9wdm/tBlozRvQwegIZlRVvUOxtjOg28Vd2hySYL58zg==", "dev": true, "dependencies": { - "@storybook/channels": "8.1.9", - "@storybook/client-logger": "8.1.9", - "@storybook/core-events": "8.1.9", + "@storybook/channels": "8.1.10", + "@storybook/client-logger": "8.1.10", + "@storybook/core-events": "8.1.10", "@storybook/csf": "^0.1.7", "@storybook/global": "^5.0.0", "@storybook/icons": "^1.2.5", - "@storybook/router": "8.1.9", - "@storybook/theming": "8.1.9", - "@storybook/types": "8.1.9", + "@storybook/router": "8.1.10", + "@storybook/theming": "8.1.10", + "@storybook/types": "8.1.10", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -6050,9 +6023,9 @@ } }, "node_modules/@storybook/node-logger": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.1.9.tgz", - "integrity": "sha512-X5YGkJOui+m3TXqbf7HODzrf4VdzamtlUXlD08Qm36JJD/qJJZVhSivzkQR4uom/VW+ejChM2ETgw41SrK0vJA==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.1.10.tgz", + "integrity": "sha512-djgbAROgGAvz/gr49egBxCHn1+rui57e76qa9aOMPzEBcxsGrnnKKp0uNdiNt4M7Xv6S2QHbJ2SfOlHhWmMeaA==", "dev": true, "funding": { "type": "opencollective", @@ -6060,9 +6033,9 @@ } }, "node_modules/@storybook/preview": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-8.1.9.tgz", - "integrity": "sha512-yLwe9RJRlF+h9D73pyo4fUXFxN/krTgLKT08IoyWwq7/onzVlujYdDl56EsM+Aw5OktBuwAvTiaw0WCdiFP4sA==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-8.1.10.tgz", + "integrity": "sha512-Ch7SJQ8/vm4o7ZPwPeL3nGOCKx1Aul7VcvOVkDs+K2lZusJjUROHVTBYlbs71DTTmCo2gS7WhSq+HOpD59BPDg==", "dev": true, "funding": { "type": "opencollective", @@ -6070,17 +6043,17 @@ } }, "node_modules/@storybook/preview-api": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.1.9.tgz", - "integrity": "sha512-deZoKsTHMbpzGOhboVdT/MHhafPKQyxo2tj1Zrb0GFfpabAUnJzVXRr93P5qCOKCuPQEwQyZx0ScW5qzY2JTrQ==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.1.10.tgz", + "integrity": "sha512-0Gl8WHDtp/srrA5uBYXl7YbC8kFQA7IxVmwWN7dIS7HAXu63JZ6JfxaFcfy+kCBfZSBD7spFG4J0f5JXRDYbpg==", "dev": true, "dependencies": { - "@storybook/channels": "8.1.9", - "@storybook/client-logger": "8.1.9", - "@storybook/core-events": "8.1.9", + "@storybook/channels": "8.1.10", + "@storybook/client-logger": "8.1.10", + "@storybook/core-events": "8.1.10", "@storybook/csf": "^0.1.7", "@storybook/global": "^5.0.0", - "@storybook/types": "8.1.9", + "@storybook/types": "8.1.10", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6096,9 +6069,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.1.9.tgz", - "integrity": "sha512-nRpw1SxkSCf8+MrsgL37lpihcr0fwtG0tHShW6F2+Lrx0nlzaOTH/VOvAwZJLNYpqddqln6vQ6Yk7Wxvw2IIkw==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.1.10.tgz", + "integrity": "sha512-+HS75Pq8jb3xkVq0hK33D84aGfbJCURRB+GN2vfTMmmjguQt7z2+MnGqRgrUCt6h2rxU3VdPg9OBnYi/UC0Zrg==", "dev": true, "funding": { "type": "opencollective", @@ -6110,12 +6083,12 @@ } }, "node_modules/@storybook/router": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-8.1.9.tgz", - "integrity": "sha512-b7e/pnqfYLD3oxdStnAZI+Gxp0Bodk3q5Jo9FUoiSNZaa3Pu8conq+jsyyXT19uDZtWwOursBKVvDM2/dtHGLg==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-8.1.10.tgz", + "integrity": "sha512-JDEgZ0vVDx0GLz+dKD+R1xqWwjqsCdA2F+s3/si7upHqkFRWU5ocextZ63oKsRnCoaeUh6OavAU4EdkrKiQtQw==", "dev": true, "dependencies": { - "@storybook/client-logger": "8.1.9", + "@storybook/client-logger": "8.1.10", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -6125,14 +6098,14 @@ } }, "node_modules/@storybook/telemetry": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-8.1.9.tgz", - "integrity": "sha512-ayNt4g6MKIQCj5fPmB2WhYbEEH+AMVswUOedFp2DtPojeDnVJMp38lSFykTbjaq+/HrDpnoZn6fG4pd+05N+dg==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-8.1.10.tgz", + "integrity": "sha512-pwiMWrq85D0AnaAgYNfB2w2BDgqnetQ+tXwsUAw4fUEFwA4oPU6r0uqekRbNNE6wmSSYjiiFP3JgknBFqjd2hg==", "dev": true, "dependencies": { - "@storybook/client-logger": "8.1.9", - "@storybook/core-common": "8.1.9", - "@storybook/csf-tools": "8.1.9", + "@storybook/client-logger": "8.1.10", + "@storybook/core-common": "8.1.10", + "@storybook/csf-tools": "8.1.10", "chalk": "^4.1.0", "detect-package-manager": "^2.0.1", "fetch-retry": "^5.0.2", @@ -6145,15 +6118,15 @@ } }, "node_modules/@storybook/test": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.1.9.tgz", - "integrity": "sha512-7b9PFHh+1XJz2Cge6FZTyZZHJfGelr7GB7RtTvsWY17+gYBzhbiv1Oqrj0+RKRZtyjfG0lAJ6fiyXETBevXmDw==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.1.10.tgz", + "integrity": "sha512-uskw/xb/GkGLRTEKPao/5xUKxjP1X3DnDpE52xDF46ZmTvM+gPQbkex97qdG6Mfv37/0lhVhufAsV3g5+CrYKQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "8.1.9", - "@storybook/core-events": "8.1.9", - "@storybook/instrumenter": "8.1.9", - "@storybook/preview-api": "8.1.9", + "@storybook/client-logger": "8.1.10", + "@storybook/core-events": "8.1.10", + "@storybook/instrumenter": "8.1.10", + "@storybook/preview-api": "8.1.10", "@testing-library/dom": "^9.3.4", "@testing-library/jest-dom": "^6.4.2", "@testing-library/user-event": "^14.5.2", @@ -6214,13 +6187,13 @@ } }, "node_modules/@storybook/theming": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.1.9.tgz", - "integrity": "sha512-CVM3F4Fa9cIFL4u/BhbANWytShBFeFBZeCFwvcJizJUL+nSgVlxeYilxwQB/1AxyJn/+OprW3nCw5aSbui/EEA==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.1.10.tgz", + "integrity": "sha512-W7mth4hwdTqWLneqYCyUnIEiDg4vSokoad8HEodPz6JC9XUPUX3Yi2W4W3xFvqrW4Z5RXfuJ53iG2HN+0AgaQw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@storybook/client-logger": "8.1.9", + "@storybook/client-logger": "8.1.10", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -6242,12 +6215,12 @@ } }, "node_modules/@storybook/types": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.9.tgz", - "integrity": "sha512-temr7cNoBwu/+EF0jZ7aIfHtqwMqyevPLRfl/emkZM2t751NxbTkP1kxvfk9I0L8wF7mvVHXWn2iIM3QBqzWDw==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.10.tgz", + "integrity": "sha512-UJ97iqI+0Mk13I6ayd3TaBfSFBkWnEauwTnFMQe1dN/L3wTh8laOBaLa0Vr3utRSnt2b5hpcw/nq7azB/Gx4Yw==", "dev": true, "dependencies": { - "@storybook/channels": "8.1.9", + "@storybook/channels": "8.1.10", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" }, @@ -6257,15 +6230,15 @@ } }, "node_modules/@storybook/vue3": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/vue3/-/vue3-8.1.9.tgz", - "integrity": "sha512-i63cwrPWYPMW7tGmWsVdlda3qJb9UGTt6Vl+HJ2Pirx0mJ+x2o0LA2fIyHyaFZf9wCu4bG1dkSmg7k3zag6I7g==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/vue3/-/vue3-8.1.10.tgz", + "integrity": "sha512-mNalklegjc+EA1nTPJtvk0dQrrB4crnuF4+bxuUTYfHBZeEFjfISu4kbWYnV+B5Q4S2svH16nfwbf4FPvDV7uw==", "dev": true, "dependencies": { - "@storybook/docs-tools": "8.1.9", + "@storybook/docs-tools": "8.1.10", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "8.1.9", - "@storybook/types": "8.1.9", + "@storybook/preview-api": "8.1.10", + "@storybook/types": "8.1.10", "@vue/compiler-core": "^3.0.0", "lodash": "^4.17.21", "ts-dedent": "^2.0.0", @@ -6284,15 +6257,15 @@ } }, "node_modules/@storybook/vue3-vite": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@storybook/vue3-vite/-/vue3-vite-8.1.9.tgz", - "integrity": "sha512-75tn8OIAIUDNLqlX8kGdzmaAiBC4pKS17JyBPEFm/EXdsfuLcq7LMzwWkr50x1dOxs3D6nNN1tRZyftU8uA1rA==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/@storybook/vue3-vite/-/vue3-vite-8.1.10.tgz", + "integrity": "sha512-opvgAYCak9aLKX1FgnW5JyjMrwXEaoheSZa1KgQ5kGssYgVqgDFHOpJ6CLk358Ph4YexO7bl80W5B/WnM6ZS6g==", "dev": true, "dependencies": { - "@storybook/builder-vite": "8.1.9", - "@storybook/core-server": "8.1.9", - "@storybook/types": "8.1.9", - "@storybook/vue3": "8.1.9", + "@storybook/builder-vite": "8.1.10", + "@storybook/core-server": "8.1.10", + "@storybook/types": "8.1.10", + "@storybook/vue3": "8.1.10", "find-package-json": "^1.2.0", "magic-string": "^0.30.0", "typescript": "^5.0.0", @@ -7014,9 +6987,9 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "20.14.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz", - "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==", + "version": "20.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.8.tgz", + "integrity": "sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==", "dependencies": { "undici-types": "~5.26.4" } @@ -7940,30 +7913,151 @@ } }, "node_modules/@vuepress/bundler-vite": { - "version": "2.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@vuepress/bundler-vite/-/bundler-vite-2.0.0-rc.13.tgz", - "integrity": "sha512-dzBM0eH0VvdsMB0+Y1sMpEfTz/elWytTNdjon7LUbda3oHMQOO+IwP0PcA7VNAqqnvMplMhawocaMC+STupymA==", + "version": "2.0.0-rc.14", + "resolved": "https://registry.npmjs.org/@vuepress/bundler-vite/-/bundler-vite-2.0.0-rc.14.tgz", + "integrity": "sha512-kttbowYITMCX3ztz78Qb6bMfXRv/GEpNu+nALksu7j/QJQ0gOzI2is68PatbmzZRWOufVsf1Zf0A8BwolmVcXA==", "devOptional": true, "dependencies": { "@vitejs/plugin-vue": "^5.0.5", - "@vuepress/client": "2.0.0-rc.13", - "@vuepress/core": "2.0.0-rc.13", - "@vuepress/shared": "2.0.0-rc.13", - "@vuepress/utils": "2.0.0-rc.13", + "@vuepress/client": "2.0.0-rc.14", + "@vuepress/core": "2.0.0-rc.14", + "@vuepress/shared": "2.0.0-rc.14", + "@vuepress/utils": "2.0.0-rc.14", "autoprefixer": "^10.4.19", "connect-history-api-fallback": "^2.0.0", "postcss": "^8.4.38", - "postcss-load-config": "^5.1.0", + "postcss-load-config": "^6.0.1", "rollup": "^4.18.0", - "vite": "5.2.11 || >5.2.12 <5.3.0", - "vue": "^3.4.27", - "vue-router": "^4.3.2" + "vite": "~5.3.1", + "vue": "^3.4.29", + "vue-router": "^4.3.3" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "node_modules/@vuepress/bundler-vite/node_modules/@vue/compiler-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", + "devOptional": true, + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vuepress/bundler-vite/node_modules/@vue/compiler-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", + "devOptional": true, + "dependencies": { + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/bundler-vite/node_modules/@vue/compiler-ssr": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", + "devOptional": true, + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/bundler-vite/node_modules/@vue/reactivity": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "devOptional": true, + "dependencies": { + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/bundler-vite/node_modules/@vue/runtime-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "devOptional": true, + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/bundler-vite/node_modules/@vue/runtime-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "devOptional": true, + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", + "csstype": "^3.1.3" + } + }, + "node_modules/@vuepress/bundler-vite/node_modules/@vue/server-renderer": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "devOptional": true, + "dependencies": { + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "vue": "3.4.29" + } + }, + "node_modules/@vuepress/bundler-vite/node_modules/@vue/shared": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==", + "devOptional": true + }, + "node_modules/@vuepress/bundler-vite/node_modules/vue": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", + "devOptional": true, + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vuepress/cli": { + "version": "2.0.0-rc.14", + "resolved": "https://registry.npmjs.org/@vuepress/cli/-/cli-2.0.0-rc.14.tgz", + "integrity": "sha512-oYJX1nE6/ohF2tzUtpBAFxRr4MF2kdtab3+AQ897esXzrciQnE2LxPQZ8BUOn6Jb3XYW12FXDdkHrr82rN6XnQ==", + "dependencies": { + "@vuepress/core": "2.0.0-rc.14", + "@vuepress/shared": "2.0.0-rc.14", + "@vuepress/utils": "2.0.0-rc.14", + "cac": "^6.7.14", + "chokidar": "^3.6.0", + "envinfo": "^7.13.0", + "esbuild": "~0.21.5" + }, + "bin": { + "vuepress-cli": "bin/vuepress.js" + } + }, + "node_modules/@vuepress/cli/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", "cpu": [ "ppc64" ], @@ -7975,10 +8069,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "node_modules/@vuepress/cli/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -7990,10 +8084,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "node_modules/@vuepress/cli/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -8005,10 +8099,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "node_modules/@vuepress/cli/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -8020,10 +8114,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "node_modules/@vuepress/cli/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -8035,10 +8129,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "node_modules/@vuepress/cli/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -8050,10 +8144,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "node_modules/@vuepress/cli/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -8065,10 +8159,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "node_modules/@vuepress/cli/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -8080,10 +8174,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "node_modules/@vuepress/cli/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -8095,10 +8189,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "node_modules/@vuepress/cli/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -8110,10 +8204,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "node_modules/@vuepress/cli/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -8125,10 +8219,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "node_modules/@vuepress/cli/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -8140,10 +8234,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "node_modules/@vuepress/cli/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -8155,10 +8249,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "node_modules/@vuepress/cli/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -8170,10 +8264,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "node_modules/@vuepress/cli/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -8185,10 +8279,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "node_modules/@vuepress/cli/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -8200,10 +8294,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "node_modules/@vuepress/cli/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -8215,10 +8309,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "node_modules/@vuepress/cli/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -8230,10 +8324,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "node_modules/@vuepress/cli/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -8245,10 +8339,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "node_modules/@vuepress/cli/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -8260,10 +8354,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "node_modules/@vuepress/cli/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -8275,10 +8369,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "node_modules/@vuepress/cli/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -8290,10 +8384,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "node_modules/@vuepress/cli/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -8305,11 +8399,10 @@ "node": ">=12" } }, - "node_modules/@vuepress/bundler-vite/node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", - "devOptional": true, + "node_modules/@vuepress/cli/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -8318,601 +8411,717 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - } - }, - "node_modules/@vuepress/bundler-vite/node_modules/vite": { - "version": "5.2.13", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.13.tgz", - "integrity": "sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==", - "devOptional": true, - "dependencies": { - "esbuild": "^0.20.1", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/@vuepress/client": { + "version": "2.0.0-rc.14", + "resolved": "https://registry.npmjs.org/@vuepress/client/-/client-2.0.0-rc.14.tgz", + "integrity": "sha512-ULwxOiWoUi15HWQ6qH60gWjxSXB0797uExCUa4HgHV/8SpIqv4SHFn6jqjo7qCzOxuTqj1RT47JH3oWfUF4XPA==", + "dependencies": { + "@vue/devtools-api": "^6.6.3", + "@vuepress/shared": "2.0.0-rc.14", + "vue": "^3.4.29", + "vue-router": "^4.3.3" + } + }, + "node_modules/@vuepress/client/node_modules/@vue/compiler-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vuepress/client/node_modules/@vue/compiler-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", + "dependencies": { + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/client/node_modules/@vue/compiler-ssr": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/client/node_modules/@vue/reactivity": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "dependencies": { + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/client/node_modules/@vue/runtime-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/client/node_modules/@vue/runtime-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", + "csstype": "^3.1.3" + } + }, + "node_modules/@vuepress/client/node_modules/@vue/server-renderer": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "dependencies": { + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" }, - "bin": { - "vite": "bin/vite.js" + "peerDependencies": { + "vue": "3.4.29" + } + }, + "node_modules/@vuepress/client/node_modules/@vue/shared": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" + }, + "node_modules/@vuepress/client/node_modules/vue": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" }, - "engines": { - "node": "^18.0.0 || >=20.0.0" + "peerDependencies": { + "typescript": "*" }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vuepress/core": { + "version": "2.0.0-rc.14", + "resolved": "https://registry.npmjs.org/@vuepress/core/-/core-2.0.0-rc.14.tgz", + "integrity": "sha512-Ly3fypjXGUgPzjfbXKJeyd59jxJgXkhxhWAGkH/rRyQeV8Nr7Wo1ah3H1MeGhlCRGH1T9Yd3Bz9W7QMoyWFfmg==", + "dependencies": { + "@vuepress/client": "2.0.0-rc.14", + "@vuepress/markdown": "2.0.0-rc.14", + "@vuepress/shared": "2.0.0-rc.14", + "@vuepress/utils": "2.0.0-rc.14", + "vue": "^3.4.29" + } + }, + "node_modules/@vuepress/core/node_modules/@vue/compiler-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vuepress/core/node_modules/@vue/compiler-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", + "dependencies": { + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/core/node_modules/@vue/compiler-ssr": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/core/node_modules/@vue/reactivity": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "dependencies": { + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/core/node_modules/@vue/runtime-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/core/node_modules/@vue/runtime-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", + "csstype": "^3.1.3" + } + }, + "node_modules/@vuepress/core/node_modules/@vue/server-renderer": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "dependencies": { + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" }, - "optionalDependencies": { - "fsevents": "~2.3.3" + "peerDependencies": { + "vue": "3.4.29" + } + }, + "node_modules/@vuepress/core/node_modules/@vue/shared": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" + }, + "node_modules/@vuepress/core/node_modules/vue": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" + "typescript": "*" }, "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { + "typescript": { "optional": true } } }, - "node_modules/@vuepress/cli": { - "version": "2.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@vuepress/cli/-/cli-2.0.0-rc.13.tgz", - "integrity": "sha512-En7iQnwgnmkPAgoT+YqzwgMRTO3uLwIk+ar3E7HnQA//ovZNmoaChkc/C3jjklP5OF3g9CtGT8VjZ9njDjLe/Q==", + "node_modules/@vuepress/helper": { + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/helper/-/helper-2.0.0-rc.37.tgz", + "integrity": "sha512-Sa2H6EqRuG0+521Z5WN7I8EQNwLwFe7U+1KtV01zFp2BcehsgD3EigBjBP7hl01ubb4T8wR7CxWv7cGVA4bPcw==", "dependencies": { - "@vuepress/core": "2.0.0-rc.13", - "@vuepress/shared": "2.0.0-rc.13", - "@vuepress/utils": "2.0.0-rc.13", - "cac": "^6.7.14", - "chokidar": "^3.6.0", - "envinfo": "^7.13.0", - "esbuild": "~0.20.2" + "@vue/shared": "^3.4.29", + "cheerio": "1.0.0-rc.12", + "fflate": "^0.8.2", + "gray-matter": "^4.0.3", + "vue": "^3.4.29" }, - "bin": { - "vuepress-cli": "bin/vuepress.js" + "peerDependencies": { + "vuepress": "2.0.0-rc.14" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/helper/node_modules/@vue/compiler-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/helper/node_modules/@vue/compiler-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", + "dependencies": { + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/helper/node_modules/@vue/compiler-ssr": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/helper/node_modules/@vue/reactivity": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "dependencies": { + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/helper/node_modules/@vue/runtime-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/helper/node_modules/@vue/runtime-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", + "csstype": "^3.1.3" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/helper/node_modules/@vue/server-renderer": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "dependencies": { + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "vue": "3.4.29" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/helper/node_modules/@vue/shared": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" + }, + "node_modules/@vuepress/helper/node_modules/vue": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vuepress/highlighter-helper": { + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/highlighter-helper/-/highlighter-helper-2.0.0-rc.37.tgz", + "integrity": "sha512-l7qxuJJP0+zxDd42UctS0Oc240cCN7BvxfEx6XJfaYmn2Yncrbbk15gS9tUT3jeXB959JGm8uUhxpPP0/4w3kw==", + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/markdown": { + "version": "2.0.0-rc.14", + "resolved": "https://registry.npmjs.org/@vuepress/markdown/-/markdown-2.0.0-rc.14.tgz", + "integrity": "sha512-9xr693gkp71qwEbQLxpo1ybhJ+lA2k5SiuFUgqqrmR2a8CSL3gcmKEGM+y7GMnHvL63U2dYlc9pUOtJ5rG9O0Q==", + "dependencies": { + "@mdit-vue/plugin-component": "^2.1.3", + "@mdit-vue/plugin-frontmatter": "^2.1.3", + "@mdit-vue/plugin-headers": "^2.1.3", + "@mdit-vue/plugin-sfc": "^2.1.3", + "@mdit-vue/plugin-title": "^2.1.3", + "@mdit-vue/plugin-toc": "^2.1.3", + "@mdit-vue/shared": "^2.1.3", + "@mdit-vue/types": "^2.1.0", + "@types/markdown-it": "^14.1.1", + "@types/markdown-it-emoji": "^3.0.1", + "@vuepress/shared": "2.0.0-rc.14", + "@vuepress/utils": "2.0.0-rc.14", + "markdown-it": "^14.1.0", + "markdown-it-anchor": "^9.0.1", + "markdown-it-emoji": "^3.0.0", + "mdurl": "^2.0.0" + } + }, + "node_modules/@vuepress/plugin-active-header-links": { + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-active-header-links/-/plugin-active-header-links-2.0.0-rc.37.tgz", + "integrity": "sha512-VLM0JXgdShRAR38smp/M72sctDIVPgW4E+fBpGaP4iG+JOywXbLp5MfiO/r1ww62k7LXRI8g8/hYjlhyeMGnEg==", + "dependencies": { + "@vueuse/core": "^10.11.0", + "vue": "^3.4.29" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-active-header-links/node_modules/@vue/compiler-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vuepress/plugin-active-header-links/node_modules/@vue/compiler-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", + "dependencies": { + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/plugin-active-header-links/node_modules/@vue/compiler-ssr": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/plugin-active-header-links/node_modules/@vue/reactivity": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "dependencies": { + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/plugin-active-header-links/node_modules/@vue/runtime-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", - "cpu": [ - "loong64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/plugin-active-header-links/node_modules/@vue/runtime-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", + "csstype": "^3.1.3" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", - "cpu": [ - "mips64el" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/plugin-active-header-links/node_modules/@vue/server-renderer": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "dependencies": { + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "vue": "3.4.29" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/plugin-active-header-links/node_modules/@vue/shared": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" + }, + "node_modules/@vuepress/plugin-active-header-links/node_modules/vue": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/plugin-back-to-top": { + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-back-to-top/-/plugin-back-to-top-2.0.0-rc.37.tgz", + "integrity": "sha512-R9rAXZCYdnBADvcbY2V4xtGOHS11mAIV98MbpixP1CYGaRdOGMcp4oJwfsGqwE1Iyi/nBgBaVFHexyQFkx7Rag==", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.37", + "@vueuse/core": "^10.11.0", + "vue": "^3.4.29" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/plugin-back-to-top/node_modules/@vue/compiler-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/plugin-back-to-top/node_modules/@vue/compiler-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", + "dependencies": { + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/plugin-back-to-top/node_modules/@vue/compiler-ssr": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/plugin-back-to-top/node_modules/@vue/reactivity": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "dependencies": { + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/plugin-back-to-top/node_modules/@vue/runtime-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/plugin-back-to-top/node_modules/@vue/runtime-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", + "csstype": "^3.1.3" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/plugin-back-to-top/node_modules/@vue/server-renderer": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "dependencies": { + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "vue": "3.4.29" } }, - "node_modules/@vuepress/cli/node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "node_modules/@vuepress/plugin-back-to-top/node_modules/@vue/shared": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" + }, + "node_modules/@vuepress/plugin-back-to-top/node_modules/vue": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@vuepress/cli/node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" + "node_modules/@vuepress/plugin-copy-code": { + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-copy-code/-/plugin-copy-code-2.0.0-rc.37.tgz", + "integrity": "sha512-Z8rvn3n+SsEUmyoR2rYo/AYUPbOsJravtVh4COVqc40FT6gxlZPLlUcr4XV4Nh0ja87oZn/FubbZMkWfU8MyOA==", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.37", + "@vueuse/core": "^10.11.0", + "vue": "^3.4.29" }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" + "peerDependencies": { + "vuepress": "2.0.0-rc.14" } }, - "node_modules/@vuepress/client": { - "version": "2.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@vuepress/client/-/client-2.0.0-rc.13.tgz", - "integrity": "sha512-kFHVyroAFZ+/ZVaItjIXOZA6r+ympWN+C+0yZYVkMpzyDVFdZrl9WazqhwHBIUj0/sA+NLq2o2EvoqvAPa1lFg==", + "node_modules/@vuepress/plugin-copy-code/node_modules/@vue/compiler-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", "dependencies": { - "@vue/devtools-api": "^6.6.1", - "@vuepress/shared": "2.0.0-rc.13", - "vue": "^3.4.27", - "vue-router": "^4.3.2" + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" } }, - "node_modules/@vuepress/core": { - "version": "2.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@vuepress/core/-/core-2.0.0-rc.13.tgz", - "integrity": "sha512-IK+5h2QAtl52g/3M0nGV2r0L+2cy0yhQ1Ez65ij4xs1FoiCEStJIVJSYGl1VMQDkB+MUGJAXZw86lNA2PIjgsg==", + "node_modules/@vuepress/plugin-copy-code/node_modules/@vue/compiler-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", "dependencies": { - "@vuepress/client": "2.0.0-rc.13", - "@vuepress/markdown": "2.0.0-rc.13", - "@vuepress/shared": "2.0.0-rc.13", - "@vuepress/utils": "2.0.0-rc.13", - "vue": "^3.4.27" + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/helper": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/helper/-/helper-2.0.0-rc.34.tgz", - "integrity": "sha512-xgsDya8wzzMJU12MTx7Osf38OcV91cgcS5E9wm2PFVsjC2Jlo/vkPAa2GQZEnK/CQpUpgrsBSf9tbj4aqxF18g==", + "node_modules/@vuepress/plugin-copy-code/node_modules/@vue/compiler-ssr": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", "dependencies": { - "@vue/shared": "^3.4.27", - "cheerio": "1.0.0-rc.12", - "fflate": "^0.8.2", - "gray-matter": "^4.0.3", - "vue": "^3.4.27" - }, - "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/highlighter-helper": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/highlighter-helper/-/highlighter-helper-2.0.0-rc.34.tgz", - "integrity": "sha512-E9SHLHUmPx8vdHE/F+jcR9S0WHHCTFujIW5KNH7yFGd5YYZc0cOsWKQvmBX1BArbTlbzeHwvjvGqcMTS4FdQyg==", - "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "node_modules/@vuepress/plugin-copy-code/node_modules/@vue/reactivity": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "dependencies": { + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/markdown": { - "version": "2.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@vuepress/markdown/-/markdown-2.0.0-rc.13.tgz", - "integrity": "sha512-p26OjCj0nMXFBRMPkMgt8VRfFLNF7V6YRqWdDtxipHl6S1y5s965uYgYfxTyr9TLGwnXRsZvE60wItKHftFe5w==", + "node_modules/@vuepress/plugin-copy-code/node_modules/@vue/runtime-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", "dependencies": { - "@mdit-vue/plugin-component": "^2.1.3", - "@mdit-vue/plugin-frontmatter": "^2.1.3", - "@mdit-vue/plugin-headers": "^2.1.3", - "@mdit-vue/plugin-sfc": "^2.1.3", - "@mdit-vue/plugin-title": "^2.1.3", - "@mdit-vue/plugin-toc": "^2.1.3", - "@mdit-vue/shared": "^2.1.3", - "@mdit-vue/types": "^2.1.0", - "@types/markdown-it": "^14.1.1", - "@types/markdown-it-emoji": "^3.0.1", - "@vuepress/shared": "2.0.0-rc.13", - "@vuepress/utils": "2.0.0-rc.13", - "markdown-it": "^14.1.0", - "markdown-it-anchor": "^9.0.1", - "markdown-it-emoji": "^3.0.0", - "mdurl": "^2.0.0" + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/plugin-active-header-links": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-active-header-links/-/plugin-active-header-links-2.0.0-rc.34.tgz", - "integrity": "sha512-2uA4AJIiHap32lPcVF/6T3mWg+62B/EoXoqp0yv73+Ib16epX4VK+7BarI5Gbv8qDzNFfReOh3uykGojqz478g==", + "node_modules/@vuepress/plugin-copy-code/node_modules/@vue/runtime-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", "dependencies": { - "@vueuse/core": "^10.10.0", - "vue": "^3.4.27" - }, - "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", + "csstype": "^3.1.3" } }, - "node_modules/@vuepress/plugin-back-to-top": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-back-to-top/-/plugin-back-to-top-2.0.0-rc.34.tgz", - "integrity": "sha512-f40lzlpM2q3ZZ1LN0Wzxc8d0GYlWXe20PyGB0k3aDDwW64qy6PgXr1J8bbZkC8166imJN45BubmZe3ECGtpYHg==", + "node_modules/@vuepress/plugin-copy-code/node_modules/@vue/server-renderer": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", "dependencies": { - "@vuepress/helper": "2.0.0-rc.34", - "@vueuse/core": "^10.10.0", - "vue": "^3.4.27" + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vue": "3.4.29" } }, - "node_modules/@vuepress/plugin-copy-code": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-copy-code/-/plugin-copy-code-2.0.0-rc.34.tgz", - "integrity": "sha512-vnfB1gXDk7YcjVTgy9FeaNHtXz/bR18skr72Wtq5qV5WLk3xfTe5chdE64zONne77w0TLFh7wAVX5VXbF6q7DQ==", + "node_modules/@vuepress/plugin-copy-code/node_modules/@vue/shared": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" + }, + "node_modules/@vuepress/plugin-copy-code/node_modules/vue": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", "dependencies": { - "@vuepress/helper": "2.0.0-rc.34", - "@vueuse/core": "^10.10.0", - "vue": "^3.4.27" + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@vuepress/plugin-git": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-git/-/plugin-git-2.0.0-rc.34.tgz", - "integrity": "sha512-IyT/czvtwbUJORXknCALyVGq3qC+4pIk8T9+z8RAljB7NgJK8WK2gSMCDLNDM3XkBwYkL8/AoDgl870gqq+Yhg==", + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-git/-/plugin-git-2.0.0-rc.37.tgz", + "integrity": "sha512-+p+EkcWsoErJXKdVZQBfazJ6Q8YFRXXjfDrb1qUSF5wCUfC7QgD6Vsgt5MmB9YZjbhj1Yf/xeZcDVB6qz8B+GA==", "dependencies": { - "execa": "^9.1.0" + "execa": "^9.2.0" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, "node_modules/@vuepress/plugin-git/node_modules/@sindresorhus/merge-streams": { @@ -8927,9 +9136,9 @@ } }, "node_modules/@vuepress/plugin-git/node_modules/execa": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.2.0.tgz", - "integrity": "sha512-vpOyYg7UAVKLAWWtRS2gAdgkT7oJbCn0me3gmUmxZih4kd3MF/oo8kNTBTIbkO3yuuF5uB4ZCZfn8BOolITYhg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.3.0.tgz", + "integrity": "sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==", "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.3", @@ -9032,145 +9241,430 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@vuepress/plugin-links-check": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-links-check/-/plugin-links-check-2.0.0-rc.34.tgz", - "integrity": "sha512-Z8NAmX4KpDmGXW8KzXWZrvkEa5IIGd2B8oS4chLZRDB2FnpM6v3LcUuuwhqrZwrHPPSpEujGI/M+tyRtTTuIpA==", + "node_modules/@vuepress/plugin-links-check": { + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-links-check/-/plugin-links-check-2.0.0-rc.37.tgz", + "integrity": "sha512-9YelTHKFKADKmSdGxEVyF5LE6r9rg95ia695tQ695n/ov+2/iC0Ez6Kc0ceaqdaCPMq8Q5OsLAh2/hC2N/H15Q==", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.37" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-markdown-container": { + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-markdown-container/-/plugin-markdown-container-2.0.0-rc.37.tgz", + "integrity": "sha512-o/jL/uHQ2U0x0crtODh2n4S51yG4BBmHw7DWrolP6e0FN6/PoQVsBenau5700c2iuouAfdrJ6G+tRbCrOx5ZjA==", + "dependencies": { + "@types/markdown-it": "^14.1.1", + "markdown-it-container": "^4.0.0" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-medium-zoom": { + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-2.0.0-rc.37.tgz", + "integrity": "sha512-s4AYQgWlXinmapYas+psmttWMIyUedi06bGcPVoXSHIoMsM74glr385xQtKSGp6V7F2CykGchYGeRyfGXG4OKQ==", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.37", + "medium-zoom": "^1.1.0", + "vue": "^3.4.29" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-medium-zoom/node_modules/@vue/compiler-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vuepress/plugin-medium-zoom/node_modules/@vue/compiler-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", + "dependencies": { + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/plugin-medium-zoom/node_modules/@vue/compiler-ssr": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/plugin-medium-zoom/node_modules/@vue/reactivity": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "dependencies": { + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/plugin-medium-zoom/node_modules/@vue/runtime-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/plugin-medium-zoom/node_modules/@vue/runtime-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", + "csstype": "^3.1.3" + } + }, + "node_modules/@vuepress/plugin-medium-zoom/node_modules/@vue/server-renderer": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "dependencies": { + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "vue": "3.4.29" + } + }, + "node_modules/@vuepress/plugin-medium-zoom/node_modules/@vue/shared": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" + }, + "node_modules/@vuepress/plugin-medium-zoom/node_modules/vue": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vuepress/plugin-nprogress": { + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-nprogress/-/plugin-nprogress-2.0.0-rc.37.tgz", + "integrity": "sha512-HEv6AzAG3U7Q5cAkeuQhMV2JhASB/2veTQ85OHNyWUzZ5yTC/Kx5PfQOb87X6LWK51eZA5vImibeZbFJ1mkE3g==", + "dependencies": { + "vue": "^3.4.29" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.14" + } + }, + "node_modules/@vuepress/plugin-nprogress/node_modules/@vue/compiler-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vuepress/plugin-nprogress/node_modules/@vue/compiler-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", + "dependencies": { + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/plugin-nprogress/node_modules/@vue/compiler-ssr": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/plugin-nprogress/node_modules/@vue/reactivity": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "dependencies": { + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/plugin-nprogress/node_modules/@vue/runtime-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/plugin-nprogress/node_modules/@vue/runtime-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", + "csstype": "^3.1.3" + } + }, + "node_modules/@vuepress/plugin-nprogress/node_modules/@vue/server-renderer": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "dependencies": { + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "vue": "3.4.29" + } + }, + "node_modules/@vuepress/plugin-nprogress/node_modules/@vue/shared": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" + }, + "node_modules/@vuepress/plugin-nprogress/node_modules/vue": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vuepress/plugin-palette": { + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-palette/-/plugin-palette-2.0.0-rc.37.tgz", + "integrity": "sha512-wzsywEeZFHOcRITIff1SC0jXsMasze3t0d9gc0cp5iB/OW3bEdhes4mFmPtZZmWfnlmgajq/7uTEavEXVWJTIA==", "dependencies": { - "@vuepress/helper": "2.0.0-rc.34" + "chokidar": "^3.6.0" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, - "node_modules/@vuepress/plugin-markdown-container": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-markdown-container/-/plugin-markdown-container-2.0.0-rc.34.tgz", - "integrity": "sha512-R8kj0vSGgOVPZ+kxks+DJNr07iw7uHGt6TliXgpMiMWE16iV5W5HmBy2PnKRwWHg4HPkNUF60heLKpZkxp6gHw==", + "node_modules/@vuepress/plugin-prismjs": { + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-prismjs/-/plugin-prismjs-2.0.0-rc.37.tgz", + "integrity": "sha512-39m6oYZzW0XqwtyTI1QEidQ7GIQAKQZG7q+VXO1E5ZURWh6YepjSodA+zgxhIAFcNx69NR77EaSp2WBO10sdZQ==", "dependencies": { - "@types/markdown-it": "^14.1.1", - "markdown-it-container": "^4.0.0" + "@vuepress/highlighter-helper": "2.0.0-rc.37", + "prismjs": "^1.29.0" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, - "node_modules/@vuepress/plugin-medium-zoom": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-2.0.0-rc.34.tgz", - "integrity": "sha512-6HeZ2saUXcTZBuGAdaUXImV092C2Cg/0RJ57L5XImpziGn+OPotTUnu7byq4CgsmY1dhj+mA6KCaPVF23duh1A==", + "node_modules/@vuepress/plugin-seo": { + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-seo/-/plugin-seo-2.0.0-rc.37.tgz", + "integrity": "sha512-H6bM4jYKwFABP/JGocDC7CD5SACMdFf9rE5lci5/VYJybvBr5XXDXHXk9KSy01jupPjmAjsGp5Fzqk2ggeqQIQ==", "dependencies": { - "@vuepress/helper": "2.0.0-rc.34", - "medium-zoom": "^1.1.0", - "vue": "^3.4.27" + "@vuepress/helper": "2.0.0-rc.37" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, - "node_modules/@vuepress/plugin-nprogress": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-nprogress/-/plugin-nprogress-2.0.0-rc.34.tgz", - "integrity": "sha512-JnXMjb1avr/BvXURqwAFx5sE+cWUnLKC33vniJCylLmyPFCQhXkZIB3U1dxwFyEht5Xl72vV0T7Oj8XPeMGHWQ==", + "node_modules/@vuepress/plugin-sitemap": { + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-sitemap/-/plugin-sitemap-2.0.0-rc.37.tgz", + "integrity": "sha512-mL9aKIkiSEJizVcsreY7O+FZmTT/coV4iR2P5OQ5oyXbcByMN+omirsupHBHsWl2zH/EZe2FklByDEDUPpg3MQ==", "dependencies": { - "vue": "^3.4.27" + "@vuepress/helper": "2.0.0-rc.37", + "sitemap": "^8.0.0" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, - "node_modules/@vuepress/plugin-palette": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-palette/-/plugin-palette-2.0.0-rc.34.tgz", - "integrity": "sha512-HiEcvgqy6utt7ilqbPvc/irM3cEBW4p1q9YfQBFCuyQY1+UJMf7NkC5YuwkBPy712Ef0MMYwgmdNskyso+XayQ==", + "node_modules/@vuepress/plugin-theme-data": { + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-theme-data/-/plugin-theme-data-2.0.0-rc.37.tgz", + "integrity": "sha512-xzdYyScZcS5aDbk/2bQAuEofe6wqgtX2Y/6SUqsGlV4A59D+xIfPbNUZhO0gbUX//ofYGaxgKQps0OrvPkwMVg==", "dependencies": { - "chokidar": "^3.6.0" + "@vue/devtools-api": "^6.6.3", + "vue": "^3.4.29" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, - "node_modules/@vuepress/plugin-prismjs": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-prismjs/-/plugin-prismjs-2.0.0-rc.34.tgz", - "integrity": "sha512-o7JO2VG+yrfgy7duJ+8eULeXwb5ZY6heZnaMYZ2CPBLU6xPqdmMM/BXjbE3u53Znyo05ZtOlgWmzL7Cvvraogw==", + "node_modules/@vuepress/plugin-theme-data/node_modules/@vue/compiler-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", "dependencies": { - "@vuepress/highlighter-helper": "2.0.0-rc.34", - "prismjs": "^1.29.0" - }, - "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" } }, - "node_modules/@vuepress/plugin-seo": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-seo/-/plugin-seo-2.0.0-rc.34.tgz", - "integrity": "sha512-GEqKidWOe7SDxJuGA6UIk8x9V+4x4ZvOH5f0MqAPNeBSRty6dNGAenfvUpq2TE1zLTfxUfc9Lxn4mFMGLeMzGQ==", + "node_modules/@vuepress/plugin-theme-data/node_modules/@vue/compiler-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", "dependencies": { - "@vuepress/helper": "2.0.0-rc.34" - }, - "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" } }, - "node_modules/@vuepress/plugin-sitemap": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-sitemap/-/plugin-sitemap-2.0.0-rc.34.tgz", - "integrity": "sha512-FEx0SRQQS5YD+8+WKVuueyD/sB+RDY6ds4FONB5wWvtHbpdfBNW+dgYQLPDNNKA64uaHgneOhtp4KEb1klS23A==", + "node_modules/@vuepress/plugin-theme-data/node_modules/@vue/compiler-ssr": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", "dependencies": { - "@vuepress/helper": "2.0.0-rc.34", - "sitemap": "^8.0.0" + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/plugin-theme-data/node_modules/@vue/reactivity": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "dependencies": { + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/plugin-theme-data/node_modules/@vue/runtime-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/plugin-theme-data/node_modules/@vue/runtime-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", + "csstype": "^3.1.3" + } + }, + "node_modules/@vuepress/plugin-theme-data/node_modules/@vue/server-renderer": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "dependencies": { + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vue": "3.4.29" } }, - "node_modules/@vuepress/plugin-theme-data": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-theme-data/-/plugin-theme-data-2.0.0-rc.34.tgz", - "integrity": "sha512-uBYWSTzSwsAm2Pd4ujDG73DAiadctDrJh4jlHSVunjAEDehsg2jjKzb13LLsafG8qbwvGz7b0YVQzdoWFZdEVA==", + "node_modules/@vuepress/plugin-theme-data/node_modules/@vue/shared": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" + }, + "node_modules/@vuepress/plugin-theme-data/node_modules/vue": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", "dependencies": { - "@vue/devtools-api": "^6.6.2", - "vue": "^3.4.27" + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@vuepress/shared": { - "version": "2.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@vuepress/shared/-/shared-2.0.0-rc.13.tgz", - "integrity": "sha512-xtruKVH9QqTLIQxbPbU3iZWthLC8uR5yYUzVA6eL+knjHkpCXOlzqMYnlp4xT0tzQNw+gBHWLKo8zVEccSkqug==", + "version": "2.0.0-rc.14", + "resolved": "https://registry.npmjs.org/@vuepress/shared/-/shared-2.0.0-rc.14.tgz", + "integrity": "sha512-VDDnPpz4x1Q07richcVRGbc4qc2RG/6bKoEYSImofTFzvdmHer538ouv8kD2SNU10UrSOpxxUiphnhlhNIe03A==", "dependencies": { "@mdit-vue/types": "^2.1.0" } }, "node_modules/@vuepress/theme-default": { - "version": "2.0.0-rc.35", - "resolved": "https://registry.npmjs.org/@vuepress/theme-default/-/theme-default-2.0.0-rc.35.tgz", - "integrity": "sha512-0ASsdEO0N83AnsUknzbnIavO5trfpKmFm8hc/TIGNnPIVUt5Cv7faQpaaJbdymmgDhBYsBS0zbCxr0n2NG+N4w==", - "dependencies": { - "@vuepress/helper": "2.0.0-rc.34", - "@vuepress/plugin-active-header-links": "2.0.0-rc.34", - "@vuepress/plugin-back-to-top": "2.0.0-rc.34", - "@vuepress/plugin-copy-code": "2.0.0-rc.34", - "@vuepress/plugin-git": "2.0.0-rc.34", - "@vuepress/plugin-links-check": "2.0.0-rc.34", - "@vuepress/plugin-markdown-container": "2.0.0-rc.34", - "@vuepress/plugin-medium-zoom": "2.0.0-rc.34", - "@vuepress/plugin-nprogress": "2.0.0-rc.34", - "@vuepress/plugin-palette": "2.0.0-rc.34", - "@vuepress/plugin-prismjs": "2.0.0-rc.34", - "@vuepress/plugin-seo": "2.0.0-rc.34", - "@vuepress/plugin-sitemap": "2.0.0-rc.34", - "@vuepress/plugin-theme-data": "2.0.0-rc.34", - "@vueuse/core": "^10.10.0", - "sass": "^1.77.4", - "vue": "^3.4.27" + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/theme-default/-/theme-default-2.0.0-rc.37.tgz", + "integrity": "sha512-wgAZCLJ9yw+fRGtohGFQ0ltdqdhPoTw7DyEgHl3eI12ScVY7H+ZosgWXSczb+ks8IXY0Gw1+VNK/L1al5naYHg==", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.37", + "@vuepress/plugin-active-header-links": "2.0.0-rc.37", + "@vuepress/plugin-back-to-top": "2.0.0-rc.37", + "@vuepress/plugin-copy-code": "2.0.0-rc.37", + "@vuepress/plugin-git": "2.0.0-rc.37", + "@vuepress/plugin-links-check": "2.0.0-rc.37", + "@vuepress/plugin-markdown-container": "2.0.0-rc.37", + "@vuepress/plugin-medium-zoom": "2.0.0-rc.37", + "@vuepress/plugin-nprogress": "2.0.0-rc.37", + "@vuepress/plugin-palette": "2.0.0-rc.37", + "@vuepress/plugin-prismjs": "2.0.0-rc.37", + "@vuepress/plugin-seo": "2.0.0-rc.37", + "@vuepress/plugin-sitemap": "2.0.0-rc.37", + "@vuepress/plugin-theme-data": "2.0.0-rc.37", + "@vueuse/core": "^10.11.0", + "sass": "^1.77.6", + "vue": "^3.4.29" }, "peerDependencies": { "sass-loader": "^14.0.0", - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" }, "peerDependenciesMeta": { "sass-loader": { @@ -9178,16 +9672,111 @@ } } }, + "node_modules/@vuepress/theme-default/node_modules/@vue/compiler-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vuepress/theme-default/node_modules/@vue/compiler-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", + "dependencies": { + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/theme-default/node_modules/@vue/compiler-ssr": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/theme-default/node_modules/@vue/reactivity": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "dependencies": { + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/theme-default/node_modules/@vue/runtime-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vuepress/theme-default/node_modules/@vue/runtime-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", + "csstype": "^3.1.3" + } + }, + "node_modules/@vuepress/theme-default/node_modules/@vue/server-renderer": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "dependencies": { + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "vue": "3.4.29" + } + }, + "node_modules/@vuepress/theme-default/node_modules/@vue/shared": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" + }, + "node_modules/@vuepress/theme-default/node_modules/vue": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@vuepress/utils": { - "version": "2.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@vuepress/utils/-/utils-2.0.0-rc.13.tgz", - "integrity": "sha512-MbTnyCodo9K6WK7xFwOVEHnhatlq8BsoVmrtM16Swk2igjtexXAJ6OCCXGON1l32fwGGVKFom3bH9seBvqSK7g==", + "version": "2.0.0-rc.14", + "resolved": "https://registry.npmjs.org/@vuepress/utils/-/utils-2.0.0-rc.14.tgz", + "integrity": "sha512-1h/5qcKBeIhIg6SZM2IoZVOaIdFSeQ1CdEWadqQWy1uwupEeVrU3QPkjFyn0vUt0O/EuuVqQcLLC8OuS/wldNw==", "dependencies": { "@types/debug": "^4.1.12", "@types/fs-extra": "^11.0.4", "@types/hash-sum": "^1.0.2", - "@vuepress/shared": "2.0.0-rc.13", - "debug": "^4.3.4", + "@vuepress/shared": "2.0.0-rc.14", + "debug": "^4.3.5", "fs-extra": "^11.2.0", "globby": "^14.0.1", "hash-sum": "^2.0.0", @@ -9285,14 +9874,14 @@ } }, "node_modules/@vueuse/core": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.10.0.tgz", - "integrity": "sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw==", + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.0.tgz", + "integrity": "sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==", "dependencies": { "@types/web-bluetooth": "^0.0.20", - "@vueuse/metadata": "10.10.0", - "@vueuse/shared": "10.10.0", - "vue-demi": ">=0.14.7" + "@vueuse/metadata": "10.11.0", + "@vueuse/shared": "10.11.0", + "vue-demi": ">=0.14.8" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -9324,19 +9913,19 @@ } }, "node_modules/@vueuse/metadata": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.10.0.tgz", - "integrity": "sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug==", + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.0.tgz", + "integrity": "sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==", "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/shared": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.10.0.tgz", - "integrity": "sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og==", + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.0.tgz", + "integrity": "sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==", "dependencies": { - "vue-demi": ">=0.14.7" + "vue-demi": ">=0.14.8" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -15007,9 +15596,9 @@ } }, "node_modules/happy-dom": { - "version": "14.12.0", - "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-14.12.0.tgz", - "integrity": "sha512-dHcnlGFY2o2CdxfuYpqwSrBrpj/Kuzv4u4f3TU5yHW1GL24dKij4pv1BRjXnXc3uWo8qsCbToF9weaDsm/He8A==", + "version": "14.12.3", + "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-14.12.3.tgz", + "integrity": "sha512-vsYlEs3E9gLwA1Hp+w3qzu+RUDFf4VTT8cyKqVICoZ2k7WM++Qyd2LwzyTi5bqMJFiIC/vNpTDYuxdreENRK/g==", "dev": true, "dependencies": { "entities": "^4.5.0", @@ -18084,9 +18673,9 @@ } }, "node_modules/lilconfig": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", - "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", "devOptional": true, "engines": { "node": ">=14" @@ -21238,9 +21827,9 @@ "peer": true }, "node_modules/postcss-load-config": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz", - "integrity": "sha512-G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", "devOptional": true, "funding": [ { @@ -21253,8 +21842,7 @@ } ], "dependencies": { - "lilconfig": "^3.1.1", - "yaml": "^2.4.2" + "lilconfig": "^3.1.1" }, "engines": { "node": ">= 18" @@ -21262,7 +21850,8 @@ "peerDependencies": { "jiti": ">=1.21.0", "postcss": ">=8.0.9", - "tsx": "^4.8.1" + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "jiti": { @@ -21273,6 +21862,9 @@ }, "tsx": { "optional": true + }, + "yaml": { + "optional": true } } }, @@ -21900,12 +22492,12 @@ "dev": true }, "node_modules/react-remove-scroll": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", - "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", "dev": true, "dependencies": { - "react-remove-scroll-bar": "^2.3.3", + "react-remove-scroll-bar": "^2.3.4", "react-style-singleton": "^2.2.1", "tslib": "^2.1.0", "use-callback-ref": "^1.3.0", @@ -23699,9 +24291,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { - "version": "1.77.5", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.5.tgz", - "integrity": "sha512-oDfX1mukIlxacPdQqNb6mV2tVCrnE+P3nVYioy72V5tlk56CPNcO4TCuFcaCRKKfJ1M3lH95CleRS+dVKL2qMg==", + "version": "1.77.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", + "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -24257,12 +24849,12 @@ "dev": true }, "node_modules/storybook": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.1.9.tgz", - "integrity": "sha512-Jymrfn299+MJBIZVDYPJlIGJMZM33udFCjbeRdOHIXF2BfpqOSS2FoEfmlp3zya3gwyZDq/BE7uiBc7HIVZa4g==", + "version": "8.1.10", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.1.10.tgz", + "integrity": "sha512-HHlZibyc/QkcQj8aEnYnYwEl+ItNZ/uRbCdkvJzu/vIWYon5jUg30mHFIGZprgLSt27CxOs30Et8yT9z4VhwjA==", "dev": true, "dependencies": { - "@storybook/cli": "8.1.9" + "@storybook/cli": "8.1.10" }, "bin": { "sb": "index.js", @@ -24655,15 +25247,25 @@ } }, "node_modules/stylelint-config-recommended": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.0.tgz", - "integrity": "sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz", + "integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], "engines": { "node": ">=18.12.0" }, "peerDependencies": { - "stylelint": "^16.0.0" + "stylelint": "^16.1.0" } }, "node_modules/stylelint-config-recommended-scss": { @@ -24744,12 +25346,22 @@ "dev": true }, "node_modules/stylelint-config-standard": { - "version": "36.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-36.0.0.tgz", - "integrity": "sha512-3Kjyq4d62bYFp/Aq8PMKDwlgUyPU4nacXsjDLWJdNPRUgpuxALu1KnlAHIj36cdtxViVhXexZij65yM0uNIHug==", + "version": "36.0.1", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-36.0.1.tgz", + "integrity": "sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], "dependencies": { - "stylelint-config-recommended": "^14.0.0" + "stylelint-config-recommended": "^14.0.1" }, "engines": { "node": ">=18.12.0" @@ -25829,9 +26441,9 @@ "dev": true }, "node_modules/tsx": { - "version": "4.15.6", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.15.6.tgz", - "integrity": "sha512-is0VQQlfNZRHEuSSTKA6m4xw74IU4AizmuB6lAYLRt9XtuyeQnyJYexhNZOPCB59SqC4JzmSzPnHGBXxf3k0hA==", + "version": "4.15.7", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.15.7.tgz", + "integrity": "sha512-u3H0iSFDZM3za+VxkZ1kywdCeHCn+8/qHQS1MNoO2sONDgD95HlWtt8aB23OzeTmFP9IU4/8bZUdg58Uu5J4cg==", "devOptional": true, "dependencies": { "esbuild": "~0.21.4", @@ -27140,9 +27752,9 @@ } }, "node_modules/vike": { - "version": "0.4.176", - "resolved": "https://registry.npmjs.org/vike/-/vike-0.4.176.tgz", - "integrity": "sha512-myaTgwzeNOeC/ZrNrrJrPbzJrTNj/d/sTD1h7oXaqYUdNEaYDAJrZBWerIZXPRyDfH6GW+Mxby4bTthAq3Uovw==", + "version": "0.4.177", + "resolved": "https://registry.npmjs.org/vike/-/vike-0.4.177.tgz", + "integrity": "sha512-ZCyJkeNJ+ssmkoVyrET1tDsKfW+y7Is3vwzkSDeac+disp8KITJWUMvgJsOPKII/q6eNZGbJWnZ+v3Xli0rong==", "dependencies": { "@brillout/import": "^0.2.3", "@brillout/json-serializer": "^0.5.10", @@ -28533,9 +29145,9 @@ } }, "node_modules/vue-router": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.3.2.tgz", - "integrity": "sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.4.0.tgz", + "integrity": "sha512-HB+t2p611aIZraV2aPSRNXf0Z/oLZFrlygJm+sZbdJaW6lcFqEDQwnzUBXn+DApw+/QzDU/I9TeWx9izEjTmsA==", "dependencies": { "@vue/devtools-api": "^6.5.1" }, @@ -28623,17 +29235,17 @@ } }, "node_modules/vuepress": { - "version": "2.0.0-rc.13", - "resolved": "https://registry.npmjs.org/vuepress/-/vuepress-2.0.0-rc.13.tgz", - "integrity": "sha512-lhz9EnISXY/s3yDFYe2RLVJcBXN/Ehe+NAFWdadhyX0P9S5AMimvJhsqWoVInnL+HBREsshLibyc8pXGbQrhfw==", - "dependencies": { - "@vuepress/cli": "2.0.0-rc.13", - "@vuepress/client": "2.0.0-rc.13", - "@vuepress/core": "2.0.0-rc.13", - "@vuepress/markdown": "2.0.0-rc.13", - "@vuepress/shared": "2.0.0-rc.13", - "@vuepress/utils": "2.0.0-rc.13", - "vue": "^3.4.27" + "version": "2.0.0-rc.14", + "resolved": "https://registry.npmjs.org/vuepress/-/vuepress-2.0.0-rc.14.tgz", + "integrity": "sha512-t902FYKFF2MavNQjm/I4gN8etl6iX4PETutu4c1Pt7qQjXF6Hp2eurZaW32O5/TaYWsbVG757FwKodRLj9GDng==", + "dependencies": { + "@vuepress/cli": "2.0.0-rc.14", + "@vuepress/client": "2.0.0-rc.14", + "@vuepress/core": "2.0.0-rc.14", + "@vuepress/markdown": "2.0.0-rc.14", + "@vuepress/shared": "2.0.0-rc.14", + "@vuepress/utils": "2.0.0-rc.14", + "vue": "^3.4.29" }, "bin": { "vuepress": "bin/vuepress.js", @@ -28644,8 +29256,8 @@ "node": ">=18.16.0" }, "peerDependencies": { - "@vuepress/bundler-vite": "2.0.0-rc.13", - "@vuepress/bundler-webpack": "2.0.0-rc.13", + "@vuepress/bundler-vite": "2.0.0-rc.14", + "@vuepress/bundler-webpack": "2.0.0-rc.14", "vue": "^3.4.0" }, "peerDependenciesMeta": { @@ -28657,6 +29269,101 @@ } } }, + "node_modules/vuepress/node_modules/@vue/compiler-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/vuepress/node_modules/@vue/compiler-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", + "dependencies": { + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/vuepress/node_modules/@vue/compiler-ssr": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/vuepress/node_modules/@vue/reactivity": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "dependencies": { + "@vue/shared": "3.4.29" + } + }, + "node_modules/vuepress/node_modules/@vue/runtime-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/vuepress/node_modules/@vue/runtime-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", + "csstype": "^3.1.3" + } + }, + "node_modules/vuepress/node_modules/@vue/server-renderer": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "dependencies": { + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "vue": "3.4.29" + } + }, + "node_modules/vuepress/node_modules/@vue/shared": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" + }, + "node_modules/vuepress/node_modules/vue": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/vuetify": { "version": "3.5.16", "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.5.16.tgz", @@ -29191,9 +29898,9 @@ } }, "node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, "engines": { "node": ">=10.0.0" diff --git a/admin/package.json b/admin/package.json index 81389a4d16..a15f69e1c5 100644 --- a/admin/package.json +++ b/admin/package.json @@ -1,13 +1,9 @@ { - "name": "boilerplate-frontend", + "name": "dreammall-admin", "version": "1.0.0", - "description": "The IT4C Boilerplate for frontends", + "description": "The DreamMall admin interface", "main": "build/index.js", "type": "module", - "repository": { - "type": "git", - "url": "git+https://github.com/IT4Change/boilerplate-frontend.git" - }, "keywords": [ "nodejs", "npm", @@ -31,9 +27,9 @@ }, "license": "Apache-2.0", "bugs": { - "url": "https://github.com/IT4Change/boilerplate-frontend/issues" + "url": "https://github.com/dreammall-earth/dreammall.earth/issues" }, - "homepage": "https://github.com/IT4Change/boilerplate-frontend#readme", + "homepage": "https://github.com/dreammall-earth/dreammall.earth/blob/master/frontend/README.md", "scripts": { "dev": "npm run server:dev", "prod": "npm run build && npm run server:prod", @@ -65,22 +61,22 @@ "@mdi/font": "^7.4.47", "@types/compression": "^1.7.5", "@types/express": "^4.17.21", - "@types/node": "^20.14.2", + "@types/node": "^20.14.8", "@vitejs/plugin-vue": "^5.0.5", "@vue/compiler-sfc": "^3.4.29", "@vue/server-renderer": "3.4.27", - "@vuepress/theme-default": "^2.0.0-rc.35", + "@vuepress/theme-default": "^2.0.0-rc.37", "compression": "^1.7.4", "cross-env": "^7.0.3", "express": "^4.19.2", "pinia": "^2.1.7", "pinia-plugin-persistedstate": "^3.2.1", - "sass": "^1.77.5", + "sass": "^1.77.6", "sass-loader": "^14.2.1", "sirv": "^2.0.4", "ts-node": "^10.9.2", "typescript": "^5.4.5", - "vike": "^0.4.176", + "vike": "^0.4.177", "vite": "^5.3.1", "vue": "3.4.27", "vue-i18n": "^9.13.1", @@ -90,14 +86,14 @@ "@eslint-community/eslint-plugin-eslint-comments": "^4.3.0", "@intlify/eslint-plugin-vue-i18n": "^2.0.0", "@pinia/testing": "^0.1.3", - "@storybook/addon-essentials": "^8.1.9", - "@storybook/addon-interactions": "^8.1.9", - "@storybook/addon-links": "^8.1.9", - "@storybook/blocks": "^8.1.9", + "@storybook/addon-essentials": "^8.1.10", + "@storybook/addon-interactions": "^8.1.10", + "@storybook/addon-links": "^8.1.10", + "@storybook/blocks": "^8.1.10", "@storybook/test-runner": "^0.18.2", "@storybook/testing-library": "^0.2.2", - "@storybook/vue3": "^8.1.9", - "@storybook/vue3-vite": "^8.1.9", + "@storybook/vue3": "^8.1.10", + "@storybook/vue3-vite": "^8.1.10", "@typescript-eslint/eslint-plugin": "^7.13.0", "@typescript-eslint/parser": "^7.13.0", "@vitest/coverage-v8": "^1.6.0", @@ -118,7 +114,7 @@ "eslint-plugin-vue": "^9.26.0", "eslint-plugin-vuetify": "^2.4.0", "eslint-plugin-yml": "^1.14.0", - "happy-dom": "^14.12.0", + "happy-dom": "^14.12.3", "prettier": "^3.3.2", "react": "^18.3.1", "react-dom": "^18.3.1", @@ -127,14 +123,14 @@ "remark-preset-lint-consistent": "^6.0.0", "remark-preset-lint-markdown-style-guide": "^6.0.0", "remark-preset-lint-recommended": "^7.0.0", - "storybook": "^8.1.9", + "storybook": "^8.1.10", "stylelint": "^16.6.1", "stylelint-config-css-modules": "^4.4.0", "stylelint-config-recess-order": "^5.0.1", "stylelint-config-recommended-vue": "^1.5.0", - "stylelint-config-standard": "^36.0.0", + "stylelint-config-standard": "^36.0.1", "stylelint-config-standard-scss": "^13.1.0", - "tsx": "^4.15.6", + "tsx": "^4.15.7", "vite-plugin-checker": "^0.6.4", "vite-plugin-compression": "^0.5.1", "vite-plugin-vuetify": "^2.0.3", diff --git a/backend/Dockerfile b/backend/Dockerfile index c2b66cdf3b..1aea10e4cb 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -16,13 +16,13 @@ ENV PORT="4000" # Labels LABEL org.label-schema.build-date="${BUILD_DATE}" -LABEL org.label-schema.name="it4c:backend" -LABEL org.label-schema.description="IT4C Backend Boilerplate" -LABEL org.label-schema.usage="https://github.com/IT4Change/boilerplate-backend/blob/master/README.md" -LABEL org.label-schema.url="https://github.com/IT4Change/boilerplate-backend" -LABEL org.label-schema.vcs-url="https://github.com/IT4Change/boilerplate-backend/tree/master/" +LABEL org.label-schema.name="dreammall:backend" +LABEL org.label-schema.description="DreamMall Backend" +LABEL org.label-schema.usage="https://github.com/dreammall-earth/dreammall.earth/tree/master/backend/README.md" +LABEL org.label-schema.url="https://github.com/dreammall-earth/dreammall.earth/tree/master/backend" +LABEL org.label-schema.vcs-url="https://github.com/dreammall-earth/dreammall.earth/tree/master/backend" LABEL org.label-schema.vcs-ref="${BUILD_COMMIT}" -LABEL org.label-schema.vendor="IT4C" +LABEL org.label-schema.vendor="DreamMall" LABEL org.label-schema.version="${BUILD_VERSION}" LABEL org.label-schema.schema-version="1.0" LABEL maintainer="info@it4c.dev" diff --git a/backend/docker-compose.override.yml b/backend/docker-compose.override.yml index e6de57d442..8a9d2a63da 100644 --- a/backend/docker-compose.override.yml +++ b/backend/docker-compose.override.yml @@ -1,5 +1,3 @@ -version: '3.4' - services: ####################################################### # BACKEND ############################################# diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml index 08583c9075..156057195b 100644 --- a/backend/docker-compose.yml +++ b/backend/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3.4' - services: ####################################################### # BACKEND ############################################# diff --git a/backend/jest.config.json b/backend/jest.config.json index 3f2fd5d188..ef19640569 100644 --- a/backend/jest.config.json +++ b/backend/jest.config.json @@ -14,9 +14,9 @@ "coverageThreshold": { "global": { "statements": 96, - "branches": 87, - "functions": 94, - "lines": 97 + "branches": 86, + "functions": 96, + "lines": 96 } }, "modulePathIgnorePatterns": ["/build/"], diff --git a/backend/package-lock.json b/backend/package-lock.json index 4702f7f16f..e847450ded 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -1,26 +1,26 @@ { - "name": "boilerplate-backend", + "name": "dreammall-backend", "version": "1.2.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "boilerplate-backend", + "name": "dreammall-backend", "version": "1.2.1", "license": "Apache-2.0", "dependencies": { "@apollo/server": "^4.10.4", - "@getbrevo/brevo": "^2.1.1", - "@prisma/client": "^5.15.0", - "@vuepress/theme-default": "^2.0.0-rc.35", + "@getbrevo/brevo": "^2.2.0", + "@prisma/client": "^5.16.1", + "@vuepress/theme-default": "^2.0.0-rc.37", "axios": "^1.7.2", "class-validator": "^0.14.1", "dotenv": "^16.4.5", "fast-xml-parser": "^4.4.0", - "graphql": "^16.8.2", + "graphql": "^16.9.0", "graphql-scalars": "^1.23.0", "jsonwebtoken": "^9.0.2", - "prisma": "^5.15.0", + "prisma": "^5.16.1", "prisma-extension-soft-delete": "^1.0.1", "reflect-metadata": "^0.2.2", "tsconfig-paths": "^4.2.0", @@ -32,10 +32,10 @@ "@eslint-community/eslint-plugin-eslint-comments": "^4.3.0", "@types/jest": "^29.5.12", "@types/jsonwebtoken": "^9.0.6", - "@types/node": "^20.14.2", - "@types/uuid": "^9.0.8", - "@typescript-eslint/eslint-plugin": "^7.13.0", - "@typescript-eslint/parser": "^7.13.0", + "@types/node": "^20.14.9", + "@types/uuid": "^10.0.0", + "@typescript-eslint/eslint-plugin": "^7.13.1", + "@typescript-eslint/parser": "^7.13.1", "@vuepress/bundler-vite": "^2.0.0-rc.9", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", @@ -52,17 +52,17 @@ "eslint-plugin-yml": "^1.14.0", "graphql-tag": "^2.12.6", "jest": "^29.7.0", - "nodemon": "^3.1.3", + "nodemon": "^3.1.4", "prettier": "^3.3.2", "remark-cli": "^12.0.1", "remark-gfm": "^4.0.0", "remark-preset-lint-consistent": "^6.0.0", "remark-preset-lint-markdown-style-guide": "^6.0.0", "remark-preset-lint-recommended": "^7.0.0", - "ts-jest": "^29.1.4", + "ts-jest": "^29.1.5", "ts-node": "^10.9.2", "tsc-watch": "^6.2.0", - "typescript": "^5.4.5", + "typescript": "^5.5.2", "vuepress": "^2.0.0-rc.9" }, "engines": { @@ -809,9 +809,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1083,9 +1083,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", "cpu": [ "ppc64" ], @@ -1098,9 +1098,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -1113,9 +1113,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -1128,9 +1128,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -1143,9 +1143,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -1158,9 +1158,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -1173,9 +1173,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -1188,9 +1188,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -1203,9 +1203,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -1218,9 +1218,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -1233,9 +1233,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -1248,9 +1248,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -1263,9 +1263,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -1278,9 +1278,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -1293,9 +1293,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -1308,9 +1308,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -1323,9 +1323,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -1338,9 +1338,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -1353,9 +1353,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -1368,9 +1368,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -1383,9 +1383,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -1398,9 +1398,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -1413,9 +1413,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -1496,9 +1496,9 @@ } }, "node_modules/@getbrevo/brevo": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@getbrevo/brevo/-/brevo-2.1.1.tgz", - "integrity": "sha512-x2CS9yYl40kLxfZ4U5fBWFN8VI5pGZ/CkQlNsscnIICJdxQmtYVo+cI4cwshMmmr/aCwai7dOS+3zjMZ6GKTyQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@getbrevo/brevo/-/brevo-2.2.0.tgz", + "integrity": "sha512-mNCkXtgqn6jqLglAx1JzZcTj53kBZ5dK9Yd6zVuEyXAvhz68f5Ps6dSJar9HvkHH0Lfr3NrqW76xurjcoxqhIg==", "dependencies": { "bluebird": "^3.5.0", "request": "^2.81.0", @@ -2389,9 +2389,9 @@ } }, "node_modules/@prisma/client": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.15.0.tgz", - "integrity": "sha512-wPTeTjbd2Q0abOeffN7zCDCbkp9C9cF+e9HPiI64lmpehyq2TepgXE+sY7FXr7Rhbb21prLMnhXX27/E11V09w==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.16.1.tgz", + "integrity": "sha512-wM9SKQjF0qLxdnOZIVAIMKiz6Hu7vDt4FFAih85K1dk/Rr2mdahy6d3QP41K62N9O0DJJA//gUDA3Mp49xsKIg==", "hasInstallScript": true, "engines": { "node": ">=16.13" @@ -2406,43 +2406,43 @@ } }, "node_modules/@prisma/debug": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.15.0.tgz", - "integrity": "sha512-QpEAOjieLPc/4sMny/WrWqtpIAmBYsgqwWlWwIctqZO0AbhQ9QcT6x2Ut3ojbDo/pFRCCA1Z1+xm2MUy7fAkZA==" + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.16.1.tgz", + "integrity": "sha512-JsNgZAg6BD9RInLSrg7ZYzo11N7cVvYArq3fHGSD89HSgtN0VDdjV6bib7YddbcO6snzjchTiLfjeTqBjtArVQ==" }, "node_modules/@prisma/engines": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.15.0.tgz", - "integrity": "sha512-hXL5Sn9hh/ZpRKWiyPA5GbvF3laqBHKt6Vo70hYqqOhh5e0ZXDzHcdmxNvOefEFeqxra2DMz2hNbFoPvqrVe1w==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.16.1.tgz", + "integrity": "sha512-KkyF3eIUtBIyp5A/rJHCtwQO18OjpGgx18PzjyGcJDY/+vNgaVyuVd+TgwBgeq6NLdd1XMwRCI+58vinHsAdfA==", "hasInstallScript": true, "dependencies": { - "@prisma/debug": "5.15.0", - "@prisma/engines-version": "5.15.0-29.12e25d8d06f6ea5a0252864dd9a03b1bb51f3022", - "@prisma/fetch-engine": "5.15.0", - "@prisma/get-platform": "5.15.0" + "@prisma/debug": "5.16.1", + "@prisma/engines-version": "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303", + "@prisma/fetch-engine": "5.16.1", + "@prisma/get-platform": "5.16.1" } }, "node_modules/@prisma/engines-version": { - "version": "5.15.0-29.12e25d8d06f6ea5a0252864dd9a03b1bb51f3022", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.15.0-29.12e25d8d06f6ea5a0252864dd9a03b1bb51f3022.tgz", - "integrity": "sha512-3BEgZ41Qb4oWHz9kZNofToRvNeS4LZYaT9pienR1gWkjhky6t6K1NyeWNBkqSj2llgraUNbgMOCQPY4f7Qp5wA==" + "version": "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303.tgz", + "integrity": "sha512-HkT2WbfmFZ9WUPyuJHhkiADxazHg8Y4gByrTSVeb3OikP6tjQ7txtSUGu9OBOBH0C13dPKN2qqH12xKtHu/Hiw==" }, "node_modules/@prisma/fetch-engine": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.15.0.tgz", - "integrity": "sha512-z6AY5yyXxc20Klj7wwnfGP0iIUkVKzybqapT02zLYR/nf9ynaeN8bq73WRmi1TkLYn+DJ5Qy+JGu7hBf1pE78A==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.16.1.tgz", + "integrity": "sha512-oOkjaPU1lhcA/Rvr4GVfd1NLJBwExgNBE36Ueq7dr71kTMwy++a3U3oLd2ZwrV9dj9xoP6LjCcky799D9nEt4w==", "dependencies": { - "@prisma/debug": "5.15.0", - "@prisma/engines-version": "5.15.0-29.12e25d8d06f6ea5a0252864dd9a03b1bb51f3022", - "@prisma/get-platform": "5.15.0" + "@prisma/debug": "5.16.1", + "@prisma/engines-version": "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303", + "@prisma/get-platform": "5.16.1" } }, "node_modules/@prisma/get-platform": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.15.0.tgz", - "integrity": "sha512-1GULDkW4+/VQb73vihxCBSc4Chc2x88MA+O40tcZFjmBzG4/fF44PaXFxUqKSFltxU9L9GIMLhh0Gfkk/pUbtg==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.16.1.tgz", + "integrity": "sha512-R4IKnWnMkR2nUAbU5gjrPehdQYUUd7RENFD2/D+xXTNhcqczp0N+WEGQ3ViyI3+6mtVcjjNIMdnUTNyu3GxIgA==", "dependencies": { - "@prisma/debug": "5.15.0" + "@prisma/debug": "5.16.1" } }, "node_modules/@protobufjs/aspromise": { @@ -3030,9 +3030,9 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "20.14.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz", - "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==", + "version": "20.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz", + "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", "dependencies": { "undici-types": "~5.26.4" } @@ -3113,9 +3113,9 @@ "dev": true }, "node_modules/@types/uuid": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", - "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", "dev": true }, "node_modules/@types/validator": { @@ -3144,16 +3144,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.0.tgz", - "integrity": "sha512-FX1X6AF0w8MdVFLSdqwqN/me2hyhuQg4ykN6ZpVhh1ij/80pTvDKclX1sZB9iqex8SjQfVhwMKs3JtnnMLzG9w==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.1.tgz", + "integrity": "sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.13.0", - "@typescript-eslint/type-utils": "7.13.0", - "@typescript-eslint/utils": "7.13.0", - "@typescript-eslint/visitor-keys": "7.13.0", + "@typescript-eslint/scope-manager": "7.13.1", + "@typescript-eslint/type-utils": "7.13.1", + "@typescript-eslint/utils": "7.13.1", + "@typescript-eslint/visitor-keys": "7.13.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -3177,15 +3177,15 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.13.0.tgz", - "integrity": "sha512-jceD8RgdKORVnB4Y6BqasfIkFhl4pajB1wVxrF4akxD2QPM8GNYjgGwEzYS+437ewlqqrg7Dw+6dhdpjMpeBFQ==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.13.1.tgz", + "integrity": "sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.13.0", - "@typescript-eslint/types": "7.13.0", - "@typescript-eslint/typescript-estree": "7.13.0" + "@typescript-eslint/scope-manager": "7.13.1", + "@typescript-eslint/types": "7.13.1", + "@typescript-eslint/typescript-estree": "7.13.1" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -3218,15 +3218,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.13.0.tgz", - "integrity": "sha512-EjMfl69KOS9awXXe83iRN7oIEXy9yYdqWfqdrFAYAAr6syP8eLEFI7ZE4939antx2mNgPRW/o1ybm2SFYkbTVA==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.13.1.tgz", + "integrity": "sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.13.0", - "@typescript-eslint/types": "7.13.0", - "@typescript-eslint/typescript-estree": "7.13.0", - "@typescript-eslint/visitor-keys": "7.13.0", + "@typescript-eslint/scope-manager": "7.13.1", + "@typescript-eslint/types": "7.13.1", + "@typescript-eslint/typescript-estree": "7.13.1", + "@typescript-eslint/visitor-keys": "7.13.1", "debug": "^4.3.4" }, "engines": { @@ -3246,13 +3246,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz", - "integrity": "sha512-ZrMCe1R6a01T94ilV13egvcnvVJ1pxShkE0+NDjDzH4nvG1wXpwsVI5bZCvE7AEDH1mXEx5tJSVR68bLgG7Dng==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.1.tgz", + "integrity": "sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.13.0", - "@typescript-eslint/visitor-keys": "7.13.0" + "@typescript-eslint/types": "7.13.1", + "@typescript-eslint/visitor-keys": "7.13.1" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -3263,13 +3263,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.13.0.tgz", - "integrity": "sha512-xMEtMzxq9eRkZy48XuxlBFzpVMDurUAfDu5Rz16GouAtXm0TaAoTFzqWUFPPuQYXI/CDaH/Bgx/fk/84t/Bc9A==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.13.1.tgz", + "integrity": "sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.13.0", - "@typescript-eslint/utils": "7.13.0", + "@typescript-eslint/typescript-estree": "7.13.1", + "@typescript-eslint/utils": "7.13.1", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -3290,15 +3290,15 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.13.0.tgz", - "integrity": "sha512-jceD8RgdKORVnB4Y6BqasfIkFhl4pajB1wVxrF4akxD2QPM8GNYjgGwEzYS+437ewlqqrg7Dw+6dhdpjMpeBFQ==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.13.1.tgz", + "integrity": "sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.13.0", - "@typescript-eslint/types": "7.13.0", - "@typescript-eslint/typescript-estree": "7.13.0" + "@typescript-eslint/scope-manager": "7.13.1", + "@typescript-eslint/types": "7.13.1", + "@typescript-eslint/typescript-estree": "7.13.1" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -3312,9 +3312,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz", - "integrity": "sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.1.tgz", + "integrity": "sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -3325,13 +3325,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.0.tgz", - "integrity": "sha512-cAvBvUoobaoIcoqox1YatXOnSl3gx92rCZoMRPzMNisDiM12siGilSM4+dJAekuuHTibI2hVC2fYK79iSFvWjw==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.1.tgz", + "integrity": "sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.13.0", - "@typescript-eslint/visitor-keys": "7.13.0", + "@typescript-eslint/types": "7.13.1", + "@typescript-eslint/visitor-keys": "7.13.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -3499,12 +3499,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.0.tgz", - "integrity": "sha512-nxn+dozQx+MK61nn/JP+M4eCkHDSxSLDpgE3WcQo0+fkjEolnaB5jswvIKC4K56By8MMgIho7f1PVxERHEo8rw==", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.1.tgz", + "integrity": "sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.13.0", + "@typescript-eslint/types": "7.13.1", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -3534,36 +3534,36 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.27.tgz", - "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", "dependencies": { - "@babel/parser": "^7.24.4", - "@vue/shared": "3.4.27", + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", - "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", "dependencies": { - "@vue/compiler-core": "3.4.27", - "@vue/shared": "3.4.27" + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz", - "integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==", - "dependencies": { - "@babel/parser": "^7.24.4", - "@vue/compiler-core": "3.4.27", - "@vue/compiler-dom": "3.4.27", - "@vue/compiler-ssr": "3.4.27", - "@vue/shared": "3.4.27", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.29.tgz", + "integrity": "sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/compiler-core": "3.4.29", + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29", "estree-walker": "^2.0.2", "magic-string": "^0.30.10", "postcss": "^8.4.38", @@ -3571,12 +3571,12 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz", - "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", "dependencies": { - "@vue/compiler-dom": "3.4.27", - "@vue/shared": "3.4.27" + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" } }, "node_modules/@vue/devtools-api": { @@ -3585,137 +3585,138 @@ "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==" }, "node_modules/@vue/reactivity": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.27.tgz", - "integrity": "sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", "dependencies": { - "@vue/shared": "3.4.27" + "@vue/shared": "3.4.29" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.27.tgz", - "integrity": "sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", "dependencies": { - "@vue/reactivity": "3.4.27", - "@vue/shared": "3.4.27" + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz", - "integrity": "sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", "dependencies": { - "@vue/runtime-core": "3.4.27", - "@vue/shared": "3.4.27", + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.27.tgz", - "integrity": "sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", "dependencies": { - "@vue/compiler-ssr": "3.4.27", - "@vue/shared": "3.4.27" + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" }, "peerDependencies": { - "vue": "3.4.27" + "vue": "3.4.29" } }, "node_modules/@vue/shared": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.27.tgz", - "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==" + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" }, "node_modules/@vuepress/bundler-vite": { - "version": "2.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@vuepress/bundler-vite/-/bundler-vite-2.0.0-rc.13.tgz", - "integrity": "sha512-dzBM0eH0VvdsMB0+Y1sMpEfTz/elWytTNdjon7LUbda3oHMQOO+IwP0PcA7VNAqqnvMplMhawocaMC+STupymA==", + "version": "2.0.0-rc.14", + "resolved": "https://registry.npmjs.org/@vuepress/bundler-vite/-/bundler-vite-2.0.0-rc.14.tgz", + "integrity": "sha512-kttbowYITMCX3ztz78Qb6bMfXRv/GEpNu+nALksu7j/QJQ0gOzI2is68PatbmzZRWOufVsf1Zf0A8BwolmVcXA==", "devOptional": true, "dependencies": { "@vitejs/plugin-vue": "^5.0.5", - "@vuepress/client": "2.0.0-rc.13", - "@vuepress/core": "2.0.0-rc.13", - "@vuepress/shared": "2.0.0-rc.13", - "@vuepress/utils": "2.0.0-rc.13", + "@vuepress/client": "2.0.0-rc.14", + "@vuepress/core": "2.0.0-rc.14", + "@vuepress/shared": "2.0.0-rc.14", + "@vuepress/utils": "2.0.0-rc.14", "autoprefixer": "^10.4.19", "connect-history-api-fallback": "^2.0.0", "postcss": "^8.4.38", - "postcss-load-config": "^5.1.0", + "postcss-load-config": "^6.0.1", "rollup": "^4.18.0", - "vite": "5.2.11 || >5.2.12 <5.3.0", - "vue": "^3.4.27", - "vue-router": "^4.3.2" + "vite": "~5.3.1", + "vue": "^3.4.29", + "vue-router": "^4.3.3" } }, "node_modules/@vuepress/cli": { - "version": "2.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@vuepress/cli/-/cli-2.0.0-rc.13.tgz", - "integrity": "sha512-En7iQnwgnmkPAgoT+YqzwgMRTO3uLwIk+ar3E7HnQA//ovZNmoaChkc/C3jjklP5OF3g9CtGT8VjZ9njDjLe/Q==", + "version": "2.0.0-rc.14", + "resolved": "https://registry.npmjs.org/@vuepress/cli/-/cli-2.0.0-rc.14.tgz", + "integrity": "sha512-oYJX1nE6/ohF2tzUtpBAFxRr4MF2kdtab3+AQ897esXzrciQnE2LxPQZ8BUOn6Jb3XYW12FXDdkHrr82rN6XnQ==", "dependencies": { - "@vuepress/core": "2.0.0-rc.13", - "@vuepress/shared": "2.0.0-rc.13", - "@vuepress/utils": "2.0.0-rc.13", + "@vuepress/core": "2.0.0-rc.14", + "@vuepress/shared": "2.0.0-rc.14", + "@vuepress/utils": "2.0.0-rc.14", "cac": "^6.7.14", "chokidar": "^3.6.0", "envinfo": "^7.13.0", - "esbuild": "~0.20.2" + "esbuild": "~0.21.5" }, "bin": { "vuepress-cli": "bin/vuepress.js" } }, "node_modules/@vuepress/client": { - "version": "2.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@vuepress/client/-/client-2.0.0-rc.13.tgz", - "integrity": "sha512-kFHVyroAFZ+/ZVaItjIXOZA6r+ympWN+C+0yZYVkMpzyDVFdZrl9WazqhwHBIUj0/sA+NLq2o2EvoqvAPa1lFg==", + "version": "2.0.0-rc.14", + "resolved": "https://registry.npmjs.org/@vuepress/client/-/client-2.0.0-rc.14.tgz", + "integrity": "sha512-ULwxOiWoUi15HWQ6qH60gWjxSXB0797uExCUa4HgHV/8SpIqv4SHFn6jqjo7qCzOxuTqj1RT47JH3oWfUF4XPA==", "dependencies": { - "@vue/devtools-api": "^6.6.1", - "@vuepress/shared": "2.0.0-rc.13", - "vue": "^3.4.27", - "vue-router": "^4.3.2" + "@vue/devtools-api": "^6.6.3", + "@vuepress/shared": "2.0.0-rc.14", + "vue": "^3.4.29", + "vue-router": "^4.3.3" } }, "node_modules/@vuepress/core": { - "version": "2.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@vuepress/core/-/core-2.0.0-rc.13.tgz", - "integrity": "sha512-IK+5h2QAtl52g/3M0nGV2r0L+2cy0yhQ1Ez65ij4xs1FoiCEStJIVJSYGl1VMQDkB+MUGJAXZw86lNA2PIjgsg==", + "version": "2.0.0-rc.14", + "resolved": "https://registry.npmjs.org/@vuepress/core/-/core-2.0.0-rc.14.tgz", + "integrity": "sha512-Ly3fypjXGUgPzjfbXKJeyd59jxJgXkhxhWAGkH/rRyQeV8Nr7Wo1ah3H1MeGhlCRGH1T9Yd3Bz9W7QMoyWFfmg==", "dependencies": { - "@vuepress/client": "2.0.0-rc.13", - "@vuepress/markdown": "2.0.0-rc.13", - "@vuepress/shared": "2.0.0-rc.13", - "@vuepress/utils": "2.0.0-rc.13", - "vue": "^3.4.27" + "@vuepress/client": "2.0.0-rc.14", + "@vuepress/markdown": "2.0.0-rc.14", + "@vuepress/shared": "2.0.0-rc.14", + "@vuepress/utils": "2.0.0-rc.14", + "vue": "^3.4.29" } }, "node_modules/@vuepress/helper": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/helper/-/helper-2.0.0-rc.34.tgz", - "integrity": "sha512-xgsDya8wzzMJU12MTx7Osf38OcV91cgcS5E9wm2PFVsjC2Jlo/vkPAa2GQZEnK/CQpUpgrsBSf9tbj4aqxF18g==", + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/helper/-/helper-2.0.0-rc.37.tgz", + "integrity": "sha512-Sa2H6EqRuG0+521Z5WN7I8EQNwLwFe7U+1KtV01zFp2BcehsgD3EigBjBP7hl01ubb4T8wR7CxWv7cGVA4bPcw==", "dependencies": { - "@vue/shared": "^3.4.27", + "@vue/shared": "^3.4.29", "cheerio": "1.0.0-rc.12", "fflate": "^0.8.2", "gray-matter": "^4.0.3", - "vue": "^3.4.27" + "vue": "^3.4.29" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, "node_modules/@vuepress/highlighter-helper": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/highlighter-helper/-/highlighter-helper-2.0.0-rc.34.tgz", - "integrity": "sha512-E9SHLHUmPx8vdHE/F+jcR9S0WHHCTFujIW5KNH7yFGd5YYZc0cOsWKQvmBX1BArbTlbzeHwvjvGqcMTS4FdQyg==", + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/highlighter-helper/-/highlighter-helper-2.0.0-rc.37.tgz", + "integrity": "sha512-l7qxuJJP0+zxDd42UctS0Oc240cCN7BvxfEx6XJfaYmn2Yncrbbk15gS9tUT3jeXB959JGm8uUhxpPP0/4w3kw==", "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, "node_modules/@vuepress/markdown": { - "version": "2.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@vuepress/markdown/-/markdown-2.0.0-rc.13.tgz", - "integrity": "sha512-p26OjCj0nMXFBRMPkMgt8VRfFLNF7V6YRqWdDtxipHl6S1y5s965uYgYfxTyr9TLGwnXRsZvE60wItKHftFe5w==", + "version": "2.0.0-rc.14", + "resolved": "https://registry.npmjs.org/@vuepress/markdown/-/markdown-2.0.0-rc.14.tgz", + "integrity": "sha512-9xr693gkp71qwEbQLxpo1ybhJ+lA2k5SiuFUgqqrmR2a8CSL3gcmKEGM+y7GMnHvL63U2dYlc9pUOtJ5rG9O0Q==", "dependencies": { "@mdit-vue/plugin-component": "^2.1.3", "@mdit-vue/plugin-frontmatter": "^2.1.3", @@ -3727,8 +3728,8 @@ "@mdit-vue/types": "^2.1.0", "@types/markdown-it": "^14.1.1", "@types/markdown-it-emoji": "^3.0.1", - "@vuepress/shared": "2.0.0-rc.13", - "@vuepress/utils": "2.0.0-rc.13", + "@vuepress/shared": "2.0.0-rc.14", + "@vuepress/utils": "2.0.0-rc.14", "markdown-it": "^14.1.0", "markdown-it-anchor": "^9.0.1", "markdown-it-emoji": "^3.0.0", @@ -3736,58 +3737,58 @@ } }, "node_modules/@vuepress/plugin-active-header-links": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-active-header-links/-/plugin-active-header-links-2.0.0-rc.34.tgz", - "integrity": "sha512-2uA4AJIiHap32lPcVF/6T3mWg+62B/EoXoqp0yv73+Ib16epX4VK+7BarI5Gbv8qDzNFfReOh3uykGojqz478g==", + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-active-header-links/-/plugin-active-header-links-2.0.0-rc.37.tgz", + "integrity": "sha512-VLM0JXgdShRAR38smp/M72sctDIVPgW4E+fBpGaP4iG+JOywXbLp5MfiO/r1ww62k7LXRI8g8/hYjlhyeMGnEg==", "dependencies": { - "@vueuse/core": "^10.10.0", - "vue": "^3.4.27" + "@vueuse/core": "^10.11.0", + "vue": "^3.4.29" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, "node_modules/@vuepress/plugin-back-to-top": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-back-to-top/-/plugin-back-to-top-2.0.0-rc.34.tgz", - "integrity": "sha512-f40lzlpM2q3ZZ1LN0Wzxc8d0GYlWXe20PyGB0k3aDDwW64qy6PgXr1J8bbZkC8166imJN45BubmZe3ECGtpYHg==", + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-back-to-top/-/plugin-back-to-top-2.0.0-rc.37.tgz", + "integrity": "sha512-R9rAXZCYdnBADvcbY2V4xtGOHS11mAIV98MbpixP1CYGaRdOGMcp4oJwfsGqwE1Iyi/nBgBaVFHexyQFkx7Rag==", "dependencies": { - "@vuepress/helper": "2.0.0-rc.34", - "@vueuse/core": "^10.10.0", - "vue": "^3.4.27" + "@vuepress/helper": "2.0.0-rc.37", + "@vueuse/core": "^10.11.0", + "vue": "^3.4.29" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, "node_modules/@vuepress/plugin-copy-code": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-copy-code/-/plugin-copy-code-2.0.0-rc.34.tgz", - "integrity": "sha512-vnfB1gXDk7YcjVTgy9FeaNHtXz/bR18skr72Wtq5qV5WLk3xfTe5chdE64zONne77w0TLFh7wAVX5VXbF6q7DQ==", + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-copy-code/-/plugin-copy-code-2.0.0-rc.37.tgz", + "integrity": "sha512-Z8rvn3n+SsEUmyoR2rYo/AYUPbOsJravtVh4COVqc40FT6gxlZPLlUcr4XV4Nh0ja87oZn/FubbZMkWfU8MyOA==", "dependencies": { - "@vuepress/helper": "2.0.0-rc.34", - "@vueuse/core": "^10.10.0", - "vue": "^3.4.27" + "@vuepress/helper": "2.0.0-rc.37", + "@vueuse/core": "^10.11.0", + "vue": "^3.4.29" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, "node_modules/@vuepress/plugin-git": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-git/-/plugin-git-2.0.0-rc.34.tgz", - "integrity": "sha512-IyT/czvtwbUJORXknCALyVGq3qC+4pIk8T9+z8RAljB7NgJK8WK2gSMCDLNDM3XkBwYkL8/AoDgl870gqq+Yhg==", + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-git/-/plugin-git-2.0.0-rc.37.tgz", + "integrity": "sha512-+p+EkcWsoErJXKdVZQBfazJ6Q8YFRXXjfDrb1qUSF5wCUfC7QgD6Vsgt5MmB9YZjbhj1Yf/xeZcDVB6qz8B+GA==", "dependencies": { - "execa": "^9.1.0" + "execa": "^9.2.0" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, "node_modules/@vuepress/plugin-git/node_modules/execa": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.2.0.tgz", - "integrity": "sha512-vpOyYg7UAVKLAWWtRS2gAdgkT7oJbCn0me3gmUmxZih4kd3MF/oo8kNTBTIbkO3yuuF5uB4ZCZfn8BOolITYhg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.3.0.tgz", + "integrity": "sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==", "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.3", @@ -3891,144 +3892,144 @@ } }, "node_modules/@vuepress/plugin-links-check": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-links-check/-/plugin-links-check-2.0.0-rc.34.tgz", - "integrity": "sha512-Z8NAmX4KpDmGXW8KzXWZrvkEa5IIGd2B8oS4chLZRDB2FnpM6v3LcUuuwhqrZwrHPPSpEujGI/M+tyRtTTuIpA==", + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-links-check/-/plugin-links-check-2.0.0-rc.37.tgz", + "integrity": "sha512-9YelTHKFKADKmSdGxEVyF5LE6r9rg95ia695tQ695n/ov+2/iC0Ez6Kc0ceaqdaCPMq8Q5OsLAh2/hC2N/H15Q==", "dependencies": { - "@vuepress/helper": "2.0.0-rc.34" + "@vuepress/helper": "2.0.0-rc.37" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, "node_modules/@vuepress/plugin-markdown-container": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-markdown-container/-/plugin-markdown-container-2.0.0-rc.34.tgz", - "integrity": "sha512-R8kj0vSGgOVPZ+kxks+DJNr07iw7uHGt6TliXgpMiMWE16iV5W5HmBy2PnKRwWHg4HPkNUF60heLKpZkxp6gHw==", + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-markdown-container/-/plugin-markdown-container-2.0.0-rc.37.tgz", + "integrity": "sha512-o/jL/uHQ2U0x0crtODh2n4S51yG4BBmHw7DWrolP6e0FN6/PoQVsBenau5700c2iuouAfdrJ6G+tRbCrOx5ZjA==", "dependencies": { "@types/markdown-it": "^14.1.1", "markdown-it-container": "^4.0.0" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, "node_modules/@vuepress/plugin-medium-zoom": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-2.0.0-rc.34.tgz", - "integrity": "sha512-6HeZ2saUXcTZBuGAdaUXImV092C2Cg/0RJ57L5XImpziGn+OPotTUnu7byq4CgsmY1dhj+mA6KCaPVF23duh1A==", + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-2.0.0-rc.37.tgz", + "integrity": "sha512-s4AYQgWlXinmapYas+psmttWMIyUedi06bGcPVoXSHIoMsM74glr385xQtKSGp6V7F2CykGchYGeRyfGXG4OKQ==", "dependencies": { - "@vuepress/helper": "2.0.0-rc.34", + "@vuepress/helper": "2.0.0-rc.37", "medium-zoom": "^1.1.0", - "vue": "^3.4.27" + "vue": "^3.4.29" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, "node_modules/@vuepress/plugin-nprogress": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-nprogress/-/plugin-nprogress-2.0.0-rc.34.tgz", - "integrity": "sha512-JnXMjb1avr/BvXURqwAFx5sE+cWUnLKC33vniJCylLmyPFCQhXkZIB3U1dxwFyEht5Xl72vV0T7Oj8XPeMGHWQ==", + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-nprogress/-/plugin-nprogress-2.0.0-rc.37.tgz", + "integrity": "sha512-HEv6AzAG3U7Q5cAkeuQhMV2JhASB/2veTQ85OHNyWUzZ5yTC/Kx5PfQOb87X6LWK51eZA5vImibeZbFJ1mkE3g==", "dependencies": { - "vue": "^3.4.27" + "vue": "^3.4.29" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, "node_modules/@vuepress/plugin-palette": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-palette/-/plugin-palette-2.0.0-rc.34.tgz", - "integrity": "sha512-HiEcvgqy6utt7ilqbPvc/irM3cEBW4p1q9YfQBFCuyQY1+UJMf7NkC5YuwkBPy712Ef0MMYwgmdNskyso+XayQ==", + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-palette/-/plugin-palette-2.0.0-rc.37.tgz", + "integrity": "sha512-wzsywEeZFHOcRITIff1SC0jXsMasze3t0d9gc0cp5iB/OW3bEdhes4mFmPtZZmWfnlmgajq/7uTEavEXVWJTIA==", "dependencies": { "chokidar": "^3.6.0" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, "node_modules/@vuepress/plugin-prismjs": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-prismjs/-/plugin-prismjs-2.0.0-rc.34.tgz", - "integrity": "sha512-o7JO2VG+yrfgy7duJ+8eULeXwb5ZY6heZnaMYZ2CPBLU6xPqdmMM/BXjbE3u53Znyo05ZtOlgWmzL7Cvvraogw==", + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-prismjs/-/plugin-prismjs-2.0.0-rc.37.tgz", + "integrity": "sha512-39m6oYZzW0XqwtyTI1QEidQ7GIQAKQZG7q+VXO1E5ZURWh6YepjSodA+zgxhIAFcNx69NR77EaSp2WBO10sdZQ==", "dependencies": { - "@vuepress/highlighter-helper": "2.0.0-rc.34", + "@vuepress/highlighter-helper": "2.0.0-rc.37", "prismjs": "^1.29.0" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, "node_modules/@vuepress/plugin-seo": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-seo/-/plugin-seo-2.0.0-rc.34.tgz", - "integrity": "sha512-GEqKidWOe7SDxJuGA6UIk8x9V+4x4ZvOH5f0MqAPNeBSRty6dNGAenfvUpq2TE1zLTfxUfc9Lxn4mFMGLeMzGQ==", + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-seo/-/plugin-seo-2.0.0-rc.37.tgz", + "integrity": "sha512-H6bM4jYKwFABP/JGocDC7CD5SACMdFf9rE5lci5/VYJybvBr5XXDXHXk9KSy01jupPjmAjsGp5Fzqk2ggeqQIQ==", "dependencies": { - "@vuepress/helper": "2.0.0-rc.34" + "@vuepress/helper": "2.0.0-rc.37" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, "node_modules/@vuepress/plugin-sitemap": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-sitemap/-/plugin-sitemap-2.0.0-rc.34.tgz", - "integrity": "sha512-FEx0SRQQS5YD+8+WKVuueyD/sB+RDY6ds4FONB5wWvtHbpdfBNW+dgYQLPDNNKA64uaHgneOhtp4KEb1klS23A==", + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-sitemap/-/plugin-sitemap-2.0.0-rc.37.tgz", + "integrity": "sha512-mL9aKIkiSEJizVcsreY7O+FZmTT/coV4iR2P5OQ5oyXbcByMN+omirsupHBHsWl2zH/EZe2FklByDEDUPpg3MQ==", "dependencies": { - "@vuepress/helper": "2.0.0-rc.34", + "@vuepress/helper": "2.0.0-rc.37", "sitemap": "^8.0.0" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, "node_modules/@vuepress/plugin-theme-data": { - "version": "2.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-theme-data/-/plugin-theme-data-2.0.0-rc.34.tgz", - "integrity": "sha512-uBYWSTzSwsAm2Pd4ujDG73DAiadctDrJh4jlHSVunjAEDehsg2jjKzb13LLsafG8qbwvGz7b0YVQzdoWFZdEVA==", + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-theme-data/-/plugin-theme-data-2.0.0-rc.37.tgz", + "integrity": "sha512-xzdYyScZcS5aDbk/2bQAuEofe6wqgtX2Y/6SUqsGlV4A59D+xIfPbNUZhO0gbUX//ofYGaxgKQps0OrvPkwMVg==", "dependencies": { - "@vue/devtools-api": "^6.6.2", - "vue": "^3.4.27" + "@vue/devtools-api": "^6.6.3", + "vue": "^3.4.29" }, "peerDependencies": { - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" } }, "node_modules/@vuepress/shared": { - "version": "2.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@vuepress/shared/-/shared-2.0.0-rc.13.tgz", - "integrity": "sha512-xtruKVH9QqTLIQxbPbU3iZWthLC8uR5yYUzVA6eL+knjHkpCXOlzqMYnlp4xT0tzQNw+gBHWLKo8zVEccSkqug==", + "version": "2.0.0-rc.14", + "resolved": "https://registry.npmjs.org/@vuepress/shared/-/shared-2.0.0-rc.14.tgz", + "integrity": "sha512-VDDnPpz4x1Q07richcVRGbc4qc2RG/6bKoEYSImofTFzvdmHer538ouv8kD2SNU10UrSOpxxUiphnhlhNIe03A==", "dependencies": { "@mdit-vue/types": "^2.1.0" } }, "node_modules/@vuepress/theme-default": { - "version": "2.0.0-rc.35", - "resolved": "https://registry.npmjs.org/@vuepress/theme-default/-/theme-default-2.0.0-rc.35.tgz", - "integrity": "sha512-0ASsdEO0N83AnsUknzbnIavO5trfpKmFm8hc/TIGNnPIVUt5Cv7faQpaaJbdymmgDhBYsBS0zbCxr0n2NG+N4w==", - "dependencies": { - "@vuepress/helper": "2.0.0-rc.34", - "@vuepress/plugin-active-header-links": "2.0.0-rc.34", - "@vuepress/plugin-back-to-top": "2.0.0-rc.34", - "@vuepress/plugin-copy-code": "2.0.0-rc.34", - "@vuepress/plugin-git": "2.0.0-rc.34", - "@vuepress/plugin-links-check": "2.0.0-rc.34", - "@vuepress/plugin-markdown-container": "2.0.0-rc.34", - "@vuepress/plugin-medium-zoom": "2.0.0-rc.34", - "@vuepress/plugin-nprogress": "2.0.0-rc.34", - "@vuepress/plugin-palette": "2.0.0-rc.34", - "@vuepress/plugin-prismjs": "2.0.0-rc.34", - "@vuepress/plugin-seo": "2.0.0-rc.34", - "@vuepress/plugin-sitemap": "2.0.0-rc.34", - "@vuepress/plugin-theme-data": "2.0.0-rc.34", - "@vueuse/core": "^10.10.0", - "sass": "^1.77.4", - "vue": "^3.4.27" + "version": "2.0.0-rc.37", + "resolved": "https://registry.npmjs.org/@vuepress/theme-default/-/theme-default-2.0.0-rc.37.tgz", + "integrity": "sha512-wgAZCLJ9yw+fRGtohGFQ0ltdqdhPoTw7DyEgHl3eI12ScVY7H+ZosgWXSczb+ks8IXY0Gw1+VNK/L1al5naYHg==", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.37", + "@vuepress/plugin-active-header-links": "2.0.0-rc.37", + "@vuepress/plugin-back-to-top": "2.0.0-rc.37", + "@vuepress/plugin-copy-code": "2.0.0-rc.37", + "@vuepress/plugin-git": "2.0.0-rc.37", + "@vuepress/plugin-links-check": "2.0.0-rc.37", + "@vuepress/plugin-markdown-container": "2.0.0-rc.37", + "@vuepress/plugin-medium-zoom": "2.0.0-rc.37", + "@vuepress/plugin-nprogress": "2.0.0-rc.37", + "@vuepress/plugin-palette": "2.0.0-rc.37", + "@vuepress/plugin-prismjs": "2.0.0-rc.37", + "@vuepress/plugin-seo": "2.0.0-rc.37", + "@vuepress/plugin-sitemap": "2.0.0-rc.37", + "@vuepress/plugin-theme-data": "2.0.0-rc.37", + "@vueuse/core": "^10.11.0", + "sass": "^1.77.6", + "vue": "^3.4.29" }, "peerDependencies": { "sass-loader": "^14.0.0", - "vuepress": "2.0.0-rc.13" + "vuepress": "2.0.0-rc.14" }, "peerDependenciesMeta": { "sass-loader": { @@ -4037,15 +4038,15 @@ } }, "node_modules/@vuepress/utils": { - "version": "2.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@vuepress/utils/-/utils-2.0.0-rc.13.tgz", - "integrity": "sha512-MbTnyCodo9K6WK7xFwOVEHnhatlq8BsoVmrtM16Swk2igjtexXAJ6OCCXGON1l32fwGGVKFom3bH9seBvqSK7g==", + "version": "2.0.0-rc.14", + "resolved": "https://registry.npmjs.org/@vuepress/utils/-/utils-2.0.0-rc.14.tgz", + "integrity": "sha512-1h/5qcKBeIhIg6SZM2IoZVOaIdFSeQ1CdEWadqQWy1uwupEeVrU3QPkjFyn0vUt0O/EuuVqQcLLC8OuS/wldNw==", "dependencies": { "@types/debug": "^4.1.12", "@types/fs-extra": "^11.0.4", "@types/hash-sum": "^1.0.2", - "@vuepress/shared": "2.0.0-rc.13", - "debug": "^4.3.4", + "@vuepress/shared": "2.0.0-rc.14", + "debug": "^4.3.5", "fs-extra": "^11.2.0", "globby": "^14.0.1", "hash-sum": "^2.0.0", @@ -4107,14 +4108,14 @@ } }, "node_modules/@vueuse/core": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.10.0.tgz", - "integrity": "sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw==", + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.0.tgz", + "integrity": "sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==", "dependencies": { "@types/web-bluetooth": "^0.0.20", - "@vueuse/metadata": "10.10.0", - "@vueuse/shared": "10.10.0", - "vue-demi": ">=0.14.7" + "@vueuse/metadata": "10.11.0", + "@vueuse/shared": "10.11.0", + "vue-demi": ">=0.14.8" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -4146,19 +4147,19 @@ } }, "node_modules/@vueuse/metadata": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.10.0.tgz", - "integrity": "sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug==", + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.0.tgz", + "integrity": "sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==", "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/shared": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.10.0.tgz", - "integrity": "sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og==", + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.0.tgz", + "integrity": "sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==", "dependencies": { - "vue-demi": ">=0.14.7" + "vue-demi": ">=0.14.8" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -5422,9 +5423,9 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dependencies": { "ms": "2.1.2" }, @@ -6026,9 +6027,9 @@ } }, "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -6037,29 +6038,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/escalade": { @@ -7496,9 +7497,9 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" }, "node_modules/graphql": { - "version": "16.8.2", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.2.tgz", - "integrity": "sha512-cvVIBILwuoSyD54U4cF/UXDh5yAobhNV/tPygI4lZhgOIJQE/WLWC4waBRb4I6bDVYb3OVx3lfHbaQOEoUD5sg==", + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", + "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } @@ -9169,9 +9170,9 @@ "integrity": "sha512-53A0IpJFL9LdHbpeatwizf8KSwPICrqn9H0g3Y7WQ+Jgeu9cQ4Ew3WrRtrLBu/CX2lXd5+rgT01/tGlkbkzOjw==" }, "node_modules/lilconfig": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", - "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", "devOptional": true, "engines": { "node": ">=14" @@ -10548,9 +10549,9 @@ "devOptional": true }, "node_modules/nodemon": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.3.tgz", - "integrity": "sha512-m4Vqs+APdKzDFpuaL9F9EVOF85+h070FnkHVEoU4+rmT6Vw0bmNl7s61VEkY/cJkL7RCv1p4urnUDUMrS5rk2w==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.4.tgz", + "integrity": "sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==", "dev": true, "dependencies": { "chokidar": "^3.5.2", @@ -11241,9 +11242,9 @@ } }, "node_modules/postcss-load-config": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz", - "integrity": "sha512-G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", "devOptional": true, "funding": [ { @@ -11256,8 +11257,7 @@ } ], "dependencies": { - "lilconfig": "^3.1.1", - "yaml": "^2.4.2" + "lilconfig": "^3.1.1" }, "engines": { "node": ">= 18" @@ -11265,7 +11265,8 @@ "peerDependencies": { "jiti": ">=1.21.0", "postcss": ">=8.0.9", - "tsx": "^4.8.1" + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "jiti": { @@ -11276,6 +11277,9 @@ }, "tsx": { "optional": true + }, + "yaml": { + "optional": true } } }, @@ -11361,12 +11365,12 @@ } }, "node_modules/prisma": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.15.0.tgz", - "integrity": "sha512-JA81ACQSCi3a7NUOgonOIkdx8PAVkO+HbUOxmd00Yb8DgIIEpr2V9+Qe/j6MLxIgWtE/OtVQ54rVjfYRbZsCfw==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.16.1.tgz", + "integrity": "sha512-Z1Uqodk44diztImxALgJJfNl2Uisl9xDRvqybMKEBYJLNKNhDfAHf+ZIJbZyYiBhLMbKU9cYGdDVG5IIXEnL2Q==", "hasInstallScript": true, "dependencies": { - "@prisma/engines": "5.15.0" + "@prisma/engines": "5.16.1" }, "bin": { "prisma": "build/index.js" @@ -13062,9 +13066,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { - "version": "1.77.4", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.4.tgz", - "integrity": "sha512-vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw==", + "version": "1.77.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", + "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -13819,9 +13823,9 @@ } }, "node_modules/ts-jest": { - "version": "29.1.4", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.4.tgz", - "integrity": "sha512-YiHwDhSvCiItoAgsKtoLFCuakDzDsJ1DLDnSouTaTmdOcOwIkSzbLXduaQ6M5DRVhuZC/NYaaZ/mtHbWMv/S6Q==", + "version": "29.1.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.5.tgz", + "integrity": "sha512-UuClSYxM7byvvYfyWdFI+/2UxMmwNyJb0NPkZPQE2hew3RurV7l7zURgOHAd/1I1ZdPpe3GUsXNXAcN8TFKSIg==", "dev": true, "dependencies": { "bs-logger": "0.x", @@ -14154,9 +14158,9 @@ "dev": true }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz", + "integrity": "sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==", "devOptional": true, "bin": { "tsc": "bin/tsc", @@ -14797,12 +14801,12 @@ } }, "node_modules/vite": { - "version": "5.2.13", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.13.tgz", - "integrity": "sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", + "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", "devOptional": true, "dependencies": { - "esbuild": "^0.20.1", + "esbuild": "^0.21.3", "postcss": "^8.4.38", "rollup": "^4.13.0" }, @@ -14889,15 +14893,15 @@ "dev": true }, "node_modules/vue": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.27.tgz", - "integrity": "sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", "dependencies": { - "@vue/compiler-dom": "3.4.27", - "@vue/compiler-sfc": "3.4.27", - "@vue/runtime-dom": "3.4.27", - "@vue/server-renderer": "3.4.27", - "@vue/shared": "3.4.27" + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" }, "peerDependencies": { "typescript": "*" @@ -14909,9 +14913,9 @@ } }, "node_modules/vue-router": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.3.2.tgz", - "integrity": "sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.4.0.tgz", + "integrity": "sha512-HB+t2p611aIZraV2aPSRNXf0Z/oLZFrlygJm+sZbdJaW6lcFqEDQwnzUBXn+DApw+/QzDU/I9TeWx9izEjTmsA==", "dependencies": { "@vue/devtools-api": "^6.5.1" }, @@ -14923,17 +14927,17 @@ } }, "node_modules/vuepress": { - "version": "2.0.0-rc.13", - "resolved": "https://registry.npmjs.org/vuepress/-/vuepress-2.0.0-rc.13.tgz", - "integrity": "sha512-lhz9EnISXY/s3yDFYe2RLVJcBXN/Ehe+NAFWdadhyX0P9S5AMimvJhsqWoVInnL+HBREsshLibyc8pXGbQrhfw==", - "dependencies": { - "@vuepress/cli": "2.0.0-rc.13", - "@vuepress/client": "2.0.0-rc.13", - "@vuepress/core": "2.0.0-rc.13", - "@vuepress/markdown": "2.0.0-rc.13", - "@vuepress/shared": "2.0.0-rc.13", - "@vuepress/utils": "2.0.0-rc.13", - "vue": "^3.4.27" + "version": "2.0.0-rc.14", + "resolved": "https://registry.npmjs.org/vuepress/-/vuepress-2.0.0-rc.14.tgz", + "integrity": "sha512-t902FYKFF2MavNQjm/I4gN8etl6iX4PETutu4c1Pt7qQjXF6Hp2eurZaW32O5/TaYWsbVG757FwKodRLj9GDng==", + "dependencies": { + "@vuepress/cli": "2.0.0-rc.14", + "@vuepress/client": "2.0.0-rc.14", + "@vuepress/core": "2.0.0-rc.14", + "@vuepress/markdown": "2.0.0-rc.14", + "@vuepress/shared": "2.0.0-rc.14", + "@vuepress/utils": "2.0.0-rc.14", + "vue": "^3.4.29" }, "bin": { "vuepress": "bin/vuepress.js", @@ -14944,8 +14948,8 @@ "node": ">=18.16.0" }, "peerDependencies": { - "@vuepress/bundler-vite": "2.0.0-rc.13", - "@vuepress/bundler-webpack": "2.0.0-rc.13", + "@vuepress/bundler-vite": "2.0.0-rc.14", + "@vuepress/bundler-webpack": "2.0.0-rc.14", "vue": "^3.4.0" }, "peerDependenciesMeta": { diff --git a/backend/package.json b/backend/package.json index 74e32ab889..b2d17b9885 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,18 +1,14 @@ { - "name": "boilerplate-backend", + "name": "dreammall-backend", "version": "1.2.1", - "description": "The IT4C Boilerplate for backends", + "description": "The DreamMall backend", "main": "build/index.ts", - "repository": { - "type": "git", - "url": "git+https://github.com/IT4Change/boilerplate-backend.git" - }, "author": { "name": "Moriz Wahl" }, "license": "Apache-2.0", "bugs": { - "url": "https://github.com/IT4Change/boilerplate-backend/issues" + "url": "https://github.com/dreammall-earth/dreammall.earth/issues" }, "scripts": { "build": "tsc", @@ -36,17 +32,17 @@ }, "dependencies": { "@apollo/server": "^4.10.4", - "@getbrevo/brevo": "^2.1.1", - "@prisma/client": "^5.15.0", - "@vuepress/theme-default": "^2.0.0-rc.35", + "@getbrevo/brevo": "^2.2.0", + "@prisma/client": "^5.16.1", + "@vuepress/theme-default": "^2.0.0-rc.37", "axios": "^1.7.2", "class-validator": "^0.14.1", "dotenv": "^16.4.5", "fast-xml-parser": "^4.4.0", - "graphql": "^16.8.2", + "graphql": "^16.9.0", "graphql-scalars": "^1.23.0", "jsonwebtoken": "^9.0.2", - "prisma": "^5.15.0", + "prisma": "^5.16.1", "prisma-extension-soft-delete": "^1.0.1", "reflect-metadata": "^0.2.2", "tsconfig-paths": "^4.2.0", @@ -58,10 +54,10 @@ "@eslint-community/eslint-plugin-eslint-comments": "^4.3.0", "@types/jest": "^29.5.12", "@types/jsonwebtoken": "^9.0.6", - "@types/node": "^20.14.2", - "@types/uuid": "^9.0.8", - "@typescript-eslint/eslint-plugin": "^7.13.0", - "@typescript-eslint/parser": "^7.13.0", + "@types/node": "^20.14.9", + "@types/uuid": "^10.0.0", + "@typescript-eslint/eslint-plugin": "^7.13.1", + "@typescript-eslint/parser": "^7.13.1", "@vuepress/bundler-vite": "^2.0.0-rc.9", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", @@ -78,17 +74,17 @@ "eslint-plugin-yml": "^1.14.0", "graphql-tag": "^2.12.6", "jest": "^29.7.0", - "nodemon": "^3.1.3", + "nodemon": "^3.1.4", "prettier": "^3.3.2", "remark-cli": "^12.0.1", "remark-gfm": "^4.0.0", "remark-preset-lint-consistent": "^6.0.0", "remark-preset-lint-markdown-style-guide": "^6.0.0", "remark-preset-lint-recommended": "^7.0.0", - "ts-jest": "^29.1.4", + "ts-jest": "^29.1.5", "ts-node": "^10.9.2", "tsc-watch": "^6.2.0", - "typescript": "^5.4.5", + "typescript": "^5.5.2", "vuepress": "^2.0.0-rc.9" }, "imports": { diff --git a/backend/prisma/migrations/20240624231416_int_to_bigint_meeting_create_time/migration.sql b/backend/prisma/migrations/20240624231416_int_to_bigint_meeting_create_time/migration.sql new file mode 100644 index 0000000000..8b72a9bcfc --- /dev/null +++ b/backend/prisma/migrations/20240624231416_int_to_bigint_meeting_create_time/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE `Meeting` MODIFY `createTime` BIGINT NULL; diff --git a/backend/prisma/schema.prisma b/backend/prisma/schema.prisma index 3c32494187..4280892567 100644 --- a/backend/prisma/schema.prisma +++ b/backend/prisma/schema.prisma @@ -66,7 +66,7 @@ model Meeting { createdAt DateTime @default(now()) voiceBridge Int? dialNumber String? @db.VarChar(64) - createTime Int? + createTime BigInt? createDate DateTime? user User? } diff --git a/backend/src/api/BBB.ts b/backend/src/api/BBB.ts index 34cea1c296..8987bc9ccf 100644 --- a/backend/src/api/BBB.ts +++ b/backend/src/api/BBB.ts @@ -170,10 +170,10 @@ export const createMeeting = async ( interface JoinMeetinLinkOptions { fullName: string meetingID: string - // role: 'MODERATOR' | 'VIEWER' - password: string - // createTime: string - // userID: string + role?: 'MODERATOR' | 'VIEWER' + password?: string + createTime?: string + userID?: string } export const joinMeetingLink = (options: JoinMeetinLinkOptions): string => { @@ -185,17 +185,6 @@ export const joinMeetingLink = (options: JoinMeetinLinkOptions): string => { return CONFIG.BBB_URL + 'join?' + params + '&checksum=' + checksum } -const handleOpenRomms = async (): Promise => { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const rooms = await getMeetings() - // console.log(rooms.map((m) => m.attendees?.attendee)) -} - -export const checkForOpenRooms = (): void => { - void handleOpenRomms() - setTimeout(checkForOpenRooms, 60 * 1000) -} - /* export const listHooks = async () => { try { diff --git a/backend/src/auth/authChecker.spec.ts b/backend/src/auth/authChecker.spec.ts index 5649c466ef..53a76f2a42 100644 --- a/backend/src/auth/authChecker.spec.ts +++ b/backend/src/auth/authChecker.spec.ts @@ -37,15 +37,13 @@ describe('authChecker', () => { it('returns access denied error', async () => { await expect( testServer.executeOperation({ - query: 'query { joinMyRoom }', + query: 'mutation { joinMyRoom }', }), ).resolves.toMatchObject({ body: { kind: 'single', singleResult: { - data: { - joinMyRoom: null, - }, + data: null, // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment errors: expect.arrayContaining([ expect.objectContaining({ @@ -69,7 +67,7 @@ describe('authChecker', () => { it('creates user in database', async () => { await testServer.executeOperation( { - query: 'query { joinMyRoom }', + query: 'mutation { joinMyRoom }', }, { contextValue: { @@ -88,7 +86,8 @@ describe('authChecker', () => { createdAt: expect.any(Date), name: 'User', username: 'mockedUser', - meetingId: null, + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + meetingId: expect.any(Number), }, ]) }) @@ -117,7 +116,7 @@ describe('authChecker', () => { it('has the same user in database', async () => { await testServer.executeOperation( { - query: 'query { joinMyRoom }', + query: 'mutation { joinMyRoom }', }, { contextValue: { diff --git a/backend/src/config/config.ts b/backend/src/config/config.ts index 9329f7914d..d8a1af7a7f 100644 --- a/backend/src/config/config.ts +++ b/backend/src/config/config.ts @@ -32,6 +32,7 @@ const BREVO = { const BBB = { BBB_SHARED_SECRET: process.env.BBB_SHARED_SECRET ?? 'unknown', BBB_URL: process.env.BBB_URL ?? 'https://my.url', + BBB_PULL_MEETINGS: process.env.NODE_ENV !== 'test' && process.env.BBB_URL, } export const CONFIG = { diff --git a/backend/src/graphql/resolvers/RoomResolver.spec.ts b/backend/src/graphql/resolvers/RoomResolver.spec.ts index fd0ceb482c..6041b289c1 100644 --- a/backend/src/graphql/resolvers/RoomResolver.spec.ts +++ b/backend/src/graphql/resolvers/RoomResolver.spec.ts @@ -48,13 +48,13 @@ describe('RoomResolver', () => { it('throws access denied', async () => { await expect( testServer.executeOperation({ - query: 'query { joinMyRoom }', + query: 'mutation { joinMyRoom }', }), ).resolves.toMatchObject({ body: { kind: 'single', singleResult: { - data: { joinMyRoom: null }, + data: null, // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment errors: expect.arrayContaining([ expect.objectContaining({ @@ -97,7 +97,7 @@ describe('RoomResolver', () => { } ` describe('No room in DB', () => { - it('returns null', async () => { + it('throws an Error', async () => { await expect( testServer.executeOperation({ query, @@ -110,9 +110,8 @@ describe('RoomResolver', () => { body: { kind: 'single', singleResult: { - data: { joinRoom: null }, - - errors: undefined, + data: null, + errors: [expect.objectContaining({ message: 'Room does not exist' })], }, }, }) @@ -288,17 +287,43 @@ describe('RoomResolver', () => { }) describe('joinMyRoom', () => { - describe('createMeeting returns undefined', () => { - it('returns null', async () => { - createMeetingMock.mockResolvedValue(null) + beforeAll(async () => { + await prisma.meeting.deleteMany() + await prisma.user.deleteMany() + }) + + let meetingId: string | undefined + + describe('meeting does not exist', () => { + joinMeetingLinkMock.mockReturnValue('https://my-link') + createMeetingMock.mockResolvedValue({ + returncode: 'SUCCESS', + meetingID: 'xxx', + internalMeetingID: 'b60d121b438a380c343d5ec3c2037564b82ffef3-1715231322715', + parentMeetingID: 'bbb-none', + attendeePW: 'w3VUvMcp', + moderatorPW: 'MyPp9Zfq', + createTime: 1718189921310, + voiceBridge: 255, + dialNumber: '613-555-1234', + createDate: new Date(), + hasUserJoined: false, + duration: 0, + hasBeenForciblyEnded: false, + messageKey: '', + message: '', + }) + + it('returns link to room', async () => { await expect( testServer.executeOperation( { - query: 'query { joinMyRoom }', + query: 'mutation { joinMyRoom }', }, { contextValue: { token: 'token', + user: undefined, }, }, ), @@ -306,43 +331,75 @@ describe('RoomResolver', () => { body: { kind: 'single', singleResult: { - data: { joinMyRoom: null }, + data: { + joinMyRoom: 'https://my-link', + }, errors: undefined, }, }, }) }) - }) - describe('createMeeting returns meeting', () => { - it('returns link to the meeting', async () => { - joinMeetingLinkMock.mockReturnValue('https://my-link') - createMeetingMock.mockResolvedValue({ - returncode: 'SUCCESS', - meetingID: 'xxx', - internalMeetingID: 'b60d121b438a380c343d5ec3c2037564b82ffef3-1715231322715', - parentMeetingID: 'bbb-none', - attendeePW: 'w3VUvMcp', - moderatorPW: 'MyPp9Zfq', - createTime: 1715231322715, - voiceBridge: 255, - dialNumber: '613-555-1234', - createDate: new Date(), - hasUserJoined: false, - duration: 0, - hasBeenForciblyEnded: false, - messageKey: '', - message: '', + it('creates meeting in database', async () => { + const result = await prisma.user.findFirst({ + include: { + meeting: true, + }, + }) + meetingId = result?.meeting?.meetingID + expect(result).toMatchObject({ + meeting: { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + id: expect.any(Number), + name: 'mockedUser', + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + meetingID: expect.any(String), + attendeePW: 'w3VUvMcp', + moderatorPW: 'MyPp9Zfq', + voiceBridge: 255, + dialNumber: '613-555-1234', + createTime: 1718189921310n, + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + createDate: expect.any(Date), + }, }) + }) + }) + + describe('meeting exists in DB', () => { + beforeAll(() => { + jest.clearAllMocks() + }) + joinMeetingLinkMock.mockReturnValue('https://my-link') + createMeetingMock.mockResolvedValue({ + returncode: 'SUCCESS', + meetingID: 'xxx', + internalMeetingID: 'b60d121b438a380c343d5ec3c2037564b82ffef3-1715231322715', + parentMeetingID: 'bbb-none', + attendeePW: 'w3VUvMcp', + moderatorPW: 'MyPp9Zfq', + createTime: 1718189921310, + voiceBridge: 255, + dialNumber: '613-555-1234', + createDate: new Date(), + hasUserJoined: false, + duration: 0, + hasBeenForciblyEnded: false, + messageKey: '', + message: '', + }) + + it('returns link to room', async () => { await expect( testServer.executeOperation( { - query: 'query { joinMyRoom }', + query: 'mutation { joinMyRoom }', }, { contextValue: { token: 'token', + user: undefined, }, }, ), @@ -350,12 +407,69 @@ describe('RoomResolver', () => { body: { kind: 'single', singleResult: { - data: { joinMyRoom: 'https://my-link' }, + data: { + joinMyRoom: 'https://my-link', + }, errors: undefined, }, }, }) }) + + it('updates meeting in database', async () => { + await expect( + prisma.user.findFirst({ + include: { + meeting: true, + }, + }), + ).resolves.toMatchObject({ + meeting: { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + id: expect.any(Number), + name: 'mockedUser', + meetingID: meetingId, + attendeePW: 'w3VUvMcp', + moderatorPW: 'MyPp9Zfq', + voiceBridge: 255, + dialNumber: '613-555-1234', + createTime: 1718189921310n, + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + createDate: expect.any(Date), + }, + }) + }) + }) + + describe('createMeeting returns undefined', () => { + it('throws meeting error', async () => { + createMeetingMock.mockResolvedValue(null) + await expect( + testServer.executeOperation( + { + query: 'mutation { joinMyRoom }', + }, + { + contextValue: { + token: 'token', + }, + }, + ), + ).resolves.toMatchObject({ + body: { + kind: 'single', + singleResult: { + data: null, + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + errors: expect.arrayContaining([ + expect.objectContaining({ + message: 'Could not create meeting!', + }), + ]), + }, + }, + }) + }) }) }) @@ -458,7 +572,17 @@ describe('RoomResolver', () => { }) }) - describe('one attendee', () => { + describe('one attendee and meeting in DB', () => { + beforeAll(async () => { + await prisma.meeting.create({ + data: { + name: 'Dreammall Entwicklung', + meetingID: 'Dreammall-Entwicklung', + attendeePW: '1234', + }, + }) + }) + beforeEach(() => { getMeetingsMock.mockResolvedValue([ { @@ -502,7 +626,8 @@ describe('RoomResolver', () => { ]) }) - it('returns empty array', async () => { + it('returns room with attendee', async () => { + jest.clearAllMocks() await expect( testServer.executeOperation( { @@ -540,6 +665,14 @@ describe('RoomResolver', () => { }, }) }) + + it('calls joinMeetingLink with correct PW', () => { + expect(joinMeetingLinkMock).toBeCalledWith({ + fullName: 'User', + meetingID: 'Dreammall-Entwicklung', + password: '1234', + }) + }) }) describe('some attendee', () => { diff --git a/backend/src/graphql/resolvers/RoomResolver.ts b/backend/src/graphql/resolvers/RoomResolver.ts index 4c7e9676a9..12a3f4c421 100644 --- a/backend/src/graphql/resolvers/RoomResolver.ts +++ b/backend/src/graphql/resolvers/RoomResolver.ts @@ -1,9 +1,11 @@ +import { Meeting } from '@prisma/client' import { Resolver, Mutation, Query, Authorized, Ctx, Arg, Int } from 'type-graphql' // eslint-disable-next-line import/named import { v4 as uuidv4 } from 'uuid' import { createMeeting, joinMeetingLink, getMeetings, MeetingInfo } from '#api/BBB' import { Room, OpenRoom } from '#models/RoomModel' +import logger from '#src/logger' import { prisma } from '#src/prisma' import { Context } from '#src/server/context' @@ -50,22 +52,80 @@ export class RoomResolver { } @Authorized() - @Query(() => String, { nullable: true }) - async joinMyRoom(@Ctx() context: Context): Promise { + @Mutation(() => String) + async joinMyRoom(@Ctx() context: Context): Promise { const { user } = context - if (!user) return null + if (!user) throw new Error('User not found!') + + let dbMeeting: Meeting | null = null + + try { + if (user.meetingId) { + dbMeeting = await prisma.meeting.findUnique({ + where: { + id: user.meetingId, + }, + }) + if (!dbMeeting) throw new Error('Meeting not found!') + } else { + let meetingID: string = uuidv4() + while ( + await prisma.meeting.count({ + where: { + meetingID, + }, + }) + ) { + meetingID = uuidv4() + } + + dbMeeting = await prisma.meeting.create({ + data: { + name: user.username, + meetingID, + }, + }) + await prisma.user.update({ + where: { id: user.id }, + data: { meetingId: dbMeeting.id }, + }) + } + } catch (err) { + logger.error('Could not create Meeting in DB!', err) + throw new Error('Could not create Meeting in DB!') + } + const meeting = await createMeeting({ - name: 'Dreammall Entwicklung', - meetingID: 'Dreammall-Entwicklung', + name: dbMeeting.name, + meetingID: dbMeeting.meetingID, }) - if (!meeting) return null + + if (!meeting) throw new Error('Could not create meeting!') + + try { + await prisma.meeting.update({ + where: { id: dbMeeting.id }, + data: { + attendeePW: meeting.attendeePW, + moderatorPW: meeting.moderatorPW, + voiceBridge: meeting.voiceBridge, + dialNumber: meeting.dialNumber, + createTime: meeting.createTime, + createDate: new Date(meeting.createDate).toISOString(), + }, + }) + } catch (err) { + logger.error('Could not update Meeting in DB!', err) + throw new Error('Could not update Meeting in DB!') + } + return joinMeetingLink({ fullName: user.name, - meetingID: 'Dreammall-Entwicklung', + meetingID: meeting.meetingID, password: meeting.moderatorPW, - // role: 'MODERATOR', - // createTime: meeting.createTime.toString(), - // userID: user.id.toString(), + role: 'MODERATOR', + createTime: meeting.createTime.toString(), + userID: user.id.toString(), }) } @@ -75,30 +135,45 @@ export class RoomResolver { const { user } = context if (!user) return [] const meetings = await getMeetings() - return meetings.map( - (m: MeetingInfo) => - new OpenRoom( + + if (meetings.length) { + const dbMeetingsPwMap = await prisma.meeting.findMany({ + where: { + meetingID: { in: meetings.map((m: MeetingInfo) => m.meetingID) }, + }, + select: { + meetingID: true, + attendeePW: true, + }, + }) + + return meetings.map((m: MeetingInfo) => { + const pw = dbMeetingsPwMap.find((pw) => pw.meetingID === m.meetingID) + return new OpenRoom( m, joinMeetingLink({ fullName: user.name, + meetingID: m.meetingID, - password: '', + password: pw?.attendeePW ? pw.attendeePW : '', }), - ), - ) + ) + }) + } + return [] } - @Query(() => String, { nullable: true }) + @Query(() => String) async joinRoom( @Arg('userName') userName: string, @Arg('roomId', () => Int) roomId: number, - ): Promise { + ): Promise { const meeting = await prisma.meeting.findUnique({ where: { id: roomId, }, }) - if (!meeting) return null + if (!meeting) throw new Error('Room does not exist') return joinMeetingLink({ fullName: userName, meetingID: meeting.meetingID, diff --git a/backend/src/graphql/resolvers/dal/handleOpenRooms.spec.ts b/backend/src/graphql/resolvers/dal/handleOpenRooms.spec.ts new file mode 100644 index 0000000000..0bb80153a0 --- /dev/null +++ b/backend/src/graphql/resolvers/dal/handleOpenRooms.spec.ts @@ -0,0 +1,191 @@ +import { getMeetings } from '#api/BBB' +import { prisma } from '#src/prisma' + +import { handleOpenRooms } from './handleOpenRooms' + +jest.mock('#api/BBB') + +const getMeetingsMock = getMeetings as jest.MockedFunction + +describe('handleOpenRooms', () => { + describe('two meetings in db', () => { + beforeAll(async () => { + await prisma.meeting.create({ + data: { + name: 'Meeting 1', + meetingID: 'Meeting-1', + createTime: 1234, + }, + }) + await prisma.meeting.create({ + data: { + name: 'Meeting 2', + meetingID: 'Meeting-2', + createTime: 1234, + }, + }) + }) + + describe('get meetings returns both meetings', () => { + beforeEach(async () => { + getMeetingsMock.mockResolvedValue([ + { + meetingName: 'Meeting 1', + meetingID: 'Meeting-1', + internalMeetingID: '258ea7269760758304b6b8494f17e9bf69dc1efe-1718189921310', + createTime: 1234, + createDate: new Date('Wed Jun 12 10:58:41 UTC 2024'), + voiceBridge: 96378, + dialNumber: '613-555-1234', + attendeePW: 'MqgUFwdD', + moderatorPW: 'mTtxYGo2', + running: true, + duration: 0, + hasUserJoined: true, + recording: false, + hasBeenForciblyEnded: false, + startTime: 1718189, + endTime: 0, + participantCount: 0, + listenerCount: 1, + voiceParticipantCount: 0, + videoCount: 0, + maxUsers: 0, + moderatorCount: 1, + attendees: '', + metadata: '', + isBreakout: false, + }, + { + meetingName: 'Meeting 2', + meetingID: 'Meeting-2', + internalMeetingID: '258ea7269760758304b6b8494f17e9bf69dc1efe-1718189921310', + createTime: 1234, + createDate: new Date('Wed Jun 12 10:58:41 UTC 2024'), + voiceBridge: 96378, + dialNumber: '613-555-1234', + attendeePW: 'MqgUFwdD', + moderatorPW: 'mTtxYGo2', + running: true, + duration: 0, + hasUserJoined: true, + recording: false, + hasBeenForciblyEnded: false, + startTime: 1718189, + endTime: 0, + participantCount: 0, + listenerCount: 1, + voiceParticipantCount: 0, + videoCount: 0, + maxUsers: 0, + moderatorCount: 1, + attendees: '', + metadata: '', + isBreakout: false, + }, + ]) + + await handleOpenRooms() + }) + + it('does not alter the DB', async () => { + const meetings = await prisma.meeting.findMany() + expect(meetings).toHaveLength(2) + expect(meetings).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + name: 'Meeting 1', + meetingID: 'Meeting-1', + }), + expect.objectContaining({ + name: 'Meeting 2', + meetingID: 'Meeting-2', + }), + ]), + ) + }) + }) + + describe('get meetings returns one meeting', () => { + beforeEach(async () => { + getMeetingsMock.mockResolvedValue([ + { + meetingName: 'Meeting 1', + meetingID: 'Meeting-1', + internalMeetingID: '258ea7269760758304b6b8494f17e9bf69dc1efe-1718189921310', + createTime: 1234, + createDate: new Date('Wed Jun 12 10:58:41 UTC 2024'), + voiceBridge: 96378, + dialNumber: '613-555-1234', + attendeePW: 'MqgUFwdD', + moderatorPW: 'mTtxYGo2', + running: true, + duration: 0, + hasUserJoined: true, + recording: false, + hasBeenForciblyEnded: false, + startTime: 1718189, + endTime: 0, + participantCount: 0, + listenerCount: 1, + voiceParticipantCount: 0, + videoCount: 0, + maxUsers: 0, + moderatorCount: 1, + attendees: '', + metadata: '', + isBreakout: false, + }, + ]) + + await handleOpenRooms() + }) + + it('resets the missing meeting in DB', async () => { + const meetings = await prisma.meeting.findMany() + expect(meetings).toHaveLength(2) + expect(meetings).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + name: 'Meeting 1', + meetingID: 'Meeting-1', + createTime: 1234n, + }), + expect.objectContaining({ + name: 'Meeting 2', + meetingID: 'Meeting-2', + createTime: null, + }), + ]), + ) + }) + }) + + describe('get meetings returns empty array', () => { + beforeEach(async () => { + getMeetingsMock.mockResolvedValue([]) + + await handleOpenRooms() + }) + + it('resets the meetings in DB', async () => { + const meetings = await prisma.meeting.findMany() + expect(meetings).toHaveLength(2) + expect(meetings).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + name: 'Meeting 1', + meetingID: 'Meeting-1', + createTime: null, + }), + expect.objectContaining({ + name: 'Meeting 2', + meetingID: 'Meeting-2', + createTime: null, + }), + ]), + ) + }) + }) + }) +}) diff --git a/backend/src/graphql/resolvers/dal/handleOpenRooms.ts b/backend/src/graphql/resolvers/dal/handleOpenRooms.ts new file mode 100644 index 0000000000..33c313d929 --- /dev/null +++ b/backend/src/graphql/resolvers/dal/handleOpenRooms.ts @@ -0,0 +1,29 @@ +import { getMeetings, MeetingInfo } from '#api/BBB' +import { prisma } from '#src/prisma' + +export const handleOpenRooms = async (): Promise => { + const rooms = await getMeetings() + await prisma.meeting.updateMany({ + where: { + createTime: { not: null }, + meetingID: { + not: { + in: rooms.map((m: MeetingInfo) => m.meetingID), + }, + }, + }, + data: { + attendeePW: null, + moderatorPW: null, + voiceBridge: null, + dialNumber: null, + createTime: null, + createDate: null, + }, + }) +} + +export const checkForOpenRooms = (): void => { + void handleOpenRooms() + setTimeout(checkForOpenRooms, 60 * 1000) +} diff --git a/backend/src/graphql/schema.ts b/backend/src/graphql/schema.ts index e3eeb22680..043822f796 100644 --- a/backend/src/graphql/schema.ts +++ b/backend/src/graphql/schema.ts @@ -1,12 +1,16 @@ import { GraphQLSchema } from 'graphql' import { buildSchema } from 'type-graphql' +import { CONFIG } from '#config/config' import { authChecker } from '#src/auth/authChecker' import { ContactFormResolver } from './resolvers/ContactFormResolver' +import { checkForOpenRooms } from './resolvers/dal/handleOpenRooms' import { NewsletterSubscriptionResolver } from './resolvers/NewsletterSubscriptionResolver' import { RoomResolver } from './resolvers/RoomResolver' +if (CONFIG.BBB_PULL_MEETINGS) void checkForOpenRooms() + export const schema = async (): Promise => { return buildSchema({ resolvers: [ContactFormResolver, NewsletterSubscriptionResolver, RoomResolver], diff --git a/backend/src/index.ts b/backend/src/index.ts index 14101b73f2..2391f76e0d 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -1,6 +1,5 @@ // eslint-disable-next-line import/no-unassigned-import import 'reflect-metadata' -// import { checkForOpenRooms } from '#api/BBB' import logger from './logger' import { prisma } from './prisma' @@ -9,7 +8,6 @@ import { listen } from './server/server' export const main = async (): Promise => { const url = await listen(4000) logger.info(`🚀 Server is ready at ${url}`) - // checkForOpenRooms() } void main() diff --git a/backend/test/helpers.ts b/backend/test/helpers.ts index 3e484318b1..abfaf87d3b 100644 --- a/backend/test/helpers.ts +++ b/backend/test/helpers.ts @@ -6,6 +6,7 @@ export const deleteAll = async () => { await prisma.$executeRaw`DELETE FROM NewsletterSubscription` await prisma.event.deleteMany() await prisma.user.deleteMany() + await prisma.meeting.deleteMany() } export const disconnect = async () => { diff --git a/docker-compose.override.yml b/docker-compose.override.yml index cd6095296b..8d91af61a5 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -1,5 +1,3 @@ -version: "3.4" - services: ######################################################## # DATABASE ############################################# diff --git a/docker-compose.yml b/docker-compose.yml index f2669e8139..2740e45d30 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ -version: "3.4" - services: ######################################################## # DATABASE ############################################# diff --git a/frontend/.storybook/ApolloWrapper.vue b/frontend/.storybook/ApolloWrapper.vue index 63494c7c98..33872d5e2a 100644 --- a/frontend/.storybook/ApolloWrapper.vue +++ b/frontend/.storybook/ApolloWrapper.vue @@ -2,24 +2,23 @@
- diff --git a/frontend/src/components/buttons/CreateButtonMobile.stories.ts b/frontend/src/components/buttons/CreateButtonMobile.stories.ts new file mode 100644 index 0000000000..16a3e66fdc --- /dev/null +++ b/frontend/src/components/buttons/CreateButtonMobile.stories.ts @@ -0,0 +1,32 @@ +import { SBComp } from '#types/SBComp' + +import CreateButtonMobile from './CreateButtonMobile.vue' + +import type { Meta, StoryObj } from '@storybook/vue3' + +// More on how to set up stories at: https://storybook.js.org/docs/vue/writing-stories/introduction +const meta = { + title: 'Inputs/CreateButtonMobile', + component: CreateButtonMobile as SBComp, + // This component will have an automatically generated docsPage entry: https://storybook.js.org/docs/vue/writing-docs/autodocs + tags: ['autodocs'], + args: {}, // default value + decorators: [ + (story) => ({ + components: { story }, + template: + '
', + }), + ], +} satisfies Meta + +export default meta +type Story = StoryObj +/* + *👇 Render functions are a framework specific feature to allow you control on how the component renders. + * See https://storybook.js.org/docs/vue/api/csf + * to learn how to use render functions. + */ +export const Primary: Story = { + args: {}, +} diff --git a/frontend/src/components/buttons/CreateButtonMobile.vue b/frontend/src/components/buttons/CreateButtonMobile.vue index 57b3053c72..636c6fcc21 100644 --- a/frontend/src/components/buttons/CreateButtonMobile.vue +++ b/frontend/src/components/buttons/CreateButtonMobile.vue @@ -315,21 +315,6 @@ const enterRoom = () => { diff --git a/frontend/src/components/embedded-room/useMyRoom.spec.ts b/frontend/src/components/embedded-room/useMyRoom.spec.ts deleted file mode 100644 index b0ed5e144d..0000000000 --- a/frontend/src/components/embedded-room/useMyRoom.spec.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { flushPromises, mount } from '@vue/test-utils' -import { describe, it, expect, vi, beforeEach } from 'vitest' -import { defineComponent } from 'vue' - -import { joinMyRoomQuery } from '#queries/joinMyRoomQuery' -import { mockClient } from '#tests/mock.apolloClient' -import { errorHandlerSpy } from '#tests/plugin.globalErrorHandler' - -import useMyRoom from './useMyRoom' - -const joinMyRoomQueryMock = vi.fn() - -const testUrl = 'http://some.url' - -mockClient.setRequestHandler(joinMyRoomQuery, joinMyRoomQueryMock) - -describe('useMyRoom', () => { - const TestComponent = defineComponent({ - setup() { - return { - ...useMyRoom(), - } - }, - }) - const Wrapper = () => { - return mount(TestComponent) - } - - let wrapper: ReturnType - - describe('without apollo error', () => { - beforeEach(() => { - joinMyRoomQueryMock.mockResolvedValue({ data: { joinMyRoom: testUrl } }) - wrapper = Wrapper() - }) - - it('calls the API', () => { - expect(joinMyRoomQueryMock).toBeCalled() - }) - - it('returns correct url', async () => { - await flushPromises() - expect(wrapper.vm.roomUrl).toBe(testUrl) - }) - }) - - describe('with apollo error', () => { - beforeEach(() => { - wrapper.unmount() - vi.clearAllMocks() - joinMyRoomQueryMock.mockRejectedValue({ message: 'Aua!', data: undefined }) - wrapper = Wrapper() - }) - - it('logs error message', async () => { - await flushPromises() - expect(errorHandlerSpy).toBeCalledWith('Aua!') - }) - }) -}) diff --git a/frontend/src/components/embedded-room/useMyRoom.ts b/frontend/src/components/embedded-room/useMyRoom.ts deleted file mode 100644 index 211562530f..0000000000 --- a/frontend/src/components/embedded-room/useMyRoom.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { useQuery } from '@vue/apollo-composable' -import { watch, ref } from 'vue' - -import GlobalErrorHandler from '#plugins/globalErrorHandler' -import { JoinMyRoomQueryResult, joinMyRoomQuery } from '#queries/joinMyRoomQuery' - -export default function useMyRoom() { - const { result: joinMyRoomQueryResult, error: joinMyRoomQueryError } = - useQuery(joinMyRoomQuery, null, { - prefetch: false, - fetchPolicy: 'no-cache', - }) - - const roomUrl = ref(null) - - watch(joinMyRoomQueryResult, () => { - if (joinMyRoomQueryResult.value) { - roomUrl.value = joinMyRoomQueryResult.value.joinMyRoom - } - }) - - watch(joinMyRoomQueryError, () => { - if (joinMyRoomQueryError.value) { - GlobalErrorHandler.error(joinMyRoomQueryError.value.message) - } - }) - - return { roomUrl } -} diff --git a/frontend/src/components/menu/BottomMenu.stories.ts b/frontend/src/components/menu/BottomMenu.stories.ts index 4046a4a550..0f701f51a2 100644 --- a/frontend/src/components/menu/BottomMenu.stories.ts +++ b/frontend/src/components/menu/BottomMenu.stories.ts @@ -10,6 +10,12 @@ const meta = { tags: ['autodocs'], argTypes: {}, args: {}, + decorators: [ + (story) => ({ + components: { story }, + template: '
', + }), + ], } satisfies Meta export default meta diff --git a/frontend/src/components/menu/BottomMenu.vue b/frontend/src/components/menu/BottomMenu.vue index e40243062e..b449801740 100644 --- a/frontend/src/components/menu/BottomMenu.vue +++ b/frontend/src/components/menu/BottomMenu.vue @@ -2,12 +2,10 @@
- - - +
@@ -16,8 +14,6 @@ import CreateButtonMobile from '#components/buttons/CreateButtonMobile.vue' import Circle from './CircleElement.vue' -import MessageIndicator from './MessageIndicator.vue' -import NewsIndicator from './NewsIndicator.vue' import UserInfo from './UserInfo.vue' diff --git a/frontend/src/components/menu/MessageIndicator.test.ts b/frontend/src/components/menu/MessageIndicator.test.ts new file mode 100644 index 0000000000..c50b5e3511 --- /dev/null +++ b/frontend/src/components/menu/MessageIndicator.test.ts @@ -0,0 +1,31 @@ +import { mount } from '@vue/test-utils' +import { describe, it, expect, beforeEach, afterEach } from 'vitest' + +import MessageIndicator from './MessageIndicator.vue' + +describe('LogoImage', () => { + const Wrapper = () => { + return mount(MessageIndicator) + } + + let wrapper: ReturnType + + beforeEach(() => { + wrapper = Wrapper() + }) + + afterEach(() => { + wrapper.unmount() + }) + + it('renders', () => { + expect(wrapper.element).toMatchSnapshot() + }) + + it('displays the number of messages', async () => { + await wrapper.setProps({ numberOfMessages: 1 }) + expect(wrapper.text()).toContain('1') + await wrapper.setProps({ numberOfMessages: 5 }) + expect(wrapper.text()).toContain('5') + }) +}) diff --git a/frontend/src/components/menu/NewsIndicator.test.ts b/frontend/src/components/menu/NewsIndicator.test.ts new file mode 100644 index 0000000000..ceca37748c --- /dev/null +++ b/frontend/src/components/menu/NewsIndicator.test.ts @@ -0,0 +1,24 @@ +import { mount } from '@vue/test-utils' +import { describe, it, expect, beforeEach, afterEach } from 'vitest' + +import NewsIndicator from './NewsIndicator.vue' + +describe('LogoImage', () => { + const Wrapper = () => { + return mount(NewsIndicator) + } + + let wrapper: ReturnType + + beforeEach(() => { + wrapper = Wrapper() + }) + + afterEach(() => { + wrapper.unmount() + }) + + it('renders', () => { + expect(wrapper.element).toMatchSnapshot() + }) +}) diff --git a/frontend/src/components/menu/TabControl.test.ts b/frontend/src/components/menu/TabControl.test.ts index 6bf030b450..78b4022127 100644 --- a/frontend/src/components/menu/TabControl.test.ts +++ b/frontend/src/components/menu/TabControl.test.ts @@ -3,8 +3,13 @@ import { describe, it, expect, beforeEach, vi } from 'vitest' import { Component, h } from 'vue' import { VApp } from 'vuetify/components' +import { usePageContext } from '#root/renderer/context/usePageContext' + import TabControl from './TabControl.vue' +vi.mock('#root/renderer/context/usePageContext') +const mockedUsePageContext = vi.mocked(usePageContext) + describe('TabControl', () => { const Wrapper = () => { return mount(VApp, { @@ -18,6 +23,11 @@ describe('TabControl', () => { beforeEach(() => { vi.useFakeTimers() + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + mockedUsePageContext.mockReturnValue({ + urlPathname: '/', + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } as any) wrapper = Wrapper() vi.runAllTimers() }) @@ -26,33 +36,65 @@ describe('TabControl', () => { expect(wrapper.element).toMatchSnapshot() }) + describe('set active item by route', () => { + it('sets first item active for /', () => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + mockedUsePageContext.mockReturnValue({ + urlPathname: '/', + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } as any) + wrapper = Wrapper() + expect(wrapper.find('button.tab-control').findAll('a.item')[0].classes('active')).toBe(true) + }) + + it('sets second item active for /cockpit', () => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + mockedUsePageContext.mockReturnValue({ + urlPathname: '/cockpit', + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } as any) + wrapper = Wrapper() + expect(wrapper.find('button.tab-control').findAll('a.item')[1].classes('active')).toBe(true) + }) + + it('sets first item active for /somerandomroute', () => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + mockedUsePageContext.mockReturnValue({ + urlPathname: '/somerandomroute', + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } as any) + wrapper = Wrapper() + expect(wrapper.find('button.tab-control').findAll('a.item')[0].classes('active')).toBe(true) + }) + }) + describe('click tab control button', () => { beforeEach(async () => { await wrapper.find('button.tab-control').trigger('click') }) - it('has three menu buttons', () => { - expect(wrapper.find('button.tab-control').findAll('button')).toHaveLength(3) + it('has two menu items', () => { + expect(wrapper.find('button.tab-control').findAll('a.item')).toHaveLength(2) }) describe('set item', () => { beforeEach(async () => { - await wrapper.findAll('button.item')[1].trigger('click') + await wrapper.findAll('a.item')[1].trigger('click') }) it('changes active item', () => { - expect(wrapper.findAll('button.item')[1].classes('active')).toBe(true) + expect(wrapper.findAll('a.item')[1].classes('active')).toBe(true) }) }) describe('set item with menu closed', () => { beforeEach(async () => { vi.runAllTimers() - await wrapper.findAll('button.item')[1].trigger('click') + await wrapper.findAll('a.item')[1].trigger('click') }) it('does not change the active item', () => { - expect(wrapper.findAll('button.item')[0].classes('active')).toBe(true) + expect(wrapper.findAll('a.item')[0].classes('active')).toBe(true) }) }) }) @@ -64,7 +106,7 @@ describe('TabControl', () => { wrapper.unmount() }) - it('clears timouts', () => { + it('clears timeouts', () => { expect(timeOutSpy).toBeCalled() }) }) diff --git a/frontend/src/components/menu/TabControl.vue b/frontend/src/components/menu/TabControl.vue index e55a9057ce..03e3cc0e14 100644 --- a/frontend/src/components/menu/TabControl.vue +++ b/frontend/src/components/menu/TabControl.vue @@ -7,53 +7,68 @@ >
- +
@@ -42,6 +42,10 @@ import UserInfo from './UserInfo.vue' background: transparent !important; } +.logo { + width: 140px; +} + .top-menu { position: sticky; top: 0; diff --git a/frontend/src/components/menu/UserDropdown.vue b/frontend/src/components/menu/UserDropdown.vue index 916d61533e..31f136e122 100644 --- a/frontend/src/components/menu/UserDropdown.vue +++ b/frontend/src/components/menu/UserDropdown.vue @@ -1,23 +1,21 @@ + + diff --git a/frontend/src/components/menu/UserInfo.vue b/frontend/src/components/menu/UserInfo.vue index 6047afb18e..2cf9e64739 100644 --- a/frontend/src/components/menu/UserInfo.vue +++ b/frontend/src/components/menu/UserInfo.vue @@ -1,5 +1,5 @@ -m diff --git a/frontend/src/components/menu/__snapshots__/BottomMenu.test.ts.snap b/frontend/src/components/menu/__snapshots__/BottomMenu.test.ts.snap index 861a22836c..9a3f34941b 100644 --- a/frontend/src/components/menu/__snapshots__/BottomMenu.test.ts.snap +++ b/frontend/src/components/menu/__snapshots__/BottomMenu.test.ts.snap @@ -13,80 +13,30 @@ exports[`BottomMenu > renders BottomMenu 1`] = ` data-v-96a196cc="" >
-
- - - -
-
- 3 -
-
-
- -
+ + + +
renders BottomMenu 1`] = `
-
- - - -
- - + diff --git a/frontend/src/components/menu/__snapshots__/TopMenu.test.ts.snap b/frontend/src/components/menu/__snapshots__/TopMenu.test.ts.snap index 97cb4fec9e..fd3067d195 100644 --- a/frontend/src/components/menu/__snapshots__/TopMenu.test.ts.snap +++ b/frontend/src/components/menu/__snapshots__/TopMenu.test.ts.snap @@ -34,45 +34,49 @@ exports[`TopMenu > renders 1`] = ` class="v-col d-none d-md-flex align-center" data-v-e787b5f9="" > -
+
+ - + + + + + + + + + +
-
- 3 -
-
+
renders 1`] = ` data-v-d58c92bb="" > -
$t('menu.worldCafe') - - - + @@ -941,43 +664,6 @@ exports[`TopMenu > renders 1`] = ` -
-
- - - -
-
-